@sanity/ui 4.2.0 → 5.0.0-alpha.10

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 (339) hide show
  1. package/README.md +194 -28
  2. package/bin/sanity-ui.js +14 -0
  3. package/dist/_chunks-es/LazyRefractor.js +20 -0
  4. package/dist/_chunks-es/LazyRefractor.js.map +1 -0
  5. package/dist/cli/checks.js +148 -0
  6. package/dist/cli/config.js +23 -0
  7. package/dist/cli/detect.js +181 -0
  8. package/dist/cli/doctor.js +49 -0
  9. package/dist/cli/index.js +69 -0
  10. package/dist/cli/init.js +189 -0
  11. package/dist/cli/install.js +79 -0
  12. package/dist/cli/log.js +66 -0
  13. package/dist/cli/selfPackage.js +11 -0
  14. package/dist/cli/styles.js +185 -0
  15. package/dist/cli/test-utils.js +8 -0
  16. package/dist/cli/tsconfig.js +236 -0
  17. package/dist/cli/types.js +1 -0
  18. package/dist/cli/versions.js +45 -0
  19. package/dist/index.d.ts +1203 -1469
  20. package/dist/index.js +2123 -1989
  21. package/dist/index.js.map +1 -1
  22. package/dist/polyfills.d.ts +1 -0
  23. package/dist/polyfills.js +5 -0
  24. package/dist/polyfills.js.map +1 -0
  25. package/dist/styles.css +1 -547
  26. package/package.json +57 -58
  27. package/src/cli/checks.test.ts +38 -0
  28. package/src/cli/checks.ts +200 -0
  29. package/src/cli/config.ts +44 -0
  30. package/src/cli/detect.test.ts +191 -0
  31. package/src/cli/detect.ts +205 -0
  32. package/src/cli/doctor.test.ts +52 -0
  33. package/src/cli/doctor.ts +65 -0
  34. package/src/cli/index.ts +77 -0
  35. package/src/cli/init.ts +225 -0
  36. package/src/cli/install.test.ts +52 -0
  37. package/src/cli/install.ts +108 -0
  38. package/src/cli/log.ts +79 -0
  39. package/src/cli/selfPackage.ts +14 -0
  40. package/src/cli/styles.test.ts +130 -0
  41. package/src/cli/styles.ts +205 -0
  42. package/src/cli/test-utils.ts +10 -0
  43. package/src/cli/tsconfig.test.ts +174 -0
  44. package/src/cli/tsconfig.ts +282 -0
  45. package/src/cli/types.ts +77 -0
  46. package/src/cli/versions.test.ts +35 -0
  47. package/src/cli/versions.ts +41 -0
  48. package/src/components/badge/Badge.tsx +53 -0
  49. package/src/components/badge/badge.css +6 -0
  50. package/src/components/badge/badge.props.ts +31 -0
  51. package/src/components/box/Box.tsx +30 -0
  52. package/src/components/box/box.css +4 -0
  53. package/src/components/box/box.props.ts +29 -0
  54. package/src/components/button/Button.tsx +78 -0
  55. package/src/components/button/button.css +72 -0
  56. package/src/components/button/button.props.ts +122 -0
  57. package/src/components/card/Card.tsx +31 -0
  58. package/src/components/card/card.css +4 -0
  59. package/src/components/card/card.props.ts +58 -0
  60. package/src/components/checkbox/Checkbox.tsx +64 -0
  61. package/src/components/checkbox/checkbox.css +100 -0
  62. package/src/components/checkbox/checkbox.props.ts +33 -0
  63. package/src/components/code/Code.tsx +38 -0
  64. package/src/components/code/LazyRefractor.tsx +9 -0
  65. package/src/components/code/code.css +40 -0
  66. package/src/components/code/code.props.ts +44 -0
  67. package/src/components/container/Container.tsx +30 -0
  68. package/src/components/container/container.css +4 -0
  69. package/src/components/container/container.props.ts +28 -0
  70. package/src/components/dialog/Dialog.tsx +139 -0
  71. package/src/components/dialog/dialog.css +49 -0
  72. package/src/components/dialog/dialog.props.ts +45 -0
  73. package/src/components/divider/Divider.tsx +23 -0
  74. package/src/components/divider/divider.props.ts +9 -0
  75. package/src/components/eyebrow/Eyebrow.tsx +54 -0
  76. package/src/components/eyebrow/eyebrow.css +11 -0
  77. package/src/components/eyebrow/eyebrow.props.ts +28 -0
  78. package/src/components/flex/Flex.tsx +30 -0
  79. package/src/components/flex/flex.css +4 -0
  80. package/src/components/flex/flex.props.ts +33 -0
  81. package/src/components/grid/Grid.tsx +30 -0
  82. package/src/components/grid/grid.css +4 -0
  83. package/src/components/grid/grid.props.ts +33 -0
  84. package/src/components/h-stack/HStack.tsx +34 -0
  85. package/src/components/h-stack/hStack.props.ts +17 -0
  86. package/src/components/heading/Heading.tsx +54 -0
  87. package/src/components/heading/heading.css +9 -0
  88. package/src/components/heading/heading.props.ts +31 -0
  89. package/src/components/icon/Icon.tsx +24 -0
  90. package/src/components/icon/icon.css +17 -0
  91. package/src/components/icon/icon.props.ts +35 -0
  92. package/src/components/icon-button/IconButton.tsx +32 -0
  93. package/src/components/icon-button/iconButton.props.ts +31 -0
  94. package/src/components/index.css +28 -0
  95. package/src/components/indicator/Indicator.tsx +42 -0
  96. package/src/components/indicator/indicator.css +4 -0
  97. package/src/components/indicator/indicator.props.ts +24 -0
  98. package/src/components/indicator-stack/IndicatorStack.tsx +31 -0
  99. package/src/components/indicator-stack/indicator-stack.css +7 -0
  100. package/src/components/indicator-stack/indicatorStack.props.ts +15 -0
  101. package/src/components/inline/Inline.tsx +38 -0
  102. package/src/components/inline/inline.css +4 -0
  103. package/src/components/inline/inline.props.ts +100 -0
  104. package/src/components/label/Label.tsx +34 -0
  105. package/src/components/label/label.css +3 -0
  106. package/src/components/label/label.props.ts +25 -0
  107. package/src/components/link/Link.tsx +29 -0
  108. package/src/components/link/link.css +12 -0
  109. package/src/components/link/link.props.ts +23 -0
  110. package/src/components/list/List.tsx +167 -0
  111. package/src/components/list/list.css +25 -0
  112. package/src/components/list/list.props.ts +130 -0
  113. package/src/components/popover/Popover.tsx +85 -0
  114. package/src/components/popover/popover.css +21 -0
  115. package/src/components/popover/popover.props.ts +38 -0
  116. package/src/components/press-area/PressArea.tsx +29 -0
  117. package/src/components/press-area/press-area.css +22 -0
  118. package/src/components/press-area/pressArea.props.ts +16 -0
  119. package/src/components/radio/Radio.tsx +48 -0
  120. package/src/components/radio/radio.css +97 -0
  121. package/src/components/radio/radio.props.ts +25 -0
  122. package/src/components/skip-to-content/SkipToContent.tsx +35 -0
  123. package/src/components/skip-to-content/skip-to-content.css +9 -0
  124. package/src/components/skip-to-content/skipToContent.props.ts +25 -0
  125. package/src/components/spinner/Spinner.tsx +28 -0
  126. package/src/components/spinner/spinner.css +10 -0
  127. package/src/components/spinner/spinner.props.ts +19 -0
  128. package/src/components/switch/Switch.tsx +48 -0
  129. package/src/components/switch/switch.css +119 -0
  130. package/src/components/switch/switch.props.ts +25 -0
  131. package/src/components/text/Text.tsx +53 -0
  132. package/src/components/text/text.css +9 -0
  133. package/src/components/text/text.props.ts +28 -0
  134. package/src/components/tooltip/Tooltip.tsx +97 -0
  135. package/src/components/tooltip/tooltip.css +31 -0
  136. package/src/components/tooltip/tooltip.props.ts +36 -0
  137. package/src/components/tooltip-group/TooltipGroup.tsx +64 -0
  138. package/src/components/tooltip-group/tooltipGroup.props.ts +15 -0
  139. package/src/components/v-stack/VStack.tsx +32 -0
  140. package/src/components/v-stack/vStack.props.ts +17 -0
  141. package/src/components/visually-hidden/VisuallyHidden.tsx +29 -0
  142. package/src/components/visually-hidden/visually-hidden.css +9 -0
  143. package/src/components/visually-hidden/visuallyHidden.props.ts +23 -0
  144. package/src/css/classes/dynamic/flex-child.css +5 -0
  145. package/src/css/classes/dynamic/grid-child.css +8 -0
  146. package/src/css/classes/dynamic/grid-parent.css +6 -0
  147. package/src/css/classes/dynamic/height.css +5 -0
  148. package/src/css/classes/dynamic/index.css +7 -0
  149. package/src/css/classes/dynamic/line-clamp.css +5 -0
  150. package/src/css/classes/dynamic/readme.md +3 -0
  151. package/src/css/classes/dynamic/width.css +7 -0
  152. package/src/css/classes/dynamic/z-index.css +3 -0
  153. package/src/css/classes/generic/display.css +10 -0
  154. package/src/css/classes/generic/flex.css +24 -0
  155. package/src/css/classes/generic/grid.css +7 -0
  156. package/src/css/classes/generic/index.css +7 -0
  157. package/src/css/classes/generic/overflow.css +19 -0
  158. package/src/css/classes/generic/placement.css +202 -0
  159. package/src/css/classes/generic/position.css +7 -0
  160. package/src/css/classes/generic/readme.md +3 -0
  161. package/src/css/classes/generic/text-align.css +5 -0
  162. package/src/css/classes/index.css +4 -0
  163. package/src/css/classes/local/animation.css +4 -0
  164. package/src/css/classes/local/border.css +20 -0
  165. package/src/css/classes/local/index.css +6 -0
  166. package/src/css/classes/local/readme.md +3 -0
  167. package/src/css/classes/local/text-overflow.css +5 -0
  168. package/src/css/classes/local/text-trim.css +45 -0
  169. package/src/css/classes/local/tone.css +75 -0
  170. package/src/css/classes/local/top-anchor.css +4 -0
  171. package/src/css/classes/system/color.css +223 -0
  172. package/src/css/classes/system/container.css +8 -0
  173. package/src/css/classes/system/font-family.css +2 -0
  174. package/src/css/classes/system/font-weight.css +4 -0
  175. package/src/css/classes/system/gap.css +37 -0
  176. package/src/css/classes/system/index.css +10 -0
  177. package/src/css/classes/system/inset.css +56 -0
  178. package/src/css/classes/system/margin.css +148 -0
  179. package/src/css/classes/system/padding.css +78 -0
  180. package/src/css/classes/system/radius.css +10 -0
  181. package/src/css/classes/system/readme.md +3 -0
  182. package/src/css/classes/system/shadow.css +6 -0
  183. package/src/css/classes/system/typography.css +31 -0
  184. package/src/css/global/font-face.css +20 -0
  185. package/src/css/global/index.css +2 -0
  186. package/src/css/global/reset.css +76 -0
  187. package/src/css/tokens/index.css +3 -0
  188. package/src/css/tokens/opacity.css +6 -0
  189. package/src/css/tokens/semantic.css +25 -0
  190. package/src/css/tokens/surface.css +27 -0
  191. package/src/hooks/useIsClient.ts +10 -0
  192. package/src/index.css +18 -0
  193. package/src/index.ts +65 -0
  194. package/src/polyfills.ts +15 -0
  195. package/src/props/border.ts +51 -0
  196. package/src/props/flexChild.ts +29 -0
  197. package/src/props/flexParent.ts +47 -0
  198. package/src/props/gap.ts +31 -0
  199. package/src/props/gridChild.ts +50 -0
  200. package/src/props/gridParent.ts +45 -0
  201. package/src/props/height.ts +29 -0
  202. package/src/props/layout.ts +44 -0
  203. package/src/props/margin.ts +59 -0
  204. package/src/props/overflow.ts +30 -0
  205. package/src/props/padding.ts +59 -0
  206. package/src/props/placement.ts +16 -0
  207. package/src/props/position.ts +52 -0
  208. package/src/props/shadow.ts +15 -0
  209. package/src/props/tone.ts +15 -0
  210. package/src/props/typography.ts +62 -0
  211. package/src/props/width.ts +29 -0
  212. package/src/props/zIndex.ts +15 -0
  213. package/src/styles.css.d.ts +1 -0
  214. package/src/styles.css.node.js +2 -0
  215. package/src/styles.css.test.ts +24 -0
  216. package/src/types/Button.ts +8 -0
  217. package/src/types/Code.ts +6 -0
  218. package/src/types/Container.ts +3 -0
  219. package/src/types/Density.ts +3 -0
  220. package/src/types/Display.ts +11 -0
  221. package/src/types/Eyebrow.ts +3 -0
  222. package/src/types/Flex.ts +22 -0
  223. package/src/types/FontWeight.ts +3 -0
  224. package/src/types/Grid.ts +3 -0
  225. package/src/types/Heading.ts +6 -0
  226. package/src/types/Icon.ts +3 -0
  227. package/src/types/Interactive.ts +8 -0
  228. package/src/types/List.ts +2 -0
  229. package/src/types/Overflow.ts +3 -0
  230. package/src/types/Placement.ts +16 -0
  231. package/src/types/Position.ts +3 -0
  232. package/src/types/PropDef.ts +73 -0
  233. package/src/types/Radius.ts +3 -0
  234. package/src/types/Responsive.ts +10 -0
  235. package/src/types/Shadow.ts +3 -0
  236. package/src/types/Space.ts +15 -0
  237. package/src/types/Text.ts +3 -0
  238. package/src/types/TextAlign.ts +3 -0
  239. package/src/types/Tone.ts +3 -0
  240. package/src/utils/getProps.test.ts +156 -0
  241. package/src/utils/getProps.ts +156 -0
  242. package/src/utils/mergeTriggerProps.ts +66 -0
  243. package/src/utils/renderPortal.tsx +14 -0
  244. package/src/utils/suffixClassName.ts +5 -0
  245. package/src/version.ts +3 -0
  246. package/LICENSE +0 -21
  247. package/dist/_system-CTe2lb5l.d.ts +0 -40
  248. package/dist/_system-CTe2lb5l.d.ts.map +0 -1
  249. package/dist/arrow-BmX6qbAS.js +0 -170
  250. package/dist/arrow-BmX6qbAS.js.map +0 -1
  251. package/dist/autocomplete.d.ts +0 -140
  252. package/dist/autocomplete.d.ts.map +0 -1
  253. package/dist/autocomplete.js +0 -470
  254. package/dist/autocomplete.js.map +0 -1
  255. package/dist/breadcrumbs.d.ts +0 -18
  256. package/dist/breadcrumbs.d.ts.map +0 -1
  257. package/dist/breadcrumbs.js +0 -119
  258. package/dist/breadcrumbs.js.map +0 -1
  259. package/dist/button-BNyKSDyA.js +0 -180
  260. package/dist/button-BNyKSDyA.js.map +0 -1
  261. package/dist/button-dnqMFkWg.d.ts +0 -76
  262. package/dist/button-dnqMFkWg.d.ts.map +0 -1
  263. package/dist/card-C0a0wQTc.d.ts +0 -7
  264. package/dist/card-C0a0wQTc.d.ts.map +0 -1
  265. package/dist/code.d.ts +0 -20
  266. package/dist/code.d.ts.map +0 -1
  267. package/dist/code.js +0 -90
  268. package/dist/code.js.map +0 -1
  269. package/dist/codeFontStyle-84SMhFtI.js +0 -11
  270. package/dist/codeFontStyle-84SMhFtI.js.map +0 -1
  271. package/dist/component-DVlwaWB-.d.ts +0 -25
  272. package/dist/component-DVlwaWB-.d.ts.map +0 -1
  273. package/dist/element-BYgCE_iK.js +0 -51
  274. package/dist/element-BYgCE_iK.js.map +0 -1
  275. package/dist/factory-BzXTX8_Q.js +0 -3056
  276. package/dist/factory-BzXTX8_Q.js.map +0 -1
  277. package/dist/flex-DmbDG2ks.js +0 -76
  278. package/dist/flex-DmbDG2ks.js.map +0 -1
  279. package/dist/font-EtfxKPUz.d.ts +0 -49
  280. package/dist/font-EtfxKPUz.d.ts.map +0 -1
  281. package/dist/getElementRef-Jw7gY0eV.js +0 -102
  282. package/dist/getElementRef-Jw7gY0eV.js.map +0 -1
  283. package/dist/getScopedTheme-C-sZsyAz.js +0 -267
  284. package/dist/getScopedTheme-C-sZsyAz.js.map +0 -1
  285. package/dist/getTheme_v2-y09KqtEb.js +0 -487
  286. package/dist/getTheme_v2-y09KqtEb.js.map +0 -1
  287. package/dist/grid-6JSgMj1O.js +0 -115
  288. package/dist/grid-6JSgMj1O.js.map +0 -1
  289. package/dist/helpers-C8xxXAQC.js +0 -63
  290. package/dist/helpers-C8xxXAQC.js.map +0 -1
  291. package/dist/hotkeys-CaHsQlsO.js +0 -168
  292. package/dist/hotkeys-CaHsQlsO.js.map +0 -1
  293. package/dist/index.d.ts.map +0 -1
  294. package/dist/layer-Bl5R3uNR.js +0 -61
  295. package/dist/layer-Bl5R3uNR.js.map +0 -1
  296. package/dist/layer-ChlP9Ik6.d.ts +0 -242
  297. package/dist/layer-ChlP9Ik6.d.ts.map +0 -1
  298. package/dist/menu.d.ts +0 -146
  299. package/dist/menu.d.ts.map +0 -1
  300. package/dist/menu.js +0 -626
  301. package/dist/menu.js.map +0 -1
  302. package/dist/popover-B7-28L8y.js +0 -408
  303. package/dist/popover-B7-28L8y.js.map +0 -1
  304. package/dist/popover-CMlQeKn0.d.ts +0 -96
  305. package/dist/popover-CMlQeKn0.d.ts.map +0 -1
  306. package/dist/popover.d.ts +0 -2
  307. package/dist/popover.js +0 -3
  308. package/dist/refractor-CC48DwHi.js +0 -20
  309. package/dist/refractor-CC48DwHi.js.map +0 -1
  310. package/dist/responsiveFont-CilwaORG.js +0 -55
  311. package/dist/responsiveFont-CilwaORG.js.map +0 -1
  312. package/dist/rgba-BSYaEUW6.d.ts +0 -846
  313. package/dist/rgba-BSYaEUW6.d.ts.map +0 -1
  314. package/dist/selectable-B0GUIL74.d.ts +0 -7
  315. package/dist/selectable-B0GUIL74.d.ts.map +0 -1
  316. package/dist/stack-rsNFPq2-.js +0 -112
  317. package/dist/stack-rsNFPq2-.js.map +0 -1
  318. package/dist/styles-css.d.ts +0 -2
  319. package/dist/styles-css.js +0 -4
  320. package/dist/textInput-pSfQjkmx.js +0 -313
  321. package/dist/textInput-pSfQjkmx.js.map +0 -1
  322. package/dist/theme.d.ts +0 -280
  323. package/dist/theme.d.ts.map +0 -1
  324. package/dist/theme.js +0 -55
  325. package/dist/theme.js.map +0 -1
  326. package/dist/toast.d.ts +0 -73
  327. package/dist/toast.d.ts.map +0 -1
  328. package/dist/toast.js +0 -302
  329. package/dist/toast.js.map +0 -1
  330. package/dist/tooltip.d.ts +0 -88
  331. package/dist/tooltip.d.ts.map +0 -1
  332. package/dist/tooltip.js +0 -435
  333. package/dist/tooltip.js.map +0 -1
  334. package/dist/useClickOutsideEvent-wGLGWBZN.js +0 -36
  335. package/dist/useClickOutsideEvent-wGLGWBZN.js.map +0 -1
  336. package/dist/useElementSize-BJvbGHq8.js +0 -51
  337. package/dist/useElementSize-BJvbGHq8.js.map +0 -1
  338. package/dist/useLayer-D1usxIE0.js +0 -712
  339. package/dist/useLayer-D1usxIE0.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["width = 2","_getArrayProp(width)","<StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={_getArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />","_getArrayProp(radiusProp)","_getArrayProp(shadowProp)","_getArrayProp(widthProp)","() => ref.current","() => contentRef.current","() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }","[autoFocus, ref]","(event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n }","useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n )","isTopLayer &&\n onClickOutside &&\n ((event) => {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n })","target","event","() => [ref.current]","showHeader && (\n <Box className={dialogHeader} data-ui=\"DialogHeader\">\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </Box>\n )","<Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>","footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )","<Flex className={dialogLayout} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader} data-ui=\"DialogHeader\">\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </Box>\n )}\n\n <Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n\n {footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )}\n </Flex>","<Card\n className={dialogCard}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n >\n <Flex className={dialogLayout} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader} data-ui=\"DialogHeader\">\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </Box>\n )}\n\n <Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n\n {footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>","<Container className={dialogContainer} data-ui=\"DialogCard\" display=\"flex\" width={width}>\n <Card\n className={dialogCard}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n >\n <Flex className={dialogLayout} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader} data-ui=\"DialogHeader\">\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </Box>\n )}\n\n <Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n\n {footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n </Container>","autoFocus = true","hideCloseButton = false","cardRadiusProp = 4","cardShadow = 3","paddingProp = 3","widthProp = 0","_animate = false","_getArrayProp(cardRadiusProp)","_getArrayProp(paddingProp)","_getArrayProp(positionProp)","_getArrayProp(zOffsetProp)","(event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n }","useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )","() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }","cardElement","useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])","clsx(dialogLayer, animate && dialogAnimated, className)","animate && dialogAnimated","<div ref={preDivRef} tabIndex={0} />","<DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>","<div ref={postDivRef} tabIndex={0} />","<StyledDialog\n {...restProps}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n className={clsx(dialogLayer, animate && dialogAnimated, className)}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>","<Portal __unstable_name={portalProp}>\n <StyledDialog\n {...restProps}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n className={clsx(dialogLayer, animate && dialogAnimated, className)}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>","{\n version: 0.0,\n position,\n zOffset,\n }","useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )","<DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>","DialogContext.Provider","animated = false","() => {\n if (!delay) {\n return undefined\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }","[delay]","_getArrayProp(radius)","clsx(\n skeleton,\n (delay ? visible : true) ? skeletonVisible : skeletonHidden,\n animated ? skeletonAnimated : skeletonStatic,\n className,\n )","(delay ? visible : true) ? skeletonVisible : skeletonHidden","animated ? skeletonAnimated : skeletonStatic","<StyledSkeleton\n data-ui=\"Skeleton\"\n {...restProps}\n $radius={_getArrayProp(radius)}\n className={clsx(\n skeleton,\n (delay ? visible : true) ? skeletonVisible : skeletonHidden,\n animated ? skeletonAnimated : skeletonStatic,\n className,\n )}\n ref={ref}\n />","size = 2","_getArrayProp(size)","<StyledSkeleton data-ui=\"TextSkeleton\" {...restProps} $size={$size} $style=\"text\" />","<StyledSkeleton data-ui=\"LabelSkeleton\" {...restProps} $size={$size} $style=\"label\" />","<StyledSkeleton data-ui=\"HeadingSkeleton\" {...restProps} $size={$size} $style=\"heading\" />","<StyledSkeleton data-ui=\"CodeSkeleton\" {...restProps} $size={$size} $style=\"code\" />","fontSize = 1","padding = 2","() => ref.current","() => {\n focusedRef.current = false\n }","useCallback(() => {\n focusedRef.current = false\n }, [])","(event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n }","useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )","() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }","[focused]","clsx(tab, className)","<Button\n className={clsx(tab, className)}\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />","selected ? 'true' : 'false'","selected ? 0 : -1","children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )","(child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n })","(event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n }","prevIndex","useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )","clsx(tabList, className)","<Inline\n className={clsx(tabList, className)}\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </Inline>","<Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>","children","props.tabIndex === undefined ? 0 : props.tabIndex","gap = 1","[]","useMemo(() => [], [])","{}","() => ref.current","() => {\n focusedElementRef.current = focusedElement\n }","[focusedElement]","() => {\n stateRef.current = state\n }","[state]","(element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n }","path","s","useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )","(path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }","useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])","{\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n gap,\n state,\n }","focusedElement || itemElements[0] || null","useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n gap,\n state,\n }),\n [focusedElement, gap, itemElements, path, registerItem, setExpanded, state],\n )","(event: React.KeyboardEvent<HTMLUListElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n }","itemState","useCallback(\n (event: React.KeyboardEvent<HTMLUListElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )","(event: React.FocusEvent<HTMLUListElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n }","event","useCallback(\n (event: React.FocusEvent<HTMLUListElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )","() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n // oxlint-disable-next-line react/exhaustive-effect-dependencies\n }","[children]","<Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n gap={gap}\n >\n {children}\n </Stack>","<TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n gap={gap}\n >\n {children}\n </Stack>\n </TreeContext.Provider>","TreeContext.Provider","expanded = false","<Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.gap}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"group\"\n gap={tree.gap}\n >\n {children}\n </Stack>","!expanded","gap","expandedProp = false","fontSize = 1","padding = 2","selected = false","gap = 2","(node: HTMLLIElement | null) => {\n startTransition(() => _setRootElement(node))\n }","useCallback((node: HTMLLIElement | null) => {\n startTransition(() => _setRootElement(node))\n }, [])","itemPath","itemPath.join('/')","[itemPath, itemPath.join('/')]","useMemo(() => {\n const itemPath = path.concat([id || ''])\n return [itemPath, itemPath.join('/')]\n }, [id, path])","{...tree, level: tree.level + 1, path: itemPath}","tree.level + 1","useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )","(event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n }","useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n },\n [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n )","(event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n }","event","useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n },\n [focused, rootElement],\n )","() => {\n if (!rootElement) return\n\n return registerItem(rootElement, itemKey, expanded, selected)\n }","[expanded, itemKey, registerItem, rootElement, selected]","{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }","IconComponent || children ? 'visible' : 'hidden'","IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )","!IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon\n className={treeItemToggleArrow}\n style={{transform: expanded ? 'rotate(90deg)' : undefined}}\n />\n </Text>\n )","<Box\n marginRight={gap}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon\n className={treeItemToggleArrow}\n style={{transform: expanded ? 'rotate(90deg)' : undefined}}\n />\n </Text>\n )}\n </Box>","<Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>","<Flex padding={padding}>\n <Box\n marginRight={gap}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon\n className={treeItemToggleArrow}\n style={{transform: expanded ? 'rotate(90deg)' : undefined}}\n />\n </Text>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>","<TreeItemBox\n {...linkProps}\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-as={typeof linkAs === 'string' ? linkAs : 'a'}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>","typeof linkAs === 'string' ? linkAs : 'a'","level","children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>","<TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>","TreeContext.Provider","<TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>","children && <TreeGroup expanded={expanded}>{children}</TreeGroup>","<TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>","<StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n className={clsx(treeItem, restProps.className)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={setRootElement}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>","StyledTreeItem","selected ? '' : undefined","clsx(treeItem, restProps.className)","\"TreeItem\"","() => false","getServerSnapshot = () => false","muted = false","size = 2","<SpanWithTextOverflow>{children}</SpanWithTextOverflow>","<span>{children}</span>","_getArrayProp(align)","_getArrayProp(size)","<StyledLabel\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </StyledLabel>","color = 'gray'","status = 'online'","sizeProp = 1","() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }","[arrowPosition, arrowPositionProp]","() => {\n // oxlint-disable-next-line react/set-state-in-effect\n if (src) setImageFailed(false)\n }","[src]","() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }","useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])","<div className={avatarArrow}>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </div>","!imageFailed && src && (\n <svg className={avatarImage} viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image href={src} width=\"1\" height=\"1\" onError={handleImageError} />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <ellipse\n className={avatarBgStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <ellipse\n className={avatarStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n )","(s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }","<StyledAvatar\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <div className={avatarArrow}>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </div>\n\n {!imageFailed && src && (\n <svg className={avatarImage} viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image href={src} width=\"1\" height=\"1\" onError={handleImageError} />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <ellipse\n className={avatarBgStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <ellipse\n className={avatarStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <div className={avatarInitials}>\n <InitialsLabel\n forwardedAs=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {initials}\n </InitialsLabel>\n </div>\n </>\n )}\n </StyledAvatar>","StyledAvatar","(imageFailed || !src) && initials && (\n <>\n <div className={avatarInitials}>\n <InitialsLabel\n forwardedAs=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {initials}\n </InitialsLabel>\n </div>\n </>\n )","typeof as === 'string' ? as : undefined","\"Avatar\"","sizeProp = 1","Label","StyledAvatarCounter","\"span\"","size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })","size","\"AvatarCounter\"","ref","(s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n }","<Label\n as=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {count}\n </Label>","<StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label\n as=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {count}\n </Label>\n </StyledAvatarCounter>","maxLengthProp = 4","sizeProp = 1","StyledAvatarStack","clsx(avatarStack, className)","\"AvatarStack\"","restProps","ref","size","len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )","len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )","visibleChildren.map((child, childIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))","_getArrayProp(sizeProp)","(child, childIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n )","<StyledAvatarStack\n className={clsx(avatarStack, className)}\n data-ui=\"AvatarStack\"\n {...restProps}\n ref={ref}\n $size={size}\n >\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </StyledAvatarStack>","fontSize = 1","padding = 1","radius = 'full'","tone = 'default'","_getArrayProp(radius)","_getArrayProp(padding)","<Text size={fontSize}>{children}</Text>","<StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={_getArrayProp(radius)}\n padding={_getArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </StyledBadge>","() => ref.current","() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }","[indeterminate]","clsx(checkbox, className)","<Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />","!disabled && readOnly ? '' : undefined","customValidity ? '' : undefined","disabled || readOnly","<span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>","<div className={clsx(checkbox, className)} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </div>","accent = false","muted = false","size = 2","<SpanWithTextOverflow>{children}</SpanWithTextOverflow>","_getArrayProp(align)","_getArrayProp(size)","<span>{children}</span>","<StyledHeading\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </StyledHeading>","() => ref.current","clsx(radio, className)","<Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />","!disabled && readOnly ? '' : undefined","customValidity ? '' : undefined","disabled || readOnly","<span />","<div className={clsx(radio, className)} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </div>","fontSize = 2","gap = 3","padding = 3","radius = 2","() => ref.current","_getArrayProp(fontSize)","_getArrayProp(padding)","_getArrayProp(radius)","_getArrayProp(gap)","<Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(gap)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>","disabled || readOnly","!disabled && readOnly ? '' : undefined","<ChevronDownIcon />","<Text size={fontSize}>\n <ChevronDownIcon />\n </Text>","<IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>","<div className={select} data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(gap)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </div>","() => ref.current","() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }","[indeterminate]","clsx(switchRoot, className)","<input\n className={switchInput}\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />","!disabled && readOnly ? '' : undefined","indeterminate !== true && checked","disabled || readOnly","<Track />","<Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>","<span className={clsx(switchRoot, className)} data-ui=\"Switch\" style={style}>\n <input\n className={switchInput}\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </span>","border = true","disabled = false","fontSize = 2","padding = 3","radius = 2","() => ref.current","_getArrayProp(fontSize)","_getArrayProp(padding)","_getArrayProp(0)","<Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={_getArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />","scheme","tone","rootTheme.scheme","rootTheme.tone","_getArrayProp(radius)","<Presentation\n $radius={_getArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />","border ? '' : undefined","<span className={textAreaRoot} data-ui=\"TextArea\">\n <span className={inputRoot}>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={_getArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={_getArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </span>\n </span>","{version: 0.0, element}","useMemo(() => ({version: 0.0, element}), [element])","<BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>","BoundaryElementContext.Provider","eq.length ? eq.join(' ') : undefined","useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])","eq","useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])","() => element","[\n element,\n ]","<div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>","() => document.body","() => null","{\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }","boundaryElement || null","element || fallbackElement","useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])","<PortalContext.Provider value={value}>{children}</PortalContext.Provider>","PortalContext.Provider","as = 'div'","<Component aria-hidden className={srOnly} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Component>","as = 'div'","gap = 0","items = []","() => ref.current","() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n // oxlint-disable-next-line react/exhaustive-effect-dependencies\n }","[renderItem]","(): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n // oxlint-disable-next-line consistent-return\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n // oxlint-disable-next-line consistent-return\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }","[]","handleScroll","[fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex]","() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }","{\n fromIndex,\n gap,\n itemHeight,\n space,\n toIndex,\n getItemKey,\n items,\n renderItem,\n }","clsx(virtualList, className)","{height}","<div ref={wrapperRef} style={{height}}>\n {children}\n </div>","<Component\n className={clsx(virtualList, className)}\n data-ui=\"VirtualList\"\n ref={ref}\n {...restProps}\n >\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </Component>","{\n fromIndex,\n gap,\n getItemKey,\n itemHeight,\n items,\n renderItem,\n space,\n toIndex,\n}: Pick<VirtualListProps, 'getItemKey' | 'renderItem'> &\n Required<Pick<VirtualListProps, 'items'>> & {\n fromIndex: number\n gap: number\n itemHeight: number\n space: number[]\n toIndex: number\n }","renderItem(items[0])","0","[\n <div key={0} className={virtualListItem}>\n {renderItem(items[0])}\n </div>,\n ]","items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <div\n key={key}\n className={virtualListItem}\n style={{top: itemIndex * (itemHeight + space[gap])}}\n >\n {node}\n </div>\n )\n })","(item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <div\n key={key}\n className={virtualListItem}\n style={{top: itemIndex * (itemHeight + space[gap])}}\n >\n {node}\n </div>\n )\n }"],"sources":["../src/core/_compat.ts","../src/core/primitives/container/styles.ts","../src/core/primitives/container/container.tsx","../src/core/components/dialog/styles.ts","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.css.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/skeleton/skeleton.css.ts","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tab.css.ts","../src/core/components/tab/tab.tsx","../src/core/components/tab/tabList.css.ts","../src/core/components/tab/tabList.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/style.ts","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/tree.css.ts","../src/core/components/tree/treeItem.tsx","../src/core/helpers/scroll.ts","../src/core/hooks/useArrayProp.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/hooks/usePrefersDark.ts","../src/core/styles/font/labelFontStyle.ts","../src/core/primitives/label/styles.ts","../src/core/primitives/label/label.tsx","../src/core/primitives/avatar/styles.ts","../src/core/primitives/avatar/avatar.css.ts","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/badge/styles.ts","../src/core/primitives/badge/badge.tsx","../src/core/primitives/checkbox/styles.ts","../src/core/primitives/checkbox/checkbox.css.ts","../src/core/primitives/checkbox/checkbox.tsx","../src/core/styles/font/headingFontStyle.ts","../src/core/primitives/heading/styles.ts","../src/core/primitives/heading/heading.tsx","../src/core/primitives/radio/styles.ts","../src/core/primitives/radio/radio.css.ts","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/styles.ts","../src/core/primitives/select/select.css.ts","../src/core/primitives/select/select.tsx","../src/core/primitives/switch/styles.ts","../src/core/primitives/switch/switch.css.ts","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/utils/conditionalWrapper/conditionalWrapper.tsx","../src/core/utils/elementQuery/helpers.ts","../src/core/utils/elementQuery/elementQuery.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/portal/portalProvider.tsx","../src/core/utils/srOnly/srOnly.css.ts","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.css.ts","../src/core/utils/virtualList/virtualList.tsx"],"sourcesContent":["// This file re-exports API members which existed in the `@sanity/ui` export in v1.\n\nimport {buildTheme} from '../theme/build/buildTheme'\nimport {type HSL as _HSL, type RGB as _RGB} from '../theme/build/lib/color-fns/types'\nimport {\n type ThemeColorButtonModeKey as _ThemeColorButtonModeKey,\n type ThemeColorSchemeKey as _ThemeColorSchemeKey,\n} from '../theme/system/color/_system'\nimport {type ThemeColorSyntax as _ThemeColorSyntax} from '../theme/system/color/syntax'\nimport {\n type ThemeFont as _ThemeFont,\n type ThemeFontKey as _ThemeFontKey,\n type ThemeFonts as _ThemeFonts,\n type ThemeFontSize as _ThemeFontSize,\n type ThemeFontWeight as _ThemeFontWeight,\n type ThemeFontWeightKey as _ThemeFontWeightKey,\n} from '../theme/system/font'\nimport {type ThemeLayer as _ThemeLayer} from '../theme/system/layer'\nimport {type ThemeBoxShadow, type ThemeShadow as _ThemeShadow} from '../theme/system/shadow'\nimport {type ThemeStyles} from '../theme/system/styles'\nimport {\n type BaseTheme as _BaseTheme,\n type RootTheme as _RootTheme,\n type Theme as _Theme,\n} from '../theme/system/theme'\n\n/**\n * @public\n * @deprecated Use `BaseTheme` from `@sanity/ui/theme` instead.\n */\nexport type BaseTheme = _BaseTheme\n\n/**\n * @public\n * @deprecated Use `ThemeBoxShadow` from `@sanity/ui/theme` instead.\n */\nexport type BoxShadow = ThemeBoxShadow\n\n/**\n * @public\n * @deprecated Use `HSL` from `@sanity/ui/theme` instead.\n */\nexport type HSL = _HSL\n\n/**\n * @public\n * @deprecated Use `RGB` from `@sanity/ui/theme` instead.\n */\nexport type RGB = _RGB\n\n/**\n * @public\n * @deprecated Use `RootTheme` from `@sanity/ui/theme` instead.\n */\nexport type RootTheme = _RootTheme\n\n/**\n * @public\n * @deprecated Use `ThemeStyles` from `@sanity/ui/theme` instead.\n */\nexport type Styles = ThemeStyles\n\n/**\n * @public\n * @deprecated Use `Theme` from `@sanity/ui/theme` instead.\n */\nexport type Theme = _Theme\n\n/**\n * @public\n * @deprecated Use `ThemeColorButtonModeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorButtonModeKey = _ThemeColorButtonModeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSchemeKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSchemeKey = _ThemeColorSchemeKey\n\n/**\n * @public\n * @deprecated Use `ThemeColorSyntax` from `@sanity/ui/theme` instead.\n */\nexport type ThemeColorSyntax = _ThemeColorSyntax\n\n/**\n * @public\n * @deprecated Use `ThemeFont` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFont = _ThemeFont\n\n/**\n * @public\n * @deprecated Use `ThemeFontKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontKey = _ThemeFontKey\n\n/**\n * @public\n * @deprecated Use `ThemeFontSize` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontSize = _ThemeFontSize\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeight` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeight = _ThemeFontWeight\n\n/**\n * @public\n * @deprecated Use `ThemeFontWeightKey` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFontWeightKey = _ThemeFontWeightKey\n\n/**\n * @public\n * @deprecated Use `ThemeFonts` from `@sanity/ui/theme` instead.\n */\nexport type ThemeFonts = _ThemeFonts\n\n/**\n * @public\n * @deprecated Use `ThemeLayer` from `@sanity/ui/theme` instead.\n */\nexport type ThemeLayer = _ThemeLayer\n\n/**\n * @public\n * @deprecated Use `ThemeShadow` from `@sanity/ui/theme` instead.\n */\nexport type ThemeShadow = _ThemeShadow\n\nimport {createColorTheme as _createColorTheme} from '../theme/build/_deprecated/color/factory'\nimport {multiply as _multiply} from '../theme/build/lib/color-fns/blend/multiply'\nimport {screen as _screen} from '../theme/build/lib/color-fns/blend/screen'\nimport {\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n} from '../theme/build/lib/color-fns/convert'\nimport {parseColor as _parseColor} from '../theme/build/lib/color-fns/parse'\nimport {rgba as _rgba} from '../theme/build/lib/color-fns/rgba'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\n// oxlint-disable-next-line no-deprecated\nexport const createColorTheme = _createColorTheme\n\n/**\n * @public\n * @deprecated Use `hexToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hexToRgb = _hexToRgb\n\n/**\n * @public\n * @deprecated Use `hslToRgb` from `@sanity/ui/theme` instead.\n */\nexport const hslToRgb = _hslToRgb\n\n/**\n * @public\n * @deprecated Use `multiply` from `@sanity/ui/theme` instead.\n */\nexport const multiply = _multiply\n\n/**\n * @public\n * @deprecated Use `parseColor` from `@sanity/ui/theme` instead.\n */\nexport const parseColor = _parseColor\n\n/**\n * @public\n * @deprecated Use `rgbToHex` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHex = _rgbToHex\n\n/**\n * @public\n * @deprecated Use `rgbToHsl` from `@sanity/ui/theme` instead.\n */\nexport const rgbToHsl = _rgbToHsl\n\n/**\n * @public\n * @deprecated Use `rgba` from `@sanity/ui/theme` instead.\n */\nexport const rgba = _rgba\n\n/**\n * @public\n * @deprecated Use `screen` from `@sanity/ui/theme` instead.\n */\nexport const screen = _screen\n\n/**\n * @public\n * @deprecated Use `buildTheme` from `@sanity/ui/theme` instead.\n */\nexport const studioTheme = buildTheme()\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {ResponsiveWidthStyleProps} from './types'\n\nconst BASE_STYLE: CSSObject = {\n width: '100%',\n margin: '0 auto',\n}\n\nexport function containerBaseStyle(): CSSObject {\n return BASE_STYLE\n}\n\nexport function responsiveContainerWidthStyle(\n props: ResponsiveWidthStyleProps & ThemeProps,\n): CSSObject[] {\n const {container, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$width, (val) => ({\n maxWidth: val === 'auto' ? 'none' : rem(container[val]),\n }))\n}\n","import {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {ResponsiveWidthProps} from '../types'\nimport {containerBaseStyle, responsiveContainerWidthStyle} from './styles'\nimport {ResponsiveWidthStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface ContainerOwnProps extends BoxOwnProps, ResponsiveWidthProps {}\n\n/**\n * @public\n */\nexport type ContainerProps<E extends ElementType = 'div'> = Props<ContainerOwnProps, E>\n\nconst StyledContainer = styled(Box)<ResponsiveWidthStyleProps>(\n containerBaseStyle,\n responsiveContainerWidthStyle,\n)\n\nfunction ContainerComponent(\n props: ContainerOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'height' | 'width'\n >,\n) {\n const {as, ref, width = 2, ...restProps} = props\n\n return (\n <StyledContainer\n data-ui=\"Container\"\n {...restProps}\n $width={_getArrayProp(width)}\n forwardedAs={as}\n ref={ref}\n />\n )\n}\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Container = ContainerComponent as unknown as <E extends ElementType = 'div'>(\n props: ContainerProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {DialogPosition} from '../../types/dialog'\n\n/**\n * @internal\n */\nexport interface ResponsiveDialogPositionStyleProps {\n $position: DialogPosition[]\n}\n\nexport function dialogStyle({theme}: ThemeProps): CSSObject {\n const {color} = getTheme_v2(theme)\n\n return {\n background: color.backdrop,\n }\n}\n\nexport function responsiveDialogPositionStyle(\n props: ResponsiveDialogPositionStyleProps & ThemeProps,\n): CSSObject[] {\n const {media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$position, (position) => ({'&&': {position}}))\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {DialogPosition} from '../../types/dialog'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * @internal\n */\nexport const DialogContext = createGlobalScopedContext<DialogContextValue>(\n '@sanity/ui/context/dialog',\n {version: 0.0},\n)\n","import {useContext} from 'react'\n\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function useDialog(): DialogContextValue {\n return useContext(DialogContext)\n}\n","import {globalStyle, keyframes, style} from '@vanilla-extract/css'\n\nexport const dialogLayer = style({\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n outline: 'none',\n selectors: {\n '&:not([hidden])': {\n display: 'flex',\n },\n },\n})\n\nconst zoomIn = keyframes({\n from: {opacity: 0, transform: 'scale(0.95)'},\n to: {opacity: 1, transform: 'scale(1)'},\n})\n\nconst fadeIn = keyframes({\n from: {opacity: 0},\n to: {opacity: 1},\n})\n\nexport const dialogAnimated = style({\n animation: `${fadeIn} 200ms ease-out`,\n})\n\nglobalStyle(`${dialogAnimated} > [data-ui='DialogCard']`, {\n animation: `${zoomIn} 200ms ease-out`,\n})\n\nexport const dialogContainer = style({\n width: '100%',\n height: '100%',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n})\n\nexport const dialogCard = style({\n width: '100%',\n minHeight: 0,\n maxHeight: '100%',\n overflow: ['hidden', 'clip'],\n})\n\nexport const dialogLayout = style({\n minHeight: 0,\n width: '100%',\n})\n\nexport const dialogHeader = style({\n position: 'relative',\n zIndex: 2,\n})\n\nexport const dialogContent = style({\n position: 'relative',\n zIndex: 1,\n overflow: 'auto',\n outline: 'none',\n})\n\nexport const dialogFooter = style({\n position: 'relative',\n zIndex: 3,\n})\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {clsx} from 'clsx/lite'\nimport {useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers/element'\nimport {focusFirstDescendant, focusLastDescendant} from '../../helpers/focus'\nimport {useClickOutsideEvent} from '../../hooks/useClickOutsideEvent'\nimport {useGlobalKeyDown} from '../../hooks/useGlobalKeyDown'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Card} from '../../primitives/card/card'\nimport {Container} from '../../primitives/container/container'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Text} from '../../primitives/text/text'\nimport {ResponsivePaddingProps, ResponsiveWidthProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsivePaddingStyle} from '../../styles/padding/paddingStyle'\nimport {ResponsivePaddingStyleProps} from '../../styles/padding/types'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {DialogPosition} from '../../types/dialog'\nimport {Radius} from '../../types/radius'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {Layer, LayerProps} from '../../utils/layer/layer'\nimport {useLayer} from '../../utils/layer/useLayer'\nimport {Portal} from '../../utils/portal/portal'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport {\n dialogStyle,\n responsiveDialogPositionStyle,\n ResponsiveDialogPositionStyleProps,\n} from './styles'\nimport {useDialog} from './useDialog'\n\nimport {\n dialogAnimated,\n dialogCard,\n dialogContainer,\n dialogContent,\n dialogFooter,\n dialogHeader,\n dialogLayer,\n dialogLayout,\n} from './dialog.css'\n\n/**\n * @public\n */\nexport interface DialogProps extends ResponsivePaddingProps, ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n cardRadius?: Radius | Radius[]\n cardShadow?: number | number[]\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer?: React.ReactNode\n header?: React.ReactNode\n id: string\n /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */\n onActivate?: LayerProps['onActivate']\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n zOffset?: number | number[]\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\ninterface DialogCardProps extends ResponsiveWidthProps {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: React.ReactNode\n contentRef?: React.ForwardedRef<HTMLDivElement>\n footer: React.ReactNode\n header: React.ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n radius: Radius | Radius[]\n ref?: React.Ref<HTMLDivElement>\n scheme?: ThemeColorSchemeKey\n shadow: number | number[]\n}\n\nfunction isTargetWithinScope(\n boundaryElement: HTMLElement | null,\n portalElement: HTMLElement | null,\n target: Node,\n): boolean {\n if (!boundaryElement || !portalElement) return true\n\n return (\n containsOrEqualsElement(boundaryElement, target) ||\n containsOrEqualsElement(portalElement, target)\n )\n}\n\nconst StyledDialog = styled(Layer)<\n ResponsiveDialogPositionStyleProps & ResponsivePaddingStyleProps\n>(responsivePaddingStyle, dialogStyle, responsiveDialogPositionStyle)\n\nfunction DialogCard(props: DialogCardProps) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n radius: radiusProp,\n ref: forwardedRef,\n scheme,\n shadow: shadowProp,\n width: widthProp,\n } = props\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const width = _getArrayProp(widthProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const contentRef = useRef<HTMLDivElement | null>(null)\n const layer = useLayer()\n const {isTopLayer} = layer\n const labelId = `${id}_label`\n // oxlint-disable-next-line no-unnecessary-boolean-literal-compare\n const showCloseButton = Boolean(onClose) && hideCloseButton === false\n const showHeader = Boolean(header) || showCloseButton\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(\n forwardedContentRef,\n () => contentRef.current,\n )\n\n useEffect(() => {\n if (!autoFocus) return\n\n // On mount: focus the first focusable element\n if (ref.current) {\n focusFirstDescendant(ref.current)\n }\n }, [autoFocus, ref])\n\n useGlobalKeyDown(\n useCallback(\n (event: KeyboardEvent) => {\n if (!isTopLayer || !onClose) return\n\n const target = document.activeElement\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore key presses when the focused element is outside of scope\n return\n }\n\n if (event.key === 'Escape') {\n event.preventDefault()\n event.stopPropagation()\n onClose()\n }\n },\n [boundaryElement, isTopLayer, onClose, portalElement],\n ),\n )\n\n useClickOutsideEvent(\n isTopLayer &&\n onClickOutside &&\n ((event) => {\n // oxlint-disable-next-line no-unsafe-type-assertion\n const target = event.target as Node | null\n\n if (target && !isTargetWithinScope(boundaryElement, portalElement, target)) {\n // Ignore clicks outside of the scope\n return\n }\n\n onClickOutside()\n }),\n () => [ref.current],\n )\n\n return (\n <Container className={dialogContainer} data-ui=\"DialogCard\" display=\"flex\" width={width}>\n <Card\n className={dialogCard}\n display=\"flex\"\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n >\n <Flex className={dialogLayout} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader} data-ui=\"DialogHeader\">\n <Flex align=\"flex-start\" padding={3}>\n <Box flex={1} padding={2}>\n {header && (\n <Text id={labelId} size={1} weight=\"semibold\">\n {header}\n </Text>\n )}\n </Box>\n {showCloseButton && (\n <Box flex=\"none\">\n <Button\n aria-label=\"Close dialog\"\n disabled={!onClose}\n icon={CloseIcon}\n mode=\"bleed\"\n onClick={onClose}\n padding={2}\n />\n </Box>\n )}\n </Flex>\n </Box>\n )}\n\n <Box\n className={dialogContent}\n data-ui=\"DialogContent\"\n flex={1}\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n\n {footer && (\n <Box className={dialogFooter} data-ui=\"DialogFooter\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n </Container>\n )\n}\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport function Dialog(\n props: DialogProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'id' | 'width'>,\n) {\n const dialog = useDialog()\n const {layer} = useTheme_v2()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n cardRadius: cardRadiusProp = 4,\n cardShadow = 3,\n children,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding: paddingProp = 3,\n portal: portalProp,\n position: _positionProp,\n ref,\n scheme,\n width: widthProp = 0,\n zOffset: _zOffsetProp,\n animate: _animate = false,\n className,\n ...restProps\n } = props\n const positionProp = _positionProp ?? (dialog.position || 'fixed')\n const zOffsetProp = _zOffsetProp ?? (dialog.zOffset || layer.dialog.zOffset)\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\n const cardRadius = _getArrayProp(cardRadiusProp)\n const padding = _getArrayProp(paddingProp)\n const position = _getArrayProp(positionProp)\n const width = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(zOffsetProp)\n const preDivRef = useRef<HTMLDivElement | null>(null)\n const postDivRef = useRef<HTMLDivElement | null>(null)\n const cardRef = useRef<HTMLDivElement | null>(null)\n const focusedElementRef = useRef<HTMLElement | null>(null)\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event)\n\n const target = event.target\n const cardElement = cardRef.current\n\n if (cardElement && target === preDivRef.current) {\n focusLastDescendant(cardElement)\n\n return\n }\n\n if (cardElement && target === postDivRef.current) {\n focusFirstDescendant(cardElement)\n\n return\n }\n\n if (isHTMLElement(event.target)) {\n focusedElementRef.current = event.target\n }\n },\n [onFocus],\n )\n\n const labelId = `${id}_label`\n\n const rootClickTimeoutRef = useRef<NodeJS.Timeout>(undefined)\n\n // If the resulting active element (a.k.a. focused element) is not withing scope when clicking\n // within the dialog, then we want to focus the previously interactive element in the dialog instead.\n // This is to allow the user to tab or close the dialog by pressing escape.\n const handleRootClick = useCallback(() => {\n if (rootClickTimeoutRef.current) {\n clearTimeout(rootClickTimeoutRef.current)\n }\n\n rootClickTimeoutRef.current = setTimeout(() => {\n const activeElement = document.activeElement\n\n if (activeElement && !isTargetWithinScope(boundaryElement, portalElement, activeElement)) {\n const target = focusedElementRef.current\n\n if (!target || !document.body.contains(target)) {\n // No previously focused element, or it's not in the document anymore\n const cardElement = cardRef.current\n if (cardElement) focusFirstDescendant(cardElement)\n\n return\n }\n\n target.focus()\n }\n }, 0)\n }, [boundaryElement, portalElement])\n\n return (\n <Portal __unstable_name={portalProp}>\n <StyledDialog\n {...restProps}\n $padding={padding}\n $position={position}\n aria-labelledby={labelId}\n className={clsx(dialogLayer, animate && dialogAnimated, className)}\n aria-modal\n data-ui=\"Dialog\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n ref={ref}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <DialogCard\n __unstable_autoFocus={autoFocus}\n __unstable_hideCloseButton={hideCloseButton}\n contentRef={contentRef}\n footer={footer}\n header={header}\n id={id}\n onClickOutside={onClickOutside}\n onClose={onClose}\n portal={portalProp}\n radius={cardRadius}\n ref={cardRef}\n scheme={scheme}\n shadow={cardShadow}\n width={width}\n >\n {children}\n </DialogCard>\n {/* oxlint-disable-next-line no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </StyledDialog>\n </Portal>\n )\n}\n","import {useMemo} from 'react'\n\nimport {DialogPosition} from '../../types/dialog'\nimport {DialogContext, DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: React.ReactNode\n position?: DialogPosition | DialogPosition[]\n zOffset?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): React.JSX.Element {\n const {children, position, zOffset} = props\n\n const contextValue: DialogContextValue = useMemo(\n () => ({\n version: 0.0,\n position,\n zOffset,\n }),\n [position, zOffset],\n )\n\n return <DialogContext.Provider value={contextValue}>{children}</DialogContext.Provider>\n}\n","import {keyframes, style} from '@vanilla-extract/css'\n\nconst shimmer = keyframes({\n '0%': {backgroundPosition: '100%'},\n '100%': {backgroundPosition: '-100%'},\n})\n\nexport const skeleton = style({\n 'transition': 'opacity 200ms ease-in',\n '@media': {\n 'screen and (prefers-reduced-motion: reduce)': {\n backgroundColor: 'var(--card-skeleton-color-from)',\n },\n },\n})\n\nexport const skeletonVisible = style({\n opacity: 1,\n})\n\nexport const skeletonHidden = style({\n opacity: 0,\n})\n\nexport const skeletonAnimated = style({\n '@media': {\n 'screen and (prefers-reduced-motion: no-preference)': {\n backgroundImage: `linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n )`,\n backgroundPosition: '100%',\n backgroundSize: '200% 100%',\n backgroundAttachment: 'fixed',\n animationName: shimmer,\n animationTimingFunction: 'ease-in-out',\n animationIterationCount: 'infinite',\n animationDuration: '2000ms',\n },\n },\n})\n\nexport const skeletonStatic = style({\n '@media': {\n 'screen and (prefers-reduced-motion: no-preference)': {\n backgroundColor: 'var(--card-skeleton-color-from)',\n },\n },\n})\n","import {clsx} from 'clsx/lite'\nimport {useEffect, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Box, BoxOwnProps} from '../../primitives/box/box'\nimport {ResponsiveRadiusProps} from '../../primitives/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\n\nimport {\n skeleton,\n skeletonAnimated,\n skeletonHidden,\n skeletonStatic,\n skeletonVisible,\n} from './skeleton.css'\n\nconst StyledSkeleton = styled(Box)<ResponsiveRadiusStyleProps>(responsiveRadiusStyle)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface SkeletonProps extends ResponsiveRadiusProps, Omit<BoxOwnProps, 'children'> {\n animated?: boolean\n delay?: number\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Skeleton(props: SkeletonProps & Omit<React.HTMLProps<HTMLDivElement>, 'height'>) {\n const {animated = false, className, delay, radius, ref, ...restProps} = props\n // oxlint-disable-next-line no-unneeded-ternary\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return undefined\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <StyledSkeleton\n data-ui=\"Skeleton\"\n {...restProps}\n $radius={_getArrayProp(radius)}\n className={clsx(\n skeleton,\n (delay ? visible : true) ? skeletonVisible : skeletonHidden,\n animated ? skeletonAnimated : skeletonStatic,\n className,\n )}\n ref={ref}\n />\n )\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeFontKey} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_getArrayProp, _responsive} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {Skeleton, SkeletonProps} from './skeleton'\n\nconst StyledSkeleton = styled(Skeleton)<{$size: number[]; $style: ThemeFontKey}>((\n props: {\n $size: number[]\n $style: ThemeFontKey\n } & ThemeProps,\n) => {\n const {$size, $style} = props\n const {font, media} = getTheme_v2(props.theme)\n const fontStyle = font[$style]\n\n const styles = _responsive(media, $size, (sizeIndex) => {\n const fontSize = fontStyle.sizes[sizeIndex]\n const capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight\n\n return {height: capHeight}\n })\n\n return styles\n})\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TextSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface LabelSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface HeadingSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface CodeSkeletonProps extends SkeletonProps {\n size?: number | number[]\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TextSkeleton(\n props: TextSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton data-ui=\"TextSkeleton\" {...restProps} $size={$size} $style=\"text\" />\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function LabelSkeleton(\n props: LabelSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton data-ui=\"LabelSkeleton\" {...restProps} $size={$size} $style=\"label\" />\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function HeadingSkeleton(\n props: HeadingSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton data-ui=\"HeadingSkeleton\" {...restProps} $size={$size} $style=\"heading\" />\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function CodeSkeleton(\n props: CodeSkeletonProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'height' | 'size'>,\n) {\n const {size = 2, ...restProps} = props\n const $size = _getArrayProp(size)\n\n return <StyledSkeleton data-ui=\"CodeSkeleton\" {...restProps} $size={$size} $style=\"code\" />\n}\n","import {style} from '@vanilla-extract/css'\n\nexport const tab = style({\n maxWidth: '100%',\n})\n","import {clsx} from 'clsx/lite'\nimport {useCallback, useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {Button} from '../../primitives/button/button'\nimport {ButtonTone} from '../../types/button'\n\nimport {tab} from './tab.css'\n\n/**\n * @public\n */\nexport interface TabProps {\n /**\n * The `id` of the correlating `TabPanel` component.\n */\n 'aria-controls': string\n 'id': string\n // oxlint-disable-next-line no-redundant-type-constituents\n 'icon'?: React.ElementType | React.ReactNode\n 'focused'?: boolean\n 'fontSize'?: number | number[]\n 'label'?: React.ReactNode\n 'padding'?: number | number[]\n 'selected'?: boolean\n 'tone'?: ButtonTone\n}\n\n/**\n * @public\n */\nexport function Tab(\n props: TabProps &\n Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'aria-controls' | 'as' | 'id' | 'label' | 'type' | 'width'\n >,\n) {\n const {\n className,\n icon,\n id,\n focused,\n fontSize = 1,\n label,\n onClick,\n onFocus,\n padding = 2,\n ref: forwardedRef,\n selected,\n ...restProps\n } = props\n const ref = useRef<HTMLButtonElement | null>(null)\n const focusedRef = useRef(false)\n\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n const handleBlur = useCallback(() => {\n focusedRef.current = false\n }, [])\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLButtonElement>) => {\n focusedRef.current = true\n if (onFocus) onFocus(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (focused && !focusedRef.current) {\n if (ref.current) ref.current.focus()\n focusedRef.current = true\n }\n }, [focused])\n\n return (\n <Button\n className={clsx(tab, className)}\n data-ui=\"Tab\"\n {...restProps}\n aria-selected={selected ? 'true' : 'false'}\n fontSize={fontSize}\n icon={icon}\n id={id}\n mode=\"bleed\"\n onClick={onClick}\n onBlur={handleBlur}\n onFocus={handleFocus}\n padding={padding}\n ref={ref}\n role=\"tab\"\n selected={selected}\n tabIndex={selected ? 0 : -1}\n text={label}\n type=\"button\"\n />\n )\n}\n","import {globalStyle, style} from '@vanilla-extract/css'\n\nexport const tabList = style({})\n\n// Limits the width of tabs in the tablist\nglobalStyle(`${tabList} > div`, {\n display: 'inline-block',\n verticalAlign: 'middle',\n maxWidth: '100%',\n boxSizing: 'border-box',\n})\n","import {clsx} from 'clsx/lite'\nimport {Children, cloneElement, isValidElement, useCallback, useState} from 'react'\n\nimport {Inline, InlineOwnProps} from '../../primitives/inline/inline'\n\nimport {tabList} from './tabList.css'\n\n/**\n * @public\n */\nexport interface TabListProps extends Omit<InlineOwnProps, 'height'> {\n children: Array<React.JSX.Element | null | undefined | false>\n}\n\n/**\n * @public\n */\nexport function TabList(\n props: TabListProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height'>,\n) {\n const {children: childrenProp, className, ref, ...restProps} = props\n const [focusedIndex, setFocusedIndex] = useState(-1)\n\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n\n const tabs = children.map((child, childIndex) =>\n cloneElement(child, {\n focused: focusedIndex === childIndex,\n key: childIndex,\n onFocus: () => setFocusedIndex(childIndex),\n }),\n )\n\n const numTabs = tabs.length\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n setFocusedIndex((prevIndex) => (prevIndex + numTabs - 1) % numTabs)\n }\n\n if (event.key === 'ArrowRight') {\n setFocusedIndex((prevIndex) => (prevIndex + 1) % numTabs)\n }\n },\n [numTabs],\n )\n\n return (\n <Inline\n className={clsx(tabList, className)}\n data-ui=\"TabList\"\n {...restProps}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tablist\"\n >\n {tabs}\n </Inline>\n )\n}\n","import {Box, BoxOwnProps} from '../../primitives/box/box'\n\n/**\n * @public\n */\nexport interface TabPanelProps extends BoxOwnProps {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/**\n * @public\n */\nexport function TabPanel(\n props: TabPanelProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'aria-labelledby' | 'id' | 'role'>,\n) {\n const {flex, ...restProps} = props\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...restProps}\n flex={flex}\n role=\"tabpanel\"\n tabIndex={props.tabIndex === undefined ? 0 : props.tabIndex}\n >\n {props.children}\n </Box>\n )\n}\n","import {TreeState} from './types'\n\nexport function _findPrevItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(0, idx)\n const len = els.length\n\n for (let i = len - 1; i >= 0; i -= 1) {\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _findNextItemElement(\n state: TreeState,\n itemElements: HTMLElement[],\n focusedElement: HTMLElement,\n): HTMLElement | null {\n const idx = itemElements.indexOf(focusedElement)\n const els = itemElements.slice(idx)\n const len = itemElements.length\n\n for (let i = 1; i < len; i += 1) {\n if (!els[i]) {\n continue\n }\n\n const itemKey = els[i].getAttribute('data-tree-key')\n\n if (!itemKey) {\n continue\n }\n\n const segments = itemKey.split('/')\n\n segments.pop()\n\n const p: string[] = []\n\n let expanded = true\n\n for (let j = 0; j < segments.length; j += 1) {\n p.push(segments[j])\n\n const k = p.join('/')\n\n if (!state[k]?.expanded) {\n expanded = false\n break\n }\n }\n\n if (expanded) {\n return els[i]\n }\n }\n\n return null\n}\n\nexport function _focusItemElement(el: HTMLElement): void {\n if (el.getAttribute('role') === 'treeitem') {\n el.focus()\n }\n\n if (el.getAttribute('role') === 'none') {\n const firstChild = el.firstChild\n\n if (firstChild && firstChild instanceof HTMLElement) {\n firstChild.focus()\n }\n }\n}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import {useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState} from 'react'\n\nimport {Stack} from '../../primitives/stack/stack'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue, TreeState} from './types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface TreeProps {\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Tree(\n props: TreeProps &\n Omit<React.HTMLProps<HTMLUListElement>, 'align' | 'as' | 'height' | 'role' | 'wrap'>,\n): React.JSX.Element {\n const {children, gap = 1, onFocus, ref: forwardedRef, ...restProps} = props\n const ref = useRef<HTMLUListElement | null>(null)\n const [focusedElement, setFocusedElement] = useState<HTMLElement | null>(null)\n const focusedElementRef = useRef(focusedElement)\n const path: string[] = useMemo(() => [], [])\n const [itemElements, setItemElements] = useState<HTMLElement[]>([])\n const [state, setState] = useState<TreeState>({})\n const stateRef = useRef(state)\n\n useImperativeHandle<HTMLUListElement | null, HTMLUListElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n focusedElementRef.current = focusedElement\n }, [focusedElement])\n\n useEffect(() => {\n stateRef.current = state\n }, [state])\n\n const registerItem = useCallback(\n (element: HTMLElement, path: string, expanded: boolean, selected: boolean) => {\n setState((s) => ({...s, [path]: {element, expanded}}))\n\n if (selected) {\n setFocusedElement(element)\n }\n\n return () => {\n setState((s) => {\n const newState = {...s}\n\n delete newState[path]\n\n return newState\n })\n }\n },\n [],\n )\n\n const setExpanded = useCallback((path: string, expanded: boolean) => {\n setState((s) => {\n const itemState = s[path]\n\n if (!itemState) return s\n\n return {...s, [path]: {...itemState, expanded}}\n })\n }, [])\n\n const contextValue: TreeContextValue = useMemo(\n () => ({\n version: 0.0,\n focusedElement: focusedElement || itemElements[0] || null,\n level: 0,\n path,\n registerItem,\n setExpanded,\n setFocusedElement,\n gap,\n state,\n }),\n [focusedElement, gap, itemElements, path, registerItem, setExpanded, state],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLUListElement>) => {\n if (!focusedElementRef.current) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n const nextEl = _findNextItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (nextEl) {\n _focusItemElement(nextEl)\n setFocusedElement(nextEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n const prevEl = _findPrevItemElement(\n stateRef.current,\n itemElements,\n focusedElementRef.current,\n )\n\n if (prevEl) {\n _focusItemElement(prevEl)\n setFocusedElement(prevEl)\n }\n\n return\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault()\n\n const itemKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!itemKey) return\n\n const itemState = stateRef.current[itemKey]\n\n if (!itemState) return\n\n if (itemState.expanded) {\n setState((s) => {\n const itemState = s[itemKey]\n\n if (!itemState) return s\n\n return {...s, [itemKey]: {...itemState, expanded: false}}\n })\n } else {\n const itemPath = itemKey.split('/')\n\n itemPath.pop()\n\n const parentKey = itemPath.join('/')\n const parentState = parentKey && stateRef.current[parentKey]\n\n if (parentState) {\n parentState.element.focus()\n setFocusedElement(parentState.element)\n }\n }\n\n return\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault()\n\n const focusedKey = focusedElementRef.current.getAttribute('data-tree-key')\n\n if (!focusedKey) return\n\n if (!stateRef.current[focusedKey]?.expanded) {\n setState((s) => {\n const itemState = s[focusedKey]\n\n if (!itemState) return s\n\n return {...s, [focusedKey]: {...itemState, expanded: true}}\n })\n }\n\n return\n }\n },\n [itemElements],\n )\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLUListElement>) => {\n setFocusedElement(event.target)\n\n // Call the element's `focus` handler\n onFocus?.(event)\n },\n [onFocus],\n )\n\n useEffect(() => {\n if (!ref.current) return\n const _itemElements = Array.from(\n ref.current.querySelectorAll('[data-ui=\"TreeItem\"]'),\n ) as HTMLElement[]\n\n setItemElements(_itemElements)\n // oxlint-disable-next-line react/exhaustive-effect-dependencies\n }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...restProps}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n gap={gap}\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function treeItemRootColorStyle(props: ThemeProps): ReturnType<typeof css> {\n const $tone = 'default'\n const {color} = getTheme_v2(props.theme)\n const tone = color.selectable[$tone]\n\n return css`\n &[role='none'] {\n & > [role='treeitem'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [role='treeitem'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]) > [role='treeitem']:not(:focus):hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n & > [role='treeitem']:focus {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n\n &[role='treeitem'] {\n & > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.enabled)}\n }\n\n &[data-selected] > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.pressed)}\n }\n\n @media (hover: hover) {\n &:not([data-selected]):not(:focus) > [data-ui='TreeItem__box']:hover {\n ${_cardColorStyle(color, tone.hovered)}\n }\n\n &:focus > [data-ui='TreeItem__box'] {\n ${_cardColorStyle(color, tone.selected)}\n }\n }\n }\n `\n}\n\nexport interface TreeItemBoxStyleProps {\n $level: number\n}\n\nexport function treeItemBoxStyle(\n props: TreeItemBoxStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$level} = props\n const {space} = getTheme_v2(props.theme)\n\n return css`\n display: block;\n padding-left: ${rem(space[2] * $level)};\n text-decoration: none;\n `\n}\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport {TreeContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTree(): TreeContextValue {\n const tree = useContext(TreeContext)\n\n if (!tree) {\n throw new Error('Tree: missing context value')\n }\n\n return tree\n}\n","import {Stack} from '../../primitives/stack/stack'\nimport {useTree} from './useTree'\n\nexport interface TreeGroupProps {\n expanded?: boolean\n}\n\nexport function TreeGroup(\n props: TreeGroupProps &\n Omit<React.HTMLProps<HTMLUListElement>, 'as' | 'height' | 'ref' | 'role' | 'wrap'>,\n): React.JSX.Element {\n const {children, expanded = false, ...restProps} = props\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...restProps}\n hidden={!expanded}\n marginTop={tree.gap}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"group\"\n gap={tree.gap}\n >\n {children}\n </Stack>\n )\n}\n","import {globalStyle, style} from '@vanilla-extract/css'\n\nexport const treeItem = style({\n selectors: {\n \"&[role='treeitem']\": {\n outline: 'none',\n },\n },\n})\n\nglobalStyle(`${treeItem}[role='none'] > [role='treeitem']`, {\n outline: 'none',\n cursor: 'default',\n borderRadius: '3px',\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--treeitem-fg-color)',\n})\n\nglobalStyle(`${treeItem}[role='none'] > [role='treeitem']:focus`, {\n position: 'relative',\n})\n\nglobalStyle(`${treeItem}[role='treeitem'] > div`, {\n cursor: 'default',\n borderRadius: '3px',\n backgroundColor: 'var(--card-bg-color)',\n color: 'var(--treeitem-fg-color)',\n})\n\nglobalStyle(`${treeItem}[role='treeitem']:focus > div`, {\n position: 'relative',\n})\n\nexport const treeItemToggleArrow = style({\n transition: 'transform 100ms',\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons/ToggleArrowRight'\nimport {clsx} from 'clsx/lite'\nimport {startTransition, useCallback, useEffect, useId, useMemo, useRef, useState} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {Box} from '../../primitives/box/box'\nimport {Flex} from '../../primitives/flex/flex'\nimport {Text} from '../../primitives/text/text'\nimport {ElementType} from '../../types/component'\nimport {treeItemBoxStyle, TreeItemBoxStyleProps, treeItemRootColorStyle} from './style'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\nimport {treeItem, treeItemToggleArrow} from './tree.css'\n\n/**\n * @beta\n */\nexport interface TreeItemProps {\n expanded?: boolean\n fontSize?: number | number[]\n icon?: React.ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: ElementType\n /**\n * Additional props for the link element that is rendered when `href` is set — e.g. `next/link`'s\n * `prefetch` together with `linkAs={Link}`. Props controlled by `TreeItem` itself (`href`,\n * `role`, `tabIndex`, `aria-expanded` and the ref) take precedence.\n */\n linkProps?: React.HTMLProps<HTMLAnchorElement> & Record<string, unknown>\n padding?: number | number[]\n gap?: number | number[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n text?: React.ReactNode\n weight?: ThemeFontWeightKey\n}\n\nconst StyledTreeItem = styled.li(treeItemRootColorStyle)\n\n/**\n * Styles a plain element (rather than wrapping `Box`) so that `as={linkAs}` renders the custom\n * link component directly, the same way `<Button as={...}>` works. Wrapping `Box` with\n * `.attrs({forwardedAs: 'a'})` made styled-components pass `as=\"a\"` on to the custom component\n * (breaking e.g. `next/link`, which treats `as` as a URL override) and skip the `Box` styles.\n */\nconst TreeItemBox = styled.a<TreeItemBoxStyleProps>(treeItemBoxStyle)\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem(\n props: TreeItemProps & Omit<React.HTMLProps<HTMLLIElement>, 'as' | 'ref' | 'role'>,\n): React.JSX.Element {\n const {\n children,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs,\n linkProps,\n muted,\n onClick,\n padding = 2,\n selected = false,\n gap = 2,\n text,\n weight,\n ...restProps\n } = props\n const [rootElement, _setRootElement] = useState<HTMLLIElement | null>(null)\n /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setRootElement = useCallback((node: HTMLLIElement | null) => {\n startTransition(() => _setRootElement(node))\n }, [])\n\n const treeitemRef = useRef<HTMLAnchorElement | null>(null)\n const tree = useTree()\n const {path, registerItem, setExpanded, setFocusedElement} = tree\n const _id = useId()\n const id = idProp || _id\n const [itemPath, itemKey] = useMemo(() => {\n const itemPath = path.concat([id || ''])\n return [itemPath, itemPath.join('/')]\n }, [id, path])\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootElement\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootElement ? 0 : -1\n const contextValue = useMemo(\n () => ({...tree, level: tree.level + 1, path: itemPath}),\n [itemPath, tree],\n )\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLLIElement>) => {\n if (onClick) onClick(event)\n\n const target = event.target\n\n if (\n target instanceof HTMLElement &&\n (target.getAttribute('data-ui') === 'TreeItem' ||\n target.closest('[data-ui=\"TreeItem__box\"]'))\n ) {\n event.stopPropagation()\n setExpanded(itemKey, !expanded)\n setFocusedElement(rootElement)\n }\n },\n [expanded, itemKey, onClick, rootElement, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootElement\n\n el?.click()\n }\n },\n [focused, rootElement],\n )\n\n useEffect(() => {\n if (!rootElement) return\n\n return registerItem(rootElement, itemKey, expanded, selected)\n }, [expanded, itemKey, registerItem, rootElement, selected])\n\n const content = (\n <Flex padding={padding}>\n <Box\n marginRight={gap}\n style={{\n visibility: IconComponent || children ? 'visible' : 'hidden',\n pointerEvents: 'none',\n }}\n >\n {IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <IconComponent />\n </Text>\n )}\n {!IconComponent && (\n <Text muted={muted} size={fontSize} weight={weight}>\n <ToggleArrowRightIcon\n className={treeItemToggleArrow}\n style={{transform: expanded ? 'rotate(90deg)' : undefined}}\n />\n </Text>\n )}\n </Box>\n <Box flex={1}>\n <Text muted={muted} size={fontSize} textOverflow=\"ellipsis\" weight={weight}>\n {text}\n </Text>\n </Box>\n </Flex>\n )\n\n if (href) {\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...restProps}\n className={clsx(treeItem, restProps.className)}\n onClick={handleClick}\n ref={setRootElement}\n role=\"none\"\n >\n <TreeItemBox\n {...linkProps}\n $level={tree.level}\n aria-expanded={expanded}\n as={linkAs}\n data-as={typeof linkAs === 'string' ? linkAs : 'a'}\n data-ui=\"TreeItem__box\"\n href={href}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n }\n\n return (\n <StyledTreeItem\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...restProps}\n aria-expanded={expanded}\n className={clsx(treeItem, restProps.className)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={setRootElement}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <TreeItemBox $level={tree.level} as=\"div\" data-ui=\"TreeItem__box\">\n {content}\n </TreeItemBox>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </StyledTreeItem>\n )\n}\n","/**\n * @internal\n */\nexport function _isScrollable(el: Node): boolean {\n if (!(el instanceof Element)) return false\n\n const style = window.getComputedStyle(el)\n\n return (\n style.overflowX.includes('auto') ||\n style.overflowX.includes('scroll') ||\n style.overflowY.includes('auto') ||\n style.overflowY.includes('scroll')\n )\n}\n","/** @beta */\nexport type ArrayPropPrimitive = string | number | boolean | undefined | null\n\n/**\n * @deprecated instead of `useArrayProp(width)` use `Array.isArray(width) ? width : [width]` instead\n * @beta\n */\nexport function useArrayProp(_val?: never, _defaultVal?: never): never {\n throw new Error(\n '`useArrayProp` was removed in @sanity/ui v4. Use `Array.isArray(value) ? value : [value]` instead.',\n )\n}\n","/**\n * @public\n */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n * @deprecated replaced by the new `useClickOutsideEvent` hook, instead of:\n * ```tsx\n * const [button, setButtonElement] = useState(null)\n * useClickOutside((event) => {}, [button])\n * return <button ref={setButtonElement} />\n * ```\n * do:\n * ```tsx\n * const buttonRef = useRef()\n * useClickOutsideEvent((event) => {}, () => [buttonRef.current])\n * return <button ref={buttonRef} />\n * ```\n */\nexport function useClickOutside(\n _listener?: never,\n _elementsArg?: never,\n _boundaryElement?: never,\n): never {\n throw new Error(\n '`useClickOutside` was removed in @sanity/ui v4. Use `useClickOutsideEvent` instead.',\n )\n}\n","/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(_element?: never): never {\n throw new Error('`useElementRect` was removed in @sanity/ui v4. Use `useElementSize` instead.')\n}\n","/**\n * @beta\n * @deprecated use `useImperativeHandle` instead\n * @example\n * ```diff\n * -const ref = useForwardedRef(forwardedRef)\n * +const ref = useRef(null)\n * +useImperativeHandle(forwardedRef, () => ref.current)\n * ```\n */\nexport function useForwardedRef(_ref?: never): never {\n throw new Error(\n '`useForwardedRef` was removed in @sanity/ui v4. Use `useRef` and `useImperativeHandle` instead.',\n )\n}\n","import {useMatchMedia} from './useMatchMedia'\n\n/**\n * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.\n *\n * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)\n *\n * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.\n * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme\n * @example https://gist.github.com/stipsan/13c0cccf8dfc34f4b44bb1b984baf7df\n *\n * @public\n */\nexport function usePrefersDark(getServerSnapshot = () => false): boolean {\n return useMatchMedia('(prefers-color-scheme: dark)', getServerSnapshot)\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `label` font style.\n * @internal\n */\nexport function responsiveLabelFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('label', props)\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {ThemeProps} from '../../styles/types'\n\nexport function labelBaseStyle(\n props: {$accent?: boolean; $muted: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n text-transform: uppercase;\n\n ${\n $accent &&\n css`\n color: var(--card-accent-fg-color);\n `\n }\n\n ${\n $muted &&\n css`\n color: var(--card-muted-fg-color);\n `\n }\n\n & code {\n font-family: ${font.code.family};\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n /* ...and aren't squeezed by resets that set max-width: 100% */\n max-width: unset;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveLabelFont} from '../../styles/font/labelFontStyle'\nimport {responsiveTextAlignStyle} from '../../styles/font/textAlignStyle'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {TextAlign} from '../../types/text'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {labelBaseStyle} from './styles'\n\n/**\n * @public\n */\nexport interface LabelOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\n/**\n * @public\n */\nexport type LabelProps<E extends ElementType = 'div'> = Props<LabelOwnProps, E>\n\nconst StyledLabel = styled.div<{\n $accent?: boolean\n $align: TextAlign[]\n $muted: boolean\n $size: number[]\n $weight?: ThemeFontWeightKey\n}>(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle)\n\nfunction LabelComponent(\n props: LabelOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n) {\n const {\n accent,\n align,\n children: childrenProp,\n muted = false,\n ref,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n } else {\n children = <span>{children}</span>\n }\n\n return (\n <StyledLabel\n data-ui=\"Label\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n {children}\n </StyledLabel>\n )\n}\n\n/**\n * Typographic labels.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Label = LabelComponent as unknown as <E extends ElementType = 'div'>(\n props: LabelProps<E>,\n) => React.JSX.Element\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarRootStyleProps, ResponsiveAvatarSizeStyleProps} from './types'\n\nexport function avatarRootStyle(props: AvatarRootStyleProps & ThemeProps): CSSObject {\n const {$color} = props\n const {avatar} = getTheme_v2(props.theme)\n\n return {\n '--avatar-bg-color': `var(--card-avatar-${$color}-bg-color)`,\n '--avatar-fg-color': `var(--card-avatar-${$color}-fg-color)`,\n\n 'backgroundColor': 'var(--avatar-bg-color)',\n 'position': 'relative',\n 'boxSizing': 'border-box',\n 'userSelect': 'none',\n 'boxShadow': '0 0 0 1px var(--card-bg-color)',\n\n '&[data-status=\"inactive\"]': {\n opacity: '0.5',\n },\n\n '&>svg': {\n '&:not([hidden])': {\n display: 'block',\n },\n },\n\n /* &:is(button) */\n '&[data-as=\"button\"]': {\n 'WebkitFontSmoothing': 'inherit',\n 'appearance': 'none',\n 'margin': 0,\n 'padding': 0,\n 'border': 0,\n 'font': 'inherit',\n 'color': 'inherit',\n 'outline': 'none',\n\n '&:focus': {\n boxShadow: focusRingStyle({focusRing: avatar.focusRing}),\n },\n\n '&:focus:not(:focus-visible)': {\n boxShadow: 'none',\n },\n },\n }\n}\n\nexport function responsiveAvatarSizeStyle(\n props: ResponsiveAvatarSizeStyleProps & ThemeProps,\n): CSSObject[] {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size] || avatar.sizes[0]\n\n return {\n 'width': rem(avatarSize.size),\n 'height': rem(avatarSize.size),\n 'borderRadius': rem(avatarSize.size / 2),\n\n '&>svg': {\n width: rem(avatarSize.size),\n height: rem(avatarSize.size),\n borderRadius: rem(avatarSize.size / 2),\n },\n }\n })\n}\n","import {globalStyle, style} from '@vanilla-extract/css'\n\nexport const avatarArrow = style({\n position: 'absolute',\n boxSizing: 'border-box',\n zIndex: 0,\n opacity: 0,\n transition: 'all 0.2s linear',\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n selectors: {\n \"[data-arrow-position='inside'] > &\": {\n transform: 'rotate(-90deg) translate3d(0, 6px, 0)',\n opacity: 0,\n },\n \"[data-arrow-position='top'] > &\": {\n opacity: 1,\n transform: 'rotate(0deg)',\n },\n \"[data-arrow-position='bottom'] > &\": {\n opacity: 1,\n transform: 'rotate(-180deg)',\n },\n },\n})\n\nglobalStyle(`${avatarArrow} > svg`, {\n width: '11px',\n height: '7px',\n position: 'absolute',\n top: '-5px',\n left: '50%',\n transform: 'translateX(-6px)',\n})\n\nglobalStyle(`${avatarArrow} > svg:not([hidden])`, {\n display: 'block',\n})\n\nexport const avatarImage = style({\n position: 'relative',\n})\n\nexport const avatarBgStroke = style({\n strokeWidth: '4px',\n stroke: 'var(--card-bg-color)',\n})\n\nexport const avatarStroke = style({\n strokeWidth: '2px',\n stroke: 'var(--avatar-bg-color)',\n selectors: {\n '[data-status=\"editing\"] &': {\n strokeDasharray: '2 4',\n strokeLinecap: 'round',\n },\n },\n})\n\nexport const avatarStack = style({\n whiteSpace: 'nowrap',\n})\n\nglobalStyle(`${avatarStack} > div`, {\n verticalAlign: 'top',\n})\n\nglobalStyle(`${avatarStack} > div:not([hidden])`, {\n display: 'inline-block',\n})\n\nexport const avatarInitials = style({\n width: '100%',\n height: '100%',\n color: 'var(--avatar-fg-color)',\n alignItems: 'center',\n justifyContent: 'center',\n textTransform: 'uppercase',\n textAlign: 'center',\n borderRadius: '50%',\n selectors: {\n '&:not([hidden])': {\n display: 'flex',\n },\n },\n})\n","import {useCallback, useEffect, useId, useState} from 'react'\nimport ReactIs from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorAvatarColorKey} from '../../../theme/system/color/_system'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {AvatarPosition, AvatarSize, AvatarStatus} from '../../types/avatar'\nimport {ElementType, Props} from '../../types/component'\nimport {Label} from '../label/label'\nimport {avatarRootStyle, responsiveAvatarSizeStyle} from './styles'\n\nimport {avatarArrow, avatarBgStroke, avatarImage, avatarInitials, avatarStroke} from './avatar.css'\n\n/**\n * @public\n */\nexport interface AvatarOwnProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: ThemeColorAvatarColorKey\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: AvatarSize | AvatarSize[]\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @alpha\n */\n status?: AvatarStatus\n title?: string\n}\n\n/**\n * @public\n */\nexport type AvatarProps<E extends ElementType = 'div'> = Props<AvatarOwnProps, E>\n\nconst StyledAvatar = styled.div<{$color: ThemeColorAvatarColorKey; $size: AvatarSize[]}>(\n responsiveAvatarSizeStyle,\n avatarRootStyle,\n)\n\n// Stays on styled-components: `color: inherit` must beat Label's runtime\n// `color: var(--card-fg-color)` at equal specificity, which needs both rules in\n// the runtime stylesheet.\nconst InitialsLabel = styled(Label)({\n color: 'inherit',\n})\n\nfunction AvatarComponent(\n props: AvatarOwnProps & {as?: ElementType} & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: asProp,\n color = 'gray',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n ref,\n status = 'online',\n size: sizeProp = 1,\n ...restProps\n } = props\n const {avatar} = useTheme_v2()\n const as = ReactIs.isValidElementType(asProp) ? asProp : 'div'\n const size = _getArrayProp(sizeProp)\n\n // @todo: remove this\n const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0]\n const _sizeRem = avatarSize.size\n const _radius = _sizeRem / 2\n\n const elementId = useId()\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageFailed, setImageFailed] = useState<boolean>(false)\n\n const imageId = `avatar-image-${elementId}`\n\n useEffect(() => {\n if (arrowPosition === arrowPositionProp) return undefined\n\n // Start animation in the next frame\n const raf = requestAnimationFrame(() => setArrowPosition(arrowPositionProp))\n\n return () => cancelAnimationFrame(raf)\n }, [arrowPosition, arrowPositionProp])\n\n useEffect(() => {\n // oxlint-disable-next-line react/set-state-in-effect\n if (src) setImageFailed(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageFailed(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n return (\n <StyledAvatar\n as={as}\n data-as={typeof as === 'string' ? as : undefined}\n data-ui=\"Avatar\"\n {...restProps}\n $color={color}\n $size={size}\n aria-label={title}\n data-arrow-position={arrowPosition}\n data-status={status}\n ref={ref}\n title={title}\n >\n <div className={avatarArrow}>\n <svg width=\"11\" height=\"7\" viewBox=\"0 0 11 7\" fill=\"none\">\n <path\n d=\"M6.67948 1.50115L11 7L0 7L4.32052 1.50115C4.92109 0.736796 6.07891 0.736795 6.67948 1.50115Z\"\n fill={color}\n />\n </svg>\n </div>\n\n {!imageFailed && src && (\n <svg className={avatarImage} viewBox={`0 0 ${_sizeRem} ${_sizeRem}`} fill=\"none\">\n <defs>\n <pattern id={imageId} patternContentUnits=\"objectBoundingBox\" width=\"1\" height=\"1\">\n <image href={src} width=\"1\" height=\"1\" onError={handleImageError} />\n </pattern>\n </defs>\n\n <circle cx={_radius} cy={_radius} r={_radius} fill={`url(#${imageId})`} />\n\n {!__unstable_hideInnerStroke && (\n <ellipse\n className={avatarBgStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n\n <ellipse\n className={avatarStroke}\n cx={_radius}\n cy={_radius}\n rx={_radius}\n ry={_radius}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n )}\n\n {(imageFailed || !src) && initials && (\n <>\n <div className={avatarInitials}>\n <InitialsLabel\n forwardedAs=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {initials}\n </InitialsLabel>\n </div>\n </>\n )}\n </StyledAvatar>\n )\n}\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Avatar = AvatarComponent as unknown as <E extends ElementType = 'div'>(\n props: AvatarProps<E>,\n) => React.JSX.Element\n","import {css, styled} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarSize} from '../../types/avatar'\nimport {Label} from '../label/label'\n\nfunction _responsiveAvatarCounterSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n borderRadius: rem(avatarSize.size / 2),\n minWidth: rem(avatarSize.size),\n height: rem(avatarSize.size),\n }\n })\n}\n\nfunction _avatarCounterBaseStyle(props: ThemeProps) {\n const {space} = getTheme_v2(props.theme)\n\n return css`\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:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ${rem(space[2])};\n\n &:not([hidden]) {\n display: flex;\n }\n `\n}\n\nconst StyledAvatarCounter = styled.div<{$size: AvatarSize[]}>(\n _responsiveAvatarCounterSizeStyle,\n _avatarCounterBaseStyle,\n)\n\n/**\n * @public\n */\nexport interface AvatarCounterProps {\n count: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: never\n}\n\n/**\n * @public\n */\nexport function AvatarCounter(props: AvatarCounterProps & {ref?: React.Ref<HTMLDivElement>}) {\n const {count, ref, size: sizeProp = 1} = props\n const size = _getArrayProp(sizeProp)\n\n return (\n <StyledAvatarCounter $size={size} data-ui=\"AvatarCounter\" ref={ref}>\n <Label\n as=\"span\"\n size={size.map((s) => {\n if (s === 1) return 1\n if (s === 2) return 3\n if (s === 3) return 5\n\n return 0\n })}\n weight=\"medium\"\n >\n {count}\n </Label>\n </StyledAvatarCounter>\n )\n}\n","import {clsx} from 'clsx/lite'\nimport {Children, cloneElement, isValidElement} from 'react'\nimport {styled} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {EMPTY_RECORD} from '../../constants'\nimport {_getArrayProp, _responsive, rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\nimport {AvatarSize} from '../../types/avatar'\nimport {AvatarCounter} from './avatarCounter'\n\nimport {avatarStack} from './avatar.css'\n\nfunction responsiveAvatarStackSizeStyle(props: {$size: AvatarSize[]} & ThemeProps) {\n const {avatar, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$size, (size) => {\n const avatarSize = avatar.sizes[size]\n\n if (!avatarSize) return EMPTY_RECORD\n\n return {\n '& > div + div': {\n marginLeft: rem(avatarSize.distance),\n },\n }\n })\n}\n\nconst StyledAvatarStack = styled.div<{$size: AvatarSize[]}>(responsiveAvatarStackSizeStyle)\n\n/**\n * @public\n */\nexport interface AvatarStackProps {\n children: React.ReactNode\n maxLength?: number\n size?: AvatarSize | AvatarSize[]\n /** @deprecated No longer supported. */\n tone?: never\n}\n\n/**\n * @public\n */\nexport function AvatarStack(props: AvatarStackProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>) {\n const {\n children: childrenProp,\n className,\n maxLength: maxLengthProp = 4,\n ref,\n size: sizeProp = 1,\n ...restProps\n } = props\n const children: React.JSX.Element[] = Children.toArray(childrenProp).filter(isValidElement)\n const maxLength = Math.max(maxLengthProp, 0)\n const size = _getArrayProp(sizeProp)\n\n const len = children.length\n const visibleCount = maxLength - 1\n const extraCount = len - visibleCount\n const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children\n\n return (\n <StyledAvatarStack\n className={clsx(avatarStack, className)}\n data-ui=\"AvatarStack\"\n {...restProps}\n ref={ref}\n $size={size}\n >\n {len === 0 && (\n <div>\n <AvatarCounter count={len} size={size} />\n </div>\n )}\n\n {len !== 0 && extraCount > 1 && (\n <div>\n <AvatarCounter count={extraCount} size={size} />\n </div>\n )}\n\n {visibleChildren.map((child, childIndex) => (\n // oxlint-disable-next-line no-array-index-key\n <div key={String(childIndex)}>{cloneElement(child, {size})}</div>\n ))}\n </StyledAvatarStack>\n )\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {BadgeStyleProps} from './types'\n\nexport function badgeStyle(props: BadgeStyleProps): CSSObject {\n const {$tone} = props\n\n return {\n '--card-bg-color': `var(--card-badge-${$tone}-bg-color)`,\n '--card-fg-color': `var(--card-badge-${$tone}-fg-color)`,\n\n 'backgroundColor': 'var(--card-bg-color)',\n 'cursor': 'default',\n\n '&:not([hidden])': {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n }\n}\n","import {styled} from 'styled-components'\n\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {BadgeTone} from '../../types/badge'\nimport {ElementType, Props} from '../../types/component'\nimport {Box, BoxOwnProps} from '../box/box'\nimport {Text} from '../text/text'\nimport {ResponsiveRadiusProps} from '../types'\nimport {badgeStyle} from './styles'\nimport {BadgeStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface BadgeOwnProps extends BoxOwnProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n /** @deprecated No longer used. */\n mode?: never\n tone?: BadgeTone\n}\n\n/**\n * @public\n */\nexport type BadgeProps<E extends ElementType = 'div'> = Props<BadgeOwnProps, E>\n\nconst StyledBadge = styled(Box)<BadgeStyleProps & ResponsiveRadiusStyleProps>(\n responsiveRadiusStyle,\n badgeStyle,\n)\n\nconst BadgeComponent = function Badge(\n props: BadgeOwnProps & {as?: ElementType} & React.HTMLProps<HTMLDivElement>,\n) {\n const {\n children,\n fontSize = 1,\n padding = 1,\n radius = 'full',\n ref,\n tone = 'default',\n ...restProps\n } = props\n\n return (\n <StyledBadge\n data-ui=\"Badge\"\n {...restProps}\n $tone={tone}\n $radius={_getArrayProp(radius)}\n padding={_getArrayProp(padding)}\n ref={ref}\n >\n <Text size={fontSize}>{children}</Text>\n </StyledBadge>\n )\n}\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Badge = BadgeComponent as unknown as <E extends ElementType = 'div'>(\n props: BadgeProps<E>,\n) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function inputElementStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input, radius} = getTheme_v2(props.theme)\n const {focusRing} = input.checkbox\n\n return css`\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: ${rem(input.checkbox.size)};\n width: ${rem(input.checkbox.size)};\n box-sizing: border-box;\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n border-radius: ${rem(radius[2])};\n line-height: 1;\n background-color: ${color.input.default.enabled.bg};\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: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.fg,\n width: input.border.width,\n })};\n color: ${color.input.default.enabled.bg};\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({focusRing})};\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ${focusRingStyle({focusRing: {width: 1, offset: 1}})};\n }\n\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &[data-error]&:checked + span {\n background-color: ${color.input.invalid.enabled.muted.bg};\n color: ${color.input.default.enabled.bg};\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.invalid.readOnly.muted.bg},\n focusRing: {width: 1, offset: 1},\n })};\n }\n\n &:disabled + span {\n background-color: ${color.input.default.disabled.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.disabled.border,\n })};\n color: ${color.input.default.disabled.fg};\n }\n &:disabled&:checked + span {\n background-color: ${color.input.default.disabled.muted.bg};\n }\n\n &[data-read-only] + span {\n background-color: ${color.input.default.readOnly.bg};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.default.readOnly.border,\n })};\n color: ${color.input.default.readOnly.fg};\n }\n\n &[data-read-only]&:checked + span {\n background-color: ${color.input.default.readOnly.muted.bg};\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n `\n}\n","import {style} from '@vanilla-extract/css'\n\nexport const checkbox = style({\n position: 'relative',\n display: 'inline-block',\n})\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {RemoveIcon} from '@sanity/icons/Remove'\nimport {clsx} from 'clsx/lite'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {inputElementStyles} from './styles'\n\nimport {checkbox} from './checkbox.css'\n\n/**\n * @public\n */\nexport interface CheckboxProps {\n indeterminate?: boolean\n customValidity?: string\n}\n\nconst Input = styled.input(inputElementStyles)\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport function Checkbox(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & CheckboxProps,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n ref: forwardedRef,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div className={clsx(checkbox, className)} data-ui=\"Checkbox\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n checked={checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </div>\n )\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {ThemeProps} from '../types'\nimport {responsiveFont} from './responsiveFont'\nimport {ResponsiveFontStyleProps} from './types'\n\n/**\n * Get responsive CSS for the `heading` font style.\n * @internal\n */\nexport function responsiveHeadingFont(props: ResponsiveFontStyleProps & ThemeProps): CSSObject[] {\n return responsiveFont('heading', props)\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {ThemeProps} from '../../styles/types'\nimport {HeadingStyleProps} from './types'\n\nexport function headingBaseStyle(props: HeadingStyleProps & ThemeProps): ReturnType<typeof css> {\n const {$accent, $muted} = props\n const {font} = getTheme_v2(props.theme)\n\n return css`\n ${\n $accent &&\n css`\n color: var(--card-accent-fg-color);\n `\n }\n\n ${\n $muted &&\n css`\n color: var(--card-muted-fg-color);\n `\n }\n\n & code {\n font-family: ${font.code.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:\n 0 0 0 1px var(--card-bg-color),\n 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: ${font.heading.weights.bold};\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n /* ...and aren't squeezed by resets that set max-width: 100% */\n max-width: unset;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n `\n}\n","import {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {responsiveHeadingFont} from '../../styles/font/headingFontStyle'\nimport {responsiveTextAlignStyle} from '../../styles/font/textAlignStyle'\nimport {ResponsiveFontStyleProps, ResponsiveTextAlignStyleProps} from '../../styles/font/types'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {ElementType, Props} from '../../types/component'\nimport {TextAlign} from '../../types/text'\nimport {SpanWithTextOverflow} from '../../utils/spanWithTextOverflow'\nimport {headingBaseStyle} from './styles'\nimport {HeadingStyleProps} from './types'\n\n/**\n * @public\n */\nexport interface HeadingOwnProps {\n accent?: boolean\n align?: TextAlign | TextAlign[]\n muted?: boolean\n size?: number | number[]\n /**\n * Controls how overflowing text is treated.\n * Use `textOverflow=\"ellipsis\"` to render text as a single line which is concatenated with a `…` symbol.\n * @beta\n */\n textOverflow?: 'ellipsis'\n weight?: ThemeFontWeightKey\n}\n\n/**\n * @public\n */\nexport type HeadingProps<E extends ElementType = 'div'> = Props<HeadingOwnProps, E>\n\nconst StyledHeading = styled.div<\n HeadingStyleProps & ResponsiveTextAlignStyleProps & ResponsiveFontStyleProps\n>(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont)\n\nfunction HeadingComponent(\n props: HeadingOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLDivElement>,\n 'as' | 'size'\n >,\n) {\n const {\n accent = false,\n align,\n children: childrenProp,\n muted = false,\n ref,\n size = 2,\n textOverflow,\n weight,\n ...restProps\n } = props\n\n let children = childrenProp\n\n if (textOverflow === 'ellipsis') {\n children = <SpanWithTextOverflow>{children}</SpanWithTextOverflow>\n }\n\n return (\n <StyledHeading\n data-ui=\"Heading\"\n {...restProps}\n $accent={accent}\n $align={_getArrayProp(align)}\n $muted={muted}\n $size={_getArrayProp(size)}\n $weight={weight}\n ref={ref}\n >\n <span>{children}</span>\n </StyledHeading>\n )\n}\n\n/**\n * Typographic headings.\n *\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Heading = HeadingComponent as unknown as <E extends ElementType = 'div'>(\n props: HeadingProps<E>,\n) => React.JSX.Element\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\nexport function inputElementStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n const dist = (input.radio.size - input.radio.markSize) / 2\n\n return css`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ${rem(input.radio.size / 2)};\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ${rem(input.radio.size)};\n width: ${rem(input.radio.size)};\n border-radius: ${rem(input.radio.size / 2)};\n background: ${color.input.default.enabled.bg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n &::after {\n content: '';\n position: absolute;\n top: ${rem(dist)};\n left: ${rem(dist)};\n height: ${rem(input.radio.markSize)};\n width: ${rem(input.radio.markSize)};\n border-radius: ${rem(input.radio.markSize / 2)};\n background: ${color.input.default.enabled.fg};\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.radio.focusRing,\n })};\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ${color.input.invalid.enabled.border};\n box-shadow: ${focusRingBorderStyle({\n width: input.border.width,\n color: color.input.invalid.enabled.muted.bg,\n })};\n &::after {\n background: ${color.input.invalid.enabled.muted.bg};\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ${color.input.default.readOnly.border};\n background: ${color.input.default.readOnly.bg};\n\n &::after {\n background: ${color.input.default.readOnly.border};\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ${color.input.default.disabled.border};\n background: ${color.input.default.disabled.bg};\n\n &::after {\n background: ${color.input.default.disabled.border};\n }\n }\n `\n}\n","import {style} from '@vanilla-extract/css'\n\nexport const radio = style({\n position: 'relative',\n selectors: {\n '&:not([hidden])': {\n display: 'inline-block',\n },\n },\n})\n","import {clsx} from 'clsx/lite'\nimport {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {inputElementStyle} from './styles'\n\nimport {radio} from './radio.css'\n\n/**\n * @public\n */\nexport interface RadioProps {\n customValidity?: string\n}\n\nconst Input = styled.input(inputElementStyle)\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport function Radio(props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & RadioProps) {\n const {\n className,\n disabled,\n style,\n customValidity,\n readOnly,\n ref: forwardedRef,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div className={clsx(radio, className)} data-ui=\"Radio\" style={style}>\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-error={customValidity ? '' : undefined}\n {...restProps}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span />\n </div>\n )\n}\n","import {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {ThemeFontSize} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {_responsive, rem} from '../../styles/helpers'\nimport {responsiveInputPaddingIconRightStyle} from '../../styles/input/responsiveInputPaddingStyle'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {ThemeProps} from '../../styles/types'\n\nfunction inputBaseStyle(props: ThemeProps): ReturnType<typeof css> {\n const {font} = getTheme_v2(props.theme)\n\n return css`\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ${font.text.family};\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n `\n}\n\nfunction inputColorStyle(props: ThemeProps) {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n /* enabled */\n background-color: ${color.input.default.enabled.bg};\n color: ${color.input.default.enabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ${color.input.default.hovered.bg};\n color: ${color.input.default.hovered.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ${focusRingStyle({\n border: {width: input.border.width, color: color.input.default.enabled.border},\n focusRing: input.select.focusRing,\n })};\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ${color.input.default.readOnly.bg};\n color: ${color.input.default.readOnly.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.readOnly.border,\n width: input.border.width,\n })};\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ${color.input.default.disabled.bg};\n color: ${color.input.default.disabled.fg};\n box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n `\n}\n\nfunction textSize(size: ThemeFontSize) {\n return {fontSize: rem(size.fontSize), lineHeight: `${rem(size.lineHeight)}`}\n}\n\nfunction inputTextSizeStyle(props: {$fontSize: number[]} & ThemeProps) {\n const {$fontSize} = props\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, $fontSize, (sizeIndex) =>\n textSize(font.text.sizes[sizeIndex] || font.text.sizes[2]),\n )\n}\n\nfunction inputStyle(): Array<\n | ((\n props: ResponsiveRadiusStyleProps & {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n ) => CSSObject[])\n | ((props: ThemeProps) => ReturnType<typeof css>)\n> {\n return [\n responsiveRadiusStyle,\n inputBaseStyle,\n inputColorStyle,\n inputTextSizeStyle,\n responsiveInputPaddingIconRightStyle,\n ]\n}\n\nfunction iconBoxStyle(props: ThemeProps): ReturnType<typeof css> {\n const {color} = getTheme_v2(props.theme)\n\n return css`\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ${color.input.default.disabled.fg};\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ${color.input.default.readOnly.fg};\n }\n `\n}\n\nexport const selectStyle = {\n input: inputStyle,\n iconBox: iconBoxStyle,\n}\n","import {style} from '@vanilla-extract/css'\n\nexport const select = style({\n position: 'relative',\n width: ['-moz-available', '-webkit-fill-available', 'stretch'],\n selectors: {\n '&:not([hidden])': {\n display: 'inline-block',\n },\n },\n})\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {Radius} from '../../types/radius'\nimport {Box} from '../box/box'\nimport {Text} from '../text/text'\nimport {selectStyle} from './styles'\n\nimport {select} from './select.css'\n\n/**\n * @public\n */\nexport interface SelectProps {\n fontSize?: number | number[]\n gap?: number | number[]\n padding?: number | number[]\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n customValidity?: string\n}\n\nconst Input = styled.select<{\n $fontSize: number[]\n $padding: number[]\n $radius: Radius[]\n $space: number[]\n}>(selectStyle.input)\n\nconst IconBox = styled(Box)(selectStyle.iconBox)\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport function Select(props: SelectProps & Omit<React.HTMLProps<HTMLSelectElement>, 'as'>) {\n const {\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap = 3,\n padding = 3,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n ...restProps\n } = props\n\n const ref = useRef<HTMLSelectElement | null>(null)\n\n useImperativeHandle<HTMLSelectElement | null, HTMLSelectElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <div className={select} data-ui=\"Select\">\n <Input\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"Select\"\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $radius={_getArrayProp(radius)}\n $space={_getArrayProp(gap)}\n disabled={disabled || readOnly}\n ref={ref}\n >\n {children}\n </Input>\n\n <IconBox padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </IconBox>\n </div>\n )\n}\n","import {css} from 'styled-components'\n\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {focusRingStyle} from '../../styles/focusRing'\nimport {rem} from '../../styles/helpers'\nimport {ThemeProps} from '../../styles/types'\n\n/* Representation */\nexport function switchRepresentationStyles(props: ThemeProps): ReturnType<typeof css> {\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --switch-bg-color: ${color.input.default.enabled.border};\n --switch-fg-color: ${color.input.default.enabled.bg};\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n\n /* Make sure it’s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ${focusRingStyle({focusRing: input.switch.focusRing})};\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ${color.input.default.hovered.border};\n --switch-fg-color: ${color.input.default.hovered.bg};\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ${color.input.default.enabled.fg};\n --switch-fg-color: ${color.input.default.enabled.bg};\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ${color.input.default.disabled.border};\n --switch-fg-color: ${color.input.default.disabled.bg};\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.border};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n\n input:checked[data-read-only]:disabled + && {\n --switch-bg-color: ${color.input.default.readOnly.fg};\n --switch-fg-color: ${color.input.default.readOnly.bg};\n }\n `\n}\n\n/* Track */\nexport function switchTrackStyles(props: ThemeProps): ReturnType<typeof css> {\n const {input} = getTheme_v2(props.theme)\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ${rem(input.switch.width)};\n height: ${rem(input.switch.height)};\n border-radius: ${rem(input.switch.height / 2)};\n `\n}\n\n/* Thumb */\nexport function switchThumbStyles(\n props: {$checked?: boolean; $indeterminate?: boolean} & ThemeProps,\n): ReturnType<typeof css> {\n const {$indeterminate} = props\n const {input} = getTheme_v2(props.theme)\n const trackWidth = input.switch.width\n const trackHeight = input.switch.height\n const trackPadding = input.switch.padding\n const size = trackHeight - input.switch.padding * 2\n const checkedOffset = trackWidth - trackPadding * 2 - size\n const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding\n const checked = $indeterminate !== true && props.$checked === true\n\n return css`\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ${rem(trackPadding)};\n top: ${rem(trackPadding)};\n height: ${rem(size)};\n width: ${rem(size)};\n border-radius: ${rem(size / 2)};\n transition-property: transform;\n transition-duration: ${input.switch.transitionDurationMs}ms;\n transition-timing-function: ${input.switch.transitionTimingFunction};\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);\n\n ${\n checked &&\n css`\n transform: translate3d(${checkedOffset}px, 0, 0);\n `\n }\n\n ${\n $indeterminate &&\n css`\n transform: translate3d(${indeterminateOffset}px, 0, 0);\n `\n }\n `\n}\n","import {style} from '@vanilla-extract/css'\n\nexport const switchRoot = style({\n position: 'relative',\n selectors: {\n '&:not([hidden])': {\n display: 'inline-block',\n },\n },\n})\n\n// Visually hides the input element while keeping it interactive, placed above\n// the representation element\nexport const switchInput = style({\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n opacity: 0,\n height: '100%',\n width: '100%',\n outline: 'none',\n padding: 0,\n margin: 0,\n zIndex: 1,\n})\n","import {clsx} from 'clsx/lite'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {switchRepresentationStyles, switchThumbStyles, switchTrackStyles} from './styles'\n\nimport {switchInput, switchRoot} from './switch.css'\n\n/**\n * @public\n */\nexport interface SwitchProps {\n indeterminate?: boolean\n}\n\nconst Representation = styled.span(switchRepresentationStyles)\nconst Track = styled.span(switchTrackStyles)\nconst Thumb = styled.span<{$checked?: boolean; $indeterminate?: boolean}>(switchThumbStyles)\n\n/**\n * The `Switch` component allows the user to toggle a setting on and off.\n *\n * Extends all properties of an `<input type=\"checkbox\" />` element, except type.\n *\n * @public\n */\nexport function Switch(\n props: Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'type'> & SwitchProps,\n) {\n const {\n checked,\n className,\n disabled,\n indeterminate,\n readOnly,\n ref: forwardedRef,\n style,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useEffect(() => {\n if (ref.current) {\n // Set the indeterminate state\n ref.current.indeterminate = indeterminate || false\n }\n }, [indeterminate])\n\n return (\n <span className={clsx(switchRoot, className)} data-ui=\"Switch\" style={style}>\n <input\n className={switchInput}\n data-read-only={!disabled && readOnly ? '' : undefined}\n {...restProps}\n checked={indeterminate !== true && checked}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <Representation aria-hidden data-name=\"representation\">\n <Track />\n <Thumb $checked={checked} $indeterminate={indeterminate} />\n </Representation>\n </span>\n )\n}\n","import {useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {\n responsiveInputPaddingStyle,\n TextInputResponsivePaddingStyleProps,\n} from '../../styles/input/responsiveInputPaddingStyle'\nimport {\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n} from '../../styles/input/textInputStyle'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {ResponsiveRadiusProps} from '../types'\n\nimport {inputRoot, textAreaRoot} from '../../styles/input/textInput.css'\n\n/**\n * @public\n */\nexport interface TextAreaProps extends ResponsiveRadiusProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n customValidity?: string\n fontSize?: number | number[]\n padding?: number | number[]\n weight?: ThemeFontWeightKey\n}\n\nconst Input = styled.textarea<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.div<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\n/**\n * A multiline text input.\n *\n\n * @public\n */\nexport function TextArea(props: TextAreaProps & Omit<React.HTMLProps<HTMLTextAreaElement>, 'as'>) {\n const {\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n padding = 3,\n radius = 2,\n ref: forwardedRef,\n weight,\n __unstable_disableFocusRing,\n ...restProps\n } = props\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span className={textAreaRoot} data-ui=\"TextArea\">\n <span className={inputRoot}>\n <Input\n data-as=\"textarea\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={_getArrayProp(fontSize)}\n $padding={_getArrayProp(padding)}\n $scheme={rootTheme.scheme}\n $space={_getArrayProp(0)}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n ref={ref}\n />\n <Presentation\n $radius={_getArrayProp(radius)}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n />\n </span>\n </span>\n )\n}\n","import {useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport {BoundaryElementContextValue} from './types'\n\n/**\n * @public\n */\nexport interface BoundaryElementProviderProps {\n children: React.ReactNode\n element: HTMLElement | null\n}\n\n/**\n * @public\n */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): React.JSX.Element {\n const {children, element} = props\n const value: BoundaryElementContextValue = useMemo(() => ({version: 0.0, element}), [element])\n\n return <BoundaryElementContext.Provider value={value}>{children}</BoundaryElementContext.Provider>\n}\n","/**\n * @internal\n * @deprecated ConditionalWrapper was removed in @sanity/ui v4. Inline the conditional wrapping logic instead.\n */\nexport function ConditionalWrapper(_props?: never): never {\n throw new Error(\n '`ConditionalWrapper` was removed in @sanity/ui v4. Inline the conditional wrapping logic instead.',\n )\n}\n","export function findMaxBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp > width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n\nexport function findMinBreakpoints(media: number[], width: number): number[] {\n const ret: number[] = []\n\n for (let i = 0; i < media.length; i += 1) {\n const bp = media[i]\n\n if (bp <= width) {\n ret.push(i)\n }\n }\n\n return ret\n}\n","import {useImperativeHandle, useMemo, useState} from 'react'\n\nimport {useElementSize} from '../../hooks/useElementSize'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {findMaxBreakpoints, findMinBreakpoints} from './helpers'\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface MediaQueryProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n media?: number[]\n}\n\n/**\n * DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function ElementQuery(\n props: MediaQueryProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'media'>,\n) {\n const theme = useTheme_v2()\n const {children, media: _media, ref: forwardedRef, ...restProps} = props\n const media = _media ?? theme.media\n\n const [element, setElement] = useState<HTMLDivElement | null>(null)\n const elementSize = useElementSize(element)\n const width = useMemo(() => elementSize?.border.width ?? window.innerWidth, [elementSize])\n\n const max = useMemo(() => {\n const eq = findMaxBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n const min = useMemo(() => {\n const eq = findMinBreakpoints(media, width)\n\n return eq.length ? eq.join(' ') : undefined\n }, [media, width])\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => element, [\n element,\n ])\n\n return (\n <div data-ui=\"ElementQuery\" {...restProps} data-eq-max={max} data-eq-min={min} ref={setElement}>\n {children}\n </div>\n )\n}\n","import {Component, PropsWithChildren} from 'react'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: React.ErrorInfo}) => void\n}>\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport interface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n state: ErrorBoundaryState = {error: null}\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return {error}\n }\n\n componentDidCatch(error: Error, info: React.ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n render(): React.ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n // A plain element rather than the `Code` primitive: `Code` lives on the\n // `@sanity/ui/code` entry point (it lazy-loads `react-refractor`), and\n // the root entry point must not reference that module graph.\n return (\n <pre data-ui=\"ErrorBoundary\">\n <code>{message}</code>\n </pre>\n )\n }\n\n return this.props.children\n }\n}\n","import {useMemo, useSyncExternalStore} from 'react'\n\nimport {PortalContext} from './portalContext'\nimport {PortalContextValue} from './types'\n\n/**\n * @public\n */\nexport interface PortalProviderProps {\n /**\n * @deprecated Use `<BoundaryElementProvider element={...} />` instead\n */\n boundaryElement?: HTMLElement | null\n children: React.ReactNode\n element?: HTMLElement | null\n /**\n * @beta\n */\n __unstable_elements?: Record<string, HTMLElement | null | undefined>\n}\n\n/**\n * @public\n */\nexport function PortalProvider(props: PortalProviderProps): React.JSX.Element {\n // oxlint-disable-next-line no-deprecated\n const {boundaryElement, children, element, __unstable_elements: elements} = props\n const fallbackElement = useSyncExternalStore(\n emptySubscribe,\n () => document.body,\n () => null,\n )\n\n const value: PortalContextValue = useMemo(() => {\n return {\n version: 0.0,\n boundaryElement: boundaryElement || null,\n element: element || fallbackElement,\n elements,\n }\n }, [boundaryElement, element, elements, fallbackElement])\n\n return <PortalContext.Provider value={value}>{children}</PortalContext.Provider>\n}\n\nconst emptySubscribe = () => () => {}\n","import {style} from '@vanilla-extract/css'\n\nexport const srOnly = style({\n display: 'block',\n width: 0,\n height: 0,\n position: 'absolute',\n overflow: ['hidden', 'clip'],\n})\n","import {srOnly} from './srOnly.css'\n\n/**\n * @public\n */\nexport interface SrOnlyProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n children?: React.ReactNode\n}\n\n/**\n * @public\n */\nexport function SrOnly(\n props: SrOnlyProps & Omit<React.HTMLProps<HTMLDivElement>, 'aria-hidden' | 'as'>,\n) {\n const {as = 'div', children, ref} = props\n // Rendering the polymorphic `as` needs one concrete element type for JSX to\n // type-check the div-flavored props (the same widening styled-components'\n // `as` prop performed here before).\n // oxlint-disable-next-line no-unsafe-type-assertion\n const Component = as as 'div'\n\n return (\n <Component aria-hidden className={srOnly} data-ui=\"SrOnly\" ref={ref}>\n {children}\n </Component>\n )\n}\n","import {style} from '@vanilla-extract/css'\n\nexport const virtualList = style({\n position: 'relative',\n})\n\nexport const virtualListItem = style({\n position: 'absolute',\n left: 0,\n right: 0,\n})\n","import {clsx} from 'clsx/lite'\nimport {useEffect, useImperativeHandle, useRef, useState} from 'react'\n\nimport {_isScrollable} from '../../helpers/scroll'\nimport {StackOwnProps} from '../../primitives/stack/stack'\nimport {useTheme_v2} from '../../theme/useTheme'\n\nimport {virtualList, virtualListItem} from './virtualList.css'\n\n/**\n * @beta\n */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/**\n * @beta\n */\nexport interface VirtualListProps<Item = any> {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n gap?: number\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => React.ReactNode\n}\n\n/**\n * @beta\n */\nexport function VirtualList(\n props: VirtualListProps &\n StackOwnProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'onChange'>,\n): React.JSX.Element {\n const {\n as = 'div',\n className,\n gap = 0,\n getItemKey,\n items = [],\n onChange,\n ref: forwardedRef,\n renderItem,\n ...restProps\n } = props\n const {space} = useTheme_v2()\n const ref = useRef<HTMLDivElement | null>(null)\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n const [scrollTop, setScrollTop] = useState(0)\n const [scrollHeight, setScrollHeight] = useState(0)\n const [itemHeight, setItemHeight] = useState(-1)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n useEffect(() => {\n if (!wrapperRef.current) return\n\n const firstElement = wrapperRef.current.firstChild\n\n if (firstElement instanceof HTMLElement) {\n setItemHeight(firstElement.offsetHeight)\n }\n // oxlint-disable-next-line react/exhaustive-effect-dependencies\n }, [renderItem])\n\n useEffect((): (() => void) | undefined => {\n if (!ref.current) return\n\n const scrollEl = findScrollable(ref.current.parentNode)\n\n if (scrollEl) {\n if (!(scrollEl instanceof HTMLElement)) return\n\n const handleScroll = () => {\n setScrollTop(scrollEl.scrollTop)\n }\n\n scrollEl.addEventListener('scroll', handleScroll, {passive: true})\n\n const ro = new ResizeObserver((entries) => {\n setScrollHeight(entries[0].contentRect.height)\n })\n\n ro.observe(scrollEl)\n\n handleScroll()\n\n // oxlint-disable-next-line consistent-return\n return () => {\n scrollEl.removeEventListener('scroll', handleScroll)\n\n ro.unobserve(scrollEl)\n ro.disconnect()\n }\n }\n\n const handleScroll = () => {\n setScrollTop(window.scrollY)\n }\n\n const handleResize = () => {\n setScrollHeight(window.innerHeight)\n }\n\n window.addEventListener('scroll', handleScroll, {passive: true})\n window.addEventListener('resize', handleResize)\n\n setScrollHeight(window.innerHeight)\n\n handleScroll()\n\n // oxlint-disable-next-line consistent-return\n return () => {\n window.removeEventListener('scroll', handleScroll)\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n const len = items.length\n const height = itemHeight ? len * (itemHeight + space[gap]) - space[gap] : 0\n const fromIndex = height ? Math.max(Math.floor((scrollTop / height) * len) - 2, 0) : 0\n const toIndex = height ? Math.ceil(((scrollTop + scrollHeight) / height) * len) + 1 : 0\n\n useEffect(() => {\n if (!onChange) return\n onChange({fromIndex, gap: space[gap], itemHeight, scrollHeight, scrollTop, toIndex})\n }, [fromIndex, gap, itemHeight, onChange, scrollHeight, scrollTop, space, toIndex])\n\n const children = useChildren({\n fromIndex,\n gap,\n itemHeight,\n space,\n toIndex,\n getItemKey,\n items,\n renderItem,\n })\n\n // Rendering the polymorphic `as` needs one concrete element type for JSX to\n // type-check the div-flavored props (the same widening styled-components'\n // `as` prop performed here before).\n // oxlint-disable-next-line no-unsafe-type-assertion\n const Component = as as 'div'\n\n return (\n <Component\n className={clsx(virtualList, className)}\n data-ui=\"VirtualList\"\n ref={ref}\n {...restProps}\n >\n <div ref={wrapperRef} style={{height}}>\n {children}\n </div>\n </Component>\n )\n}\n\nfunction useChildren({\n fromIndex,\n gap,\n getItemKey,\n itemHeight,\n items,\n renderItem,\n space,\n toIndex,\n}: Pick<VirtualListProps, 'getItemKey' | 'renderItem'> &\n Required<Pick<VirtualListProps, 'items'>> & {\n fromIndex: number\n gap: number\n itemHeight: number\n space: number[]\n toIndex: number\n }) {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [\n <div key={0} className={virtualListItem}>\n {renderItem(items[0])}\n </div>,\n ]\n }\n\n return items.slice(fromIndex, toIndex).map((item, _itemIndex) => {\n const itemIndex = fromIndex + _itemIndex\n const node = renderItem(item)\n const key = getItemKey ? getItemKey(item, itemIndex) : itemIndex\n\n return (\n <div\n key={key}\n className={virtualListItem}\n style={{top: itemIndex * (itemHeight + space[gap])}}\n >\n {node}\n </div>\n )\n })\n}\n\nfunction findScrollable(parentNode: ParentNode | null) {\n let _scrollEl = parentNode\n\n while (_scrollEl && !_isScrollable(_scrollEl)) {\n _scrollEl = _scrollEl.parentNode\n }\n\n return _scrollEl\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/getProps.ts","../src/version.ts","../src/utils/suffixClassName.ts","../src/types/Radius.ts","../src/props/border.ts","../src/props/flexChild.ts","../src/props/gridChild.ts","../src/props/height.ts","../src/types/Space.ts","../src/props/margin.ts","../src/types/Overflow.ts","../src/props/overflow.ts","../src/props/padding.ts","../src/types/Position.ts","../src/props/position.ts","../src/types/Shadow.ts","../src/props/shadow.ts","../src/types/Tone.ts","../src/props/tone.ts","../src/props/width.ts","../src/props/zIndex.ts","../src/props/layout.ts","../src/types/Display.ts","../src/components/box/box.props.ts","../src/components/box/Box.tsx","../src/types/Flex.ts","../src/props/flexParent.ts","../src/props/gap.ts","../src/components/flex/flex.props.ts","../src/components/flex/Flex.tsx","../src/types/FontWeight.ts","../src/types/TextAlign.ts","../src/props/typography.ts","../src/types/Icon.ts","../src/components/icon/icon.props.ts","../src/components/icon/Icon.tsx","../src/components/spinner/spinner.props.ts","../src/components/spinner/Spinner.tsx","../src/types/Text.ts","../src/components/text/text.props.ts","../src/components/text/Text.tsx","../src/types/Button.ts","../src/components/button/button.props.ts","../src/components/button/Button.tsx","../src/types/Density.ts","../src/components/card/card.props.ts","../src/components/card/Card.tsx","../src/components/label/label.props.ts","../src/components/label/Label.tsx","../src/components/visually-hidden/visuallyHidden.props.ts","../src/components/visually-hidden/VisuallyHidden.tsx","../src/components/checkbox/checkbox.props.ts","../src/components/checkbox/Checkbox.tsx","../src/types/Code.ts","../src/components/code/code.props.ts","../src/components/code/Code.tsx","../src/types/Container.ts","../src/components/container/container.props.ts","../src/components/container/Container.tsx","../src/types/Heading.ts","../src/components/heading/heading.props.ts","../src/components/heading/Heading.tsx","../src/components/icon-button/iconButton.props.ts","../src/components/icon-button/IconButton.tsx","../src/components/dialog/dialog.props.ts","../src/components/dialog/Dialog.tsx","../src/components/divider/divider.props.ts","../src/components/divider/Divider.tsx","../src/types/Eyebrow.ts","../src/components/eyebrow/eyebrow.props.ts","../src/components/eyebrow/Eyebrow.tsx","../src/types/Grid.ts","../src/props/gridParent.ts","../src/components/grid/grid.props.ts","../src/components/grid/Grid.tsx","../src/components/h-stack/hStack.props.ts","../src/components/h-stack/HStack.tsx","../src/components/indicator/indicator.props.ts","../src/components/indicator/Indicator.tsx","../src/components/indicator-stack/indicatorStack.props.ts","../src/components/indicator-stack/IndicatorStack.tsx","../src/components/inline/inline.props.ts","../src/components/inline/Inline.tsx","../src/components/link/link.props.ts","../src/components/link/Link.tsx","../src/components/press-area/pressArea.props.ts","../src/components/press-area/PressArea.tsx","../src/components/v-stack/vStack.props.ts","../src/components/v-stack/VStack.tsx","../src/components/list/list.props.ts","../src/components/list/List.tsx","../src/hooks/useIsClient.ts","../src/utils/mergeTriggerProps.ts","../src/utils/renderPortal.tsx","../src/types/Placement.ts","../src/props/placement.ts","../src/components/popover/popover.props.ts","../src/components/popover/Popover.tsx","../src/components/radio/radio.props.ts","../src/components/radio/Radio.tsx","../src/components/skip-to-content/skipToContent.props.ts","../src/components/skip-to-content/SkipToContent.tsx","../src/components/switch/switch.props.ts","../src/components/switch/Switch.tsx","../src/components/tooltip/tooltip.props.ts","../src/components/tooltip/Tooltip.tsx","../src/components/tooltip-group/tooltipGroup.props.ts","../src/components/tooltip-group/TooltipGroup.tsx","../src/components/badge/badge.props.ts","../src/components/badge/Badge.tsx"],"sourcesContent":["import clsx from 'clsx'\n\nimport {type PropDef} from '../types/PropDef'\n\nconst PREFIX = 'sui'\nconst BREAKPOINTS_LENGTH = 6\n\ninterface ComponentProps {\n className?: string | undefined\n style?: React.CSSProperties | undefined\n [key: string]: any\n}\n\nexport function getProps(\n componentProps?: ComponentProps,\n propDefs?: Record<string, PropDef>,\n): ComponentProps {\n const {allComponentProps, allPropDefs} = flattenCompositeProps(componentProps, propDefs)\n const restProps: ComponentProps = {}\n let className = componentProps?.className || ''\n let style = componentProps?.style || {}\n\n for (const key in allComponentProps) {\n const propDef = allPropDefs?.[key]\n const propValue = allComponentProps[key]\n\n if (\n !((propDef && 'className' in propDef && propDef.className) || propDef?.type === 'conditional')\n ) {\n restProps[key] = propValue\n continue\n }\n\n if (Array.isArray(propValue)) {\n // @TODO: consider fixing this O(n^2) time complexity\n // oxlint-disable-next-line no-accumulating-spread\n for (let i = 0, len = Math.min(propValue.length, BREAKPOINTS_LENGTH); i < len; i++) {\n const resolvedPropDef = getResolvedPropDef(propValue[i], propDef)\n\n if (!resolvedPropDef) {\n continue\n }\n\n className = clsx(className, getClassName(propValue[i], resolvedPropDef, i))\n style = {...style, ...getStyle(propValue[i], resolvedPropDef, i)}\n }\n } else {\n const resolvedPropDef = getResolvedPropDef(propValue, propDef)\n\n if (!resolvedPropDef) {\n restProps[key] = propValue\n continue\n }\n\n className = clsx(className, getClassName(propValue, resolvedPropDef))\n style = {...style, ...getStyle(propValue, resolvedPropDef)}\n }\n }\n\n return {...restProps, className, style}\n}\n\nfunction getResolvedPropDef(propValue: any, propDef?: PropDef) {\n if (propDef?.type !== 'conditional') {\n return propDef\n }\n\n const resolvedPropDef = propDef.resolve(propValue)\n\n if (!(resolvedPropDef && 'className' in resolvedPropDef && resolvedPropDef.className)) {\n return null\n }\n\n return resolvedPropDef\n}\n\nfunction getClassName(propValue: any, propDef: PropDef, bp?: number) {\n if (propDef.type === 'union' && propDef.values?.includes(propValue)) {\n /* Note: This may need updating depending on the final CSS classname formatting */\n return `${PREFIX}-${propDef.className}${typeof propValue === 'string' ? `-${propValue}` : propValue}${bp ? `-bp-${bp}` : ''}`\n }\n\n if (propDef.type === 'string' || propDef.type === 'number') {\n return `${PREFIX}-${propDef.className}${bp ? `-bp-${bp}` : ''}`\n }\n\n if (propDef.type === 'boolean') {\n if (propValue) {\n return `${PREFIX}-${propDef.className}${bp ? `-bp-${bp}` : ''}`\n }\n\n if (!propValue && propDef.inverseClassName) {\n return `${PREFIX}-${propDef.inverseClassName}${bp ? `-bp-${bp}` : ''}`\n }\n }\n\n return ''\n}\n\nfunction getStyle(propValue: any, propDef: PropDef, bp?: number) {\n if ((propDef.type === 'string' || propDef.type === 'number') && propDef.variable) {\n return {\n [`${propDef.variable}${bp ? `-bp-${bp}` : ''}`]: propValue,\n }\n }\n\n return {}\n}\n\nexport function flattenCompositeProps(\n componentProps?: ComponentProps,\n propDefs?: Record<string, PropDef>,\n) {\n const props = {\n allComponentProps: {} as ComponentProps,\n allPropDefs: {} as Record<string, PropDef>,\n }\n\n for (const key in componentProps) {\n if (propDefs?.[key] && propDefs?.[key].type === 'composite') {\n for (const compositeKey in propDefs?.[key].composition) {\n const compositeValue = getCompositeValue(componentProps[key], propDefs[key], compositeKey)\n\n props.allComponentProps[compositeKey] = compositeValue\n props.allPropDefs[compositeKey] = propDefs[key].composition[compositeKey]\n ?.propDef as PropDef\n }\n } else {\n props.allComponentProps[key] = componentProps[key]\n props.allPropDefs[key] = propDefs?.[key] as PropDef\n }\n }\n\n return props\n}\n\nfunction getCompositeValue(propValue: any, propDef: PropDef, key: string) {\n if (!('composition' in propDef)) {\n return\n }\n\n const mapping = propDef.composition[key]?.['mapping']\n let compositeValue\n\n if (Array.isArray(propValue)) {\n compositeValue = []\n\n for (let i = 0, len = propValue.length; i < len; i++) {\n compositeValue[i] = mapping?.[propValue[i]]\n }\n } else {\n compositeValue = mapping?.[propValue]\n }\n\n return compositeValue\n}\n","// This file is generated by scripts/write-version.js. Do not edit.\nexport const VERSION = '500alpha10'\nexport const HASH = 'ad9fa1'\n","import {HASH} from '../version'\n\nexport function suffixClassName(className: string) {\n return `${className}-${HASH}`\n}\n","export const RADIUS = [0, 1, 2, 3, 4, 5, 6, 'full'] as const\n/** @public */\nexport type Radius = (typeof RADIUS)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {RADIUS, type Radius} from '../types/Radius'\nimport {type Responsive} from '../types/Responsive'\n\nexport type BorderProps = {\n /** CSS **border** property */\n border?: Responsive<boolean>\n /** CSS **border-top** property */\n borderTop?: Responsive<boolean>\n /** CSS **border-right** property */\n borderRight?: Responsive<boolean>\n /** CSS **border-bottom** property */\n borderBottom?: Responsive<boolean>\n /** CSS **border-left** property */\n borderLeft?: Responsive<boolean>\n /** CSS **border-radius** property */\n radius?: Responsive<Radius>\n}\n\nexport const borderProps: Record<string, PropDef> = {\n border: {\n type: 'boolean',\n className: 'border',\n inverseClassName: 'border-none',\n },\n borderTop: {\n type: 'boolean',\n className: 'border-top',\n inverseClassName: 'border-top-none',\n },\n borderRight: {\n type: 'boolean',\n className: 'border-right',\n inverseClassName: 'border-right-none',\n },\n borderBottom: {\n type: 'boolean',\n className: 'border-bottom',\n inverseClassName: 'border-bottom-none',\n },\n borderLeft: {\n type: 'boolean',\n className: 'border-left',\n inverseClassName: 'border-left-none',\n },\n radius: {\n type: 'union',\n className: 'radius',\n values: RADIUS,\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type FlexChildProps = {\n /** CSS **flex-basis** property */\n flexBasis?: Responsive<string>\n /** CSS **flex-grow** property */\n flexGrow?: Responsive<number>\n /** CSS **flex-shrink** property */\n flexShrink?: Responsive<number>\n}\n\nexport const flexChildProps: Record<string, PropDef> = {\n flexBasis: {\n type: 'string',\n className: 'flex-basis',\n variable: '--flex-basis',\n },\n flexGrow: {\n type: 'number',\n className: 'flex-grow',\n variable: '--flex-grow',\n },\n flexShrink: {\n type: 'number',\n className: 'flex-shrink',\n variable: '--flex-shrink',\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type GridChildProps = {\n /** CSS **grid-column** property */\n gridColumn?: Responsive<string>\n /** CSS **grid-column-start** property */\n gridColumnStart?: Responsive<string>\n /** CSS **grid-column-end** property */\n gridColumnEnd?: Responsive<string>\n /** CSS **grid-row** property */\n gridRow?: Responsive<string>\n /** CSS **grid-row-start** property */\n gridRowStart?: Responsive<string>\n /** CSS **grid-row-end** property */\n gridRowEnd?: Responsive<string>\n}\n\nexport const gridChildProps: Record<string, PropDef> = {\n gridColumn: {\n type: 'string',\n className: 'grid-column',\n variable: '--grid-column',\n },\n gridColumnStart: {\n type: 'string',\n className: 'grid-column-start',\n variable: '--grid-column-start',\n },\n gridColumnEnd: {\n type: 'string',\n className: 'grid-column-end',\n variable: '--grid-column-end',\n },\n gridRow: {\n type: 'string',\n className: 'grid-row',\n variable: '--grid-row',\n },\n gridRowStart: {\n type: 'string',\n className: 'grid-row-start',\n variable: '--grid-row-start',\n },\n gridRowEnd: {\n type: 'string',\n className: 'grid-row-end',\n variable: '--grid-row-end',\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type HeightProps = {\n /** CSS **height** property */\n height?: Responsive<string>\n /** CSS **min-height** property */\n minHeight?: Responsive<string>\n /** CSS **max-height** property */\n maxHeight?: Responsive<string>\n}\n\nexport const heightProps: Record<string, PropDef> = {\n height: {\n type: 'string',\n className: 'height',\n variable: '--height',\n },\n minHeight: {\n type: 'string',\n className: 'min-height',\n variable: '--min-height',\n },\n maxHeight: {\n type: 'string',\n className: 'max-height',\n variable: '--max-height',\n },\n}\n","export const SPACE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const\n/** @public */\nexport type Space = (typeof SPACE)[number]\n\nexport const SPACE_AUTO = [...SPACE, 'auto'] as const\n/** @public */\nexport type SpaceAuto = (typeof SPACE_AUTO)[number]\n\nexport const SPACE_INHERIT = [...SPACE, 'inherit'] as const\n/** @public */\nexport type SpaceInherit = (typeof SPACE_INHERIT)[number]\n\nexport const SPACE_AUTO_NEGATIVE = [-9, -8, -7, -6, -5, -4, -3, -2, -1, ...SPACE, 'auto'] as const\n/** @public */\nexport type SpaceAutoNegative = (typeof SPACE_AUTO_NEGATIVE)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {SPACE_AUTO_NEGATIVE, type SpaceAutoNegative} from '../types/Space'\n\n/** @public */\nexport type MarginProps = {\n /** CSS **margin** property */\n margin?: Responsive<SpaceAutoNegative>\n /** CSS **margin-left** and **margin-right** properties */\n marginX?: Responsive<SpaceAutoNegative>\n /** CSS **margin-top** and **margin-bottom** properties */\n marginY?: Responsive<SpaceAutoNegative>\n /** CSS **margin-top** property */\n marginTop?: Responsive<SpaceAutoNegative>\n /** CSS **margin-right** property */\n marginRight?: Responsive<SpaceAutoNegative>\n /** CSS **margin-bottom** property */\n marginBottom?: Responsive<SpaceAutoNegative>\n /** CSS **margin-left** property */\n marginLeft?: Responsive<SpaceAutoNegative>\n}\n\nexport const marginProps: Record<string, PropDef> = {\n margin: {\n type: 'union',\n className: 'm',\n values: SPACE_AUTO_NEGATIVE,\n },\n marginX: {\n type: 'union',\n className: 'mx',\n values: SPACE_AUTO_NEGATIVE,\n },\n marginY: {\n type: 'union',\n className: 'my',\n values: SPACE_AUTO_NEGATIVE,\n },\n marginTop: {\n type: 'union',\n className: 'mt',\n values: SPACE_AUTO_NEGATIVE,\n },\n marginRight: {\n type: 'union',\n className: 'mr',\n values: SPACE_AUTO_NEGATIVE,\n },\n marginBottom: {\n type: 'union',\n className: 'mb',\n values: SPACE_AUTO_NEGATIVE,\n },\n marginLeft: {\n type: 'union',\n className: 'ml',\n values: SPACE_AUTO_NEGATIVE,\n },\n}\n","export const OVERFLOW = ['visible', 'hidden', 'auto', 'scroll', 'clip'] as const\n/** @public */\nexport type Overflow = (typeof OVERFLOW)[number]\n","import {OVERFLOW, type Overflow} from '../types/Overflow'\nimport {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type OverflowProps = {\n /** CSS **overflow** property */\n overflow?: Responsive<Overflow>\n /** CSS **overflow-x** property */\n overflowX?: Responsive<Overflow>\n /** CSS **overflow-y** property */\n overflowY?: Responsive<Overflow>\n}\n\nexport const overflowProps: Record<string, PropDef> = {\n overflow: {\n type: 'union',\n className: 'overflow',\n values: OVERFLOW,\n },\n overflowX: {\n type: 'union',\n className: 'overflow-x',\n values: OVERFLOW,\n },\n overflowY: {\n type: 'union',\n className: 'overflow-y',\n values: OVERFLOW,\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {SPACE, type Space} from '../types/Space'\n\n/** @public */\nexport interface PaddingProps {\n /** CSS **padding** property */\n padding?: Responsive<Space>\n /** CSS **padding-left** and **padding-right** properties */\n paddingX?: Responsive<Space>\n /** CSS **padding-top** and **padding-bottom** properties */\n paddingY?: Responsive<Space>\n /** CSS **padding-top** property */\n paddingTop?: Responsive<Space>\n /** CSS **padding-right** property */\n paddingRight?: Responsive<Space>\n /** CSS **padding-bottom** property */\n paddingBottom?: Responsive<Space>\n /** CSS **padding-left** property */\n paddingLeft?: Responsive<Space>\n}\n\nexport const paddingProps: Record<string, PropDef> = {\n padding: {\n type: 'union',\n className: 'p',\n values: SPACE,\n },\n paddingX: {\n type: 'union',\n className: 'px',\n values: SPACE,\n },\n paddingY: {\n type: 'union',\n className: 'py',\n values: SPACE,\n },\n paddingTop: {\n type: 'union',\n className: 'pt',\n values: SPACE,\n },\n paddingRight: {\n type: 'union',\n className: 'pr',\n values: SPACE,\n },\n paddingBottom: {\n type: 'union',\n className: 'pb',\n values: SPACE,\n },\n paddingLeft: {\n type: 'union',\n className: 'pl',\n values: SPACE,\n },\n}\n","export const POSITION = ['absolute', 'fixed', 'relative', 'static', 'sticky'] as const\n/** @public */\nexport type Position = (typeof POSITION)[number]\n","import {POSITION, type Position} from '../types/Position'\nimport {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {SPACE_AUTO, type SpaceAuto} from '../types/Space'\n\nexport type PositionProps = {\n /** CSS **position** property */\n position?: Responsive<Position>\n /** CSS **inset** property */\n inset?: Responsive<SpaceAuto>\n /** CSS **top** property */\n top?: Responsive<SpaceAuto>\n /** CSS **right** property */\n right?: Responsive<SpaceAuto>\n /** CSS **bottom** property */\n bottom?: Responsive<SpaceAuto>\n /** CSS **left** property */\n left?: Responsive<SpaceAuto>\n}\n\nexport const positionProps: Record<string, PropDef> = {\n position: {\n type: 'union',\n className: 'position',\n values: POSITION,\n },\n inset: {\n type: 'union',\n className: 'inset',\n values: SPACE_AUTO,\n },\n top: {\n type: 'union',\n className: 'top',\n values: SPACE_AUTO,\n },\n right: {\n type: 'union',\n className: 'right',\n values: SPACE_AUTO,\n },\n bottom: {\n type: 'union',\n className: 'bottom',\n values: SPACE_AUTO,\n },\n left: {\n type: 'union',\n className: 'left',\n values: SPACE_AUTO,\n },\n}\n","export const SHADOW = [0, 1, 2, 3, 4, 5] as const\n/** @public */\nexport type Shadow = (typeof SHADOW)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {SHADOW, type Shadow} from '../types/Shadow'\n\nexport type ShadowProps = {\n /** CSS **box-shadow** property */\n shadow?: Shadow\n}\n\nexport const shadowProps: Record<string, PropDef> = {\n shadow: {\n type: 'union',\n className: 'shadow',\n values: SHADOW,\n },\n}\n","export const TONE = ['neutral', 'positive', 'suggest', 'caution', 'critical'] as const\n/** @public */\nexport type Tone = (typeof TONE)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {TONE, type Tone} from '../types/Tone'\n\nexport type ToneProps = {\n /** CSS **background-color** property */\n tone?: Tone\n}\n\nexport const toneProps: Record<string, PropDef> = {\n tone: {\n type: 'union',\n className: 'tone',\n values: TONE,\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type WidthProps = {\n /** CSS **width** property */\n width?: Responsive<string>\n /** CSS **min-width** property */\n minWidth?: Responsive<string>\n /** CSS **max-width** property */\n maxWidth?: Responsive<string>\n}\n\nexport const widthProps: Record<string, PropDef> = {\n width: {\n type: 'string',\n className: 'width',\n variable: '--width',\n },\n minWidth: {\n type: 'string',\n className: 'min-width',\n variable: '--min-width',\n },\n maxWidth: {\n type: 'string',\n className: 'max-width',\n variable: '--max-width',\n },\n}\n","import type {PropDef} from '../types/PropDef'\nimport type {Responsive} from '../types/Responsive'\n\nexport type ZIndexProps = {\n /** CSS z-index property */\n zIndex?: Responsive<number>\n}\n\nexport const zIndexProps: Record<string, PropDef> = {\n zIndex: {\n type: 'number',\n className: 'z-index',\n variable: '--z-index',\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type BorderProps, borderProps} from './border'\nimport {type FlexChildProps, flexChildProps} from './flexChild'\nimport {type GridChildProps, gridChildProps} from './gridChild'\nimport {type HeightProps, heightProps} from './height'\nimport {type MarginProps, marginProps} from './margin'\nimport {type OverflowProps, overflowProps} from './overflow'\nimport {type PaddingProps, paddingProps} from './padding'\nimport {type PositionProps, positionProps} from './position'\nimport {type ShadowProps, shadowProps} from './shadow'\nimport {type ToneProps, toneProps} from './tone'\nimport {type WidthProps, widthProps} from './width'\nimport {type ZIndexProps, zIndexProps} from './zIndex'\n\n/** @public */\nexport interface LayoutProps\n extends\n ToneProps,\n WidthProps,\n HeightProps,\n MarginProps,\n BorderProps,\n PaddingProps,\n PositionProps,\n OverflowProps,\n FlexChildProps,\n GridChildProps,\n ZIndexProps,\n ShadowProps {}\n\nexport const layoutProps: Record<string, PropDef> = {\n ...toneProps,\n ...widthProps,\n ...heightProps,\n ...marginProps,\n ...borderProps,\n ...paddingProps,\n ...positionProps,\n ...overflowProps,\n ...flexChildProps,\n ...gridChildProps,\n ...shadowProps,\n ...zIndexProps,\n}\n","export const DISPLAY_BLOCK = ['block', 'inline-block', 'none'] as const\n/** @public */\nexport type DisplayBlock = (typeof DISPLAY_BLOCK)[number]\n\nexport const DISPLAY_FLEX = ['flex', 'inline-flex', 'none'] as const\n/** @public */\nexport type DisplayFlex = (typeof DISPLAY_FLEX)[number]\n\nexport const DISPLAY_GRID = ['grid', 'inline-grid', 'none'] as const\n/** @public */\nexport type DisplayGrid = (typeof DISPLAY_GRID)[number]\n","import {type LayoutProps, layoutProps} from '../../props/layout'\nimport {DISPLAY_BLOCK, type DisplayBlock} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface BoxProps<T extends React.ElementType = 'div'> extends LayoutProps {\n /**\n * HTML element or component to render.\n */\n as?: T\n /**\n * CSS `display` property.\n * @remarks Does not include `'flex'` or `'grid'`. Use the Flex or Grid components for those.\n */\n display?: Responsive<DisplayBlock>\n}\n\nexport const boxProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n display: {\n type: 'union',\n className: 'display',\n values: DISPLAY_BLOCK,\n },\n ...layoutProps,\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type BoxProps, boxProps} from './box.props'\n\nconst boxClassName = suffixClassName('sui-Box')\n\n/** @public */\nexport function Box<T extends ElementType = 'div'>({\n display = 'block',\n minHeight = '0',\n minWidth = '0',\n ...props\n}: BoxProps<T> & Omit<ComponentPropsWithRef<T>, keyof BoxProps<T>>) {\n const {as, children, className, style, ...rest} = getProps(\n {display, minHeight, minWidth, ...props},\n boxProps,\n )\n const Component = as || 'div'\n\n return (\n <Component className={clsx(boxClassName, className)} style={style} data-ui=\"Box\" {...rest}>\n {children}\n </Component>\n )\n}\n\nexport type {BoxProps}\n","export const ALIGN_ITEMS = ['baseline', 'center', 'flex-end', 'flex-start', 'stretch'] as const\n/** @public */\nexport type AlignItems = (typeof ALIGN_ITEMS)[number]\n\nexport const JUSTIFY_CONTENT = [\n 'flex-start',\n 'flex-end',\n 'center',\n 'space-between',\n 'space-around',\n 'space-evenly',\n] as const\n/** @public */\nexport type JustifyContent = (typeof JUSTIFY_CONTENT)[number]\n\nexport const FLEX_DIRECTION = ['row', 'row-reverse', 'column', 'column-reverse'] as const\n/** @public */\nexport type FlexDirection = (typeof FLEX_DIRECTION)[number]\n\nexport const FLEX_WRAP = ['wrap', 'wrap-reverse', 'nowrap'] as const\n/** @public */\nexport type FlexWrap = (typeof FLEX_WRAP)[number]\n","import {\n ALIGN_ITEMS,\n type AlignItems,\n FLEX_DIRECTION,\n FLEX_WRAP,\n type FlexDirection,\n type FlexWrap,\n JUSTIFY_CONTENT,\n type JustifyContent,\n} from '../types/Flex'\nimport {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\n/** @public */\nexport type FlexParentProps = {\n /** CSS **align-items** property */\n alignItems?: Responsive<AlignItems>\n /** CSS **justify-content** property */\n justifyContent?: Responsive<JustifyContent>\n /** CSS **flex-direction** property */\n flexDirection?: Responsive<FlexDirection>\n /** CSS **flex-wrap** property */\n flexWrap?: Responsive<FlexWrap>\n}\n\nexport const flexParentProps: Record<string, PropDef> = {\n alignItems: {\n type: 'union',\n className: 'align-items',\n values: ALIGN_ITEMS,\n },\n justifyContent: {\n type: 'union',\n className: 'justify-content',\n values: JUSTIFY_CONTENT,\n },\n flexDirection: {\n type: 'union',\n className: 'flex-direction',\n values: FLEX_DIRECTION,\n },\n flexWrap: {\n type: 'union',\n className: 'flex',\n values: FLEX_WRAP,\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {SPACE_INHERIT, type SpaceInherit} from '../types/Space'\n\n/** @public */\nexport type GapProps = {\n /** CSS **gap** property */\n gap?: Responsive<SpaceInherit>\n /** CSS **row-gap** property */\n rowGap?: Responsive<SpaceInherit>\n /** CSS **column-gap** property */\n columnGap?: Responsive<SpaceInherit>\n}\n\nexport const gapProps: Record<string, PropDef> = {\n gap: {\n type: 'union',\n className: 'gap',\n values: SPACE_INHERIT,\n },\n rowGap: {\n type: 'union',\n className: 'row-gap',\n values: SPACE_INHERIT,\n },\n columnGap: {\n type: 'union',\n className: 'column-gap',\n values: SPACE_INHERIT,\n },\n}\n","import {type FlexParentProps, flexParentProps} from '../../props/flexParent'\nimport {type GapProps, gapProps} from '../../props/gap'\nimport {type LayoutProps, layoutProps} from '../../props/layout'\nimport {DISPLAY_FLEX, type DisplayFlex} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface FlexProps<T extends React.ElementType = 'div'>\n extends FlexParentProps, GapProps, LayoutProps {\n /**\n * HTML element or component to render.\n */\n as?: T\n /**\n * CSS `display` property.\n */\n display?: Responsive<DisplayFlex>\n}\n\nexport const flexProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n display: {\n type: 'union',\n className: 'display',\n values: DISPLAY_FLEX,\n },\n ...flexParentProps,\n ...gapProps,\n ...layoutProps,\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type FlexProps, flexProps} from './flex.props'\n\nconst flexClassName = suffixClassName('sui-Flex')\n\n/** @public */\nexport function Flex<T extends ElementType = 'div'>({\n display = 'flex',\n minHeight = '0',\n minWidth = '0',\n ...props\n}: FlexProps<T> & Omit<ComponentPropsWithRef<T>, keyof FlexProps<T>>) {\n const {as, children, className, style, ...rest} = getProps(\n {display, minHeight, minWidth, ...props},\n flexProps,\n )\n const Component = as || 'div'\n\n return (\n <Component className={clsx(flexClassName, className)} style={style} data-ui=\"Flex\" {...rest}>\n {children}\n </Component>\n )\n}\n\nexport type {FlexProps}\n","export const FONT_WEIGHT = ['regular', 'medium', 'semibold', 'bold'] as const\n/** @public */\nexport type FontWeight = (typeof FONT_WEIGHT)[number]\n","export const TEXT_ALIGN = ['left', 'center', 'right', 'justify'] as const\n/** @public */\nexport type TextAlign = (typeof TEXT_ALIGN)[number]\n","import {FONT_WEIGHT, type FontWeight} from '../types/FontWeight'\nimport {type PropDef} from '../types/PropDef'\nimport type {Responsive} from '../types/Responsive'\nimport {TEXT_ALIGN, type TextAlign} from '../types/TextAlign'\nimport {type MarginProps, marginProps} from './margin'\nimport {type ToneProps, toneProps} from './tone'\n\n/** @public */\nexport interface TypographyProps extends MarginProps, ToneProps {\n /** CSS **text-align** property */\n align?: Responsive<TextAlign>\n /** CSS **color** property */\n muted?: boolean\n /** CSS **text-box-trim** property */\n trim?: boolean\n /** Number of lines to truncate */\n truncate?: Responsive<number>\n /** CSS **font-weight** property */\n weight?: FontWeight\n}\n\nexport const typographyProps: Record<string, PropDef> = {\n align: {\n type: 'union',\n className: 'text',\n values: TEXT_ALIGN,\n },\n muted: {\n type: 'boolean',\n className: 'text-muted',\n inverseClassName: 'text-default',\n },\n trim: {\n type: 'boolean',\n className: 'text-trim',\n inverseClassName: 'text-trim-none',\n },\n truncate: {\n type: 'conditional',\n resolve: (value) => {\n if (value === 1) {\n return {\n type: 'number',\n className: 'text-overflow',\n }\n } else {\n return {\n type: 'number',\n className: 'line-clamp',\n variable: '--line-clamp',\n }\n }\n },\n },\n weight: {\n type: 'union',\n className: 'weight',\n values: FONT_WEIGHT,\n },\n ...marginProps,\n ...toneProps,\n}\n","export const ICON_SIZE = [0, 1, 2, 3, 4] as const\n/** @public */\nexport type IconSize = (typeof ICON_SIZE)[number]\n","import type {ComponentProps, SVGProps} from 'react'\n\nimport {type MarginProps, marginProps} from '../../props/margin'\nimport {type ToneProps, toneProps} from '../../props/tone'\nimport {type TypographyProps, typographyProps} from '../../props/typography'\nimport {ICON_SIZE, type IconSize} from '../../types/Icon'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface IconProps\n extends ComponentProps<'svg'>, Pick<TypographyProps, 'muted'>, MarginProps, ToneProps {\n /**\n * The icon component to render.\n */\n icon: React.ComponentType<SVGProps<SVGSVGElement>>\n /**\n * Sets icon size.\n */\n size?: Responsive<IconSize>\n}\n\nexport const iconProps: Record<string, PropDef> = {\n icon: {\n type: 'string',\n },\n size: {\n type: 'union',\n className: 'icon-body',\n values: ICON_SIZE,\n },\n muted: typographyProps['muted'] as PropDef,\n ...toneProps,\n ...marginProps,\n}\n","import clsx from 'clsx'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type IconProps, iconProps} from './icon.props'\n\nconst iconClassName = suffixClassName('sui-Icon')\n\n/** @public */\nexport function Icon({size = 2, ...props}: IconProps) {\n const {className, style, icon: Component, ...rest} = getProps({size, ...props}, iconProps)\n\n return (\n <Component\n className={clsx(iconClassName, className)}\n data-ui=\"Icon\"\n style={style}\n aria-hidden={props['aria-label'] ? undefined : true}\n {...rest}\n />\n )\n}\n\nexport type {IconProps}\n","import {ICON_SIZE, type IconSize} from '../../types/Icon'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface SpinnerProps extends React.ComponentProps<'svg'> {\n /**\n * Size of the spinner icon.\n */\n size?: Responsive<IconSize>\n}\n\nexport const spinnerProps: Record<string, PropDef> = {\n size: {\n type: 'union',\n className: 'icon-body',\n values: ICON_SIZE,\n },\n}\n","import {SpinnerIcon} from '@sanity/icons/Spinner'\nimport clsx from 'clsx'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Icon} from '../icon/Icon'\nimport {type SpinnerProps, spinnerProps} from './spinner.props'\n\nconst spinnerClassName = suffixClassName('sui-Spinner')\n\n/** @public */\nexport function Spinner({size = 2, ...props}: SpinnerProps) {\n const {className, style, ...rest} = getProps({size, ...props}, spinnerProps)\n\n return (\n <Icon\n icon={SpinnerIcon}\n className={clsx(spinnerClassName, className)}\n style={style}\n data-ui=\"Spinner\"\n role=\"status\"\n aria-label=\"Loading...\"\n {...rest}\n />\n )\n}\n\nexport type {SpinnerProps}\n","export const TEXT_SIZE = [0, 1, 2, 3, 4] as const\n/** @public */\nexport type TextSize = (typeof TEXT_SIZE)[number]\n","import {type TypographyProps, typographyProps} from '../../props/typography'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\nimport {TEXT_SIZE, type TextSize} from '../../types/Text'\n\n/** @public */\nexport interface TextProps<T extends React.ElementType = 'span'> extends TypographyProps {\n /**\n * HTML element to render.\n */\n as?: T\n /**\n * Sets font size.\n */\n size?: Responsive<TextSize>\n}\n\nexport const textProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n size: {\n type: 'union',\n className: 'text-body',\n values: TEXT_SIZE,\n },\n ...typographyProps,\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type TextProps, textProps} from './text.props'\n\nconst textClassName = suffixClassName('sui-Text')\n\n/** @public */\nexport function Text<T extends ElementType = 'span'>({\n size = 2,\n ...props\n}: TextProps<T> & Omit<ComponentPropsWithRef<T>, keyof TextProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({size, ...props}, textProps)\n const Component = as || 'span'\n\n if (props.truncate && props.trim) {\n return (\n <Component\n className={clsx(\n textClassName,\n className?.replace('sui-line-clamp', '').replace('sui-text-overflow', ''),\n )}\n style={style}\n data-ui=\"Text\"\n {...rest}\n >\n <span\n className={clsx(\n 'sui-overflow-hidden',\n props.truncate === 1 ? 'sui-text-overflow' : 'sui-line-clamp',\n )}\n >\n {children}\n </span>\n </Component>\n )\n }\n\n return (\n <Component\n className={clsx(textClassName, props.truncate && 'sui-overflow-hidden', className)}\n style={style}\n data-ui=\"Text\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n\nexport type {TextProps}\n","export const BUTTON_DENSITY = ['regular', 'loose'] as const\nexport type ButtonDensity = (typeof BUTTON_DENSITY)[number]\n\nexport const BUTTON_LEVEL = ['primary', 'secondary', 'tertiary'] as const\nexport type ButtonLevel = (typeof BUTTON_LEVEL)[number]\n\nexport const BUTTON_TONE = ['neutral', 'critical'] as const\nexport type ButtonTone = (typeof BUTTON_TONE)[number]\n","import {gapProps} from '../../props/gap'\nimport {heightProps} from '../../props/height'\nimport {paddingProps} from '../../props/padding'\nimport {widthProps} from '../../props/width'\nimport {\n BUTTON_DENSITY,\n BUTTON_LEVEL,\n BUTTON_TONE,\n type ButtonDensity,\n type ButtonLevel,\n type ButtonTone,\n} from '../../types/Button'\nimport type {InteractiveAs} from '../../types/Interactive'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface ButtonProps<T extends React.ElementType = 'button'> {\n /**\n * HTML element to render.\n */\n as?: InteractiveAs<T>\n /**\n * Sets padding and gap together to specify size.\n */\n density?: ButtonDensity\n /**\n * Sets Button to fill the width of its container.\n */\n fullWidth?: Responsive<boolean>\n /**\n * Shows an icon in the start position (left side in left-to-right languages).\n */\n iconStart?: React.ElementType | React.ReactNode\n /**\n * Shows an icon in the end position (right side in left-to-right languages).\n */\n iconEnd?: React.ElementType | React.ReactNode\n /**\n * Sets the importance of Button's action.\n */\n level?: ButtonLevel\n /**\n * Places Button into a loading state.\n */\n loading?: boolean\n /**\n * Sets Button's text label.\n */\n text?: string\n /**\n * Sets Button's semantic meaning and related color.\n */\n tone?: ButtonTone\n}\n\nexport const buttonProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n density: {\n type: 'composite',\n values: BUTTON_DENSITY,\n composition: {\n gap: {\n propDef: gapProps['gap'] as PropDef,\n mapping: {\n regular: 2,\n loose: 3,\n },\n },\n padding: {\n propDef: paddingProps['padding'] as PropDef,\n mapping: {\n regular: 2,\n loose: 3,\n },\n },\n minHeight: {\n propDef: heightProps['minHeight'] as PropDef,\n mapping: {\n regular: '25px',\n loose: '33px',\n },\n },\n minWidth: {\n propDef: widthProps['minWidth'] as PropDef,\n mapping: {\n regular: '25px',\n loose: '33px',\n },\n },\n },\n },\n fullWidth: {\n type: 'boolean',\n className: 'width-full',\n inverseClassName: 'width-auto',\n },\n iconStart: {\n type: 'string',\n },\n iconEnd: {\n type: 'string',\n },\n level: {\n type: 'union',\n className: 'button-level',\n values: BUTTON_LEVEL,\n },\n loading: {\n type: 'boolean',\n },\n text: {\n type: 'string',\n },\n tone: {\n type: 'union',\n className: 'tone',\n values: BUTTON_TONE,\n },\n}\n","import clsx from 'clsx'\nimport {type ComponentPropsWithRef, type ElementType, isValidElement} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Flex} from '../flex/Flex'\nimport {Icon} from '../icon/Icon'\nimport {Spinner} from '../spinner/Spinner'\nimport {Text} from '../text/Text'\nimport {type ButtonProps, buttonProps} from './button.props'\n\nconst buttonClassName = suffixClassName('sui-Button')\n\n/** @public */\nexport function Button<T extends ElementType = 'button'>({\n density = 'regular',\n level = 'primary',\n tone = 'neutral',\n ...props\n}: ButtonProps<T> & Omit<ComponentPropsWithRef<T>, keyof ButtonProps<T>>) {\n const {\n as,\n children,\n className,\n disabled,\n style,\n iconStart: IconStart,\n iconEnd: IconEnd,\n loading,\n text,\n ...rest\n } = getProps({density, level, tone, ...props}, buttonProps)\n const Component = as || 'button'\n\n return (\n <Component\n className={clsx(\n buttonClassName,\n 'sui-display-inline-flex sui-align-items-center sui-justify-content-center sui-radius2 sui-position-relative sui-overflow-hidden',\n className,\n )}\n style={style}\n data-ui=\"Button\"\n disabled={disabled || loading}\n aria-busy={loading ? true : undefined}\n {...rest}\n >\n {loading && (\n <Flex position=\"absolute\" inset={0} alignItems=\"center\" justifyContent=\"center\">\n <Spinner />\n </Flex>\n )}\n\n {IconStart &&\n (isValidElement(IconStart) ? (\n IconStart\n ) : (\n <Icon icon={IconStart} marginX={-1} marginY={-2} size={1} />\n ))}\n\n {text && (\n <Text size={1} weight=\"medium\" trim>\n {text}\n </Text>\n )}\n\n {children}\n {IconEnd &&\n (isValidElement(IconEnd) ? (\n IconEnd\n ) : (\n <Icon icon={IconEnd} marginX={-1} marginY={-2} size={1} />\n ))}\n </Component>\n )\n}\n\nexport type {ButtonProps}\n","export const DENSITY = ['compact', 'regular', 'loose'] as const\n/** @public */\nexport type Density = (typeof DENSITY)[number]\n","import {borderProps} from '../../props/border'\nimport {gapProps} from '../../props/gap'\nimport {type MarginProps, marginProps} from '../../props/margin'\nimport {paddingProps} from '../../props/padding'\nimport {type ToneProps, toneProps} from '../../props/tone'\nimport {DENSITY, type Density} from '../../types/Density'\nimport {type PropDef} from '../../types/PropDef'\nimport {type Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface CardProps<T extends React.ElementType = 'div'> extends MarginProps, ToneProps {\n /**\n * HTML element or component to render.\n */\n as?: T\n /**\n * Sets padding, gap, and border-radius together to specify size. This prop is used in place of separate `padding`, `gap`, and `border-radius` props.\n */\n density?: Responsive<Density>\n}\n\nexport const cardProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n density: {\n type: 'composite',\n values: DENSITY,\n composition: {\n gap: {\n propDef: gapProps['gap'] as PropDef,\n mapping: {\n compact: 2,\n regular: 3,\n loose: 4,\n },\n },\n padding: {\n propDef: paddingProps['padding'] as PropDef,\n mapping: {\n compact: 3,\n regular: 4,\n loose: 5,\n },\n },\n radius: {\n propDef: borderProps['radius'] as PropDef,\n mapping: {\n compact: 2,\n regular: 3,\n loose: 4,\n },\n },\n },\n } satisfies PropDef<Density>,\n ...toneProps,\n ...marginProps,\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type CardProps, cardProps} from './card.props'\n\nconst cardClassName = suffixClassName('sui-Card')\n\n/** @public */\nexport function Card<T extends ElementType = 'div'>({\n density = 'regular',\n tone = 'neutral',\n ...props\n}: CardProps<T> & Omit<ComponentPropsWithRef<T>, keyof CardProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({density, tone, ...props}, cardProps)\n const Component = as || 'div'\n\n return (\n <Component\n className={clsx(cardClassName, 'sui-border', className)}\n style={style}\n data-ui=\"Card\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n\nexport type {CardProps}\n","import {type MarginProps, marginProps} from '../../props/margin'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @beta */\nexport interface LabelProps extends React.ComponentProps<'label'>, MarginProps {\n /**\n * Renders the label in a muted color.\n */\n disabled?: boolean\n /**\n * Renders the label in the error color.\n * @remarks Use when the linked input has a validation error.\n */\n error?: boolean\n}\n\nexport const labelProps: Record<string, PropDef> = {\n disabled: {\n type: 'boolean',\n },\n error: {\n type: 'boolean',\n },\n ...marginProps,\n}\n","import clsx from 'clsx'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Text} from '../text/Text'\nimport {type LabelProps, labelProps} from './label.props'\n\nconst labelClassName = suffixClassName('sui-Label')\n\n/** @beta */\nexport function Label(props: LabelProps) {\n const {children, className, style, disabled, error, ...rest} = getProps(props, labelProps)\n\n return (\n <Text\n as=\"label\"\n size={1}\n muted={disabled}\n className={clsx(\n labelClassName,\n 'sui-display-flex sui-align-items-center sui-gap2',\n error && 'sui-error',\n className,\n )}\n style={style}\n data-ui=\"Label\"\n {...rest}\n >\n {children}\n </Text>\n )\n}\n\nexport type {LabelProps}\n","import {type PropDef} from '../../types/PropDef'\n\n/** @public */\nexport interface VisuallyHiddenProps<T extends React.ElementType = 'span'> {\n /**\n * HTML element to render.\n */\n as?: T\n /**\n * If true, the element becomes visible on `:focus-visible`.\n */\n visibleOnFocus?: boolean\n}\n\nexport const visuallyHiddenProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n visibleOnFocus: {\n type: 'boolean',\n className: 'sui-visually-hidden-visible',\n },\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type VisuallyHiddenProps, visuallyHiddenProps} from './visuallyHidden.props'\n\nconst visuallyHiddenClassName = suffixClassName('sui-VisuallyHidden')\n\n/** @public */\nexport function VisuallyHidden<T extends ElementType = 'span'>(\n props: VisuallyHiddenProps<T> & Omit<ComponentPropsWithRef<T>, keyof VisuallyHiddenProps<T>>,\n) {\n const {as, children, className, style, ...rest} = getProps(props, visuallyHiddenProps)\n const Component = as || 'span'\n\n return (\n <Component\n className={clsx(visuallyHiddenClassName, className)}\n style={style}\n data-ui=\"VisuallyHidden\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n\nexport type {VisuallyHiddenProps}\n","import {type MarginProps, marginProps} from '../../props/margin'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @beta */\nexport interface CheckboxProps extends React.ComponentProps<'input'>, MarginProps {\n /**\n * Applies error styling to the checkbox mark.\n * @remarks Use when form validation fails. Pair with a visible error message. The prop is visual only.\n */\n error?: boolean\n /**\n * Renders the \"mixed state\" mark (a horizontal line).\n * @remarks Use when the checkbox controls a group with some-but-not-all children checked.\n */\n indeterminate?: boolean\n /**\n * Visible label next to the checkbox.\n */\n label: React.ReactNode\n}\n\nexport const checkboxProps: Record<string, PropDef> = {\n error: {\n type: 'boolean',\n },\n indeterminate: {\n type: 'boolean',\n },\n label: {\n type: 'string',\n },\n ...marginProps,\n}\n","import {CheckmarkIcon} from '@sanity/icons/Checkmark'\nimport {RemoveIcon} from '@sanity/icons/Remove'\nimport clsx from 'clsx'\nimport {useEffect, useRef} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Box} from '../box/Box'\nimport {Label} from '../label/Label'\nimport {VisuallyHidden} from '../visually-hidden/VisuallyHidden'\nimport {type CheckboxProps, checkboxProps} from './checkbox.props'\n\nconst checkboxClassName = suffixClassName('sui-Checkbox')\nconst checkboxInputClassName = suffixClassName('sui-CheckboxInput')\nconst checkboxMarkClassName = suffixClassName('sui-CheckboxMark')\n\n/** @beta */\nexport function Checkbox(props: CheckboxProps) {\n const inputRef = useRef<HTMLInputElement>(null)\n const {className, style, disabled, error, indeterminate, label, ...rest} = getProps(\n props,\n checkboxProps,\n )\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate\n }\n }, [indeterminate])\n\n return (\n <Label\n className={clsx(checkboxClassName, 'sui-position-relative', className)}\n style={style}\n data-ui=\"Checkbox\"\n disabled={disabled}\n error={error}\n >\n <VisuallyHidden\n as=\"input\"\n type=\"checkbox\"\n className={checkboxInputClassName}\n ref={inputRef}\n disabled={disabled}\n {...rest}\n />\n\n <Box\n as=\"span\"\n className={clsx(checkboxMarkClassName, error && 'sui-error')}\n position=\"relative\"\n radius={2}\n width=\"17px\"\n height=\"17px\"\n >\n {indeterminate ? <RemoveIcon /> : <CheckmarkIcon />}\n </Box>\n\n {label}\n </Label>\n )\n}\n\nexport type {CheckboxProps}\n","export const CODE_TAG = ['pre', 'span'] as const\nexport type CodeTag = (typeof CODE_TAG)[number]\n\nexport const CODE_SIZE = [0, 1, 2, 3, 4] as const\n/** @public */\nexport type CodeSize = (typeof CODE_SIZE)[number]\n","import {marginProps} from '../../props/margin'\nimport {type TypographyProps, typographyProps} from '../../props/typography'\nimport {CODE_SIZE, CODE_TAG, type CodeSize, type CodeTag} from '../../types/Code'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface CodeProps<T extends CodeTag = 'pre'> extends Omit<\n TypographyProps,\n 'align' | 'truncate' | 'tone'\n> {\n /**\n * HTML element or component to render.\n * @remarks The defined element wraps an inner `<code>` tag.\n */\n as?: T\n /**\n * Refractor language for syntax highlighting.\n */\n language?: string\n /**\n * Sets font size.\n */\n size?: Responsive<CodeSize>\n}\n\nexport const codeProps: Record<string, PropDef> = {\n as: {\n type: 'union',\n values: CODE_TAG,\n },\n language: {\n type: 'string',\n },\n size: {\n type: 'union',\n className: 'text-code',\n values: CODE_SIZE,\n },\n muted: typographyProps['muted'] as PropDef,\n trim: typographyProps['trim'] as PropDef,\n weight: typographyProps['weight'] as PropDef,\n ...marginProps,\n}\n","import clsx from 'clsx'\nimport {type ComponentPropsWithRef, lazy, Suspense} from 'react'\n\nimport {type CodeTag} from '../../types/Code'\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type CodeProps, codeProps} from './code.props'\n\nconst LazyRefractor = lazy(() => import('./LazyRefractor'))\n\nconst codeClassName = suffixClassName('sui-Code')\n\n/** @public */\nexport function Code<T extends CodeTag = 'pre'>({\n size = 2,\n ...props\n}: CodeProps<T> & Omit<ComponentPropsWithRef<T>, keyof CodeProps<T>>) {\n const {as, children, className, language, style, ...rest} = getProps({size, ...props}, codeProps)\n const Component = as || 'pre'\n\n if (!language) {\n return (\n <Component className={clsx(codeClassName, className)} style={style} data-ui=\"Code\" {...rest}>\n <code>{children}</code>\n </Component>\n )\n }\n\n return (\n <Component className={clsx(codeClassName, className)} style={style} data-ui=\"Code\" {...rest}>\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </Component>\n )\n}\n\nexport type {CodeProps}\n","export const CONTAINER_SIZE = [0, 1, 2, 3, 4, 5] as const\n/** @public */\nexport type ContainerSize = (typeof CONTAINER_SIZE)[number]\n","import {type LayoutProps, layoutProps} from '../../props/layout'\nimport {CONTAINER_SIZE, type ContainerSize} from '../../types/Container'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface ContainerProps<T extends React.ElementType = 'div'> extends LayoutProps {\n /**\n * HTML element or component to render.\n */\n as?: T\n /**\n * Maximum width of the container.\n */\n size?: Responsive<ContainerSize>\n}\n\nexport const containerProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n size: {\n type: 'union',\n className: 'container',\n values: CONTAINER_SIZE,\n },\n ...layoutProps,\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type ContainerProps, containerProps} from './container.props'\n\nconst containerClassName = suffixClassName('sui-Container')\n\n/** @public */\nexport function Container<T extends ElementType = 'div'>({\n marginX = 'auto',\n ...props\n}: ContainerProps<T> & Omit<ComponentPropsWithRef<T>, keyof ContainerProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({marginX, ...props}, containerProps)\n const Component = as || 'div'\n\n return (\n <Component\n className={clsx(containerClassName, className)}\n style={style}\n data-ui=\"Container\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n\nexport type {ContainerProps}\n","export const HEADING_TAG = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] as const\nexport type HeadingTag = (typeof HEADING_TAG)[number]\n\nexport const HEADING_SIZE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const\n/** @public */\nexport type HeadingSize = (typeof HEADING_SIZE)[number]\n","import {type TypographyProps, typographyProps} from '../../props/typography'\nimport {HEADING_SIZE, HEADING_TAG, type HeadingSize, type HeadingTag} from '../../types/Heading'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface HeadingProps extends TypographyProps {\n /**\n * Semantic heading element to render.\n * @remarks Always set this explicitly.\n */\n as?: HeadingTag\n /**\n * Sets font size.\n * @remarks Independent of `as`.\n */\n size?: Responsive<HeadingSize>\n}\n\nexport const headingProps: Record<string, PropDef> = {\n as: {\n type: 'union',\n values: HEADING_TAG,\n },\n size: {\n type: 'union',\n className: 'text-heading',\n values: HEADING_SIZE,\n },\n ...typographyProps,\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type HeadingProps, headingProps} from './heading.props'\n\nconst headingClassName = suffixClassName('sui-Heading')\n\n/** @public */\nexport function Heading<T extends ElementType = 'h2'>({\n size = 2,\n weight = 'bold',\n ...props\n}: HeadingProps & Omit<ComponentPropsWithRef<T>, keyof HeadingProps>) {\n const {as, children, className, style, ...rest} = getProps({size, weight, ...props}, headingProps)\n const Component = as || 'h2'\n\n if (props.truncate && props.trim) {\n return (\n <Component\n className={clsx(\n headingClassName,\n className?.replace('sui-line-clamp', '').replace('sui-text-overflow', ''),\n )}\n style={style}\n data-ui=\"Heading\"\n {...rest}\n >\n <span\n className={clsx(\n 'sui-overflow-hidden',\n props.truncate === 1 ? 'sui-text-overflow' : 'sui-line-clamp',\n )}\n >\n {children}\n </span>\n </Component>\n )\n }\n\n return (\n <Component\n className={clsx(headingClassName, props.truncate && 'sui-overflow-hidden', className)}\n style={style}\n data-ui=\"Heading\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n\nexport type {HeadingProps}\n","import type {SVGProps} from 'react'\nimport type React from 'react'\n\nimport {type PropDef} from '../../types/PropDef'\nimport {type ButtonProps, buttonProps} from '../button/button.props'\n\n/** @public */\nexport interface IconButtonProps<T extends React.ElementType = 'button'> extends Pick<\n ButtonProps<T>,\n 'as' | 'density' | 'level' | 'loading' | 'tone'\n> {\n /**\n * Accessible name for the button.\n * @remarks Because IconButtons have no visible text, this is required.\n */\n 'aria-label': string\n /**\n * Icon to render.\n */\n 'icon': React.ComponentType<SVGProps<SVGSVGElement>>\n}\n\nexport const iconButtonProps: Record<string, PropDef> = {\n 'aria-label': {\n type: 'string',\n },\n 'as': buttonProps['as'] as PropDef,\n 'icon': {\n type: 'string',\n },\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Button} from '../button/Button'\nimport {Icon} from '../icon/Icon'\nimport {type IconButtonProps, iconButtonProps} from './iconButton.props'\n\nconst iconButtonClassName = suffixClassName('sui-IconButton')\n\n/** @public */\nexport function IconButton<T extends ElementType = 'button'>(\n props: IconButtonProps<T> & Omit<ComponentPropsWithRef<T>, keyof IconButtonProps<T>>,\n) {\n const {as, className, style, icon: IconProp, ...rest} = getProps(props, iconButtonProps)\n const Component = as || 'button'\n\n return (\n <Button\n as={Component}\n className={clsx(iconButtonClassName, className)}\n style={style}\n data-ui=\"IconButton\"\n {...rest}\n >\n <Icon icon={IconProp} margin={-2} size={1} />\n </Button>\n )\n}\n\nexport type {IconButtonProps}\n","import {CONTAINER_SIZE, type ContainerSize} from '../../types/Container'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @beta */\nexport interface DialogProps extends Omit<React.ComponentProps<'dialog'>, 'open'> {\n /**\n * Text for the dialog heading.\n * @remarks Recommended for accessibility. The component sets `aria-labelledby` to the heading when you give this prop.\n */\n header?: string\n /**\n * A function to call alongside the native `close` event.\n * @remarks Use it to set `open` back to `false`. It runs for every close cause: the Escape key, a backdrop click, the close button, or a programmatic close.\n */\n onClose: React.ReactEventHandler<HTMLDialogElement>\n /**\n * Toggles the dialog's open state.\n * @remarks `true` calls `showModal()` on the element. `false` calls `close()`.\n */\n open?: boolean\n /** Sets the max width of the dialog */\n size?: Responsive<ContainerSize>\n /** CSS length value used to set the Dialog’s distance from the top of the viewport; Dialog is centered if not provided */\n topAnchor?: string\n}\n\nexport const dialogProps: Record<string, PropDef> = {\n header: {\n type: 'string',\n },\n open: {\n type: 'boolean',\n },\n size: {\n type: 'union',\n className: 'container',\n values: CONTAINER_SIZE,\n },\n topAnchor: {\n type: 'string',\n className: 'top-anchor',\n variable: '--top-anchor',\n },\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport clsx from 'clsx'\nimport {type ComponentProps, useEffect, useId, useRef} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Box} from '../box/Box'\nimport {Flex} from '../flex/Flex'\nimport {Heading} from '../heading/Heading'\nimport {IconButton} from '../icon-button/IconButton'\nimport {type DialogProps, dialogProps} from './dialog.props'\n\nconst dialogClassName = suffixClassName('sui-Dialog')\nconst dialogContentClassName = suffixClassName('sui-DialogContent')\nconst dialogFooterClassName = suffixClassName('sui-DialogFooter')\n\nfunction DialogRoot({open = false, size = 0, ...props}: DialogProps) {\n const {children, className, style, header, onClose, ...rest} = getProps(\n {size, ...props},\n dialogProps,\n )\n\n const dialogRef = useRef<HTMLDialogElement>(null)\n const headerId = useId()\n\n const dialogClasses = clsx(\n dialogClassName,\n `${props.topAnchor ? 'sui-mx-auto' : 'sui-m-auto'} sui-radius5 sui-shadow3 sui-p4 sui-flex-direction-column sui-gap4 sui-overflow-y-auto`,\n )\n\n useEffect(() => {\n const dialogElement = dialogRef.current\n if (!dialogElement) return\n\n // `open` = `open` prop\n // dialogElement.open = the `open` attribute on the HTML dialog element\n // The prop and the attribute are manipulated independently, thus they\n // can get out of sync if not handled within this effect.\n if (open) {\n if (!dialogElement.open) {\n dialogElement.showModal()\n }\n } else {\n if (dialogElement.open) {\n dialogElement.close()\n }\n }\n\n // Ensure the dialog is closed (and thus its `open` attribute updated)\n // when the component is unmounted.\n return () => {\n dialogElement.close()\n }\n }, [open])\n\n return (\n <dialog\n {...rest}\n ref={dialogRef}\n closedby=\"any\"\n aria-labelledby={header ? headerId : undefined}\n onClose={onClose}\n className={clsx(dialogClasses, className)}\n style={style}\n data-ui=\"Dialog\"\n >\n <Flex flexShrink={0} justifyContent=\"space-between\" alignItems=\"center\">\n {header ? (\n <Heading trim size={1} id={headerId}>\n {header}\n </Heading>\n ) : (\n <div />\n )}\n <IconButton\n aria-label=\"Close\"\n level=\"tertiary\"\n icon={CloseIcon}\n onClick={() => dialogRef.current?.close()}\n />\n </Flex>\n {children}\n </dialog>\n )\n}\n\nfunction DialogContent(props: ComponentProps<'div'>) {\n const {children, className, style, ...rest} = getProps(props, {})\n\n return (\n <Box\n {...rest}\n className={clsx(dialogContentClassName, className)}\n style={style}\n data-ui=\"DialogContent\"\n flexGrow={1}\n overflowY=\"auto\"\n >\n {children}\n </Box>\n )\n}\n\nfunction DialogFooter(props: ComponentProps<'div'>) {\n const {children, className, style, ...rest} = getProps(props, {})\n\n return (\n <Box\n {...rest}\n className={clsx(dialogFooterClassName, className)}\n style={style}\n data-ui=\"DialogFooter\"\n flexShrink={0}\n >\n {children}\n </Box>\n )\n}\n\nDialogRoot.displayName = 'Dialog'\n\n/**\n * @beta\n *\n * Renders a modal dialog element — should not be used for nonmodal dialogs.\n * Modal dialogs make their containing documents inert, and render on the topmost\n * layer within that containing document; they must be dimissed before the containing\n * document and its contents become unblocked. They also trap focus within the bounds\n * of the dialog element and its descendants.\n *\n * For more on dialogs and modality, refer to the HTML specification for the dialog element:\n * https://html.spec.whatwg.org/dev/interactive-elements.html#the-dialog-element\n */\nexport const Dialog = DialogRoot\n\nDialogRoot.Content = DialogContent\nDialogRoot.Footer = DialogFooter\n\nexport type {DialogProps}\n","import {type MarginProps, marginProps} from '../../props/margin'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @public */\nexport interface DividerProps extends React.ComponentProps<'hr'>, MarginProps {}\n\nexport const dividerProps: Record<string, PropDef> = {\n ...marginProps,\n}\n","import clsx from 'clsx'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type DividerProps, dividerProps} from './divider.props'\n\nconst dividerClassName = suffixClassName('sui-Divider')\n\n/** @public */\nexport function Divider(props: DividerProps) {\n const {className, style, ...rest} = getProps(props, dividerProps)\n\n return (\n <hr\n className={clsx(dividerClassName, 'sui-border-none sui-border-top', className)}\n style={style}\n data-ui=\"Divider\"\n {...rest}\n />\n )\n}\n\nexport type {DividerProps}\n","export const EYEBROW_SIZE = [0, 1, 2, 3, 4] as const\n/** @public */\nexport type EyebrowSize = (typeof EYEBROW_SIZE)[number]\n","import {type TypographyProps, typographyProps} from '../../props/typography'\nimport {EYEBROW_SIZE, type EyebrowSize} from '../../types/Eyebrow'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface EyebrowProps<T extends React.ElementType = 'span'> extends TypographyProps {\n /**\n * HTML element to render.\n */\n as?: T\n /**\n * Sets font size. Uses the same scale as Label.\n */\n size?: Responsive<EyebrowSize>\n}\n\nexport const eyebrowProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n size: {\n type: 'union',\n className: 'text-eyebrow',\n values: EYEBROW_SIZE,\n },\n ...typographyProps,\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type EyebrowProps, eyebrowProps} from './eyebrow.props'\n\nconst eyebrowClassName = suffixClassName('sui-Eyebrow')\n\n/** @public */\nexport function Eyebrow<T extends ElementType = 'span'>({\n size = 2,\n weight = 'semibold',\n ...props\n}: EyebrowProps<T> & Omit<ComponentPropsWithRef<T>, keyof EyebrowProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({size, weight, ...props}, eyebrowProps)\n const Component = as || 'span'\n\n if (props.truncate && props.trim) {\n return (\n <Component\n className={clsx(\n eyebrowClassName,\n className?.replace('sui-line-clamp', '').replace('sui-text-overflow', ''),\n )}\n style={style}\n data-ui=\"Eyebrow\"\n {...rest}\n >\n <span\n className={clsx(\n 'sui-overflow-hidden',\n props.truncate === 1 ? 'sui-text-overflow' : 'sui-line-clamp',\n )}\n >\n {children}\n </span>\n </Component>\n )\n }\n\n return (\n <Component\n className={clsx(eyebrowClassName, props.truncate && 'sui-overflow-hidden', className)}\n style={style}\n data-ui=\"Eyebrow\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n\nexport type {EyebrowProps}\n","export const GRID_AUTO_FLOW = ['row', 'column', 'row dense', 'column dense', 'dense'] as const\n/** @public */\nexport type GridAutoFlow = (typeof GRID_AUTO_FLOW)[number]\n","import {GRID_AUTO_FLOW, type GridAutoFlow} from '../types/Grid'\nimport {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\n/** @public */\nexport type GridParentProps = {\n /** CSS **grid-auto-flow** property */\n gridAutoFlow?: Responsive<GridAutoFlow>\n /** CSS **grid-auto-columns** property */\n gridAutoColumns?: Responsive<string>\n /** CSS **grid-auto-row** property */\n gridAutoRows?: Responsive<string>\n /** CSS **grid-template-columns** property */\n gridTemplateColumns?: Responsive<string>\n /** CSS **grid-template-rows** property */\n gridTemplateRows?: Responsive<string>\n}\n\nexport const gridParentProps: Record<string, PropDef> = {\n gridAutoFlow: {\n type: 'union',\n className: 'grid-auto-flow',\n values: GRID_AUTO_FLOW,\n },\n gridAutoColumns: {\n type: 'string',\n className: 'grid-auto-columns',\n variable: '--grid-auto-columns',\n },\n gridAutoRows: {\n type: 'string',\n className: 'grid-auto-rows',\n variable: '--grid-auto-rows',\n },\n gridTemplateColumns: {\n type: 'string',\n className: 'grid-template-columns',\n variable: '--grid-template-columns',\n },\n gridTemplateRows: {\n type: 'string',\n className: 'grid-template-rows',\n variable: '--grid-template-rows',\n },\n}\n","import {type GapProps, gapProps} from '../../props/gap'\nimport {type GridParentProps, gridParentProps} from '../../props/gridParent'\nimport {type LayoutProps, layoutProps} from '../../props/layout'\nimport {DISPLAY_GRID, type DisplayGrid} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface GridProps<T extends React.ElementType = 'div'>\n extends GridParentProps, GapProps, LayoutProps {\n /**\n * HTML element or component to render.\n */\n as?: T\n /**\n * CSS `display` property.\n */\n display?: Responsive<DisplayGrid>\n}\n\nexport const gridProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n display: {\n type: 'union',\n className: 'display',\n values: DISPLAY_GRID,\n },\n ...gridParentProps,\n ...gapProps,\n ...layoutProps,\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type GridProps, gridProps} from './grid.props'\n\nconst gridClassName = suffixClassName('sui-Grid')\n\n/** @public */\nexport function Grid<T extends ElementType = 'div'>({\n display = 'grid',\n minHeight = '0',\n minWidth = '0',\n ...props\n}: GridProps<T> & Omit<ComponentPropsWithRef<T>, keyof GridProps<T>>) {\n const {as, children, className, style, ...rest} = getProps(\n {display, minHeight, minWidth, ...props},\n gridProps,\n )\n const Component = as || 'div'\n\n return (\n <Component className={clsx(gridClassName, className)} style={style} data-ui=\"Grid\" {...rest}>\n {children}\n </Component>\n )\n}\n\nexport type {GridProps}\n","import {type GapProps, gapProps} from '../../props/gap'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @public */\nexport interface HStackProps<T extends React.ElementType = 'div'> extends Pick<GapProps, 'gap'> {\n /**\n * HTML element or component to render.\n */\n as?: T\n}\n\nexport const hStackProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n gap: gapProps['gap'] as PropDef,\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Flex} from '../flex/Flex'\nimport {type HStackProps, hStackProps} from './hStack.props'\n\nconst hStackClassName = suffixClassName('sui-HStack')\n\n/** @public */\nexport function HStack<T extends ElementType = 'div'>(\n props: HStackProps<T> & Omit<ComponentPropsWithRef<T>, keyof HStackProps<T>>,\n) {\n const {as, children, className, style, ...rest} = getProps(props, hStackProps)\n const Component = as || 'div'\n\n return (\n <Flex\n as={Component}\n className={clsx(hStackClassName, className)}\n style={style}\n data-ui=\"HStack\"\n display=\"inline-flex\"\n alignItems=\"center\"\n flexWrap=\"wrap\"\n {...rest}\n >\n {children}\n </Flex>\n )\n}\n\nexport type {HStackProps}\n","import {type ToneProps, toneProps} from '../../props/tone'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @beta */\nexport interface IndicatorProps<T extends React.ElementType = 'span'> extends ToneProps {\n /**\n * HTML element to render.\n */\n as?: T\n /**\n * Accessible label.\n */\n label?: string\n}\n\nexport const indicatorProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n label: {\n type: 'string',\n },\n ...toneProps,\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Box} from '../box/Box'\nimport {type IndicatorProps, indicatorProps} from './indicator.props'\n\nconst indicatorClassName = suffixClassName('sui-Indicator')\n\n/** @beta */\nexport function Indicator<T extends ElementType = 'span'>({\n tone = 'neutral',\n ...props\n}: IndicatorProps<T> & Omit<ComponentPropsWithRef<T>, keyof IndicatorProps<T>>) {\n const {as, children, className, style, label, ...rest} = getProps(\n {tone, ...props},\n indicatorProps,\n )\n const Component = as || 'span'\n const ariaLabel = label || rest['aria-label']\n\n return (\n <Box\n as={Component}\n className={clsx(indicatorClassName, className)}\n style={style}\n data-ui=\"Indicator\"\n width=\"5px\"\n height=\"5px\"\n radius=\"full\"\n aria-label={ariaLabel}\n aria-hidden={ariaLabel ? undefined : true}\n role={ariaLabel ? 'img' : undefined}\n {...rest}\n >\n {children}\n </Box>\n )\n}\n\nexport type {IndicatorProps}\n","import {type PropDef} from '../../types/PropDef'\n\n/** @public */\nexport interface IndicatorStackProps<T extends React.ElementType = 'div'> {\n /**\n * HTML element to render.\n */\n as?: T\n}\n\nexport const indicatorStackProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {HStack} from '../h-stack/HStack'\nimport {type IndicatorStackProps, indicatorStackProps} from './indicatorStack.props'\n\nconst indicatorStackClassName = suffixClassName('sui-IndicatorStack')\n\n/** @public */\nexport function IndicatorStack<T extends ElementType = 'div'>(\n props: IndicatorStackProps<T> & Omit<ComponentPropsWithRef<T>, keyof IndicatorStackProps<T>>,\n) {\n const {as, children, className, style, ...rest} = getProps(props, indicatorStackProps)\n const Component = as || 'div'\n\n return (\n <HStack\n as={Component}\n className={clsx(indicatorStackClassName, className)}\n style={style}\n data-ui=\"IndicatorStack\"\n {...rest}\n >\n {children}\n </HStack>\n )\n}\n\nexport type {IndicatorStackProps}\n","import {marginProps} from '../../props/margin'\nimport {type PaddingProps, paddingProps} from '../../props/padding'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\nimport {SPACE, type SpaceInherit} from '../../types/Space'\n\n/** @deprecated Use HStack component instead */\n/** @public */\nexport interface InlineProps<T extends React.ElementType = 'div'> extends PaddingProps {\n /**\n * HTML element or component to render.\n */\n as?: T\n /**\n * Space between children.\n */\n gap?: Responsive<SpaceInherit>\n}\n\nexport const inlineProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n gap: {\n type: 'composite',\n values: SPACE,\n composition: {\n marginTop: {\n propDef: marginProps['marginTop'] as PropDef,\n mapping: {\n 0: 0,\n 1: -1,\n 2: -2,\n 3: -3,\n 4: -4,\n 5: -5,\n 6: -6,\n 7: -7,\n 8: -8,\n 9: -9,\n },\n },\n marginLeft: {\n propDef: marginProps['marginLeft'] as PropDef,\n mapping: {\n 0: 0,\n 1: -1,\n 2: -2,\n 3: -3,\n 4: -4,\n 5: -5,\n 6: -6,\n 7: -7,\n 8: -8,\n 9: -9,\n },\n },\n },\n },\n ...paddingProps,\n}\n\nexport const inlineChildrenProps: Record<string, PropDef> = {\n gap: {\n type: 'composite',\n values: SPACE,\n composition: {\n paddingTop: {\n propDef: paddingProps['paddingTop'] as PropDef,\n mapping: {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n },\n },\n paddingLeft: {\n propDef: paddingProps['paddingLeft'] as PropDef,\n mapping: {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n },\n },\n },\n },\n}\n","import clsx from 'clsx'\nimport {Children, type ComponentPropsWithRef, type ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {inlineChildrenProps, type InlineProps, inlineProps} from './inline.props'\n\nconst inlineClassName = suffixClassName('sui-Inline')\n\n/** @deprecated Use HStack component instead */\n/** @public */\nexport function Inline<T extends ElementType = 'div'>(\n // oxlint-disable-next-line no-deprecated\n props: InlineProps<T> & Omit<ComponentPropsWithRef<T>, keyof InlineProps<T>>,\n) {\n const {as, children: childrenProp, className, style, ...rest} = getProps(props, inlineProps)\n const {className: childrenClassName} = getProps(props, inlineChildrenProps)\n const Component = as || 'div'\n\n const children = Children.map(\n childrenProp,\n (child) => child && <div className={childrenClassName}>{child}</div>,\n )\n\n return (\n <Component\n className={clsx(inlineClassName, className)}\n style={style}\n data-ui=\"Inline\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n\n// oxlint-disable-next-line no-deprecated\nexport type {InlineProps}\n","import {type PropDef} from '../../types/PropDef'\n\n/** @beta */\nexport interface LinkProps extends React.ComponentProps<'a'> {\n /**\n * Sets the link to `target=\"_blank\"` and `rel=\"noopener noreferrer\"`.\n */\n openInNewTab?: boolean\n /**\n * Underlines the link.\n */\n underlined?: boolean\n}\n\nexport const linkProps: Record<string, PropDef> = {\n openInNewTab: {\n type: 'boolean',\n },\n underlined: {\n type: 'boolean',\n className: 'underlined',\n },\n}\n","import clsx from 'clsx'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type LinkProps, linkProps} from './link.props'\n\nconst linkClassName = suffixClassName('sui-Link')\n\n/** @beta */\nexport function Link({underlined = true, ...props}: LinkProps) {\n const {children, className, style, openInNewTab, ...rest} = getProps(\n {underlined, ...props},\n linkProps,\n )\n\n return (\n <a\n className={clsx(linkClassName, className)}\n style={style}\n data-ui=\"Link\"\n {...(openInNewTab ? {target: '_blank', rel: 'noopener noreferrer'} : {})}\n {...rest}\n >\n {children}\n </a>\n )\n}\n\nexport type {LinkProps}\n","import type {InteractiveAs} from '../../types/Interactive'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @public */\nexport interface PressAreaProps<T extends React.ElementType = 'button'> {\n /**\n * Element or component to render.\n */\n as?: InteractiveAs<T>\n}\n\nexport const pressAreaProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type PressAreaProps, pressAreaProps} from './pressArea.props'\n\nconst pressAreaClassName = suffixClassName('sui-PressArea')\n\n/** @public */\nexport function PressArea<T extends ElementType = 'button'>(\n props: PressAreaProps<T> & Omit<ComponentPropsWithRef<T>, keyof PressAreaProps<T>>,\n) {\n const {as, children, className, style, ...rest} = getProps(props, pressAreaProps)\n const Component = as || 'button'\n\n return (\n <Component\n className={clsx(pressAreaClassName, 'sui-width-full', className)}\n style={style}\n data-ui=\"PressArea\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n\nexport type {PressAreaProps}\n","import {type GapProps, gapProps} from '../../props/gap'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @public */\nexport interface VStackProps<T extends React.ElementType = 'div'> extends Pick<GapProps, 'gap'> {\n /**\n * HTML element or component to render.\n */\n as?: T\n}\n\nexport const vStackProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n gap: gapProps['gap'] as PropDef,\n}\n","import clsx from 'clsx'\nimport type {ComponentPropsWithRef, ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Flex} from '../flex/Flex'\nimport {type VStackProps, vStackProps} from './vStack.props'\n\nconst vStackClassName = suffixClassName('sui-VStack')\n\n/** @public */\nexport function VStack<T extends ElementType = 'div'>(\n props: VStackProps<T> & Omit<ComponentPropsWithRef<T>, keyof VStackProps<T>>,\n) {\n const {as, children, className, style, ...rest} = getProps(props, vStackProps)\n const Component = as || 'div'\n\n return (\n <Flex\n as={Component}\n className={clsx(vStackClassName, className)}\n style={style}\n data-ui=\"VStack\"\n flexDirection=\"column\"\n {...rest}\n >\n {children}\n </Flex>\n )\n}\n\nexport type {VStackProps}\n","import type React from 'react'\n\nimport {type GapProps, gapProps} from '../../props/gap'\nimport {heightProps} from '../../props/height'\nimport {paddingProps} from '../../props/padding'\nimport {DENSITY, type Density} from '../../types/Density'\nimport type {InteractiveAs} from '../../types/Interactive'\nimport type {ListTag} from '../../types/List'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @beta */\nexport interface ListProps<T extends ListTag = 'ul'> extends Pick<GapProps, 'gap'> {\n /**\n * HTML element to render.\n */\n as?: T\n}\n\nexport const listProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n gap: gapProps['gap'] as PropDef,\n}\n\n/** @beta */\nexport interface ListItemProps extends React.ComponentProps<'li'> {\n /**\n * Sets horizontal padding, gap, and minimum row height together.\n */\n density?: Responsive<Density>\n /**\n * Slot at the left edge of the row.\n */\n start?: React.ReactNode\n /**\n * Slot at the right edge of the row.\n */\n end?: React.ReactNode\n}\n\nexport const listItemProps: Record<string, PropDef> = {\n density: {\n type: 'composite',\n values: DENSITY,\n composition: {\n gap: {\n propDef: gapProps['gap'] as PropDef,\n mapping: {\n compact: 2,\n regular: 2,\n loose: 3,\n },\n },\n minHeight: {\n propDef: heightProps['minHeight'] as PropDef,\n mapping: {\n compact: '33px',\n regular: '37px',\n loose: '45px',\n },\n },\n paddingX: {\n propDef: paddingProps['padding'] as PropDef,\n mapping: {\n compact: 1,\n regular: 2,\n loose: 3,\n },\n },\n },\n },\n end: {\n type: 'string',\n },\n start: {\n type: 'string',\n },\n}\n\n/** @beta */\nexport interface ListButtonItemProps<T extends React.ElementType = 'button'> extends ListItemProps {\n /**\n * Element or component to render for the press target.\n */\n as?: InteractiveAs<T>\n /**\n * Marks the row as the current selection.\n */\n selected?: boolean\n}\n\nexport const listButtonItemProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n selected: {\n type: 'boolean',\n },\n ...listItemProps,\n}\n\n/** @beta */\nexport interface ListItemTextProps<T extends React.ElementType = 'div'> {\n /**\n * HTML element to render.\n */\n as?: T\n /**\n * Main label.\n */\n title?: React.ReactNode\n /**\n * Text below the title.\n */\n subtitle?: React.ReactNode\n}\n\nexport const listItemTextProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n title: {\n type: 'string',\n },\n subtitle: {\n type: 'string',\n },\n}\n","import clsx from 'clsx'\nimport type {ComponentProps, ComponentPropsWithRef, ElementType} from 'react'\n\nimport type {ListTag} from '../../types/List'\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Flex} from '../flex/Flex'\nimport {PressArea} from '../press-area/PressArea'\nimport {Text} from '../text/Text'\nimport {VStack} from '../v-stack/VStack'\nimport {\n listButtonItemProps,\n type ListButtonItemProps,\n type ListItemProps,\n listItemProps,\n type ListItemTextProps,\n listItemTextProps,\n type ListProps,\n listProps,\n} from './list.props'\n\nconst listClassName = suffixClassName('sui-List')\nconst listItemClassName = suffixClassName('sui-ListItem')\nconst listButtonItemClassName = suffixClassName('sui-ListButtonItem')\nconst listItemTextClassName = suffixClassName('sui-ListItemText')\nconst listItemImageClassName = suffixClassName('sui-ListItemImage')\n\nfunction ListRoot<T extends ListTag = 'ul'>(\n props: ListProps<T> & Omit<ComponentPropsWithRef<T>, keyof ListProps<T>>,\n) {\n const {as, children, className, style, ...rest} = getProps(props, listProps)\n const Component = as || 'ul'\n\n return (\n <VStack\n as={Component}\n className={clsx(listClassName, className)}\n style={style}\n data-ui=\"List\"\n {...rest}\n >\n {children}\n </VStack>\n )\n}\n\nfunction ListItem({density = 'regular', ...props}: ListItemProps) {\n const {children, className, style, end, start, ...rest} = getProps(\n {density, ...props},\n listItemProps,\n )\n\n return (\n <li\n className={clsx(\n listItemClassName,\n 'sui-width-full sui-display-flex sui-align-items-center',\n className,\n )}\n style={style}\n data-ui=\"ListItem\"\n {...rest}\n >\n {start}\n\n <Flex flexGrow={1} gap=\"inherit\">\n {children}\n </Flex>\n\n {end}\n </li>\n )\n}\n\nfunction ListButtonItem<T extends ElementType = 'button'>({\n density = 'regular',\n ...props\n}: ListButtonItemProps<T> & Omit<ComponentPropsWithRef<T>, keyof ListButtonItemProps<T>>) {\n const {as, children, className, style, end, start, selected, ...rest} = getProps(\n {density, ...props},\n listButtonItemProps,\n )\n const Component = as || 'button'\n\n return (\n <li>\n <PressArea\n as={Component}\n className={clsx(\n listButtonItemClassName,\n 'sui-width-full sui-display-flex sui-align-items-center sui-radius2',\n className,\n )}\n style={style}\n data-ui=\"ListButtonItem\"\n data-selected={selected}\n {...rest}\n >\n {start}\n\n <Flex flexGrow={1} gap=\"inherit\">\n {children}\n </Flex>\n\n {end}\n </PressArea>\n </li>\n )\n}\n\nfunction ListItemText<T extends ElementType = 'div'>(\n props: ListItemTextProps<T> & Omit<ComponentPropsWithRef<T>, keyof ListItemTextProps<T>>,\n) {\n const {as, className, style, title, subtitle, ...rest} = getProps(props, listItemTextProps)\n const Component = as || 'div'\n\n return (\n <Flex\n as={Component}\n className={clsx(listItemTextClassName, className)}\n style={style}\n data-ui=\"ListItemText\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n gap={2}\n flexGrow={1}\n {...rest}\n >\n {title && (\n <Text size={1} weight=\"medium\" trim truncate={1}>\n {title}\n </Text>\n )}\n\n {subtitle && (\n <Text size={1} muted trim truncate={1}>\n {subtitle}\n </Text>\n )}\n </Flex>\n )\n}\n\nfunction ListItemImage(props: ComponentProps<'img'>) {\n const {className, style, ...rest} = getProps(props, {})\n\n return (\n <img\n className={clsx(listItemImageClassName, 'sui-radius2', className)}\n style={style}\n data-ui=\"ListItemImage\"\n {...rest}\n />\n )\n}\n\nListRoot.displayName = 'List'\n\n/** @beta */\nexport const List = ListRoot\n\nListRoot.Item = ListItem\nListRoot.ButtonItem = ListButtonItem\nListRoot.ItemText = ListItemText\nListRoot.ItemImage = ListItemImage\n\nexport type {ListProps, ListItemProps, ListButtonItemProps, ListItemTextProps}\n","import {useSyncExternalStore} from 'react'\n\n/** @public */\nexport function useIsClient() {\n return useSyncExternalStore(\n () => () => {},\n () => true,\n () => false,\n )\n}\n","function isReactEventHandler(key: string, value: unknown): value is (e: never) => void {\n return /^on[A-Z]/.test(key) && typeof value === 'function'\n}\n\nfunction chainEventHandlers<E>(\n ...handlers: (((e: E) => void) | undefined)[]\n): ((e: E) => void) | undefined {\n const defined = handlers.filter(Boolean) as ((e: E) => void)[]\n\n if (defined.length === 0) {\n return undefined\n }\n\n if (defined.length === 1) {\n return defined[0]\n }\n\n return (e: E) => {\n for (const handler of defined) {\n handler(e)\n }\n }\n}\n\nexport function mergeTriggerProps(\n childProps: Record<string, unknown>,\n forwardedProps?: Record<string, unknown>,\n ownProps?: Record<string, unknown>,\n) {\n const result: Record<string, unknown> = {}\n\n for (const source of [forwardedProps, ownProps]) {\n if (!source) {\n continue\n }\n\n for (const [key, value] of Object.entries(source)) {\n if (key === 'style') {\n continue\n }\n\n if (isReactEventHandler(key, value)) {\n result[key] = chainEventHandlers(result[key] as (e: never) => void, value)\n continue\n }\n\n if (value !== undefined) {\n result[key] = value\n }\n }\n }\n\n result['style'] = {\n ...(childProps['style'] as object),\n ...(forwardedProps?.['style'] as object),\n ...(ownProps?.['style'] as object),\n }\n\n for (const [key, value] of Object.entries(childProps)) {\n if (isReactEventHandler(key, value)) {\n result[key] = chainEventHandlers(result[key] as (e: never) => void, value)\n }\n }\n\n return result\n}\n","import {type ReactNode} from 'react'\nimport {createPortal} from 'react-dom'\n\nexport function renderPortal(node: ReactNode, mounted: boolean, portal?: boolean) {\n if (!portal) {\n return node\n }\n\n if (!mounted) {\n return null\n }\n\n return createPortal(node, document.body)\n}\n","export const PLACEMENT = [\n 'top',\n 'top-start',\n 'top-end',\n 'right',\n 'right-start',\n 'right-end',\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n 'left',\n 'left-start',\n 'left-end',\n] as const\n/** @public */\nexport type Placement = (typeof PLACEMENT)[number]\n","import {PLACEMENT, type Placement} from '../types/Placement'\nimport {type PropDef} from '../types/PropDef'\n\n/** @public */\nexport type PlacementProps = {\n /** Placement relative to anchor */\n placement?: Placement\n}\n\nexport const placementProps: Record<string, PropDef> = {\n placement: {\n type: 'union',\n className: 'placement',\n values: PLACEMENT,\n },\n}\n","import {type PlacementProps, placementProps} from '../../props/placement'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @beta */\nexport interface PopoverProps\n extends Omit<React.ComponentProps<'div'>, 'children' | 'content'>, PlacementProps {\n /**\n * Shared anchor identifier.\n * @remarks Set the same value on a Tooltip and a Popover to point both at one trigger.\n */\n anchorName?: React.ReactNode\n /**\n * The trigger element.\n * @remarks Popover clones it and attaches the `popovertarget` attribute that opens the floating layer.\n */\n children: React.ReactElement<Record<string, unknown>>\n /**\n * The floating content.\n */\n content?: React.ReactNode\n /**\n * Renders the content into `document.body` through a React portal instead of inline.\n */\n portal?: boolean\n}\n\nexport const popoverProps: Record<string, PropDef> = {\n anchorName: {\n type: 'string',\n },\n content: {\n type: 'string',\n },\n portal: {\n type: 'boolean',\n },\n ...placementProps,\n}\n","import clsx from 'clsx'\nimport {Activity, cloneElement, useId, useState, type ToggleEvent} from 'react'\n\nimport {useIsClient} from '../../hooks/useIsClient'\nimport {getProps} from '../../utils/getProps'\nimport {mergeTriggerProps} from '../../utils/mergeTriggerProps'\nimport {renderPortal} from '../../utils/renderPortal'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type PopoverProps, popoverProps} from './popover.props'\n\nconst popoverClassName = suffixClassName('sui-PopoverContent')\n\nfunction PopoverRoot({\n placement = 'bottom',\n ...props\n}: PopoverProps & {\n triggerProps?: Record<string, unknown>\n}) {\n const {\n children,\n className,\n style,\n id: idProp,\n anchorName,\n content,\n portal,\n triggerProps: forwardedTriggerProps,\n ...rest\n } = getProps({placement, ...props}, popoverProps)\n const reactId = useId()\n const id = idProp || reactId\n const [open, setOpen] = useState(false)\n const isClient = useIsClient()\n\n const handleToggle = (e: ToggleEvent) => {\n setOpen(e.newState === 'open')\n }\n\n const triggerProps = {\n popoverTarget: id,\n style: {anchorName: `--anchor-${anchorName || id}`},\n }\n\n const trigger = children.type.forwardsTriggerProps\n ? cloneElement(children, {triggerProps})\n : cloneElement(children, mergeTriggerProps(children.props, forwardedTriggerProps, triggerProps))\n\n return (\n <>\n {trigger}\n\n {renderPortal(\n <Activity mode={open ? 'visible' : 'hidden'}>\n <div\n className={clsx(\n popoverClassName,\n 'sui-px2 sui-py1 sui-radius2 sui-position-fixed sui-shadow2',\n className,\n )}\n style={{\n ...style,\n positionAnchor: `--anchor-${anchorName || id}`,\n }}\n data-ui=\"Popover\"\n popover=\"auto\"\n id={id}\n onToggle={handleToggle}\n {...rest}\n >\n {content}\n </div>\n </Activity>,\n isClient,\n portal,\n )}\n </>\n )\n}\n\n/** @beta */\nexport const Popover = Object.assign(PopoverRoot, {\n forwardsTriggerProps: true,\n})\n\nexport type {PopoverProps}\n","import {type MarginProps, marginProps} from '../../props/margin'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @beta */\nexport interface RadioProps extends React.ComponentProps<'input'>, MarginProps {\n /**\n * Applies error styling to the radio mark.\n * @remarks Use when form validation fails. Pair with a visible error message. The prop is visual only.\n */\n error?: boolean\n /**\n * Visible label next to the radio.\n */\n label: React.ReactNode\n}\n\nexport const radioProps: Record<string, PropDef> = {\n error: {\n type: 'boolean',\n },\n label: {\n type: 'string',\n },\n ...marginProps,\n}\n","import clsx from 'clsx'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Box} from '../box/Box'\nimport {Label} from '../label/Label'\nimport {VisuallyHidden} from '../visually-hidden/VisuallyHidden'\nimport {type RadioProps, radioProps} from './radio.props'\n\nconst radioClassName = suffixClassName('sui-Radio')\nconst radioInputClassName = suffixClassName('sui-RadioInput')\nconst radioMarkClassName = suffixClassName('sui-RadioMark')\n\n/** @beta */\nexport function Radio(props: RadioProps) {\n const {className, style, label, disabled, error, ...rest} = getProps(props, radioProps)\n\n return (\n <Label\n className={clsx(radioClassName, 'sui-position-relative', className)}\n style={style}\n data-ui=\"Radio\"\n disabled={disabled}\n error={error}\n >\n <VisuallyHidden\n as=\"input\"\n type=\"radio\"\n className={radioInputClassName}\n disabled={disabled}\n {...rest}\n />\n\n <Box\n as=\"span\"\n className={clsx(radioMarkClassName, error && 'sui-error')}\n position=\"relative\"\n radius=\"full\"\n width=\"17px\"\n height=\"17px\"\n />\n\n {label}\n </Label>\n )\n}\n\nexport type {RadioProps}\n","import {type PropDef} from '../../types/PropDef'\n\n/** @beta */\nexport interface SkipToContentProps extends React.ComponentProps<'a'> {\n /**\n * Same-page fragment to jump to.\n * @remarks Note: The hash character # is required for proper linking.\n */\n href: string\n /**\n * Visible and announced text.\n */\n label: string\n /**\n * Not accepted.\n * @remarks Pass text via `label`.\n */\n children?: never\n}\n\nexport const skipToContentProps: Record<string, PropDef> = {\n label: {\n type: 'string',\n },\n}\n","import clsx from 'clsx'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Link} from '../link/Link'\nimport {Text} from '../text/Text'\nimport {VisuallyHidden} from '../visually-hidden/VisuallyHidden'\nimport {type SkipToContentProps, skipToContentProps} from './skipToContent.props'\n\nconst skipToContentClassName = suffixClassName('sui-SkipToContent')\n\n/** @beta */\nexport function SkipToContent(props: SkipToContentProps) {\n const {className, label, style, ...rest} = getProps(props, skipToContentProps)\n\n return (\n <VisuallyHidden\n as={Link}\n underlined={false}\n className={clsx(\n skipToContentClassName,\n 'sui-position-absolute sui-top2 sui-left2 sui-display-inline-block sui-z-index sui-py2 sui-px3 sui-radius2 sui-text-body1',\n className,\n )}\n style={style}\n data-ui=\"SkipToContent\"\n visibleOnFocus\n {...rest}\n >\n <Text size={1}>{label}</Text>\n </VisuallyHidden>\n )\n}\n\nexport type {SkipToContentProps}\n","import {type MarginProps, marginProps} from '../../props/margin'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @beta */\nexport interface SwitchProps extends React.ComponentProps<'input'>, MarginProps {\n /**\n * Applies error styling to the switch track.\n * @remarks Use when form validation fails. Pair with a visible error message. The prop is visual only.\n */\n error?: boolean\n /**\n * Visible label next to the switch.\n */\n label: React.ReactNode\n}\n\nexport const switchProps: Record<string, PropDef> = {\n error: {\n type: 'boolean',\n },\n label: {\n type: 'string',\n },\n ...marginProps,\n}\n","import clsx from 'clsx'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Flex} from '../flex/Flex'\nimport {Label} from '../label/Label'\nimport {VisuallyHidden} from '../visually-hidden/VisuallyHidden'\nimport {type SwitchProps, switchProps} from './switch.props'\n\nconst switchClassName = suffixClassName('sui-Switch')\nconst switchInputClassName = suffixClassName('sui-SwitchInput')\nconst switchMarkClassName = suffixClassName('sui-SwitchMark')\n\n/** @beta */\nexport function Switch(props: SwitchProps) {\n const {className, style, disabled, error, label, ...rest} = getProps(props, switchProps)\n\n return (\n <Label\n className={clsx(switchClassName, 'sui-position-relative', className)}\n style={style}\n data-ui=\"Switch\"\n disabled={props.disabled}\n error={error}\n >\n <VisuallyHidden\n as=\"input\"\n type=\"checkbox\"\n role=\"switch\"\n className={switchInputClassName}\n disabled={disabled}\n {...rest}\n />\n\n <Flex\n as=\"span\"\n className={clsx(switchMarkClassName, error && 'sui-error')}\n alignItems=\"center\"\n radius={6}\n aria-hidden=\"true\"\n />\n\n {label}\n </Label>\n )\n}\n\nexport type {SwitchProps}\n","import {type PlacementProps, placementProps} from '../../props/placement'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @beta */\nexport interface TooltipProps\n extends Omit<React.ComponentProps<'div'>, 'children' | 'content'>, PlacementProps {\n /**\n * Shared anchor identifier.\n */\n anchorName?: React.ReactNode\n /**\n * The trigger element.\n */\n children: React.ReactElement<Record<string, unknown>>\n /**\n * The tooltip label.\n */\n content?: React.ReactNode\n /**\n * Renders the label into `document.body` through a React portal instead of inline.\n */\n portal?: boolean\n}\n\nexport const tooltipProps: Record<string, PropDef> = {\n anchorName: {\n type: 'string',\n },\n content: {\n type: 'string',\n },\n portal: {\n type: 'boolean',\n },\n ...placementProps,\n}\n","import clsx from 'clsx'\nimport {cloneElement, useId, useState, type ToggleEvent} from 'react'\n\nimport {useIsClient} from '../../hooks/useIsClient'\nimport {getProps} from '../../utils/getProps'\nimport {mergeTriggerProps} from '../../utils/mergeTriggerProps'\nimport {renderPortal} from '../../utils/renderPortal'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type TooltipProps, tooltipProps} from './tooltip.props'\n\nconst tooltipClassName = suffixClassName('sui-Tooltip')\n\nfunction TooltipRoot({\n placement = 'bottom',\n ...props\n}: TooltipProps & {\n triggerProps?: Record<string, unknown>\n}) {\n const {\n children,\n className,\n style,\n id: idProp,\n anchorName,\n content,\n portal,\n triggerProps: forwardedTriggerProps,\n ...rest\n } = getProps({placement, ...props}, tooltipProps)\n const reactId = useId()\n const id = idProp || reactId\n const [dismissed, setDismissed] = useState(false)\n const isClient = useIsClient()\n\n const triggerProps = {\n 'aria-describedby': id,\n 'interestfor': id,\n 'style': {anchorName: `--anchor-${anchorName || id}`},\n 'onMouseLeave': () => {\n setDismissed(false)\n },\n 'onBlur': () => {\n setDismissed(false)\n },\n 'onClick': () => {\n setDismissed(true)\n document.getElementById(id)?.hidePopover()\n },\n }\n\n const trigger = children.type.forwardsTriggerProps\n ? cloneElement(children, {triggerProps})\n : cloneElement(children, mergeTriggerProps(children.props, forwardedTriggerProps, triggerProps))\n\n const handleBeforeToggle = (e: ToggleEvent) => {\n if (e.newState === 'open' && dismissed) {\n e.preventDefault()\n }\n }\n\n return (\n <>\n {trigger}\n\n {renderPortal(\n <div\n className={clsx(\n tooltipClassName,\n 'sui-px2 sui-py1 sui-radius2 sui-position-fixed sui-shadow2',\n className,\n )}\n style={{\n ...style,\n positionAnchor: `--anchor-${anchorName || id}`,\n }}\n data-ui=\"Tooltip\"\n role=\"tooltip\"\n popover=\"hint\"\n id={id}\n onBeforeToggle={handleBeforeToggle}\n {...rest}\n >\n {content}\n </div>,\n isClient,\n portal,\n )}\n </>\n )\n}\n\n/** @beta */\nexport const Tooltip = Object.assign(TooltipRoot, {\n forwardsTriggerProps: true,\n}) as typeof TooltipRoot\n\nexport type {TooltipProps}\n","import {type PropDef} from '../../types/PropDef'\n\n/** @public */\nexport interface TooltipGroupProps<T extends React.ElementType = 'div'> {\n /**\n * HTML element to render.\n */\n as?: T\n}\n\nexport const tooltipGroupProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n}\n","import clsx from 'clsx'\nimport {type ComponentPropsWithRef, type ElementType, useRef, useState} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {type TooltipGroupProps, tooltipGroupProps} from './tooltipGroup.props'\n\nconst tooltipGroupClassName = suffixClassName('sui-TooltipGroup')\n\n/** @public */\nexport function TooltipGroup<T extends ElementType = 'div'>(\n props: TooltipGroupProps<T> & Omit<ComponentPropsWithRef<T>, keyof TooltipGroupProps<T>>,\n) {\n const {as, children, className, style, ...rest} = getProps(props, tooltipGroupProps)\n const Component = as || 'div'\n const ref = useRef<HTMLElement>(null)\n const [isActive, setIsActive] = useState(false)\n\n const handleTransitionEnd = (e: TransitionEvent) => {\n const tooltip = (e.target as Element).closest('[data-ui=\"Tooltip\"]')\n\n if (!tooltip) {\n return\n }\n\n if (e.propertyName === 'opacity' && window.getComputedStyle(tooltip).opacity !== '0') {\n setIsActive(true)\n }\n }\n\n const handleMouseLeave = () => {\n setIsActive(false)\n }\n\n const handleBlur = (e: FocusEvent) => {\n if (ref.current && ref.current.contains(e.relatedTarget as Node)) {\n return\n }\n\n setIsActive(false)\n }\n\n return (\n <Component\n className={clsx(tooltipGroupClassName, className)}\n style={{\n ...style,\n ...(isActive && {\n '--tooltip-delay-group': '0ms',\n }),\n }}\n data-ui=\"TooltipGroup\"\n ref={ref}\n onTransitionEnd={handleTransitionEnd}\n onMouseLeave={handleMouseLeave}\n onBlur={handleBlur}\n {...rest}\n >\n {children}\n </Component>\n )\n}\n\nexport type {TooltipGroupProps}\n","import {type ToneProps, toneProps} from '../../props/tone'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @public */\nexport interface BadgeProps<T extends React.ElementType = 'span'> extends ToneProps {\n /**\n * HTML element to render.\n */\n as?: T\n /**\n * Shows an icon in the start position (left side in left-to-right languages).\n */\n iconStart?: React.ElementType | React.ReactNode\n /**\n * Sets Badge's text label. Use instead of children unless you have a special use case.\n */\n text?: string\n}\n\nexport const badgeProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n iconStart: {\n type: 'string',\n },\n text: {\n type: 'string',\n },\n ...toneProps,\n}\n","import clsx from 'clsx'\nimport {isValidElement, type ComponentPropsWithRef, type ElementType} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {suffixClassName} from '../../utils/suffixClassName'\nimport {Icon} from '../icon/Icon'\nimport {Text} from '../text/Text'\nimport {type BadgeProps, badgeProps} from './badge.props'\n\nconst badgeClassName = suffixClassName('sui-Badge')\n\n/** @public */\nexport function Badge<T extends ElementType = 'span'>({\n tone = 'neutral',\n ...props\n}: BadgeProps<T> & Omit<ComponentPropsWithRef<T>, keyof BadgeProps<T>>) {\n const {\n as,\n children,\n className,\n style,\n iconStart: IconStart,\n text,\n ...rest\n } = getProps({tone, ...props}, badgeProps)\n const Component = as || 'span'\n\n const paddingClasses = IconStart ? 'sui-p1' : 'sui-px2 sui-py1'\n\n const badgeClasses = clsx(\n badgeClassName,\n `${paddingClasses} sui-radius-full sui-display-inline-flex sui-align-items-center sui-gap1`,\n )\n\n return (\n <Component className={clsx(badgeClasses, className)} style={style} data-ui=\"Badge\" {...rest}>\n {IconStart &&\n (isValidElement(IconStart) ? (\n IconStart\n ) : (\n <Icon icon={IconStart} marginX={-1} marginY={-2} size={0} />\n ))}\n {text && (\n <Text size={1} trim>\n {text}\n </Text>\n )}\n {children}\n </Component>\n )\n}\n\nexport type {BadgeProps}\n"],"names":["PREFIX","BREAKPOINTS_LENGTH","getProps","componentProps","propDefs","allComponentProps","allPropDefs","flattenCompositeProps","restProps","className","style","key","propDef","propValue","type","Array","isArray","i","len","Math","min","length","resolvedPropDef","getResolvedPropDef","clsx","getClassName","getStyle","resolve","bp","values","includes","inverseClassName","variable","props","compositeKey","composition","compositeValue","getCompositeValue","mapping","HASH","suffixClassName","RADIUS","borderProps","border","borderTop","borderRight","borderBottom","borderLeft","radius","flexChildProps","flexBasis","flexGrow","flexShrink","gridChildProps","gridColumn","gridColumnStart","gridColumnEnd","gridRow","gridRowStart","gridRowEnd","heightProps","height","minHeight","maxHeight","SPACE","SPACE_AUTO","SPACE_INHERIT","SPACE_AUTO_NEGATIVE","marginProps","margin","marginX","marginY","marginTop","marginRight","marginBottom","marginLeft","OVERFLOW","overflowProps","overflow","overflowX","overflowY","paddingProps","padding","paddingX","paddingY","paddingTop","paddingRight","paddingBottom","paddingLeft","POSITION","positionProps","position","inset","top","right","bottom","left","SHADOW","shadowProps","shadow","TONE","toneProps","tone","widthProps","width","minWidth","maxWidth","zIndexProps","zIndex","layoutProps","DISPLAY_BLOCK","DISPLAY_FLEX","DISPLAY_GRID","boxProps","as","display","boxClassName","Box","t0","$","_c","T0","children","rest","t1","t2","t3","t4","undefined","t5","t6","t7","ALIGN_ITEMS","JUSTIFY_CONTENT","FLEX_DIRECTION","FLEX_WRAP","flexParentProps","alignItems","justifyContent","flexDirection","flexWrap","gapProps","gap","rowGap","columnGap","flexProps","flexClassName","Flex","FONT_WEIGHT","TEXT_ALIGN","typographyProps","align","muted","trim","truncate","value","weight","ICON_SIZE","iconProps","icon","size","iconClassName","Icon","Component","spinnerProps","spinnerClassName","Spinner","SpinnerIcon","TEXT_SIZE","textProps","textClassName","Text","Symbol","for","bb0","replace","t8","t9","BUTTON_DENSITY","BUTTON_LEVEL","BUTTON_TONE","buttonProps","density","regular","loose","fullWidth","iconStart","iconEnd","level","loading","text","buttonClassName","Button","t10","t11","t12","t13","t14","disabled","IconStart","IconEnd","isValidElement","DENSITY","cardProps","compact","cardClassName","Card","labelProps","error","labelClassName","Label","visuallyHiddenProps","visibleOnFocus","visuallyHiddenClassName","VisuallyHidden","checkboxProps","indeterminate","label","checkboxClassName","checkboxInputClassName","checkboxMarkClassName","Checkbox","inputRef","useRef","useEffect","current","CODE_TAG","CODE_SIZE","codeProps","language","LazyRefractor","lazy","codeClassName","Code","CONTAINER_SIZE","containerProps","containerClassName","Container","HEADING_TAG","HEADING_SIZE","headingProps","headingClassName","Heading","iconButtonProps","iconButtonClassName","IconButton","IconProp","dialogProps","header","open","topAnchor","dialogClassName","dialogContentClassName","dialogFooterClassName","DialogRoot","onClose","dialogRef","headerId","useId","dialogClasses","dialogElement","showModal","close","CloseIcon","DialogContent","DialogFooter","displayName","Dialog","Content","Footer","dividerProps","dividerClassName","Divider","EYEBROW_SIZE","eyebrowProps","eyebrowClassName","Eyebrow","GRID_AUTO_FLOW","gridParentProps","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridProps","gridClassName","Grid","hStackProps","hStackClassName","HStack","indicatorProps","indicatorClassName","Indicator","ariaLabel","indicatorStackProps","indicatorStackClassName","IndicatorStack","inlineProps","inlineChildrenProps","inlineClassName","Inline","childrenProp","childrenClassName","child","Children","map","linkProps","openInNewTab","underlined","linkClassName","Link","target","rel","pressAreaProps","pressAreaClassName","PressArea","vStackProps","vStackClassName","VStack","listProps","listItemProps","end","start","listButtonItemProps","selected","listItemTextProps","title","subtitle","listClassName","listItemClassName","listButtonItemClassName","listItemTextClassName","listItemImageClassName","ListRoot","ListItem","ListButtonItem","ListItemText","ListItemImage","List","Item","ButtonItem","ItemText","ItemImage","useIsClient","useSyncExternalStore","_temp2","_temp3","_temp4","_temp","isReactEventHandler","test","chainEventHandlers","handlers","defined","filter","Boolean","e","handler","mergeTriggerProps","childProps","forwardedProps","ownProps","result","source","Object","entries","renderPortal","node","mounted","portal","createPortal","document","body","PLACEMENT","placementProps","placement","popoverProps","anchorName","content","popoverClassName","PopoverRoot","id","idProp","triggerProps","forwardedTriggerProps","reactId","setOpen","useState","isClient","newState","handleToggle","popoverTarget","trigger","forwardsTriggerProps","cloneElement","positionAnchor","Popover","assign","radioProps","radioClassName","radioInputClassName","radioMarkClassName","Radio","T1","skipToContentProps","skipToContentClassName","SkipToContent","switchProps","switchClassName","switchInputClassName","switchMarkClassName","Switch","tooltipProps","tooltipClassName","TooltipRoot","dismissed","setDismissed","onClick","getElementById","hidePopover","preventDefault","handleBeforeToggle","Tooltip","tooltipGroupProps","tooltipGroupClassName","TooltipGroup","ref","isActive","setIsActive","tooltip","closest","propertyName","window","getComputedStyle","opacity","handleTransitionEnd","handleMouseLeave","e_0","contains","relatedTarget","handleBlur","badgeProps","badgeClassName","Badge","badgeClasses"],"mappings":"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"}