@sanity/ui 3.0.0-static.20 → 3.0.0-static.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (500) hide show
  1. package/README.md +2 -1
  2. package/dist/_chunks-cjs/_visual-editing.cjs +198 -862
  3. package/dist/_chunks-cjs/_visual-editing.cjs.map +1 -1
  4. package/dist/_chunks-cjs/refractor.cjs +0 -1
  5. package/dist/_chunks-cjs/refractor.cjs.map +1 -1
  6. package/dist/_chunks-es/_visual-editing.js +211 -874
  7. package/dist/_chunks-es/_visual-editing.js.map +1 -1
  8. package/dist/_chunks-es/refractor.js +0 -1
  9. package/dist/_chunks-es/refractor.js.map +1 -1
  10. package/dist/_visual-editing.d.cts +34 -100
  11. package/dist/_visual-editing.d.ts +34 -100
  12. package/dist/css.cjs +368 -4123
  13. package/dist/css.cjs.map +1 -1
  14. package/dist/css.d.cts +13095 -8462
  15. package/dist/css.d.ts +13095 -8462
  16. package/dist/css.js +368 -4124
  17. package/dist/css.js.map +1 -1
  18. package/dist/index.cjs +769 -141
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +93 -287
  21. package/dist/index.d.ts +93 -287
  22. package/dist/index.js +740 -112
  23. package/dist/index.js.map +1 -1
  24. package/dist/theme.cjs +31 -10
  25. package/dist/theme.cjs.map +1 -1
  26. package/dist/theme.d.cts +2 -2
  27. package/dist/theme.d.ts +2 -2
  28. package/dist/theme.js +31 -10
  29. package/dist/theme.js.map +1 -1
  30. package/dist/ui.css +21459 -24610
  31. package/package.json +17 -12
  32. package/src/cli/buildCommand.ts +1 -91
  33. package/src/core/_compat/theme/themeColorProvider.tsx +0 -2
  34. package/src/core/_compat/theme/themeProvider.tsx +0 -2
  35. package/src/core/components/autocomplete/autocomplete.tsx +15 -15
  36. package/src/core/components/autocomplete/autocompleteOption.tsx +0 -2
  37. package/src/core/components/breadcrumbs/breadcrumbs.tsx +2 -4
  38. package/src/core/components/dialog/dialog.tsx +9 -13
  39. package/src/core/components/dialog/dialogCard.tsx +2 -10
  40. package/src/core/components/dialog/dialogContext.ts +4 -2
  41. package/src/core/components/dialog/dialogProvider.tsx +3 -4
  42. package/src/core/components/hotkeys/hotkeys.tsx +0 -2
  43. package/src/core/components/menu/menu.tsx +2 -4
  44. package/src/core/components/menu/menuButton.tsx +0 -2
  45. package/src/core/components/menu/menuDivider.tsx +2 -4
  46. package/src/core/components/menu/menuGroup.tsx +0 -2
  47. package/src/core/components/menu/menuItem.tsx +2 -4
  48. package/src/core/components/skeleton/codeSkeleton.tsx +6 -10
  49. package/src/core/components/skeleton/headingSkeleton.tsx +6 -10
  50. package/src/core/components/skeleton/labelSkeleton.tsx +6 -10
  51. package/src/core/components/skeleton/skeleton.tsx +4 -8
  52. package/src/core/components/skeleton/textSkeleton.tsx +6 -10
  53. package/src/core/components/tab/tab.tsx +0 -2
  54. package/src/core/components/tab/tabList.tsx +0 -2
  55. package/src/core/components/tab/tabPanel.tsx +0 -2
  56. package/src/core/components/toast/toast.tsx +6 -36
  57. package/src/core/components/toast/toastLayer.tsx +0 -2
  58. package/src/core/components/toast/toastProvider.tsx +2 -3
  59. package/src/core/components/tree/tree.tsx +0 -2
  60. package/src/core/components/tree/treeGroup.tsx +0 -2
  61. package/src/core/components/tree/treeItem.tsx +3 -5
  62. package/src/core/helpers/props.ts +18 -0
  63. package/src/core/hooks/index.ts +1 -0
  64. package/src/core/hooks/useArrayProp.ts +1 -4
  65. package/src/core/hooks/useResponsiveProp.ts +28 -0
  66. package/src/core/index.ts +0 -1
  67. package/src/core/lib/isArray.ts +3 -0
  68. package/src/core/primitives/_selectable/selectable.tsx +2 -6
  69. package/src/core/primitives/avatar/avatar.tsx +15 -17
  70. package/src/core/primitives/avatar/avatarCounter.tsx +14 -15
  71. package/src/core/primitives/avatar/avatarStack.tsx +14 -22
  72. package/src/core/primitives/badge/badge.tsx +3 -10
  73. package/src/core/primitives/box/box.tsx +90 -70
  74. package/src/core/primitives/button/button.tsx +10 -21
  75. package/src/core/primitives/card/card.tsx +5 -11
  76. package/src/core/primitives/card/cardProvider.tsx +2 -2
  77. package/src/core/primitives/card/useCard.ts +1 -0
  78. package/src/core/primitives/checkbox/checkbox.tsx +4 -6
  79. package/src/core/primitives/code/code.tsx +5 -10
  80. package/src/core/primitives/code/refractor.tsx +0 -2
  81. package/src/core/primitives/container/container.tsx +2 -11
  82. package/src/core/primitives/flex/flex.tsx +29 -4
  83. package/src/core/primitives/grid/grid.tsx +0 -2
  84. package/src/core/primitives/heading/heading.tsx +8 -13
  85. package/src/core/primitives/inline/inline.tsx +22 -6
  86. package/src/core/primitives/kbd/kbd.tsx +2 -4
  87. package/src/core/primitives/label/label.tsx +7 -12
  88. package/src/core/primitives/popover/popover.tsx +11 -9
  89. package/src/core/primitives/popover/popoverLayer.tsx +1 -3
  90. package/src/core/primitives/radio/radio.tsx +4 -5
  91. package/src/core/primitives/select/select.tsx +0 -2
  92. package/src/core/primitives/spinner/animatedSpinnerIcon.tsx +6 -10
  93. package/src/core/primitives/spinner/spinner.tsx +6 -6
  94. package/src/core/primitives/stack/stack.tsx +16 -6
  95. package/src/core/primitives/switch/switch.tsx +1 -4
  96. package/src/core/primitives/text/text.tsx +9 -19
  97. package/src/core/primitives/textArea/textArea.tsx +0 -2
  98. package/src/core/primitives/textInput/textInput.tsx +40 -47
  99. package/src/core/primitives/tooltip/tooltip.tsx +4 -12
  100. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -2
  101. package/src/core/primitives/tooltip/tooltipLayer.tsx +0 -2
  102. package/src/core/primitives/types.ts +6 -6
  103. package/src/core/types/flex.ts +3 -3
  104. package/src/core/utils/arrow/arrow.tsx +11 -5
  105. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -2
  106. package/src/core/utils/elementQuery/elementQuery.tsx +0 -2
  107. package/src/core/utils/layer/layer.tsx +3 -3
  108. package/src/core/utils/layer/layerCard.tsx +0 -2
  109. package/src/core/utils/layer/layerProvider.tsx +6 -7
  110. package/src/core/utils/portal/portal.tsx +0 -2
  111. package/src/core/utils/portal/portalProvider.tsx +0 -2
  112. package/src/core/utils/srOnly/srOnly.tsx +2 -9
  113. package/src/core/utils/virtualList/virtualList.tsx +0 -2
  114. package/src/css/__theme/index.ts +16 -0
  115. package/src/css/__theme/lib/contract/buildVarContract.ts +78 -0
  116. package/src/css/__theme/lib/contract/index.ts +4 -0
  117. package/src/css/__theme/lib/contract/types.ts +17 -0
  118. package/src/css/__theme/resolveTheme.ts +865 -0
  119. package/src/css/_responsiveClassName.ts +45 -0
  120. package/src/css/_responsiveStyle.css.ts +34 -0
  121. package/src/css/_style.css.ts +9 -0
  122. package/src/css/components/breadcrumbs/breadcrumbs.css.ts +6 -0
  123. package/src/css/components/breadcrumbs/breadcrumbs.ts +4 -3
  124. package/src/css/components/dialog/dialog.css.ts +81 -0
  125. package/src/css/components/dialog/dialog.ts +12 -12
  126. package/src/css/components/index.ts +6 -0
  127. package/src/css/components/menu/menu.css.ts +14 -0
  128. package/src/css/components/menu/menu.ts +6 -5
  129. package/src/css/components/skeleton/skeleton.css.ts +132 -0
  130. package/src/css/components/skeleton/skeleton.ts +8 -8
  131. package/src/css/components/skeleton/types.ts +9 -3
  132. package/src/css/components/toast/toast.css.ts +16 -0
  133. package/src/css/components/toast/toast.ts +3 -18
  134. package/src/css/components/tree/tree.css.ts +65 -0
  135. package/src/css/components/tree/tree.ts +4 -3
  136. package/src/css/defaultTheme.css.ts +468 -0
  137. package/src/css/index.ts +11 -37
  138. package/src/css/layers.css.ts +9 -0
  139. package/src/css/primitives/_arrow/_arrow.css.ts +68 -0
  140. package/src/css/primitives/_arrow/_arrow.ts +10 -5
  141. package/src/css/primitives/_input/_input.css.ts +258 -0
  142. package/src/css/primitives/_input/input.ts +10 -12
  143. package/src/css/primitives/_input/types.ts +1 -1
  144. package/src/css/primitives/_selectable/_selectable.css.ts +121 -0
  145. package/src/css/primitives/_selectable/selectable.ts +3 -3
  146. package/src/css/primitives/_selectable/types.ts +2 -1
  147. package/src/css/primitives/avatar/avatar.css.ts +175 -0
  148. package/src/css/primitives/avatar/avatar.ts +45 -10
  149. package/src/css/primitives/avatar/types.ts +1 -0
  150. package/src/css/primitives/badge/badge.css.ts +26 -0
  151. package/src/css/primitives/badge/badge.ts +2 -6
  152. package/src/css/primitives/badge/types.ts +4 -3
  153. package/src/css/primitives/box/box.css.ts +19 -0
  154. package/src/css/primitives/box/box.ts +39 -9
  155. package/src/css/primitives/box/types.ts +35 -8
  156. package/src/css/primitives/button/button.css.ts +285 -0
  157. package/src/css/primitives/button/button.ts +10 -7
  158. package/src/css/primitives/button/types.ts +10 -4
  159. package/src/css/primitives/card/card.css.ts +365 -0
  160. package/src/css/primitives/card/card.ts +5 -4
  161. package/src/css/primitives/card/types.ts +2 -3
  162. package/src/css/primitives/checkbox/checkbox.css.ts +193 -0
  163. package/src/css/primitives/checkbox/checkbox.ts +11 -5
  164. package/src/css/primitives/code/code.css.ts +271 -0
  165. package/src/css/primitives/code/code.ts +8 -4
  166. package/src/css/primitives/code/types.ts +3 -2
  167. package/src/css/primitives/container/container.css.ts +4 -0
  168. package/src/css/primitives/container/container.ts +9 -3
  169. package/src/css/primitives/container/types.ts +1 -0
  170. package/src/css/primitives/heading/heading.css.ts +85 -0
  171. package/src/css/primitives/heading/heading.ts +9 -10
  172. package/src/css/primitives/heading/types.ts +3 -2
  173. package/src/css/primitives/index.ts +24 -0
  174. package/src/css/primitives/kbd/kbd.css.ts +16 -0
  175. package/src/css/primitives/kbd/kbd.ts +3 -3
  176. package/src/css/primitives/kbd/types.ts +2 -3
  177. package/src/css/primitives/label/label.css.ts +85 -0
  178. package/src/css/primitives/label/label.ts +9 -4
  179. package/src/css/primitives/label/types.ts +3 -2
  180. package/src/css/primitives/popover/popover.css.ts +6 -0
  181. package/src/css/primitives/popover/popover.ts +6 -5
  182. package/src/css/primitives/radio/radio.css.ts +78 -0
  183. package/src/css/primitives/radio/radio.ts +14 -3
  184. package/src/css/primitives/select/select.css.ts +24 -0
  185. package/src/css/primitives/select/select.ts +3 -3
  186. package/src/css/primitives/spinner/index.ts +1 -0
  187. package/src/css/primitives/spinner/spinner.css.ts +23 -0
  188. package/src/css/primitives/spinner/spinner.ts +7 -5
  189. package/src/css/primitives/spinner/types.ts +4 -0
  190. package/src/css/primitives/stack/stack.css.ts +6 -0
  191. package/src/css/primitives/stack/stack.ts +4 -3
  192. package/src/css/primitives/switch/switch.css.ts +98 -0
  193. package/src/css/primitives/switch/switch.ts +8 -7
  194. package/src/css/primitives/text/text.css.ts +85 -0
  195. package/src/css/primitives/text/text.ts +9 -5
  196. package/src/css/primitives/text/types.ts +3 -2
  197. package/src/css/primitives/textArea/textArea.css.ts +4 -0
  198. package/src/css/primitives/textArea/textArea.ts +2 -2
  199. package/src/css/primitives/textArea/types.ts +4 -2
  200. package/src/css/primitives/textInput/textInput.css.ts +41 -0
  201. package/src/css/primitives/textInput/textInput.ts +5 -5
  202. package/src/css/primitives/textInput/types.ts +4 -2
  203. package/src/css/primitives/tooltip/index.ts +1 -0
  204. package/src/css/primitives/tooltip/tooltip.css.ts +6 -0
  205. package/src/css/primitives/tooltip/tooltip.ts +7 -3
  206. package/src/css/primitives/tooltip/types.ts +4 -0
  207. package/src/css/props/alignItems/alignItems.css.ts +22 -0
  208. package/src/css/props/alignItems/alignItems.ts +8 -0
  209. package/src/css/props/alignItems/index.ts +2 -0
  210. package/src/css/props/alignItems/types.ts +9 -0
  211. package/src/css/props/border/border.css.ts +65 -0
  212. package/src/css/props/border/border.ts +36 -0
  213. package/src/css/props/border/types.ts +13 -0
  214. package/src/css/props/boxSizing/boxSizing.css.ts +11 -0
  215. package/src/css/props/boxSizing/boxSizing.ts +10 -0
  216. package/src/css/{aspects → props}/boxSizing/types.ts +1 -3
  217. package/src/css/props/display/display.css.ts +56 -0
  218. package/src/css/props/display/display.ts +17 -0
  219. package/src/css/props/flex/flex.css.ts +52 -0
  220. package/src/css/props/flex/flex.ts +8 -0
  221. package/src/css/props/flex/types.ts +9 -0
  222. package/src/css/props/flexDirection/flexDirection.css.ts +19 -0
  223. package/src/css/props/flexDirection/flexDirection.ts +8 -0
  224. package/src/css/props/flexDirection/index.ts +2 -0
  225. package/src/css/props/flexDirection/types.ts +9 -0
  226. package/src/css/props/flexWrap/flexWrap.css.ts +16 -0
  227. package/src/css/props/flexWrap/flexWrap.ts +8 -0
  228. package/src/css/props/flexWrap/index.ts +2 -0
  229. package/src/css/props/flexWrap/types.ts +9 -0
  230. package/src/css/props/font/font.css.ts +93 -0
  231. package/src/css/props/font/font.ts +8 -0
  232. package/src/css/props/gap/gap.css.ts +40 -0
  233. package/src/css/props/gap/gap.ts +13 -0
  234. package/src/css/props/gridAutoColumns/gridAutoColumns.css.ts +19 -0
  235. package/src/css/props/gridAutoColumns/gridAutoColumns.ts +8 -0
  236. package/src/css/props/gridAutoColumns/index.ts +2 -0
  237. package/src/css/props/gridAutoColumns/types.ts +19 -0
  238. package/src/css/props/gridAutoFlow/gridAutoFlow.css.ts +19 -0
  239. package/src/css/props/gridAutoFlow/gridAutoFlow.ts +8 -0
  240. package/src/css/props/gridAutoFlow/index.ts +2 -0
  241. package/src/css/props/gridAutoFlow/types.ts +13 -0
  242. package/src/css/props/gridAutoRows/gridAutoRows.css.ts +19 -0
  243. package/src/css/props/gridAutoRows/gridAutoRows.ts +8 -0
  244. package/src/css/props/gridAutoRows/index.ts +2 -0
  245. package/src/css/props/gridAutoRows/types.ts +13 -0
  246. package/src/css/props/gridColumn/gridColumn.css.ts +49 -0
  247. package/src/css/props/gridColumn/gridColumn.ts +8 -0
  248. package/src/css/props/gridColumn/index.ts +2 -0
  249. package/src/css/props/gridColumn/types.ts +19 -0
  250. package/src/css/props/gridColumnEnd/gridColumnEnd.css.ts +46 -0
  251. package/src/css/props/gridColumnEnd/gridColumnEnd.ts +8 -0
  252. package/src/css/props/gridColumnEnd/index.ts +2 -0
  253. package/src/css/props/gridColumnEnd/types.ts +19 -0
  254. package/src/css/props/gridColumnStart/gridColumnStart.css.ts +46 -0
  255. package/src/css/props/gridColumnStart/gridColumnStart.ts +11 -0
  256. package/src/css/props/gridColumnStart/index.ts +2 -0
  257. package/src/css/props/gridColumnStart/types.ts +19 -0
  258. package/src/css/props/gridRow/gridRow.css.ts +49 -0
  259. package/src/css/props/gridRow/gridRow.ts +8 -0
  260. package/src/css/props/gridRow/index.ts +2 -0
  261. package/src/css/props/gridRow/types.ts +19 -0
  262. package/src/css/props/gridRowEnd/gridRowEnd.css.ts +46 -0
  263. package/src/css/props/gridRowEnd/gridRowEnd.ts +8 -0
  264. package/src/css/props/gridRowEnd/index.ts +2 -0
  265. package/src/css/props/gridRowEnd/types.ts +19 -0
  266. package/src/css/props/gridRowStart/gridRowStart.css.ts +46 -0
  267. package/src/css/props/gridRowStart/gridRowStart.ts +8 -0
  268. package/src/css/props/gridRowStart/index.ts +2 -0
  269. package/src/css/props/gridRowStart/types.ts +19 -0
  270. package/src/css/props/gridTemplateColumns/gridTemplateColumns.css.ts +43 -0
  271. package/src/css/props/gridTemplateColumns/gridTemplateColumns.ts +8 -0
  272. package/src/css/props/gridTemplateColumns/index.ts +2 -0
  273. package/src/css/props/gridTemplateColumns/types.ts +19 -0
  274. package/src/css/props/gridTemplateRows/gridTemplateRows.css.ts +43 -0
  275. package/src/css/props/gridTemplateRows/gridTemplateRows.ts +8 -0
  276. package/src/css/props/gridTemplateRows/index.ts +2 -0
  277. package/src/css/props/gridTemplateRows/types.ts +19 -0
  278. package/src/css/props/height/height.css.ts +25 -0
  279. package/src/css/props/height/height.ts +8 -0
  280. package/src/css/{aspects → props}/height/index.ts +1 -0
  281. package/src/css/props/height/types.ts +15 -0
  282. package/src/css/{aspects → props}/index.ts +16 -3
  283. package/src/css/props/inset/inset.css.ts +37 -0
  284. package/src/css/props/inset/inset.ts +21 -0
  285. package/src/css/props/justifyContent/index.ts +2 -0
  286. package/src/css/props/justifyContent/justifyContent.css.ts +25 -0
  287. package/src/css/props/justifyContent/justifyContent.ts +8 -0
  288. package/src/css/props/justifyContent/types.ts +15 -0
  289. package/src/css/props/margin/margin.css.ts +117 -0
  290. package/src/css/props/margin/margin.ts +25 -0
  291. package/src/css/props/maxWidth/maxWidth.css.ts +32 -0
  292. package/src/css/props/maxWidth/maxWidth.ts +8 -0
  293. package/src/css/{aspects → props}/maxWidth/types.ts +4 -1
  294. package/src/css/props/minHeight/minHeight.css.ts +13 -0
  295. package/src/css/props/minHeight/minHeight.ts +8 -0
  296. package/src/css/props/minWidth/minWidth.css.ts +25 -0
  297. package/src/css/props/minWidth/minWidth.ts +8 -0
  298. package/src/css/props/outline/index.ts +2 -0
  299. package/src/css/props/outline/outline.css.ts +10 -0
  300. package/src/css/props/outline/outline.ts +8 -0
  301. package/src/css/props/outline/types.ts +7 -0
  302. package/src/css/props/overflow/overflow.css.ts +16 -0
  303. package/src/css/props/overflow/overflow.ts +8 -0
  304. package/src/css/props/overflow/types.ts +17 -0
  305. package/src/css/props/padding/padding.css.ts +87 -0
  306. package/src/css/props/padding/padding.ts +25 -0
  307. package/src/css/props/padding/types.ts +17 -0
  308. package/src/css/props/pointerEvents/pointerEvents.css.ts +13 -0
  309. package/src/css/props/pointerEvents/pointerEvents.ts +8 -0
  310. package/src/css/props/position/position.css.ts +22 -0
  311. package/src/css/props/position/position.ts +8 -0
  312. package/src/css/props/radius/radius.css.ts +21 -0
  313. package/src/css/props/radius/radius.ts +8 -0
  314. package/src/css/props/shadow/shadow.css.ts +23 -0
  315. package/src/css/props/shadow/shadow.ts +8 -0
  316. package/src/css/props/textAlign/textAlign.css.ts +22 -0
  317. package/src/css/props/textAlign/textAlign.ts +8 -0
  318. package/src/css/props/textOverflow/textOverflow.css.ts +13 -0
  319. package/src/css/props/textOverflow/textOverflow.ts +8 -0
  320. package/src/css/{aspects → props}/textOverflow/types.ts +5 -2
  321. package/src/css/{aspects → props}/width/types.ts +1 -1
  322. package/src/css/props/width/width.css.ts +28 -0
  323. package/src/css/props/width/width.ts +8 -0
  324. package/src/css/types.ts +223 -42
  325. package/src/css/util.ts +0 -10
  326. package/src/css/utils/index.ts +1 -0
  327. package/src/css/utils/srOnly/srOnly.css.ts +10 -0
  328. package/src/css/utils/srOnly/srOnly.ts +3 -3
  329. package/src/css/vars.css.ts +676 -0
  330. package/src/theme/v3/buildTheme_v3.ts +7 -2
  331. package/src/theme/v3/defaultFonts.ts +4 -4
  332. package/src/theme/v3/defaultTokens.ts +3 -3
  333. package/src/theme/v3/types.ts +3 -2
  334. package/src/theme/versioning/v3_v2.ts +24 -3
  335. package/dist/_chunks-cjs/buildCommand.cjs +0 -71
  336. package/dist/_chunks-cjs/buildCommand.cjs.map +0 -1
  337. package/dist/cli.cjs +0 -357
  338. package/dist/cli.cjs.map +0 -1
  339. package/dist/cli.d.cts +0 -1
  340. package/dist/ui-system.css +0 -24528
  341. package/dist/ui-system.min.css +0 -1
  342. package/dist/ui-theme.css +0 -1184
  343. package/dist/ui-theme.min.css +0 -1
  344. package/dist/ui.min.css +0 -1
  345. package/src/core/StyleTags.tsx +0 -18
  346. package/src/css/_compileStyle.ts +0 -156
  347. package/src/css/_compileSystem.ts +0 -7
  348. package/src/css/_compileTheme.ts +0 -13
  349. package/src/css/_hash.ts +0 -9
  350. package/src/css/_mergeStyles.ts +0 -24
  351. package/src/css/_resp.ts +0 -31
  352. package/src/css/_responsiveRule.ts +0 -38
  353. package/src/css/_scopeClassName.ts +0 -9
  354. package/src/css/_scopeClassNames.ts +0 -12
  355. package/src/css/_system.style.ts +0 -166
  356. package/src/css/aspects/border/border.style.ts +0 -13
  357. package/src/css/aspects/border/border.ts +0 -14
  358. package/src/css/aspects/border/types.ts +0 -10
  359. package/src/css/aspects/boxSizing/boxSizing.style.ts +0 -10
  360. package/src/css/aspects/boxSizing/boxSizing.ts +0 -8
  361. package/src/css/aspects/display/display.style.ts +0 -34
  362. package/src/css/aspects/display/display.ts +0 -8
  363. package/src/css/aspects/flex/flex.ts +0 -13
  364. package/src/css/aspects/flex/flexAlign.style.ts +0 -12
  365. package/src/css/aspects/flex/flexDirection.style.ts +0 -11
  366. package/src/css/aspects/flex/flexJustify.style.ts +0 -13
  367. package/src/css/aspects/flex/flexWrap.style.ts +0 -10
  368. package/src/css/aspects/flex/types.ts +0 -27
  369. package/src/css/aspects/flexItem/flex.style.ts +0 -22
  370. package/src/css/aspects/flexItem/flexItem.ts +0 -8
  371. package/src/css/aspects/flexItem/index.ts +0 -2
  372. package/src/css/aspects/flexItem/types.ts +0 -25
  373. package/src/css/aspects/font/font.style.ts +0 -83
  374. package/src/css/aspects/font/font.ts +0 -7
  375. package/src/css/aspects/gap/gap.style.ts +0 -21
  376. package/src/css/aspects/gap/gap.ts +0 -8
  377. package/src/css/aspects/grid/grid.ts +0 -14
  378. package/src/css/aspects/grid/gridAutoColumns.style.ts +0 -11
  379. package/src/css/aspects/grid/gridAutoFlow.style.ts +0 -11
  380. package/src/css/aspects/grid/gridAutoRows.style.ts +0 -11
  381. package/src/css/aspects/grid/gridColumns.style.ts +0 -18
  382. package/src/css/aspects/grid/gridRows.style.ts +0 -18
  383. package/src/css/aspects/grid/index.ts +0 -2
  384. package/src/css/aspects/grid/types.ts +0 -25
  385. package/src/css/aspects/gridItem/gridColumn.style.ts +0 -20
  386. package/src/css/aspects/gridItem/gridColumnEnd.style.ts +0 -20
  387. package/src/css/aspects/gridItem/gridColumnStart.style.ts +0 -20
  388. package/src/css/aspects/gridItem/gridItem.ts +0 -15
  389. package/src/css/aspects/gridItem/gridRow.style.ts +0 -20
  390. package/src/css/aspects/gridItem/gridRowEnd.style.ts +0 -20
  391. package/src/css/aspects/gridItem/gridRowStart.style.ts +0 -20
  392. package/src/css/aspects/gridItem/index.ts +0 -2
  393. package/src/css/aspects/gridItem/types.ts +0 -30
  394. package/src/css/aspects/height/height.style.ts +0 -9
  395. package/src/css/aspects/height/height.ts +0 -16
  396. package/src/css/aspects/inset/inset.style.ts +0 -12
  397. package/src/css/aspects/inset/inset.ts +0 -14
  398. package/src/css/aspects/margin/margin.style.ts +0 -56
  399. package/src/css/aspects/margin/margin.ts +0 -16
  400. package/src/css/aspects/maxWidth/maxWidth.style.ts +0 -16
  401. package/src/css/aspects/maxWidth/maxWidth.ts +0 -8
  402. package/src/css/aspects/minHeight/minHeight.style.ts +0 -9
  403. package/src/css/aspects/minHeight/minHeight.ts +0 -8
  404. package/src/css/aspects/minWidth/minWidth.style.ts +0 -13
  405. package/src/css/aspects/minWidth/minWidth.ts +0 -8
  406. package/src/css/aspects/outline/outline.style.ts +0 -9
  407. package/src/css/aspects/overflow/overflow.style.ts +0 -11
  408. package/src/css/aspects/overflow/overflow.ts +0 -12
  409. package/src/css/aspects/overflow/types.ts +0 -11
  410. package/src/css/aspects/padding/padding.style.ts +0 -43
  411. package/src/css/aspects/padding/padding.ts +0 -16
  412. package/src/css/aspects/padding/types.ts +0 -14
  413. package/src/css/aspects/pointerEvents/pointerEvents.style.ts +0 -13
  414. package/src/css/aspects/pointerEvents/pointerEvents.ts +0 -7
  415. package/src/css/aspects/position/position.style.ts +0 -12
  416. package/src/css/aspects/position/position.ts +0 -8
  417. package/src/css/aspects/radius/radius.style.ts +0 -16
  418. package/src/css/aspects/radius/radius.ts +0 -8
  419. package/src/css/aspects/shadow/shadow.style.ts +0 -24
  420. package/src/css/aspects/shadow/shadow.ts +0 -8
  421. package/src/css/aspects/textAlign/textAlign.style.ts +0 -26
  422. package/src/css/aspects/textAlign/textAlign.ts +0 -8
  423. package/src/css/aspects/textOverflow/textOverflow.style.ts +0 -21
  424. package/src/css/aspects/textOverflow/textOverflow.ts +0 -7
  425. package/src/css/aspects/width/width.style.ts +0 -11
  426. package/src/css/aspects/width/width.ts +0 -8
  427. package/src/css/components/breadcrumbs/breadcrumbs.style.ts +0 -9
  428. package/src/css/components/dialog/dialog.style.ts +0 -77
  429. package/src/css/components/menu/menu.style.ts +0 -17
  430. package/src/css/components/skeleton/skeleton.style.ts +0 -104
  431. package/src/css/components/toast/toast.style.ts +0 -20
  432. package/src/css/components/tree/tree.style.ts +0 -39
  433. package/src/css/prefix/constants.ts +0 -6
  434. package/src/css/prefix/index.ts +0 -2
  435. package/src/css/prefix/types.ts +0 -1
  436. package/src/css/primitives/_arrow/_arrow.style.ts +0 -69
  437. package/src/css/primitives/_input/_input.style.ts +0 -235
  438. package/src/css/primitives/_selectable/_selectable.style.ts +0 -129
  439. package/src/css/primitives/avatar/avatar.style.ts +0 -171
  440. package/src/css/primitives/badge/badge.style.ts +0 -21
  441. package/src/css/primitives/box/box.style.ts +0 -22
  442. package/src/css/primitives/button/button.style.ts +0 -275
  443. package/src/css/primitives/card/card.style.ts +0 -295
  444. package/src/css/primitives/checkbox/checkbox.style.ts +0 -178
  445. package/src/css/primitives/code/code.style.ts +0 -61
  446. package/src/css/primitives/container/container.style.ts +0 -10
  447. package/src/css/primitives/heading/heading.style.ts +0 -56
  448. package/src/css/primitives/kbd/kbd.style.ts +0 -19
  449. package/src/css/primitives/label/label.style.ts +0 -52
  450. package/src/css/primitives/popover/popover.style.ts +0 -9
  451. package/src/css/primitives/radio/radio.style.ts +0 -84
  452. package/src/css/primitives/select/select.style.ts +0 -24
  453. package/src/css/primitives/spinner/spinner.style.ts +0 -22
  454. package/src/css/primitives/stack/stack.style.ts +0 -13
  455. package/src/css/primitives/switch/switch.style.ts +0 -102
  456. package/src/css/primitives/text/text.style.ts +0 -65
  457. package/src/css/primitives/textArea/textArea.style.ts +0 -11
  458. package/src/css/primitives/textInput/textInput.style.ts +0 -46
  459. package/src/css/primitives/token/token.style.ts +0 -50
  460. package/src/css/primitives/tooltip/tooltip.style.ts +0 -9
  461. package/src/css/renderColor.ts +0 -31
  462. package/src/css/responsiveRules.ts +0 -18
  463. package/src/css/theme/index.ts +0 -14
  464. package/src/css/theme/lib/contract/buildVarContract.ts +0 -76
  465. package/src/css/theme/lib/contract/index.ts +0 -2
  466. package/src/css/theme/lib/contract/types.ts +0 -15
  467. package/src/css/theme/resolveTheme.ts +0 -863
  468. package/src/css/utils/srOnly/srOnly.style.ts +0 -14
  469. package/src/css/{aspects → props}/border/index.ts +0 -0
  470. package/src/css/{aspects → props}/boxSizing/index.ts +0 -0
  471. package/src/css/{aspects → props}/display/index.ts +0 -0
  472. package/src/css/{aspects → props}/display/types.ts +0 -0
  473. package/src/css/{aspects → props}/flex/index.ts +0 -0
  474. package/src/css/{aspects → props}/font/index.ts +0 -0
  475. package/src/css/{aspects → props}/font/types.ts +0 -0
  476. package/src/css/{aspects → props}/gap/index.ts +0 -0
  477. package/src/css/{aspects → props}/gap/types.ts +0 -0
  478. package/src/css/{aspects → props}/inset/index.ts +0 -0
  479. package/src/css/{aspects → props}/inset/types.ts +0 -0
  480. package/src/css/{aspects → props}/margin/index.ts +0 -0
  481. package/src/css/{aspects → props}/margin/types.ts +2 -2
  482. /package/src/css/{aspects → props}/maxWidth/index.ts +0 -0
  483. /package/src/css/{aspects → props}/minHeight/index.ts +0 -0
  484. /package/src/css/{aspects → props}/minHeight/types.ts +0 -0
  485. /package/src/css/{aspects → props}/minWidth/index.ts +0 -0
  486. /package/src/css/{aspects → props}/minWidth/types.ts +0 -0
  487. /package/src/css/{aspects → props}/overflow/index.ts +0 -0
  488. /package/src/css/{aspects → props}/padding/index.ts +0 -0
  489. /package/src/css/{aspects → props}/pointerEvents/index.ts +0 -0
  490. /package/src/css/{aspects → props}/pointerEvents/types.ts +0 -0
  491. /package/src/css/{aspects → props}/position/index.ts +0 -0
  492. /package/src/css/{aspects → props}/position/types.ts +0 -0
  493. /package/src/css/{aspects → props}/radius/index.ts +0 -0
  494. /package/src/css/{aspects → props}/radius/types.ts +0 -0
  495. /package/src/css/{aspects → props}/shadow/index.ts +0 -0
  496. /package/src/css/{aspects → props}/shadow/types.ts +0 -0
  497. /package/src/css/{aspects → props}/textAlign/index.ts +0 -0
  498. /package/src/css/{aspects → props}/textAlign/types.ts +0 -0
  499. /package/src/css/{aspects → props}/textOverflow/index.ts +0 -0
  500. /package/src/css/{aspects → props}/width/index.ts +0 -0
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/core/_compat/helpers.ts","../src/core/_compat/styles/_responsive.ts","../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/hooks/useClickOutside.ts","../src/core/hooks/useElementRect/useElementRect.ts","../src/core/hooks/useForwardedRef.ts","../src/core/utils/errorBoundary.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/isTargetWithinScope.ts","../src/core/components/dialog/dialogCard.tsx","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/codeSkeleton.tsx","../src/core/components/skeleton/headingSkeleton.tsx","../src/core/components/skeleton/labelSkeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx","../src/core/StyleTags.tsx"],"sourcesContent":["import {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\nexport {\n /** @deprecated use `px` from `@sanity/ui/css` */\n px,\n /** @deprecated use `rem` from `@sanity/ui/css` */\n rem,\n} from '@sanity/ui/css'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\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","import type {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n * @deprecated do not use\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/** @public */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/** @public */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\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: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {type ForwardedRef, type MutableRefObject, useImperativeHandle, useRef} from 'react'\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<T>(ref: ForwardedRef<T>): MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {Component, type ErrorInfo, type PropsWithChildren, type ReactNode} from 'react'\n\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: 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 override state: ErrorBoundaryState = {error: null}\n\n static displayName = 'ErrorBoundary'\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 override componentDidCatch(error: Error, info: ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n override render(): ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {type KeyboardEvent, type ReactElement, type ReactNode, useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n\nAutocompleteOption.displayName = 'AutocompleteOption'\n","import type {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import type {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport type {ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n type ChangeEvent,\n cloneElement,\n type ElementType,\n type FocusEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useArrayProp} from '../../hooks'\nimport {\n Box,\n type BoxProps,\n Button,\n Card,\n Popover,\n type PopoverProps,\n Stack,\n Text,\n TextInput,\n type TextInputOwnProps,\n} from '../../primitives'\nimport {AnimatedSpinnerIcon} from '../../primitives/spinner/animatedSpinnerIcon'\nimport type {ComponentType, Props, Radius} from '../../types'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport type {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/** @public */\nexport const DEFAULT_AUTOCOMPLETE_ELEMENT = 'input'\n\n/** @public */\nexport type AutocompleteOwnProps<O extends BaseAutocompleteOption = BaseAutocompleteOption> =\n TextInputOwnProps & {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: O) => boolean\n icon?: ElementType | ReactNode\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: O[]\n padding?: ResponsiveProp<Space>\n popover?: Omit<Props<PopoverProps, 'div'>, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: O) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: ForwardedRef<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: O) => string\n suffix?: ReactNode\n value?: string\n }\n\n/** @public */\nexport type AutocompleteElementType = 'input' | ComponentType\n\n/** @public */\nexport type AutocompleteProps<\n E extends AutocompleteElementType = AutocompleteElementType,\n O extends BaseAutocompleteOption = BaseAutocompleteOption,\n> = Props<AutocompleteOwnProps<O>, E>\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport function Autocomplete<\n E extends AutocompleteElementType = typeof DEFAULT_AUTOCOMPLETE_ELEMENT,\n O extends BaseAutocompleteOption = BaseAutocompleteOption,\n>(props: AutocompleteProps<E, O>) {\n const {\n as = DEFAULT_AUTOCOMPLETE_ELEMENT,\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...rest\n } = props as AutocompleteProps<typeof DEFAULT_AUTOCOMPLETE_ELEMENT, O>\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLUListElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return (v as Space) - 2\n }) as Space[],\n [padding],\n )\n\n const openButtonPadding = useMemo(\n () => padding.map((v) => Math.max((v as Space) - 1, 0)) as Space[],\n [padding],\n )\n\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n display=\"block\"\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...rest}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n as={as}\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <Box\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n gap={1}\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </Box>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={3}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n renderPopover,\n ])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </div>\n )\n}\n\nAutocomplete.displayName = 'Autocomplete'\n","import {_composeClassNames, breadcrumbs, type GapStyleProps} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n Children,\n Fragment,\n isValidElement,\n type ReactNode,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks'\nimport {Box, Button, type ButtonProps, Flex, Popover, Stack, Text} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @beta */\nexport const DEFAULT_BREADCRUMBS_ELEMENT = 'nav'\n\n/** @beta */\nexport type BreadcrumbsOwnProps = GapStyleProps & {\n expandButton?: Omit<ButtonProps<'button'>, 'as' | 'onClick' | 'selected'>\n maxLength?: number\n separator?: ReactNode\n /** @deprecated - Use `gap`, `gapX`, `gapY` instead */\n space?: number | number[]\n}\n\n/** @beta */\nexport type BreadcrumbsElementType = 'div' | 'nav' | ComponentType\n\n/** @beta */\nexport type BreadcrumbsProps<E extends BreadcrumbsElementType = BreadcrumbsElementType> = Props<\n BreadcrumbsOwnProps,\n E\n>\n\n/** @beta */\nexport function Breadcrumbs<E extends BreadcrumbsElementType = typeof DEFAULT_BREADCRUMBS_ELEMENT>(\n props: BreadcrumbsProps<E>,\n) {\n const {\n as = DEFAULT_BREADCRUMBS_ELEMENT,\n children,\n className,\n expandButton: expandButtonProps,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n gap: _gapProp,\n gapX = props.gap ?? (props.space as Space | undefined) ?? 2,\n gapY = props.gap ?? (props.space as Space | undefined) ?? 2,\n maxLength,\n separator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n space: _spaceProp,\n ...rest\n } = props as BreadcrumbsProps<typeof DEFAULT_BREADCRUMBS_ELEMENT>\n\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" gap={gapY} overflow=\"auto\">\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n padding={2}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <Button\n mode=\"bleed\"\n padding={0}\n text=\"…\"\n {...expandButtonProps}\n onClick={open ? collapse : expand}\n ref={expandElementRef}\n selected={open}\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, expandButtonProps, gapY, maxLength, open, rawItems])\n\n return (\n <Flex\n as={as}\n data-ui=\"Breadcrumbs\"\n {...rest}\n className={_composeClassNames(className, breadcrumbs())}\n gapX={gapX}\n gapY={gapY}\n >\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\">\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Flex>\n )\n}\n\nBreadcrumbs.displayName = 'Breadcrumbs'\n","import {containsOrEqualsElement} from '../../helpers'\n\nexport function 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","import {CloseIcon} from '@sanity/icons'\nimport {\n dialogCardRoot,\n dialogContent,\n dialogFooter,\n dialogHeader,\n dialogLayout,\n} from '@sanity/ui/css'\nimport {\n type ForwardedRef,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {focusFirstDescendant} from '../../helpers'\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {\n Box,\n Button,\n Card,\n type CardElementType,\n type CardOwnProps,\n Flex,\n Text,\n} from '../../primitives'\nimport type {Props} from '../../types'\nimport {useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {isTargetWithinScope} from './isTargetWithinScope'\n\n/** @internal */\nexport const DEFAULT_DIALOG_CARD_ELEMENT = 'div'\n\n/** @internal */\nexport type DialogCardOwnProps = CardOwnProps & {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: ReactNode\n contentRef?: ForwardedRef<HTMLDivElement>\n footer: ReactNode\n header: ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n}\n\n/** @internal */\nexport type DialogCardElementType = CardElementType\n\n/** @internal */\nexport type DialogCardProps<E extends DialogCardElementType = DialogCardElementType> = Props<\n DialogCardOwnProps,\n E\n>\n\n/** @internal */\n\nexport function DialogCard<E extends DialogCardElementType = typeof DEFAULT_DIALOG_CARD_ELEMENT>(\n props: DialogCardProps<E>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n as = DEFAULT_DIALOG_CARD_ELEMENT,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n ref: forwardedRef,\n ...rest\n } = props as DialogCardProps<typeof DEFAULT_DIALOG_CARD_ELEMENT>\n\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\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 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 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 <Card {...rest} as={as} className={dialogCardRoot()} display=\"flex\" ref={ref}>\n <Flex className={dialogLayout()} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader()} position=\"relative\">\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 <Box\n className={dialogContent()}\n flex={1}\n overflow=\"auto\"\n position=\"relative\"\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n {footer && (\n <Box className={dialogFooter()} position=\"relative\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n )\n}\n\nDialogCard.displayName = 'DialogCard'\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {DialogPosition} from '../../types'\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, type 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 {\n _composeClassNames,\n type ContainerStyleProps,\n dialog,\n dialogContainer,\n type ResponsiveProp,\n} from '@sanity/ui/css'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {type FocusEvent, type ForwardedRef, type ReactNode, useCallback, useRef} from 'react'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {focusFirstDescendant, focusLastDescendant, isHTMLElement} from '../../helpers'\nimport {useArrayProp, usePrefersReducedMotion} from '../../hooks'\nimport {Container} from '../../primitives'\nimport type {CardTone, ComponentType, DialogPosition, Props, Radius} from '../../types'\nimport {\n Layer,\n type LayerOwnProps,\n type LayerProps,\n Portal,\n useBoundaryElement,\n usePortal,\n} from '../../utils'\nimport {DialogCard} from './dialogCard'\nimport {isTargetWithinScope} from './isTargetWithinScope'\nimport {useDialog} from './useDialog'\n\n/** @public */\nexport const DEFAULT_DIALOG_ELEMENT = 'div'\n\n/** @public */\nexport type DialogOwnProps = ContainerStyleProps &\n Omit<LayerOwnProps, 'width'> & {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n cardRadius?: ResponsiveProp<Radius>\n contentRef?: ForwardedRef<HTMLDivElement>\n footer?: ReactNode\n header?: 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 open?: boolean\n portal?: string\n position?: DialogPosition | DialogPosition[]\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n zOffset?: number | number[]\n }\n\n/** @public */\nexport type DialogElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type DialogProps<E extends DialogElementType = DialogElementType> = Props<DialogOwnProps, E>\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport function Dialog<E extends DialogElementType = typeof DEFAULT_DIALOG_ELEMENT>(\n props: DialogProps<E>,\n) {\n const context = useDialog()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n animate: _animate = false,\n cardRadius: cardRadiusProp = 4,\n children,\n className,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n shadow: cardShadow = 4,\n width = 0,\n zOffset: _zOffsetProp,\n tone,\n ...rest\n } = props as DialogProps<typeof DEFAULT_DIALOG_ELEMENT>\n\n const positionProp = _positionProp ?? context.position ?? 'fixed'\n const zOffsetProp = _zOffsetProp ?? context.zOffset ?? Z_OFFSETS.dialog\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 = useArrayProp(cardRadiusProp)\n const position = useArrayProp(positionProp)\n // const width = useArrayProp(widthProp)\n const zOffset = useArrayProp(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: 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 <Layer\n {...rest}\n aria-labelledby={labelId}\n aria-modal\n className={_composeClassNames(className, dialog())}\n data-animate={animate ? '' : undefined}\n data-ui=\"Dialog\"\n display=\"flex\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n padding={padding}\n position={position}\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <Container\n align=\"center\"\n className={dialogContainer()}\n data-ui=\"DialogCard\"\n direction=\"column\"\n display=\"flex\"\n justify=\"center\"\n width={width}\n >\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 tone={tone}\n width={width}\n >\n {children}\n </DialogCard>\n </Container>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </Layer>\n </Portal>\n )\n}\n\nDialog.displayName = 'Dialog'\n","import {type ReactElement, type ReactNode, useMemo} from 'react'\n\nimport type {DialogPosition} from '../../types'\nimport {DialogContext, type DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: 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): ReactElement {\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\nDialogProvider.displayName = 'DialogProvider'\n","import type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n type FocusEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n type ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {type ButtonProps, Popover, type PopoverProps} from '../../primitives'\nimport type {Placement, Props, Radius} from '../../types'\nimport type {MenuProps} from './menu'\n\n/** @public */\nexport type MenuButtonProps = {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: ReactElement<ButtonProps>\n id: string\n menu?: ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n ref?: ForwardedRef<HTMLButtonElement | null>\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport function MenuButton(props: MenuButtonProps) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n ref: forwardedRef,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: ReactMouseEvent<HTMLElement>) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: Props<MenuProps, 'div'> = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(() => {\n if (!buttonProp) return null\n\n const buttonProps: ButtonProps<'button'> = {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }\n\n return cloneElement(buttonProp, buttonProps)\n }, [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open])\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n}\n\nMenuButton.displayName = 'MenuButton'\n","import {_composeClassNames, skeleton, type SkeletonStyleProps} from '@sanity/ui/css'\nimport {useEffect, useState} from 'react'\n\nimport {Box, type BoxOwnProps} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @beta */\nexport const DEFAULT_SKELETON_ELEMENT = 'div'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type SkeletonOwnProps = BoxOwnProps &\n SkeletonStyleProps & {\n animated?: boolean\n delay?: number\n }\n\n/** @beta */\nexport type SkeletonElementType = 'div' | 'span' | ComponentType\n\n/** @beta */\nexport type SkeletonProps<E extends SkeletonElementType = SkeletonElementType> = Props<\n SkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Skeleton<E extends SkeletonElementType = typeof DEFAULT_SKELETON_ELEMENT>(\n props: SkeletonProps<E>,\n) {\n const {\n animated = false,\n className,\n delay,\n radius,\n ...rest\n } = props as SkeletonProps<typeof DEFAULT_SKELETON_ELEMENT>\n\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Box\n data-ui=\"Skeleton\"\n {...rest}\n className={_composeClassNames(\n className,\n skeleton({\n radius,\n }),\n )}\n data-animated={animated ? '' : undefined}\n data-visible={visible ? '' : undefined}\n />\n )\n}\n\nSkeleton.displayName = 'Skeleton'\n","import {_composeClassNames, codeSkeleton, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontCodeSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @public */\nexport const DEFAULT_CODE_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type CodeSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/** @public */\nexport type CodeSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type CodeSkeletonProps<E extends CodeSkeletonElementType = CodeSkeletonElementType> = Props<\n CodeSkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function CodeSkeleton<\n E extends CodeSkeletonElementType = typeof DEFAULT_CODE_SKELETON_ELEMENT,\n>(props: CodeSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as CodeSkeletonProps<typeof DEFAULT_CODE_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={_composeClassNames(\n className,\n codeSkeleton({\n size,\n }),\n )}\n />\n )\n}\n\nCodeSkeleton.displayName = 'CodeSkeleton'\n","import {_composeClassNames, headingSkeleton, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontHeadingSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @public */\nexport const DEFAULT_HEADING_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type HeadingSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontHeadingSize>\n}\n\n/** @public */\nexport type HeadingSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type HeadingSkeletonProps<\n E extends HeadingSkeletonElementType = HeadingSkeletonElementType,\n> = Props<HeadingSkeletonOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function HeadingSkeleton<\n E extends HeadingSkeletonElementType = typeof DEFAULT_HEADING_SKELETON_ELEMENT,\n>(props: HeadingSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as HeadingSkeletonProps<typeof DEFAULT_HEADING_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={_composeClassNames(\n className,\n headingSkeleton({\n size,\n }),\n )}\n />\n )\n}\n\nHeadingSkeleton.displayName = 'HeadingSkeleton'\n","import {_composeClassNames, labelSkeleton, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontLabelSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @public */\nexport const DEFAULT_LABEL_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type LabelSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontLabelSize>\n}\n\n/** @public */\nexport type LabelSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type LabelSkeletonProps<E extends LabelSkeletonElementType = LabelSkeletonElementType> =\n Props<LabelSkeletonOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function LabelSkeleton<\n E extends LabelSkeletonElementType = typeof DEFAULT_LABEL_SKELETON_ELEMENT,\n>(props: LabelSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as LabelSkeletonProps<typeof DEFAULT_LABEL_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={_composeClassNames(\n className,\n labelSkeleton({\n size,\n }),\n )}\n />\n )\n}\n\nLabelSkeleton.displayName = 'LabelSkeleton'\n","import {_composeClassNames, type ResponsiveProp, textSkeleton} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @public */\nexport const DEFAULT_TEXT_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type TextSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontTextSize>\n}\n\n/** @public */\nexport type TextSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type TextSkeletonProps<E extends TextSkeletonElementType = TextSkeletonElementType> = Props<\n TextSkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TextSkeleton<\n E extends TextSkeletonElementType = typeof DEFAULT_TEXT_SKELETON_ELEMENT,\n>(props: TextSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as TextSkeletonProps<typeof DEFAULT_TEXT_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={_composeClassNames(\n className,\n textSkeleton({\n size,\n }),\n )}\n />\n )\n}\n\nTextSkeleton.displayName = 'TextSkeleton'\n","import {Box, type BoxOwnProps} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TAB_PANEL_ELEMENT = 'div'\n\n/** @public */\nexport type TabPanelOwnProps = BoxOwnProps & {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/** @public */\nexport type TabPanelElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TabPanelProps<E extends TabPanelElementType = TabPanelElementType> = Props<\n TabPanelOwnProps,\n E\n>\n\n/** @public */\nexport function TabPanel<E extends TabPanelElementType = typeof DEFAULT_TAB_PANEL_ELEMENT>(\n props: TabPanelProps<E>,\n) {\n const {\n as = DEFAULT_TAB_PANEL_ELEMENT,\n children,\n tabIndex,\n ...rest\n } = props as TabPanelProps<typeof DEFAULT_TAB_PANEL_ELEMENT>\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...rest}\n as={as}\n role=\"tabpanel\"\n tabIndex={tabIndex === undefined ? 0 : tabIndex}\n >\n {children}\n </Box>\n )\n}\n\nTabPanel.displayName = 'TabPanel'\n","import {CloseIcon} from '@sanity/icons'\nimport {\n type RadiusStyleProps,\n toast,\n toastLoadingBar,\n toastLoadingBarMask,\n toastLoadingBarProgress,\n} from '@sanity/ui/css'\nimport {motion, type Variant, type Variants} from 'framer-motion'\nimport type {ReactNode} from 'react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TOAST_ELEMENT = 'li'\n\n/** @public */\nexport type ToastOwnProps = RadiusStyleProps & {\n closable?: boolean\n description?: ReactNode\n onClose?: () => void\n title?: ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n duration?: number\n updatedAt?: number\n}\n\n/** @public */\nexport type ToastElementType = 'li' | ComponentType\n\n/** @public */\nexport type ToastProps<E extends ToastElementType = ToastElementType> = Props<ToastOwnProps, E>\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} as const\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} as const\n\n// Support pattern used by Sanity Studio, that works around the lack of `duration: Infinity` support in older @sanity/ui versions\n// https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#maximum_delay_value\nconst LONG_ENOUGH_BUT_NOT_TOO_LONG = 1000 * 60 * 60 * 24 * 24\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast<E extends ToastElementType = typeof DEFAULT_TOAST_ELEMENT>(\n props: ToastProps<E>,\n) {\n const {\n as = DEFAULT_TOAST_ELEMENT,\n closable,\n description,\n duration,\n onClose,\n radius = 3,\n title,\n status,\n updatedAt,\n ...rest\n } = props as ToastProps<typeof DEFAULT_TOAST_ELEMENT>\n\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration ? {type: 'spring', visualDuration, bounce: 0.25} : {duration: 0}\n\n const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionCard\n as={as}\n className={toast()}\n data-ui=\"Toast\"\n role={role}\n {...rest}\n data-has-duration={hasDuration ? '' : undefined}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n position=\"relative\"\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <Flex flex={1} overflowX=\"auto\" padding={3}>\n <Stack gap={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </Flex>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n {hasDuration && (\n <MotionBox className={toastLoadingBar()} variants={content} transition={transition}>\n <Card className={toastLoadingBarMask()} tone={cardTone} radius={radius} />\n <MotionCard\n // const MotionToast = motion.create(Card) // StyledToast\n // const MotionFlex = motion.create(Flex)\n // const MotionText = motion.create(Text)\n // const MotionLoadingBar = motion.create(Box) // LoadingBar\n // const MotionLoadingBarProgress = motion.create(Card)\n\n className={toastLoadingBarProgress()}\n key={`progress-${updatedAt}`}\n tone={cardTone}\n initial={{scaleX: 0}}\n animate={{scaleX: 1}}\n transition={{delay: visualDuration, duration: duration / 1_000, ease: 'linear'}}\n onAnimationComplete={onClose}\n />\n </MotionBox>\n )}\n </MotionCard>\n )\n}\n\nToast.displayName = 'Toast'\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n staggerChildren: visualDuration / 3,\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionCard = motion.create(Card)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\nconst MotionBox = motion.create(Box)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {type GapStyleProps, type PaddingStyleProps, toastLayer} from '@sanity/ui/css'\n\nimport {Grid} from '../../primitives/grid'\nimport type {ComponentType, Props} from '../../types'\nimport {useLayer} from '../../utils'\n\n/** @internal */\nexport const DEFAULT_TOAST_LAYER_ELEMENT = 'ul'\n\n/** @internal */\nexport type ToastLayerOwnProps = GapStyleProps & PaddingStyleProps\n\n/** @internal */\nexport type ToastLayerElementType = 'ul' | ComponentType\n\n/** @internal */\nexport type ToastLayerProps<E extends ToastLayerElementType = ToastLayerElementType> = Props<\n ToastLayerOwnProps,\n E\n>\n\n/**\n * @internal\n */\nexport function ToastLayer<E extends ToastLayerElementType = typeof DEFAULT_TOAST_LAYER_ELEMENT>(\n props: ToastLayerProps<E>,\n) {\n const {\n as = DEFAULT_TOAST_LAYER_ELEMENT,\n children,\n padding = 4,\n paddingX,\n paddingY,\n gap = 3,\n } = props as ToastLayerProps<typeof DEFAULT_TOAST_LAYER_ELEMENT>\n\n const {zIndex} = useLayer()\n\n return (\n <Grid\n as={as}\n className={toastLayer()}\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n columns={1}\n style={{zIndex}}\n >\n {children}\n </Grid>\n )\n}\n\nToastLayer.displayName = 'ToastLayer'\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import {AnimatePresence} from 'framer-motion'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport type {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n updatedAt: number\n params: ToastParams\n}[]\n\n/** @public */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: number | number[]\n}\n\n/** @public */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () =>\n startTransition(() =>\n setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n )\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n updatedAt: Date.now(),\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params, updatedAt}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n updatedAt={updatedAt}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n\nToastProvider.displayName = 'ToastProvider'\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport type {ToastContextValue} from './types'\n\n/** @public */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import type {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 type {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n type FocusEvent,\n type KeyboardEvent,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Stack} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport type {TreeContextValue, TreeState} from './types'\n\n/** @beta */\nexport const DEFAULT_TREE_ELEMENT = 'div'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type TreeOwnProps = {\n gap?: ResponsiveProp<Space>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @beta */\nexport type TreeElementType = 'div' | ComponentType\n\n/** @beta */\nexport type TreeProps<E extends TreeElementType = TreeElementType> = Props<TreeOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Tree<E extends TreeElementType = typeof DEFAULT_TREE_ELEMENT>(props: TreeProps<E>) {\n const {\n children,\n gap,\n space = 1,\n onFocus,\n ref: forwardedRef,\n ...rest\n } = props as TreeProps<typeof DEFAULT_TREE_ELEMENT>\n\n const ref = useRef<HTMLDivElement | 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<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\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 space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\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: FocusEvent<HTMLDivElement>) => {\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 }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...rest}\n gap={gap ?? space}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n}\n\nTree.displayName = 'Tree'\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport type {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 {memo, type ReactElement} from 'react'\n\nimport {Stack} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\nimport {useTree} from './useTree'\n\n/** @public */\nexport const DEFAULT_TREE_GROUP_ELEMENT = 'div'\n\n/** @public */\nexport type TreeGroupElementType = 'div' | ComponentType\n\n/** @public */\nexport type TreeGroupOwnProps = {\n expanded?: boolean\n}\n\n/** @public */\nexport type TreeGroupProps<E extends TreeGroupElementType = TreeGroupElementType> = Props<\n TreeGroupOwnProps,\n E\n>\n\nexport const TreeGroup = memo(function TreeGroup(\n props: Props<TreeGroupProps, 'div'>,\n): ReactElement {\n const {\n children,\n expanded = false,\n ...rest\n } = props as TreeGroupProps<typeof DEFAULT_TREE_GROUP_ELEMENT>\n\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...rest}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n gap={tree.space}\n >\n {children}\n </Stack>\n )\n})\n\nTreeGroup.displayName = 'TreeGroup'\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {_composeClassNames, type ResponsiveProp, treeItem, vars} from '@sanity/ui/css'\nimport type {FontTextSize, Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n type KeyboardEvent,\n type MouseEvent,\n type MouseEventHandler,\n type ReactNode,\n type Ref,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Box, type BoxProps, type CardOwnProps, Flex, Text} from '../../primitives'\nimport {Selectable, type SelectableElementType} from '../../primitives/_selectable'\nimport type {ComponentType, Props} from '../../types'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/** @beta */\nexport const DEFAULT_TREE_ITEM_ELEMENT = 'a'\n\n/** @beta */\nexport type TreeItemOwnProps = CardOwnProps & {\n expanded?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: SelectableElementType\n onClick?: MouseEventHandler<HTMLAnchorElement | HTMLLIElement>\n padding?: ResponsiveProp<Space>\n space?: ResponsiveProp<Space>\n text?: ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/** @beta */\nexport type TreeItemElementType = 'a' | 'li' | ComponentType\n\n/** @beta */\nexport type TreeItemProps<E extends TreeItemElementType = TreeItemElementType> = Props<\n TreeItemOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem<E extends TreeItemElementType = typeof DEFAULT_TREE_ITEM_ELEMENT>(\n props: TreeItemProps<E>,\n) {\n const {\n children,\n className,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs = 'a',\n muted,\n onClick,\n padding = 2,\n radius = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...rest\n } = props as TreeItemProps<typeof DEFAULT_TREE_ITEM_ELEMENT>\n\n const rootRef = useRef<HTMLElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | 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 = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 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: MouseEvent<HTMLAnchorElement> | 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(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex gap={space} padding={padding}>\n <Box\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 style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\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 <Box\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...(rest as BoxProps<'li'>)}\n as=\"li\"\n className={_composeClassNames(className, treeItem())}\n onClick={handleClick}\n ref={rootRef as Ref<HTMLLIElement>}\n role=\"none\"\n >\n <Selectable\n aria-expanded={expanded}\n as={linkAs}\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n href={href}\n radius={radius}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n style={{\n paddingLeft: `calc(${vars.space[2]} * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n }\n\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...(rest as BoxProps<'a'>)}\n aria-expanded={expanded}\n className={_composeClassNames(className, treeItem())}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef as Ref<HTMLAnchorElement>}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <Selectable\n as=\"button\"\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n radius={radius}\n style={{\n paddingLeft: `calc(${vars.space[2]} * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n}\n\nTreeItem.displayName = 'TreeItem'\n","import {_compileSystem, _compileTheme} from '@sanity/ui/css'\nimport type {ReactNode} from 'react'\n\n/** @beta */\nexport function StyleTags(): ReactNode {\n return (\n <>\n <style href=\"sanity-theme\" precedence=\"theme\">\n {_compileTheme()}\n </style>\n <style href=\"sanity-system\" precedence=\"system\">\n {_compileSystem()}\n </style>\n </>\n )\n}\n\nStyleTags.displayName = 'StyleTags'\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","_responsive","media","values","callback","map","statement","mediaIndex","_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_hasFocus","element","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","isHTMLAnchorElement","href","rel","isHTMLInputElement","type","disabled","isHTMLButtonElement","isHTMLSelectElement","isHTMLTextAreaElement","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","isHTMLElement","focusLastDescendant","_getElements","elementsArg","ret","el","Array","isArray","push","filter","useClickOutside","listener","t0","boundaryElement","$","_c","undefined","EMPTY_ARRAY","setElement","useState","t1","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","includes","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","el_1","window","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","innerRef","Symbol","for","useImperativeHandle","ErrorBoundary","Component","state","error","displayName","getDerivedStateFromError","componentDidCatch","info","props","onCatch","render","message","children","AutocompleteOption","id","onSelect","selected","value","setTimeout","handleClick","event","key","_isEnterToClickElement","currentTarget","handleKeyDown","autocompleteReducer","msg","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_AUTOCOMPLETE_ELEMENT","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","Autocomplete","as","border","customValidity","filterOption","filterOptionProp","fontSize","icon","listBox","EMPTY_RECORD","loading","onBlur","onChange","onFocus","onQueryChange","openButton","openOnFocus","options","optionsProp","padding","paddingProp","popover","prefix","radius","readOnly","forwardedRef","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","suffix","valueProp","rest","dispatch","useReducer","defaultRenderOption","useCallback","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","useArrayProp","currentOption","useMemo","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","concat","focusInside","e","handleRootFocus","listBoxElement","focusedElement","HTMLElement","handleOptionSelect","v","handleRootKeyDown","preventDefault","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","clearButton","openButtonBoxPadding","openButtonPadding","Math","max","openButtonProps","handleOpenClick","onClick","openButtonNode","ChevronDownIcon","inputValue","input","AnimatedSpinnerIcon","handleListBoxKeyDown","content","active","cloneElement","results","hidden","inputElement","onMouseEnter","onMouseLeave","DEFAULT_BREADCRUMBS_ELEMENT","Breadcrumbs","className","expandButton","expandButtonProps","gap","_gapProp","gapX","space","gapY","maxLength","separator","_spaceProp","open","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","rawItems","Children","toArray","isValidElement","items","len","beforeLength","ceil","afterLength","floor","slice","_composeClassNames","breadcrumbs","item","itemIndex","isTargetWithinScope","portalElement","containsOrEqualsElement","DEFAULT_DIALOG_CARD_ELEMENT","DialogCard","autoFocus","footer","forwardedContentRef","header","hideCloseButton","onClickOutside","onClose","portalProp","__unstable_autoFocus","__unstable_hideCloseButton","contentRef","portal","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","t6","stopPropagation","useGlobalKeyDown","t7","event_0","target_0","t8","t9","dialogCardRoot","t10","dialogLayout","t11","dialogHeader","CloseIcon","t12","dialogContent","t13","t14","dialogFooter","t15","t16","DialogContext","createGlobalScopedContext","version","useDialog","useContext","DEFAULT_DIALOG_ELEMENT","Dialog","context","_positionProp","_zOffsetProp","onActivate","scheme","tone","animate","cardRadius","position","shadow","width","zOffset","_animate","cardRadiusProp","cardShadow","positionProp","zOffsetProp","Z_OFFSETS","dialog","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","dialogContainer","t17","t18","DialogProvider","contextValue","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","button","buttonProp","menu","menuProp","onOpen","placement","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","preventOverflow","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","shouldFocus","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","_temp","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","handleMenuClickOutside","handleMenuEscape","event_2","relatedTarget","handleBlur","handleItemClick","els","els_0","_el","registerElement","bb0","t19","t20","t21","t22","t23","overflow","popoverProps","t24","t25","DEFAULT_SKELETON_ELEMENT","Skeleton","delay","animated","visible","setVisible","timeout","skeleton","DEFAULT_CODE_SKELETON_ELEMENT","CodeSkeleton","size","codeSkeleton","DEFAULT_HEADING_SKELETON_ELEMENT","HeadingSkeleton","headingSkeleton","DEFAULT_LABEL_SKELETON_ELEMENT","LabelSkeleton","labelSkeleton","DEFAULT_TEXT_SKELETON_ELEMENT","TextSkeleton","textSkeleton","DEFAULT_TAB_PANEL_ELEMENT","TabPanel","DEFAULT_TOAST_ELEMENT","ROLES","warning","success","STATUS_CARD_TONE","BUTTON_TONE","LONG_ENOUGH_BUT_NOT_TOO_LONG","Toast","closable","description","duration","status","title","updatedAt","cardTone","buttonTone","role","visualDuration","bounce","transition","hasDuration","isFinite","initial","exit","toast","verticalAlign","toastLoadingBar","toastLoadingBarMask","toastLoadingBarProgress","scaleX","ease","container","y","scale","zIndex","opacity","when","staggerChildren","slideIn","slideOut","willChange","MotionCard","motion","create","Card","MotionFlex","Flex","MotionText","Text","MotionBox","Box","useMounted","useSyncExternalStore","subscribe","_temp2","ToastContext","DEFAULT_TOAST_LAYER_ELEMENT","ToastLayer","paddingX","paddingY","toastLayer","toastId","generateToastId","String","ToastProvider","setState","mounted","params","startTransition","prevState","dismiss","currentState","toast_0","toast_1","Date","now","dismiss_0","id_0","params_0","useToast","Error","isRecord","_findPrevItemElement","itemElements","idx","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","DEFAULT_TREE_ELEMENT","Tree","setFocusedElement","path","setItemElements","stateRef","path_0","s","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","level","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","from","querySelectorAll","useTree","tree","TreeGroup","memo","DEFAULT_TREE_ITEM_ELEMENT","TreeItem","expandedProp","IconComponent","idProp","linkAs","muted","text","weight","rootRef","treeitemRef","_id","useId","closest","click","visibility","pointerEvents","transform","treeItem","paddingLeft","vars","StyleTags","_compileTheme","_compileSystem"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/core/_compat/helpers.ts","../src/core/_compat/styles/_responsive.ts","../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../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/primitives/label/label.tsx","../src/core/primitives/avatar/avatar.tsx","../src/core/primitives/avatar/avatarCounter.tsx","../src/core/primitives/avatar/avatarStack.tsx","../src/core/primitives/badge/badge.tsx","../src/core/primitives/checkbox/checkbox.tsx","../src/core/primitives/container/container.tsx","../src/core/primitives/heading/heading.tsx","../src/core/primitives/inline/inline.tsx","../src/core/utils/boundaryElement/boundaryElementProvider.tsx","../src/core/utils/errorBoundary.tsx","../src/core/utils/srOnly/srOnly.tsx","../src/core/utils/virtualList/virtualList.tsx","../src/core/primitives/radio/radio.tsx","../src/core/primitives/select/select.tsx","../src/core/primitives/switch/switch.tsx","../src/core/primitives/textArea/textArea.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx","../src/core/components/breadcrumbs/breadcrumbs.tsx","../src/core/components/dialog/isTargetWithinScope.ts","../src/core/components/dialog/dialogCard.tsx","../src/core/components/dialog/dialogContext.ts","../src/core/components/dialog/useDialog.ts","../src/core/components/dialog/dialog.tsx","../src/core/components/dialog/dialogProvider.tsx","../src/core/components/menu/menuButton.tsx","../src/core/components/skeleton/skeleton.tsx","../src/core/components/skeleton/codeSkeleton.tsx","../src/core/components/skeleton/headingSkeleton.tsx","../src/core/components/skeleton/labelSkeleton.tsx","../src/core/components/skeleton/textSkeleton.tsx","../src/core/components/tab/tabPanel.tsx","../src/core/components/toast/toast.tsx","../src/core/hooks/useMounted.ts","../src/core/components/toast/toastContext.ts","../src/core/components/toast/toastLayer.tsx","../src/core/components/toast/toastState.ts","../src/core/components/toast/toastProvider.tsx","../src/core/components/toast/useToast.ts","../src/core/components/tree/helpers.ts","../src/core/components/tree/treeContext.ts","../src/core/components/tree/tree.tsx","../src/core/components/tree/useTree.ts","../src/core/components/tree/treeGroup.tsx","../src/core/components/tree/treeItem.tsx"],"sourcesContent":["import {\n createColorTheme as _createColorTheme,\n hexToRgb as _hexToRgb,\n hslToRgb as _hslToRgb,\n multiply as _multiply,\n parseColor as _parseColor,\n rgba as _rgba,\n rgbToHex as _rgbToHex,\n rgbToHsl as _rgbToHsl,\n screen as _screen,\n} from '@sanity/ui/theme'\n\nexport {\n /** @deprecated use `px` from `@sanity/ui/css` */\n px,\n /** @deprecated use `rem` from `@sanity/ui/css` */\n rem,\n} from '@sanity/ui/css'\n\n/**\n * @public\n * @deprecated Use `createColorTheme` from `@sanity/ui/theme` instead.\n */\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","import type {CSSObject} from '@sanity/ui/theme'\n\n/**\n * @internal\n * @deprecated do not use\n */\nexport function _responsive<T>(\n media: number[],\n values: T[],\n callback: (value: T, index: number, array: T[]) => CSSObject,\n): CSSObject[] {\n const statements = values?.map(callback) || []\n\n return statements.map((statement, mediaIndex) => {\n if (mediaIndex === 0) return statement\n\n return {[`@media screen and (min-width: ${media[mediaIndex - 1]}px)`]: statement}\n })\n}\n","/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\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","import {useState} from 'react'\n\nimport {_getArrayProp} from '../helpers'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n * @deprecated Use `useResponsiveProp` instead.\n */\nexport function useArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {\n const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [\n _getArrayProp(val, defaultVal),\n JSON.stringify(val ?? defaultVal),\n ])\n\n const hash = JSON.stringify(val ?? defaultVal)\n\n if (hash !== cachedHash) {\n // If the cached hash has changed, update the cache right away.\n // Calling setState during render is fine in this case, and preferred over a useEffect loop\n // https://19.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n setCache([_getArrayProp(val, defaultVal), hash])\n }\n\n return cachedVal\n}\n","import {useEffect, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/** @public */\nexport type ClickOutsideListener = (event: MouseEvent) => void\n\n/** @public */\nexport type ClickOutsideElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\nfunction _getElements(\n element: HTMLElement | null,\n elementsArg: ClickOutsideElements,\n): HTMLElement[] {\n const ret = [element]\n\n for (const el of elementsArg) {\n if (Array.isArray(el)) {\n ret.push(...el)\n } else {\n ret.push(el)\n }\n }\n\n return ret.filter(Boolean) as HTMLElement[]\n}\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: ClickOutsideListener,\n elementsArg: ClickOutsideElements = EMPTY_ARRAY,\n boundaryElement?: HTMLElement | null,\n): (el: HTMLElement | null) => void {\n const [element, setElement] = useState<HTMLElement | null>(null)\n const [elements, setElements] = useState(() => _getElements(element, elementsArg))\n const elementsRef = useRef(elements)\n\n useEffect(() => {\n const prevElements = elementsRef.current\n const nextElements = _getElements(element, elementsArg)\n\n if (prevElements.length !== nextElements.length) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n\n for (const el of prevElements) {\n if (!nextElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n\n for (const el of nextElements) {\n if (!prevElements.includes(el)) {\n setElements(nextElements)\n elementsRef.current = nextElements\n\n return\n }\n }\n }, [element, elementsArg])\n\n useEffect(() => {\n if (!listener) return undefined\n\n const handleWindowMouseDown = (evt: MouseEvent) => {\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (boundaryElement && !boundaryElement.contains(target)) {\n return\n }\n\n for (const el of elements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n }\n\n window.addEventListener('mousedown', handleWindowMouseDown)\n\n return () => {\n window.removeEventListener('mousedown', handleWindowMouseDown)\n }\n }, [boundaryElement, listener, elements])\n\n return setElement\n}\n","import {useElementSize} from '../useElementSize'\n\n/**\n * Subscribe to the rect of a DOM element.\n * @beta\n *\n * @deprecated Use `useElementSize` instead\n */\nexport function useElementRect(element: HTMLElement | null): DOMRectReadOnly | null {\n const elementSize = useElementSize(element)\n\n return elementSize?._contentRect || null\n}\n","import {type ForwardedRef, type MutableRefObject, useImperativeHandle, useRef} from 'react'\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<T>(ref: ForwardedRef<T>): MutableRefObject<T | null> {\n const innerRef = useRef<T | null>(null)\n\n useImperativeHandle(ref, () => innerRef.current!)\n\n return innerRef\n}\n","import {\n label,\n type LabelStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_LABEL_ELEMENT = 'div'\n\n/** @public */\nexport type LabelOwnProps = LabelStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type LabelElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'li'\n | 'p'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type LabelProps<E extends LabelElementType = LabelElementType> = Props<LabelOwnProps, E>\n\n/**\n * Typographic labels.\n *\n * @public\n */\nexport function Label<E extends LabelElementType = typeof DEFAULT_LABEL_ELEMENT>(\n props: LabelProps<E>,\n) {\n const {\n accent,\n align,\n as: Element = DEFAULT_LABEL_ELEMENT,\n children,\n className,\n muted = false,\n size = 1,\n textOverflow: textOverflowProp,\n weight = 'regular',\n ...rest\n } = props\n\n return (\n <Element\n data-ui=\"Label\"\n {...rest}\n className={label({\n className,\n accent,\n align,\n muted,\n size,\n weight,\n })}\n >\n <span\n className={textOverflow({\n textOverflow: textOverflowProp,\n })}\n >\n {children}\n </span>\n </Element>\n )\n}\n","import {\n avatar,\n avatarArrow,\n avatarImage,\n avatarImageOutline,\n avatarInitials,\n type ResponsiveProp,\n} from '@sanity/ui/css'\nimport type {AvatarColor, FontLabelSize} from '@sanity/ui/theme'\nimport {useCallback, useEffect, useMemo, useState} from 'react'\n\nimport {useResponsiveProp} from '../../hooks'\nimport type {AvatarPosition, AvatarSize, AvatarStatus, ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Label} from '../label'\n\n/** @public */\nexport const DEFAULT_AVATAR_ELEMENT = 'span'\n\n/** @public */\nexport interface AvatarOwnProps {\n /** @beta */\n __unstable_hideInnerStroke?: boolean\n animateArrowFrom?: AvatarPosition\n arrowPosition?: AvatarPosition\n color?: AvatarColor\n initials?: string\n onImageLoadError?: (event: Error) => void\n size?: ResponsiveProp<AvatarSize>\n src?: string\n /**\n * The status of the entity this Avatar represents.\n * @deprecated Will be removed in next major version.\n */\n status?: AvatarStatus\n title?: string\n}\n\n/** @public */\nexport type AvatarElementType = 'a' | 'button' | 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarProps<E extends AvatarElementType = AvatarElementType> = Props<AvatarOwnProps, E>\n\n/**\n * Avatars are used to represent people and other agents (e.g. bots).\n *\n * @public\n */\nexport function Avatar<E extends AvatarElementType = typeof DEFAULT_AVATAR_ELEMENT>(\n props: AvatarProps<E>,\n) {\n const {\n __unstable_hideInnerStroke,\n as: Element = DEFAULT_AVATAR_ELEMENT,\n className,\n color = 'magenta',\n src,\n title,\n initials,\n onImageLoadError,\n arrowPosition: arrowPositionProp,\n animateArrowFrom,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n status = 'online',\n size: sizeProp = 1,\n ...rest\n } = props as AvatarProps<typeof DEFAULT_AVATAR_ELEMENT>\n\n const size = useResponsiveProp(sizeProp)\n\n const [arrowPosition, setArrowPosition] = useState<AvatarPosition | undefined>(\n animateArrowFrom || arrowPositionProp || 'inside',\n )\n\n const [imageError, setImageError] = useState<boolean>(false)\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 if (src) setImageError(false)\n }, [src])\n\n const handleImageError = useCallback(() => {\n setImageError(true)\n\n if (onImageLoadError) {\n onImageLoadError(new Error('Avatar: the image failed to load'))\n }\n }, [onImageLoadError])\n\n const initialsSize = useMemo(\n () =>\n Object.values(size).map((s) => {\n if (s === 1) return 1 satisfies FontLabelSize\n if (s === 2) return 3 satisfies FontLabelSize\n if (s === 3) return 5 satisfies FontLabelSize\n\n return 0 satisfies FontLabelSize\n }) as ResponsiveProp<FontLabelSize>,\n [size],\n )\n\n return (\n <Element\n data-hide-inner-stroke={__unstable_hideInnerStroke ? '' : undefined}\n data-ui=\"Avatar\"\n {...rest}\n aria-label={title}\n className={avatar({className, color, size: sizeProp})}\n data-arrow-position={arrowPosition}\n data-image-error={imageError ? '' : undefined}\n title={title}\n >\n <span 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 </span>\n\n <Box\n alignItems=\"center\"\n as=\"span\"\n className={avatarInitials()}\n display=\"flex\"\n justifyContent=\"center\"\n position=\"absolute\"\n inset={0}\n >\n <Label align=\"center\" as=\"span\" size={initialsSize} weight=\"medium\">\n {initials}\n </Label>\n </Box>\n\n {src && (\n <Box className={avatarImage()} inset={0} position=\"absolute\">\n <img alt={initials} onError={handleImageError} src={src} />\n <span className={avatarImageOutline()} />\n </Box>\n )}\n </Element>\n )\n}\n","import {avatarCounter, type ResponsiveProp} from '@sanity/ui/css'\nimport type {AvatarSize, FontLabelSize} from '@sanity/ui/theme'\nimport {useMemo} from 'react'\n\nimport {useResponsiveProp} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Label} from '../label'\n\n/** @public */\nexport const DEFAULT_AVATAR_COUNTER_ELEMENT = 'div'\n\n/** @public */\nexport interface AvatarCounterOwnProps {\n count: number\n size?: ResponsiveProp<AvatarSize>\n}\n\n/** @public */\nexport type AvatarCounterElementType = 'button' | 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarCounterProps<E extends AvatarCounterElementType = AvatarCounterElementType> =\n Props<AvatarCounterOwnProps, E>\n\n/** @public */\nexport function AvatarCounter<\n E extends AvatarCounterElementType = typeof DEFAULT_AVATAR_COUNTER_ELEMENT,\n>(props: AvatarCounterProps<E>) {\n const {\n as = DEFAULT_AVATAR_COUNTER_ELEMENT,\n className,\n count,\n size: sizeProp = 1,\n ...rest\n } = props as AvatarCounterProps<typeof DEFAULT_AVATAR_COUNTER_ELEMENT>\n const size = useResponsiveProp(sizeProp)\n\n const labelSize = useMemo(\n () =>\n Object.values(size).map((s) => {\n if (s === 1) return 1 satisfies FontLabelSize\n if (s === 2) return 3 satisfies FontLabelSize\n if (s === 3) return 5 satisfies FontLabelSize\n\n return 0 satisfies FontLabelSize\n }) as ResponsiveProp<FontLabelSize>,\n [size],\n )\n\n return (\n <Box\n data-ui=\"AvatarCounter\"\n {...rest}\n alignItems=\"center\"\n as={as}\n className={avatarCounter({className, size})}\n display=\"flex\"\n flex=\"none\"\n justifyContent=\"center\"\n paddingX={2}\n sizing=\"border\"\n >\n <Label align=\"center\" as=\"span\" size={labelSize} weight=\"medium\">\n {count}\n </Label>\n </Box>\n )\n}\n","import {avatarStack, type ResponsiveProp} from '@sanity/ui/css'\nimport type {AvatarSize} from '@sanity/ui/theme'\nimport {Children, cloneElement, Fragment, isValidElement, type ReactElement} from 'react'\n\nimport {useResponsiveProp} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\nimport {Box, type BoxOwnProps} from '../box'\nimport type {AvatarProps} from './avatar'\nimport {AvatarCounter} from './avatarCounter'\n\n/** @public */\nexport const DEFAULT_AVATAR_STACK_ELEMENT = 'div'\n\n/** @public */\nexport type AvatarStackChild = ReactElement<AvatarProps<'div'>> | null | undefined | false\n\n/** @public */\nexport type AvatarStackOwnProps = Omit<\n BoxOwnProps,\n 'align' | 'alignItems' | 'display' | 'justify' | 'justifyContent'\n> & {\n children: AvatarStackChild | AvatarStackChild[]\n maxLength?: number\n size?: ResponsiveProp<AvatarSize>\n /** @deprecated No longer supported. */\n tone?: 'navbar'\n}\n\n/** @public */\nexport type AvatarStackElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type AvatarStackProps<E extends AvatarStackElementType = AvatarStackElementType> = Props<\n AvatarStackOwnProps,\n E\n>\n\n/** @public */\nexport function AvatarStack<E extends AvatarStackElementType = typeof DEFAULT_AVATAR_STACK_ELEMENT>(\n props: AvatarStackProps<E>,\n) {\n const {\n as = DEFAULT_AVATAR_STACK_ELEMENT,\n children: childrenProp,\n className,\n maxLength: maxLengthProp = 4,\n size: sizeProp = 1,\n ...rest\n } = props as AvatarStackProps<typeof DEFAULT_AVATAR_STACK_ELEMENT>\n\n const children = Children.toArray(childrenProp).filter(isValidElement) as ReactElement<\n AvatarProps<'div'>\n >[]\n const maxLength = Math.max(maxLengthProp, 0)\n const size = useResponsiveProp(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 <Box\n data-ui=\"AvatarStack\"\n {...rest}\n alignItems=\"center\"\n as={as}\n className={avatarStack({className, size})}\n display=\"flex\"\n justifyContent=\"flex-start\"\n >\n {len === 0 && <AvatarCounter count={len} size={size} />}\n\n {len !== 0 && extraCount > 1 && <AvatarCounter count={extraCount} size={size} />}\n\n {visibleChildren.map((child, childIndex) => (\n <Fragment key={String(childIndex)}>{cloneElement(child, {size})}</Fragment>\n ))}\n </Box>\n )\n}\n","import type {PaddingStyleProps, RadiusStyleProps, ResponsiveProp} from '@sanity/ui/css'\nimport {badge} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {BadgeTone, ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/** @public */\nexport const DEFAULT_BADGE_ELEMENT = 'span'\n\n/** @public */\nexport type BadgeOwnProps = PaddingStyleProps &\n RadiusStyleProps & {\n fontSize?: ResponsiveProp<FontTextSize>\n tone?: BadgeTone\n }\n\n/** @public */\nexport type BadgeElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type BadgeProps<E extends BadgeElementType = BadgeElementType> = Props<BadgeOwnProps, E>\n\n/**\n * Badges are used to tag resources.\n *\n * @public\n */\nexport function Badge<E extends BadgeElementType = typeof DEFAULT_BADGE_ELEMENT>(\n props: BadgeProps<E>,\n) {\n const {\n as = DEFAULT_BADGE_ELEMENT,\n children,\n className,\n fontSize = 1,\n padding = 1,\n radius = 2,\n tone = 'default',\n ...rest\n } = props as BadgeProps<typeof DEFAULT_BADGE_ELEMENT>\n\n return (\n <Box\n data-ui=\"Badge\"\n {...rest}\n as={as}\n className={badge({className, tone})}\n display=\"inline-flex\"\n maxWidth=\"fill\"\n padding={padding}\n radius={radius}\n >\n <Text size={fontSize}>{children}</Text>\n </Box>\n )\n}\n","import {CheckmarkIcon, RemoveIcon} from '@sanity/icons'\nimport {checkbox, checkboxInput, checkboxPresentation} from '@sanity/ui/css'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_CHECKBOX_ELEMENT = 'input'\n\n/** @public */\nexport type CheckboxOwnProps = {\n indeterminate?: boolean\n customValidity?: string\n}\n\n/** @public */\nexport type CheckboxElementType = 'input' | ComponentType\n\n/** @public */\nexport type CheckboxProps<E extends CheckboxElementType = CheckboxElementType> = Props<\n CheckboxOwnProps,\n E\n>\n\n/**\n * Checkboxes allow the user to select one or more items from a set.\n *\n * @public\n */\nexport function Checkbox<E extends CheckboxElementType = typeof DEFAULT_CHECKBOX_ELEMENT>(\n props: CheckboxProps<E>,\n) {\n const {\n as: Element = DEFAULT_CHECKBOX_ELEMENT,\n checked,\n className,\n disabled,\n indeterminate,\n customValidity,\n readOnly,\n ref: forwardedRef,\n style,\n ...rest\n } = props as CheckboxProps<typeof DEFAULT_CHECKBOX_ELEMENT>\n\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 <span className={checkbox({className})} data-ui=\"Checkbox\" style={style}>\n <Element\n {...rest}\n checked={checked}\n className={checkboxInput()}\n data-invalid={customValidity ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n readOnly={readOnly}\n ref={ref}\n />\n <span className={checkboxPresentation()}>\n <CheckmarkIcon />\n <RemoveIcon />\n </span>\n </span>\n )\n}\n","import {container, type ContainerStyleProps} from '@sanity/ui/css'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\n\n/** @public */\nexport const DEFAULT_CONTAINER_ELEMENT = 'div'\n\n/** @public */\nexport type ContainerOwnProps = Omit<BoxOwnProps, 'width'> & ContainerStyleProps\n\n/** @public */\nexport type ContainerElementType = BoxElementType\n\n/** @public */\nexport type ContainerProps<E extends ContainerElementType = ContainerElementType> = Props<\n ContainerOwnProps,\n E\n>\n\n/**\n * The `Container` component wraps content layout in a defined set of widths.\n *\n * @public\n */\nexport function Container<E extends ContainerElementType = typeof DEFAULT_CONTAINER_ELEMENT>(\n props: ContainerProps<E>,\n) {\n const {\n as = DEFAULT_CONTAINER_ELEMENT,\n className,\n width = 2,\n ...rest\n } = props as ContainerProps<typeof DEFAULT_CONTAINER_ELEMENT>\n\n return <Box data-ui=\"Container\" {...rest} as={as} className={container({className, width})} />\n}\n","import {\n heading,\n type HeadingStyleProps,\n textOverflow,\n type TextOverflowStyleProps,\n} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_HEADING_ELEMENT = 'div'\n\n/** @public */\nexport type HeadingOwnProps = HeadingStyleProps & TextOverflowStyleProps\n\n/** @public */\nexport type HeadingElementType =\n | 'div'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'label'\n | 'span'\n | ComponentType\n\n/** @public */\nexport type HeadingProps<E extends HeadingElementType = HeadingElementType> = Props<\n HeadingOwnProps,\n E\n>\n\n/**\n * Typographic headings.\n *\n * @public\n */\nexport function Heading<E extends HeadingElementType = typeof DEFAULT_HEADING_ELEMENT>(\n props: HeadingProps<E>,\n) {\n const {\n accent = false,\n align,\n as: Element = DEFAULT_HEADING_ELEMENT,\n children,\n className,\n flex,\n muted = false,\n size = 2,\n textOverflow: textOverflowProp,\n weight = 'regular',\n ...rest\n } = props as HeadingProps<typeof DEFAULT_HEADING_ELEMENT>\n\n return (\n <Element\n data-ui=\"Heading\"\n {...rest}\n className={heading({\n className,\n accent,\n align,\n flex,\n muted,\n size,\n weight,\n })}\n >\n <span\n className={textOverflow({\n textOverflow: textOverflowProp,\n })}\n >\n {children}\n </span>\n </Element>\n )\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Box, type BoxElementType, type BoxOwnProps} from '../box'\n\n/** @public */\nexport const DEFAULT_INLINE_ELEMENT = 'div'\n\n/** @public */\nexport type InlineOwnProps = Omit<\n BoxOwnProps,\n | 'alignItems'\n | 'flexDirection'\n | 'flexWrap'\n | 'justifyContent'\n | 'gridAutoColumns'\n | 'gridAutoFlow'\n | 'gridAutoRows'\n | 'gridColumnEnd'\n | 'gridColumnStart'\n | 'gridColumn'\n | 'gridRowEnd'\n | 'gridRowStart'\n | 'gridRow'\n | 'gridTemplateColumns'\n | 'gridTemplateRows'\n // todo: omit deprecated flex and grid props\n> & {\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type InlineElementType = BoxElementType\n\n/** @public */\nexport type InlineProps<E extends InlineElementType = InlineElementType> = Props<InlineOwnProps, E>\n\n/**\n * The `Inline` component is a layout utility for aligning and spacing items horizontally.\n *\n * @public\n */\nexport function Inline<E extends InlineElementType = typeof DEFAULT_INLINE_ELEMENT>(\n props: InlineProps<E>,\n) {\n const {\n as = DEFAULT_INLINE_ELEMENT,\n children,\n gap,\n space,\n ...rest\n } = props as InlineProps<typeof DEFAULT_INLINE_ELEMENT>\n\n return (\n <Box\n data-ui=\"Inline\"\n {...rest}\n alignItems=\"center\"\n as={as}\n display=\"flex\"\n gap={gap ?? space}\n flexWrap=\"wrap\"\n >\n {children}\n </Box>\n )\n}\n","import {type ReactElement, type ReactNode, useMemo} from 'react'\n\nimport {BoundaryElementContext} from './boundaryElementContext'\nimport type {BoundaryElementContextValue} from './types'\n\n/** @public */\nexport interface BoundaryElementProviderProps {\n children: ReactNode\n element: HTMLElement | null\n}\n\n/** @public */\nexport function BoundaryElementProvider(props: BoundaryElementProviderProps): ReactElement {\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","import {Component, type ErrorInfo, type PropsWithChildren, type ReactNode} from 'react'\n\nimport {Code} from '../primitives/code'\n\n/**\n * DO NOT USE IN PRODUCTION\n * @beta\n */\nexport type ErrorBoundaryProps = PropsWithChildren<{\n onCatch: (params: {error: Error; info: 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 override state: ErrorBoundaryState = {error: null}\n\n static displayName = 'ErrorBoundary'\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 override componentDidCatch(error: Error, info: ErrorInfo): void {\n this.props.onCatch({error, info})\n }\n\n override render(): ReactNode {\n const {error} = this.state\n\n if (error) {\n const message = typeof error?.message === 'string' ? error.message : 'Error'\n\n return <Code>{message}</Code>\n }\n\n return this.props.children\n }\n}\n","import {srOnly} from '@sanity/ui/css'\n\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_SR_ONLY_ELEMENT = 'span'\n\n/** @public */\nexport type SrOnlyOwnProps = {} // eslint-disable-line @typescript-eslint/no-empty-object-type\n\n/** @public */\nexport type SrOnlyElementType = 'span' | ComponentType\n\n/** @public */\nexport type SrOnlyProps<E extends SrOnlyElementType = SrOnlyElementType> = Props<SrOnlyOwnProps, E>\n\n/** @public */\nexport function SrOnly<E extends SrOnlyElementType = typeof DEFAULT_SR_ONLY_ELEMENT>(\n props: SrOnlyProps<E>,\n) {\n const {\n as: Element = DEFAULT_SR_ONLY_ELEMENT,\n children,\n className,\n ...rest\n } = props as SrOnlyProps<typeof DEFAULT_SR_ONLY_ELEMENT>\n\n return (\n <Element data-ui=\"SrOnly\" {...rest} aria-hidden className={srOnly({className})}>\n {children}\n </Element>\n )\n}\n","import {vars} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n type CSSProperties,\n type ReactNode,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {_isScrollable} from '../../helpers'\nimport {_ResizeObserver} from '../../observers'\nimport {Box} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @beta */\nexport const DEFAULT_VIRTUAL_LIST_ELEMENT = 'div'\n\n/** @beta */\nexport interface VirtualListChangeOpts {\n fromIndex: number\n gap: number\n itemHeight: number\n scrollHeight: number\n scrollTop: number\n toIndex: number\n}\n\n/** @beta */\nexport type VirtualListOwnProps<Item = any> = {\n gap?: Space\n getItemKey?: (item: Item, itemIndex: number) => string\n items?: Item[]\n onChange?: (opts: VirtualListChangeOpts) => void\n renderItem?: (item: Item) => ReactNode\n}\n\n/** @beta */\nexport type VirtualListElementType = 'div' | ComponentType\n\n/** @beta */\nexport type VirtualListProps<E extends VirtualListElementType = VirtualListElementType> = Props<\n VirtualListOwnProps,\n E\n>\n\n/** @beta */\nexport function VirtualList<E extends VirtualListElementType = typeof DEFAULT_VIRTUAL_LIST_ELEMENT>(\n props: VirtualListProps<E>,\n) {\n const {\n as = DEFAULT_VIRTUAL_LIST_ELEMENT,\n gap = 0,\n getItemKey,\n items = [],\n onChange,\n renderItem,\n ref: forwardedRef,\n ...rest\n } = props as VirtualListProps<typeof DEFAULT_VIRTUAL_LIST_ELEMENT>\n\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 const [gapValue, setGapValue] = useState(0)\n\n // Sync ref to parent\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\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 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 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 + gapValue) - gapValue : 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 onChange?.({\n fromIndex,\n gap: gapValue,\n itemHeight,\n scrollHeight,\n scrollTop,\n toIndex,\n })\n }, [fromIndex, gapValue, itemHeight, onChange, scrollHeight, scrollTop, toIndex])\n\n const children = useMemo(() => {\n if (!renderItem || items.length === 0) return null\n\n if (itemHeight === -1) {\n return [\n <>\n <Box\n ref={(el) => (el ? setItemHeight(el.offsetHeight) : undefined)}\n insetTop={0}\n insetLeft={0}\n insetRight={0}\n key={0}\n position=\"absolute\"\n >\n {renderItem(items[0])}\n </Box>\n <div\n ref={(el) => (el ? setGapValue(el.offsetHeight) : undefined)}\n style={{height: vars.space[gap]}}\n />\n </>,\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 <Box\n insetLeft={0}\n insetRight={0}\n key={key}\n position=\"absolute\"\n style={{top: itemIndex * (itemHeight + gapValue) - gapValue}}\n >\n {node}\n </Box>\n )\n })\n }, [fromIndex, gap, gapValue, getItemKey, itemHeight, items, renderItem, toIndex])\n\n const wrapperStyle: CSSProperties = useMemo(() => ({height}), [height])\n\n return (\n <Box data-ui=\"VirtualList\" {...rest} as={as} position=\"relative\" ref={ref}>\n <div ref={wrapperRef} style={wrapperStyle}>\n {children}\n </div>\n </Box>\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","import {radio, radioInput, radioPresentation} from '@sanity/ui/css'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_RADIO_ELEMENT = 'input'\n\n/** @public */\nexport type RadioOwnProps = {\n customValidity?: string\n}\n\n/** @public */\nexport type RadioElementType = 'input' | ComponentType\n\n/** @public */\nexport type RadioProps<E extends RadioElementType = RadioElementType> = Props<RadioOwnProps, E>\n\n/**\n * The `Radio` component allows the user to select one option from a set.\n *\n * @public\n */\nexport function Radio<E extends RadioElementType = typeof DEFAULT_RADIO_ELEMENT>(\n props: RadioProps<E>,\n) {\n const {\n as: Element = DEFAULT_RADIO_ELEMENT,\n className,\n disabled,\n style,\n customValidity,\n readOnly,\n ref: forwardedRef,\n ...rest\n } = props as RadioProps<typeof DEFAULT_RADIO_ELEMENT>\n\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={radio({className})} data-ui=\"Radio\" style={style}>\n <Element\n {...rest}\n className={radioInput()}\n data-invalid={customValidity ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n readOnly={readOnly}\n ref={ref}\n type=\"radio\"\n />\n <span className={radioPresentation()} />\n </div>\n )\n}\n","import {ChevronDownIcon} from '@sanity/icons'\nimport {\n _inputElement,\n type ResponsiveProp,\n select,\n selectPresentation,\n type SelectStyleProps,\n} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box'\nimport {Text} from '../text'\n\n/** @public */\nexport const DEFAULT_SELECT_ELEMENT = 'select'\n\n/** @public */\nexport type SelectOwnProps = SelectStyleProps & {\n customValidity?: string\n readOnly?: boolean\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type SelectElementType = 'select' | ComponentType\n\n/** @public */\nexport type SelectProps<E extends SelectElementType = SelectElementType> = Props<SelectOwnProps, E>\n\n/**\n * The `Select` component provides control of options.\n *\n * @public\n */\nexport function Select<E extends SelectElementType = typeof DEFAULT_SELECT_ELEMENT>(\n props: SelectProps<E>,\n) {\n const {\n as: Element = DEFAULT_SELECT_ELEMENT,\n border = true,\n children,\n customValidity,\n disabled,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 1,\n readOnly,\n ref: forwardedRef,\n space = 2,\n ...rest\n } = props as SelectProps<typeof DEFAULT_SELECT_ELEMENT>\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\n data-ui=\"Select\"\n className={select({border, fontSize, padding, radius, gap: gap ?? space})}\n data-icon-right=\"\"\n >\n <Element {...rest} className={_inputElement()} disabled={disabled || readOnly} ref={ref}>\n {children}\n </Element>\n <span className={selectPresentation()}>\n <Box as=\"span\" display=\"inline-block\" padding={padding}>\n <Text size={fontSize}>\n <ChevronDownIcon />\n </Text>\n </Box>\n </span>\n </div>\n )\n}\n","import {\n _switch,\n _switchElement,\n _switchPresentation,\n _switchThumb,\n _switchTrack,\n} from '@sanity/ui/css'\nimport {useEffect, useImperativeHandle, useRef} from 'react'\n\nimport type {ComponentType, Props} from '../../types'\nimport {Box} from '../box'\n\n/** @public */\nexport const DEFAULT_SWITCH_ELEMENT = 'input'\n\n/** @public */\nexport type SwitchOwnProps = {\n indeterminate?: boolean\n}\n\n/** @public */\nexport type SwitchElementType = 'input' | ComponentType\n\n/** @public */\nexport type SwitchProps<E extends SwitchElementType = SwitchElementType> = Props<SwitchOwnProps, E>\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<E extends SwitchElementType = typeof DEFAULT_SWITCH_ELEMENT>(\n props: SwitchProps<E>,\n) {\n const {\n as: Element = DEFAULT_SWITCH_ELEMENT,\n checked,\n className,\n disabled,\n indeterminate,\n readOnly,\n ref: forwardedRef,\n style,\n ...rest\n } = props as SwitchProps<typeof DEFAULT_SWITCH_ELEMENT>\n\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 <Box\n className={_switch({className})}\n data-checked={checked ? '' : undefined}\n data-indeterminate={indeterminate ? '' : undefined}\n data-ui=\"Switch\"\n display=\"inline-block\"\n position=\"relative\"\n style={style}\n >\n <Element\n {...rest}\n checked={indeterminate !== true && checked}\n className={_switchElement()}\n data-disabled={disabled ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n disabled={disabled || readOnly}\n type=\"checkbox\"\n ref={ref}\n />\n <span aria-hidden className={_switchPresentation()}>\n <span className={_switchTrack()} />\n <span className={_switchThumb()} />\n </span>\n </Box>\n )\n}\n","import {\n _inputElement,\n _inputPresentation,\n type ResponsiveProp,\n textArea,\n type TextAreaStyleProps,\n} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {useImperativeHandle, useRef} from 'react'\n\nimport {useCustomValidity} from '../../hooks'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TEXT_AREA_ELEMENT = 'textarea'\n\n/** @public */\nexport type TextAreaOwnProps = TextAreaStyleProps & {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n customValidity?: string\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @public */\nexport type TextAreaElementType = 'textarea' | ComponentType\n\n/** @public */\nexport type TextAreaProps<E extends TextAreaElementType = TextAreaElementType> = Props<\n TextAreaOwnProps,\n E\n>\n\n/**\n * A multiline text input.\n *\n * @public\n */\nexport function TextArea<E extends TextAreaElementType = typeof DEFAULT_TEXT_AREA_ELEMENT>(\n props: TextAreaProps<E>,\n) {\n const {\n // TODO: fix this\n\n __unstable_disableFocusRing,\n as: Element = DEFAULT_TEXT_AREA_ELEMENT,\n border = true,\n customValidity,\n disabled = false,\n fontSize = 2,\n gap,\n padding = 3,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n space = 3,\n ...rest\n } = props as TextAreaProps<typeof DEFAULT_TEXT_AREA_ELEMENT>\n\n const ref = useRef<HTMLTextAreaElement | null>(null)\n\n useImperativeHandle<HTMLTextAreaElement | null, HTMLTextAreaElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n return (\n <span\n className={textArea({\n border,\n fontSize,\n padding,\n radius,\n gap: gap ?? space,\n })}\n data-invalid={customValidity ? '' : undefined}\n data-read-only={!disabled && readOnly ? '' : undefined}\n data-ui=\"TextArea\"\n >\n <Element\n {...rest}\n className={_inputElement()}\n data-no-focus-ring={__unstable_disableFocusRing ? '' : undefined}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n />\n <span className={_inputPresentation()} />\n </span>\n )\n}\n","import {type ReactElement, type ReactNode, useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport type {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport type {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(props: TooltipDelayGroupProviderProps): ReactElement {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n","import {type KeyboardEvent, type ReactElement, type ReactNode, useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers'\n\nexport interface AutocompleteOptionProps {\n children: ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): ReactElement {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import type {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import type {Placement} from '../../types'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons'\nimport type {ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n type ChangeEvent,\n cloneElement,\n type ElementType,\n type FocusEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_hasFocus, _raf, focusFirstDescendant} from '../../helpers'\nimport {useResponsiveProp} from '../../hooks'\nimport {\n Box,\n type BoxProps,\n Button,\n Card,\n Popover,\n type PopoverProps,\n Stack,\n Text,\n TextInput,\n type TextInputOwnProps,\n} from '../../primitives'\nimport {AnimatedSpinnerIcon} from '../../primitives/spinner/animatedSpinnerIcon'\nimport type {ComponentType, Props, Radius} from '../../types'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport type {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/** @public */\nexport const DEFAULT_AUTOCOMPLETE_ELEMENT = 'input'\n\n/** @public */\nexport type AutocompleteOwnProps<O extends BaseAutocompleteOption = BaseAutocompleteOption> =\n TextInputOwnProps & {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: O) => boolean\n icon?: ElementType | ReactNode\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: O[]\n padding?: ResponsiveProp<Space>\n popover?: Omit<Props<PopoverProps, 'div'>, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: O) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: ForwardedRef<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: O) => string\n suffix?: ReactNode\n value?: string\n }\n\n/** @public */\nexport type AutocompleteElementType = 'input' | ComponentType\n\n/** @public */\nexport type AutocompleteProps<\n E extends AutocompleteElementType = AutocompleteElementType,\n O extends BaseAutocompleteOption = BaseAutocompleteOption,\n> = Props<AutocompleteOwnProps<O>, E>\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport function Autocomplete<\n E extends AutocompleteElementType = typeof DEFAULT_AUTOCOMPLETE_ELEMENT,\n O extends BaseAutocompleteOption = BaseAutocompleteOption,\n>(props: AutocompleteProps<E, O>) {\n const {\n as = DEFAULT_AUTOCOMPLETE_ELEMENT,\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...rest\n } = props as AutocompleteProps<typeof DEFAULT_AUTOCOMPLETE_ELEMENT, O>\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLUListElement | null>(null)\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward ref to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElementRef.current,\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = useResponsiveProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = useMemo(() => {\n const result = Object.fromEntries(\n Object.entries(padding).map(([key, value]) => {\n if (value === 0) return [key, 0]\n if (value === 1) return [key, 1]\n if (value === 2) return [key, 1]\n\n return [key, (value as Space) - 2]\n }),\n ) as ResponsiveProp<Space>\n\n return result\n }, [padding])\n\n const openButtonPadding = useMemo(\n () => Object.values(padding).map((v) => Math.max((v as Space) - 1, 0)) as ResponsiveProp<Space>,\n [padding],\n )\n\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n display=\"block\"\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const input = (\n <TextInput\n {...rest}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n as={as}\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={inputElementRef}\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n )\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <Box\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n gap={1}\n id={listBoxId}\n ref={listBoxElementRef}\n role=\"listbox\"\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </Box>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return renderPopover(\n {\n content,\n hidden: !expanded,\n inputElement: inputElementRef.current,\n onMouseEnter: handlePopoverMouseEnter,\n onMouseLeave: handlePopoverMouseLeave,\n },\n resultsPopoverElementRef,\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={3}\n ref={resultsPopoverElementRef}\n referenceElement={inputElementRef.current}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n popover,\n renderPopover,\n ])\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n {input}\n {results}\n </div>\n )\n}\n","import {breadcrumbs, type GapStyleProps} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n Children,\n Fragment,\n isValidElement,\n type ReactNode,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {useClickOutsideEvent} from '../../hooks'\nimport {Box, Button, type ButtonProps, Flex, Popover, Stack, Text} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @beta */\nexport const DEFAULT_BREADCRUMBS_ELEMENT = 'nav'\n\n/** @beta */\nexport type BreadcrumbsOwnProps = GapStyleProps & {\n expandButton?: Omit<ButtonProps<'button'>, 'as' | 'onClick' | 'selected'>\n maxLength?: number\n separator?: ReactNode\n /** @deprecated - Use `gap`, `gapX`, `gapY` instead */\n space?: number | number[]\n}\n\n/** @beta */\nexport type BreadcrumbsElementType = 'div' | 'nav' | ComponentType\n\n/** @beta */\nexport type BreadcrumbsProps<E extends BreadcrumbsElementType = BreadcrumbsElementType> = Props<\n BreadcrumbsOwnProps,\n E\n>\n\n/** @beta */\nexport function Breadcrumbs<E extends BreadcrumbsElementType = typeof DEFAULT_BREADCRUMBS_ELEMENT>(\n props: BreadcrumbsProps<E>,\n) {\n const {\n as = DEFAULT_BREADCRUMBS_ELEMENT,\n children,\n className,\n expandButton: expandButtonProps,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n gap: _gapProp,\n gapX = props.gap ?? (props.space as Space | undefined) ?? 2,\n gapY = props.gap ?? (props.space as Space | undefined) ?? 2,\n maxLength,\n separator,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n space: _spaceProp,\n ...rest\n } = props as BreadcrumbsProps<typeof DEFAULT_BREADCRUMBS_ELEMENT>\n\n const [open, setOpen] = useState(false)\n const expandElementRef = useRef<HTMLButtonElement | null>(null)\n const popoverElementRef = useRef<HTMLDivElement | null>(null)\n\n const collapse = useCallback(() => setOpen(false), [])\n const expand = useCallback(() => setOpen(true), [])\n\n useClickOutsideEvent(collapse, () => [expandElementRef.current, popoverElementRef.current])\n\n const rawItems = useMemo(() => Children.toArray(children).filter(isValidElement), [children])\n\n const items = useMemo(() => {\n const len = rawItems.length\n\n if (maxLength && len > maxLength) {\n const beforeLength = Math.ceil(maxLength / 2)\n const afterLength = Math.floor(maxLength / 2)\n\n return [\n ...rawItems.slice(0, beforeLength - 1),\n <Popover\n constrainSize\n content={\n <Stack as=\"ol\" gap={gapY} overflow=\"auto\">\n {rawItems.slice(beforeLength - 1, len - afterLength)}\n </Stack>\n }\n key=\"button\"\n open={open}\n padding={2}\n placement=\"top\"\n portal\n ref={popoverElementRef}\n >\n <Button\n mode=\"bleed\"\n padding={0}\n text=\"…\"\n {...expandButtonProps}\n onClick={open ? collapse : expand}\n ref={expandElementRef}\n selected={open}\n />\n </Popover>,\n ...rawItems.slice(len - afterLength),\n ]\n }\n\n return rawItems\n }, [collapse, expand, expandButtonProps, gapY, maxLength, open, rawItems])\n\n return (\n <Flex\n as={as}\n data-ui=\"Breadcrumbs\"\n {...rest}\n className={breadcrumbs({className})}\n gapX={gapX}\n gapY={gapY}\n >\n {items.map((item, itemIndex) => (\n <Fragment key={itemIndex}>\n {itemIndex > 0 && (\n <Box aria-hidden as=\"li\">\n {separator || <Text muted>/</Text>}\n </Box>\n )}\n <Box as=\"li\">{item}</Box>\n </Fragment>\n ))}\n </Flex>\n )\n}\n","import {containsOrEqualsElement} from '../../helpers'\n\nexport function 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","import {CloseIcon} from '@sanity/icons'\nimport {dialogCard, dialogContent, dialogFooter, dialogHeader, dialogLayout} from '@sanity/ui/css'\nimport {\n type ForwardedRef,\n type ReactNode,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n} from 'react'\n\nimport {focusFirstDescendant} from '../../helpers'\nimport {useClickOutsideEvent, useGlobalKeyDown} from '../../hooks'\nimport {\n Box,\n Button,\n Card,\n type CardElementType,\n type CardOwnProps,\n Flex,\n Text,\n} from '../../primitives'\nimport type {Props} from '../../types'\nimport {useBoundaryElement, useLayer, usePortal} from '../../utils'\nimport {isTargetWithinScope} from './isTargetWithinScope'\n\n/** @internal */\nexport const DEFAULT_DIALOG_CARD_ELEMENT = 'div'\n\n/** @internal */\nexport type DialogCardOwnProps = CardOwnProps & {\n /**\n * @beta\n */\n __unstable_autoFocus: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton: boolean\n children: ReactNode\n contentRef?: ForwardedRef<HTMLDivElement>\n footer: ReactNode\n header: ReactNode\n id: string\n onClickOutside?: () => void\n onClose?: () => void\n portal?: string\n}\n\n/** @internal */\nexport type DialogCardElementType = CardElementType\n\n/** @internal */\nexport type DialogCardProps<E extends DialogCardElementType = DialogCardElementType> = Props<\n DialogCardOwnProps,\n E\n>\n\n/** @internal */\n\nexport function DialogCard<E extends DialogCardElementType = typeof DEFAULT_DIALOG_CARD_ELEMENT>(\n props: DialogCardProps<E>,\n) {\n const {\n __unstable_autoFocus: autoFocus,\n __unstable_hideCloseButton: hideCloseButton,\n as = DEFAULT_DIALOG_CARD_ELEMENT,\n children,\n contentRef: forwardedContentRef,\n footer,\n header,\n id,\n onClickOutside,\n onClose,\n portal: portalProp,\n ref: forwardedRef,\n ...rest\n } = props as DialogCardProps<typeof DEFAULT_DIALOG_CARD_ELEMENT>\n\n const portal = usePortal()\n const portalElement = portalProp ? portal.elements?.[portalProp] || null : portal.element\n const boundaryElement = useBoundaryElement().element\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 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 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 <Card {...rest} as={as} className={dialogCard()} display=\"flex\" ref={ref}>\n <Flex className={dialogLayout()} direction=\"column\" flex={1}>\n {showHeader && (\n <Box className={dialogHeader()} position=\"relative\">\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 <Box\n className={dialogContent()}\n flex={1}\n overflow=\"auto\"\n position=\"relative\"\n ref={contentRef}\n tabIndex={-1}\n >\n {children}\n </Box>\n {footer && (\n <Box className={dialogFooter()} position=\"relative\">\n {footer}\n </Box>\n )}\n </Flex>\n </Card>\n )\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\n\nimport {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {DialogPosition} from '../../types'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogContextValue {\n version: 0.0\n position?: ResponsiveProp<DialogPosition>\n zOffset?: ResponsiveProp<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, type 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 {\n type ContainerStyleProps,\n dialog,\n dialogContainer,\n type ResponsiveProp,\n} from '@sanity/ui/css'\nimport type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {type FocusEvent, type ForwardedRef, type ReactNode, useCallback, useRef} from 'react'\n\nimport {Z_OFFSETS} from '../../constants'\nimport {focusFirstDescendant, focusLastDescendant, isHTMLElement} from '../../helpers'\nimport {usePrefersReducedMotion, useResponsiveProp} from '../../hooks'\nimport {Container} from '../../primitives'\nimport type {CardTone, ComponentType, DialogPosition, Props, Radius} from '../../types'\nimport {\n Layer,\n type LayerOwnProps,\n type LayerProps,\n Portal,\n useBoundaryElement,\n usePortal,\n} from '../../utils'\nimport {DialogCard} from './dialogCard'\nimport {isTargetWithinScope} from './isTargetWithinScope'\nimport {useDialog} from './useDialog'\n\n/** @public */\nexport const DEFAULT_DIALOG_ELEMENT = 'div'\n\n/** @public */\nexport type DialogOwnProps = ContainerStyleProps &\n Omit<LayerOwnProps, 'width'> & {\n /**\n * @beta\n */\n __unstable_autoFocus?: boolean\n /**\n * @beta\n */\n __unstable_hideCloseButton?: boolean\n /**\n * Whether the dialog should animate in on mount.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n cardRadius?: ResponsiveProp<Radius>\n contentRef?: ForwardedRef<HTMLDivElement>\n footer?: ReactNode\n header?: 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 open?: boolean\n portal?: string\n position?: ResponsiveProp<DialogPosition>\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n zOffset?: number | number[]\n }\n\n/** @public */\nexport type DialogElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type DialogProps<E extends DialogElementType = DialogElementType> = Props<DialogOwnProps, E>\n\n/**\n * The Dialog component.\n *\n * @public\n */\nexport function Dialog<E extends DialogElementType = typeof DEFAULT_DIALOG_ELEMENT>(\n props: DialogProps<E>,\n) {\n const context = useDialog()\n const {\n __unstable_autoFocus: autoFocus = true,\n __unstable_hideCloseButton: hideCloseButton = false,\n animate: _animate = false,\n cardRadius: cardRadiusProp = 4,\n children,\n className,\n contentRef,\n footer,\n header,\n id,\n onActivate,\n onClickOutside,\n onClose,\n onFocus,\n padding = 3,\n portal: portalProp,\n position: _positionProp,\n scheme,\n shadow: cardShadow = 4,\n width = 0,\n zOffset: _zOffsetProp,\n tone,\n ...rest\n } = props as DialogProps<typeof DEFAULT_DIALOG_ELEMENT>\n\n const positionProp = _positionProp ?? context.position ?? 'fixed'\n const zOffsetProp = _zOffsetProp ?? context.zOffset ?? Z_OFFSETS.dialog\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 = useResponsiveProp(cardRadiusProp)\n const position = useResponsiveProp(positionProp)\n const zOffset = useResponsiveProp(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: 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 <Layer\n {...rest}\n aria-labelledby={labelId}\n aria-modal\n className={dialog({className})}\n data-animate={animate ? '' : undefined}\n data-ui=\"Dialog\"\n display=\"flex\"\n id={id}\n onActivate={onActivate}\n onClick={handleRootClick}\n onFocus={handleFocus}\n padding={padding}\n position={position}\n role=\"dialog\"\n zOffset={zOffset}\n >\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={preDivRef} tabIndex={0} />\n <Container\n alignItems=\"center\"\n className={dialogContainer()}\n data-ui=\"DialogCard\"\n flexDirection=\"column\"\n display=\"flex\"\n justifyContent=\"center\"\n width={width}\n >\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 tone={tone}\n width={width}\n >\n {children}\n </DialogCard>\n </Container>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n <div ref={postDivRef} tabIndex={0} />\n </Layer>\n </Portal>\n )\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport {type ReactElement, type ReactNode, useMemo} from 'react'\n\nimport type {DialogPosition} from '../../types'\nimport {DialogContext, type DialogContextValue} from './dialogContext'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport interface DialogProviderProps {\n children?: ReactNode\n position?: ResponsiveProp<DialogPosition>\n zOffset?: ResponsiveProp<number>\n}\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function DialogProvider(props: DialogProviderProps): ReactElement {\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 type {ThemeColorSchemeKey} from '@sanity/ui/theme'\nimport {\n cloneElement,\n type FocusEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n type ReactElement,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {type ButtonProps, Popover, type PopoverProps} from '../../primitives'\nimport type {Placement, Props, Radius} from '../../types'\nimport type {MenuProps} from './menu'\n\n/** @public */\nexport type MenuButtonProps = {\n /**\n * @beta Do not use in production.\n */\n __unstable_disableRestoreFocusOnClose?: boolean\n /**\n * @deprecated Use `popover={{boundaryElement: element}}` instead.\n */\n boundaryElement?: HTMLElement\n button: ReactElement<ButtonProps>\n id: string\n menu?: ReactElement\n onClose?: () => void\n onOpen?: () => void\n /**\n * @deprecated Use `popover={{placement: 'top'}}` instead.\n */\n placement?: Placement\n popover?: Omit<PopoverProps, 'content' | 'open'>\n /**\n * @deprecated Use `popover={{scheme: 'dark'}}` instead.\n */\n popoverScheme?: ThemeColorSchemeKey\n /**\n * @deprecated Use `popover={{radius: 2}}` instead.\n */\n popoverRadius?: Radius | Radius[]\n /**\n * @beta Do not use in production.\n * @deprecated Use `popover={{portal: true}}` instead.\n */\n portal?: boolean\n /**\n * @deprecated Use `popover={{preventOverflow: true}}` instead.\n */\n preventOverflow?: boolean\n ref?: ForwardedRef<HTMLButtonElement | null>\n}\n\n/**\n * The `MenuButton` component follows the WAI-ARIA specification for menu buttons.\n *\n * @public\n */\nexport function MenuButton(props: MenuButtonProps) {\n const {\n __unstable_disableRestoreFocusOnClose: disableRestoreFocusOnClose = false,\n boundaryElement: deprecated_boundaryElement,\n button: buttonProp,\n id,\n menu: menuProp,\n onClose,\n onOpen,\n placement: deprecated_placement,\n popoverScheme: deprecated_popoverScheme,\n portal: deprecated_portal = true,\n popover,\n popoverRadius: deprecated_popoverRadius,\n preventOverflow: deprecated_preventOverflow,\n ref: forwardedRef,\n } = props\n const [open, setOpen] = useState(false)\n const [shouldFocus, setShouldFocus] = useState<'first' | 'last' | null>(null)\n const [buttonElement, setButtonElement] = useState<HTMLButtonElement | null>(null)\n const [menuElements, setChildMenuElements] = useState<HTMLElement[]>([])\n const openRef = useRef<boolean>(open)\n\n // Notify consumers when the menu opens\n useEffect(() => {\n if (onOpen && open && !openRef.current) {\n onOpen()\n }\n }, [onOpen, open])\n\n // Notify consumers when the menu closes\n useEffect(() => {\n if (onClose && !open && openRef.current) {\n onClose()\n }\n }, [onClose, open])\n\n useEffect(() => {\n openRef.current = open\n }, [open])\n\n const handleButtonClick = useCallback(() => {\n setOpen((v) => !v)\n setShouldFocus(null)\n }, [])\n\n // Prevent mouse event propagation when the menu is open.\n // This is to ensure that `handleBlur` isn't triggered when clicking the menu button whilst open,\n // which can lead to `setOpen` being triggered multiple times (once by `handleBlur`, and again by `handleButtonClick`).\n const handleMouseDown = useCallback(\n (event: ReactMouseEvent<HTMLElement>) => {\n if (open) event.preventDefault()\n },\n [open],\n )\n\n const handleButtonKeyDown = useCallback((event: KeyboardEvent<HTMLButtonElement>) => {\n // On `ArrowDown`, `Enter` and `Space`\n // - Opens menu and moves focus to first menuitem\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('first')\n\n return\n }\n\n // On `ArrowUp`\n // - \tOpens menu and moves focus to last menuitem\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n setOpen(true)\n setShouldFocus('last')\n\n return\n }\n }, [])\n\n const handleMenuClickOutside = useCallback(\n (event: MouseEvent) => {\n const target = event.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n if (buttonElement && (target === buttonElement || buttonElement.contains(target))) {\n return\n }\n\n for (const el of menuElements) {\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [buttonElement, menuElements],\n )\n\n const handleMenuEscape = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n const target = event.relatedTarget\n\n if (!(target instanceof Node)) {\n return\n }\n\n for (const el of menuElements) {\n if (el === target || el.contains(target)) {\n return\n }\n }\n\n setOpen(false)\n },\n [menuElements],\n )\n\n const handleItemClick = useCallback(() => {\n setOpen(false)\n if (disableRestoreFocusOnClose) return\n if (buttonElement) buttonElement.focus()\n }, [buttonElement, disableRestoreFocusOnClose])\n\n const registerElement = useCallback((el: HTMLElement) => {\n setChildMenuElements((els) => els.concat([el]))\n\n return () => setChildMenuElements((els) => els.filter((_el) => _el !== el))\n }, [])\n\n const menuProps: Props<MenuProps, 'div'> = {\n 'aria-labelledby': id,\n 'onBlurCapture': handleBlur,\n 'onClickOutside': handleMenuClickOutside,\n 'onEscape': handleMenuEscape,\n 'onItemClick': handleItemClick,\n 'originElement': buttonElement,\n registerElement,\n shouldFocus,\n }\n\n const menu = menuProp && cloneElement(menuProp, menuProps)\n\n const button = useMemo(() => {\n if (!buttonProp) return null\n\n const buttonProps: ButtonProps<'button'> = {\n 'data-ui': 'MenuButton',\n id,\n 'onClick': handleButtonClick,\n 'onKeyDown': handleButtonKeyDown,\n 'onMouseDown': handleMouseDown,\n 'aria-haspopup': true,\n 'aria-expanded': open,\n 'ref': setButtonElement,\n 'selected': buttonProp.props.selected ?? open,\n }\n\n return cloneElement(buttonProp, buttonProps)\n }, [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open])\n\n // Forward button ref to parent\n useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n forwardedRef,\n () => buttonElement,\n [buttonElement],\n )\n\n const popoverProps: MenuButtonProps['popover'] = useMemo(\n () => ({\n boundaryElement: deprecated_boundaryElement,\n overflow: 'auto',\n placement: deprecated_placement,\n portal: deprecated_portal,\n preventOverflow: deprecated_preventOverflow,\n radius: deprecated_popoverRadius,\n scheme: deprecated_popoverScheme,\n ...(popover || {}),\n }),\n [\n deprecated_boundaryElement,\n deprecated_placement,\n deprecated_popoverRadius,\n deprecated_popoverScheme,\n deprecated_portal,\n deprecated_preventOverflow,\n popover,\n ],\n )\n\n return (\n <Popover data-ui=\"MenuButton__popover\" {...popoverProps} content={menu} open={open}>\n {button || <></>}\n </Popover>\n )\n}\n","import {skeleton, type SkeletonStyleProps} from '@sanity/ui/css'\nimport {useEffect, useState} from 'react'\n\nimport {Box, type BoxOwnProps} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @beta */\nexport const DEFAULT_SKELETON_ELEMENT = 'div'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type SkeletonOwnProps = BoxOwnProps &\n SkeletonStyleProps & {\n animated?: boolean\n delay?: number\n }\n\n/** @beta */\nexport type SkeletonElementType = 'div' | 'span' | ComponentType\n\n/** @beta */\nexport type SkeletonProps<E extends SkeletonElementType = SkeletonElementType> = Props<\n SkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Skeleton<E extends SkeletonElementType = typeof DEFAULT_SKELETON_ELEMENT>(\n props: SkeletonProps<E>,\n) {\n const {\n animated = false,\n className,\n delay,\n radius,\n ...rest\n } = props as SkeletonProps<typeof DEFAULT_SKELETON_ELEMENT>\n\n const [visible, setVisible] = useState<boolean>(delay ? false : true)\n\n useEffect(() => {\n if (!delay) {\n return setVisible(true)\n }\n\n const timeout = setTimeout(() => {\n setVisible(true)\n }, delay)\n\n return () => {\n clearTimeout(timeout)\n }\n }, [delay])\n\n return (\n <Box\n data-ui=\"Skeleton\"\n {...rest}\n className={skeleton({\n className,\n radius,\n })}\n data-animated={animated ? '' : undefined}\n data-visible={visible ? '' : undefined}\n />\n )\n}\n","import {codeSkeleton, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontCodeSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @beta */\nexport const DEFAULT_CODE_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type CodeSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontCodeSize>\n}\n\n/** @beta */\nexport type CodeSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type CodeSkeletonProps<E extends CodeSkeletonElementType = CodeSkeletonElementType> = Props<\n CodeSkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function CodeSkeleton<\n E extends CodeSkeletonElementType = typeof DEFAULT_CODE_SKELETON_ELEMENT,\n>(props: CodeSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as CodeSkeletonProps<typeof DEFAULT_CODE_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={codeSkeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {headingSkeleton, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontHeadingSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @beta */\nexport const DEFAULT_HEADING_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type HeadingSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontHeadingSize>\n}\n\n/** @beta */\nexport type HeadingSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type HeadingSkeletonProps<\n E extends HeadingSkeletonElementType = HeadingSkeletonElementType,\n> = Props<HeadingSkeletonOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function HeadingSkeleton<\n E extends HeadingSkeletonElementType = typeof DEFAULT_HEADING_SKELETON_ELEMENT,\n>(props: HeadingSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as HeadingSkeletonProps<typeof DEFAULT_HEADING_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={headingSkeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {labelSkeleton, type ResponsiveProp} from '@sanity/ui/css'\nimport type {FontLabelSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @beta */\nexport const DEFAULT_LABEL_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type LabelSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontLabelSize>\n}\n\n/** @beta */\nexport type LabelSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type LabelSkeletonProps<E extends LabelSkeletonElementType = LabelSkeletonElementType> =\n Props<LabelSkeletonOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function LabelSkeleton<\n E extends LabelSkeletonElementType = typeof DEFAULT_LABEL_SKELETON_ELEMENT,\n>(props: LabelSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as LabelSkeletonProps<typeof DEFAULT_LABEL_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={labelSkeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {type ResponsiveProp, textSkeleton} from '@sanity/ui/css'\nimport type {FontTextSize} from '@sanity/ui/theme'\n\nimport type {Props} from '../../types'\nimport {Skeleton, type SkeletonElementType, type SkeletonOwnProps} from './skeleton'\n\n/** @beta */\nexport const DEFAULT_TEXT_SKELETON_ELEMENT = 'div'\n\n/** @beta */\nexport type TextSkeletonOwnProps = SkeletonOwnProps & {\n size?: ResponsiveProp<FontTextSize>\n}\n\n/** @beta */\nexport type TextSkeletonElementType = SkeletonElementType\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type TextSkeletonProps<E extends TextSkeletonElementType = TextSkeletonElementType> = Props<\n TextSkeletonOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TextSkeleton<\n E extends TextSkeletonElementType = typeof DEFAULT_TEXT_SKELETON_ELEMENT,\n>(props: TextSkeletonProps<E>) {\n const {\n className,\n size = 2,\n ...rest\n } = props as TextSkeletonProps<typeof DEFAULT_TEXT_SKELETON_ELEMENT>\n\n return (\n <Skeleton\n {...rest}\n className={textSkeleton({\n className,\n size,\n })}\n />\n )\n}\n","import {Box, type BoxOwnProps} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TAB_PANEL_ELEMENT = 'div'\n\n/** @public */\nexport type TabPanelOwnProps = BoxOwnProps & {\n /**\n * The `id` of the correlating `Tab` component.\n */\n 'aria-labelledby': string\n 'id': string\n}\n\n/** @public */\nexport type TabPanelElementType = 'div' | 'span' | ComponentType\n\n/** @public */\nexport type TabPanelProps<E extends TabPanelElementType = TabPanelElementType> = Props<\n TabPanelOwnProps,\n E\n>\n\n/** @public */\nexport function TabPanel<E extends TabPanelElementType = typeof DEFAULT_TAB_PANEL_ELEMENT>(\n props: TabPanelProps<E>,\n) {\n const {\n as = DEFAULT_TAB_PANEL_ELEMENT,\n children,\n tabIndex,\n ...rest\n } = props as TabPanelProps<typeof DEFAULT_TAB_PANEL_ELEMENT>\n\n return (\n <Box\n data-ui=\"TabPanel\"\n {...rest}\n as={as}\n role=\"tabpanel\"\n tabIndex={tabIndex === undefined ? 0 : tabIndex}\n >\n {children}\n </Box>\n )\n}\n","import {CloseIcon} from '@sanity/icons'\nimport {type RadiusStyleProps, toast} from '@sanity/ui/css'\nimport {motion, type Variant, type Variants} from 'framer-motion'\nimport type {ReactNode} from 'react'\n\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {Box, Button, Card, Flex, Stack, Text} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\n\n/** @public */\nexport const DEFAULT_TOAST_ELEMENT = 'li'\n\n/** @public */\nexport type ToastOwnProps = RadiusStyleProps & {\n closable?: boolean\n description?: ReactNode\n onClose?: () => void\n title?: ReactNode\n status?: 'error' | 'warning' | 'success' | 'info'\n /** @deprecated */\n duration?: number\n /** @deprecated */\n updatedAt?: number\n}\n\n/** @public */\nexport type ToastElementType = 'li' | ComponentType\n\n/** @public */\nexport type ToastProps<E extends ToastElementType = ToastElementType> = Props<ToastOwnProps, E>\n\nconst ROLES = {\n error: 'alert',\n warning: 'alert',\n success: 'alert',\n info: 'alert',\n} as const\n\nconst STATUS_CARD_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} as const\n\nconst BUTTON_TONE = {\n error: 'critical',\n warning: 'caution',\n success: 'positive',\n info: 'neutral',\n} as const\n\n/**\n * The `Toast` component gives feedback to users when an action has taken place.\n *\n * Toasts can be closed with a close button, or auto-dismiss after a certain timeout.\n *\n * @public\n */\nexport function Toast<E extends ToastElementType = typeof DEFAULT_TOAST_ELEMENT>(\n props: ToastProps<E>,\n) {\n const {\n as = DEFAULT_TOAST_ELEMENT,\n closable,\n description,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n duration,\n onClose,\n radius = 3,\n title,\n status,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updatedAt,\n ...rest\n } = props as ToastProps<typeof DEFAULT_TOAST_ELEMENT>\n\n const cardTone = status ? STATUS_CARD_TONE[status] : 'default'\n const buttonTone = status ? BUTTON_TONE[status] : 'default'\n const role = status ? ROLES[status] : 'status'\n\n const prefersReducedMotion = usePrefersReducedMotion()\n\n const visualDuration: number = prefersReducedMotion ? 0 : 0.26\n const transition = visualDuration ? {type: 'spring', visualDuration, bounce: 0.25} : {duration: 0}\n\n // const hasDuration = duration && isFinite(duration) && duration < LONG_ENOUGH_BUT_NOT_TOO_LONG\n const initial: ContainerVariants[] = ['hidden', 'initial']\n const animate: ContainerVariants[] = ['visible', 'slideIn']\n const exit: ContainerVariants[] = ['hidden', 'slideOut']\n\n return (\n <MotionCard\n as={as}\n className={toast()}\n data-ui=\"Toast\"\n role={role}\n {...rest}\n custom={visualDuration}\n radius={radius}\n shadow={2}\n tone={cardTone}\n layout=\"position\"\n variants={container}\n initial={initial}\n animate={animate}\n exit={exit}\n transition={transition}\n position=\"relative\"\n >\n <MotionFlex align=\"flex-start\" variants={content} transition={transition}>\n <Flex flex={1} overflowX=\"auto\" padding={3}>\n <Stack gap={3}>\n {title && (\n <Text size={1} weight=\"medium\">\n {title}\n </Text>\n )}\n {description && (\n <MotionText muted size={1} variants={content} transition={transition}>\n {description}\n </MotionText>\n )}\n </Stack>\n </Flex>\n\n {closable && (\n <Box padding={1}>\n <Button\n as=\"button\"\n icon={CloseIcon}\n mode=\"bleed\"\n padding={2}\n tone={buttonTone}\n onClick={onClose}\n style={{verticalAlign: 'top'}}\n />\n </Box>\n )}\n </MotionFlex>\n </MotionCard>\n )\n}\n\nconst container = {\n initial: {y: 32, scale: 0.5, zIndex: 1},\n hidden: {opacity: 0},\n visible: (visualDuration: number) => {\n if (!visualDuration) return {opacity: 1}\n\n return {\n opacity: 1,\n transition: {\n when: 'beforeChildren',\n staggerChildren: visualDuration / 3,\n duration: visualDuration / 3,\n },\n }\n },\n slideIn: {\n y: 0,\n scale: 1,\n },\n slideOut: {\n zIndex: 0,\n scale: 0.75,\n },\n} satisfies Variants\ntype ContainerVariants = keyof typeof container\n\nconst content = {\n initial: {\n willChange: 'transform',\n },\n hidden: {\n opacity: 0,\n },\n visible: {\n opacity: 1,\n },\n} satisfies Partial<Record<ContainerVariants, Variant>>\n\nconst MotionCard = motion.create(Card)\nconst MotionFlex = motion.create(Flex)\nconst MotionText = motion.create(Text)\n","import {useSyncExternalStore} from 'react'\n\n/**\n * Some components should only render after mounting to the DOM, and not be rendered at all during SSR renderToString or equivalent.\n * @public\n */\nexport function useMounted(): boolean {\n return useSyncExternalStore(\n subscribe,\n () => true,\n () => false,\n )\n}\n\nconst subscribe = () => () => {}\n","import {createGlobalScopedContext} from '../../lib/createGlobalScopedContext'\nimport type {ToastContextValue} from './types'\n\nexport const ToastContext = createGlobalScopedContext<ToastContextValue | null>(\n '@sanity/ui/context/toast',\n null,\n)\n","import {type GapStyleProps, type PaddingStyleProps, toastLayer} from '@sanity/ui/css'\n\nimport {Grid} from '../../primitives/grid'\nimport type {ComponentType, Props} from '../../types'\nimport {useLayer} from '../../utils'\n\n/** @internal */\nexport const DEFAULT_TOAST_LAYER_ELEMENT = 'ul'\n\n/** @internal */\nexport type ToastLayerOwnProps = GapStyleProps & PaddingStyleProps\n\n/** @internal */\nexport type ToastLayerElementType = 'ul' | ComponentType\n\n/** @internal */\nexport type ToastLayerProps<E extends ToastLayerElementType = ToastLayerElementType> = Props<\n ToastLayerOwnProps,\n E\n>\n\n/**\n * @internal\n */\nexport function ToastLayer<E extends ToastLayerElementType = typeof DEFAULT_TOAST_LAYER_ELEMENT>(\n props: ToastLayerProps<E>,\n) {\n const {\n as = DEFAULT_TOAST_LAYER_ELEMENT,\n children,\n padding = 4,\n paddingX,\n paddingY,\n gap = 3,\n } = props as ToastLayerProps<typeof DEFAULT_TOAST_LAYER_ELEMENT>\n\n const {zIndex} = useLayer()\n\n return (\n <Grid\n as={as}\n className={toastLayer()}\n data-ui=\"ToastProvider\"\n padding={padding}\n paddingX={paddingX}\n paddingY={paddingY}\n gap={gap}\n columns={1}\n style={{zIndex}}\n >\n {children}\n </Grid>\n )\n}\n","let toastId = 0\n\n/** @internal */\nexport function generateToastId(): string {\n return String(toastId++)\n}\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport {AnimatePresence} from 'framer-motion'\nimport {startTransition, useMemo, useState} from 'react'\n\nimport {useMounted} from '../../hooks/useMounted'\nimport {LayerProvider} from '../../utils'\nimport {Toast} from './toast'\nimport {ToastContext} from './toastContext'\nimport {ToastLayer, type ToastLayerProps} from './toastLayer'\nimport {generateToastId} from './toastState'\nimport type {ToastContextValue, ToastParams} from './types'\n\ntype ToastState = {\n dismiss: () => void\n id: string\n updatedAt: number\n params: ToastParams\n}[]\n\n/** @public */\nexport interface ToastProviderProps extends Omit<ToastLayerProps, 'children'> {\n children?: React.ReactNode\n zOffset?: ResponsiveProp<number>\n}\n\n/** @public */\nexport function ToastProvider(props: ToastProviderProps): React.JSX.Element {\n const {children, padding, paddingX, paddingY, gap, zOffset = 1} = props\n const [state, setState] = useState<ToastState>([])\n const mounted = useMounted()\n\n const value: ToastContextValue = useMemo(() => {\n const push = (params: ToastParams) => {\n const id = params.id || generateToastId()\n const duration = params.duration || 5000\n\n startTransition(() => {\n setState((prevState): ToastState => {\n /**\n * Backwards compatibility for `sanity` patterns workaround a lack of programatically dismissible toasts.\n * It uses a super short duration that closes the toast immediately in previous versions of `@sanity/ui`.\n * We interpret this as a request to dismiss the toast immediately, and remove it from the state right away.\n * Even once we support programatic dismissal we'll need to keep this for backwards compatibility with v2 and v1.\n */\n if (duration === 0.01) {\n return prevState.filter((toast) => toast.id !== id)\n }\n\n /**\n * Creates a function to dismiss this specific toast.\n * This function will be passed to the Toast component\n * and called either on close button click or after duration.\n */\n const dismiss = () =>\n startTransition(() =>\n setState((currentState) => currentState.filter((toast) => toast.id !== id)),\n )\n\n /**\n * Create updated state by:\n * 1. Removing any existing toast with the same ID (prevents duplicates)\n * 2. Adding the new toast with its dismiss handler\n * 3. Updates the `updatedAt` timestamp, which resets progress bar count downs.\n */\n return [\n ...prevState.filter((toast) => toast.id !== id),\n {\n dismiss,\n id,\n updatedAt: Date.now(),\n params: {...params, duration},\n },\n ]\n })\n })\n\n return id\n }\n\n return {version: 0.0, push}\n }, [])\n\n return (\n <ToastContext.Provider value={value}>\n {children}\n {mounted && (\n <LayerProvider zOffset={zOffset}>\n <ToastLayer padding={padding} paddingX={paddingX} paddingY={paddingY} gap={gap}>\n <AnimatePresence initial={false} mode=\"popLayout\">\n {state.map(({dismiss, id, params, updatedAt}) => (\n <Toast\n key={id}\n closable={params.closable}\n description={params.description}\n onClose={dismiss}\n status={params.status}\n title={params.title}\n duration={params.duration}\n updatedAt={updatedAt}\n />\n ))}\n </AnimatePresence>\n </ToastLayer>\n </LayerProvider>\n )}\n </ToastContext.Provider>\n )\n}\n","import {useContext} from 'react'\n\nimport {isRecord} from '../../lib/isRecord'\nimport {ToastContext} from './toastContext'\nimport type {ToastContextValue} from './types'\n\n/** @public */\nexport function useToast(): ToastContextValue {\n const value = useContext(ToastContext)\n\n if (!value) {\n throw new Error('useToast(): missing context value')\n }\n\n // NOTE: This check is for future-compatiblity\n // - If the value is not an object, it’s not compatible with the current version\n // - If the value is an object, but doesn’t have `version: 0.0`, it’s not compatible with the current version\n if (!isRecord(value) || value.version !== 0.0) {\n throw new Error('useToast(): the context value is not compatible')\n }\n\n return value\n}\n","import type {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 type {TreeContextValue} from './types'\n\n/**\n * @internal\n */\nexport const TreeContext = createGlobalScopedContext<TreeContextValue | null>(\n '@sanity/ui/context/tree',\n null,\n)\n","import type {ResponsiveProp} from '@sanity/ui/css'\nimport type {Space} from '@sanity/ui/theme'\nimport {\n type FocusEvent,\n type KeyboardEvent,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {Stack} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\nimport {_findNextItemElement, _findPrevItemElement, _focusItemElement} from './helpers'\nimport {TreeContext} from './treeContext'\nimport type {TreeContextValue, TreeState} from './types'\n\n/** @beta */\nexport const DEFAULT_TREE_ELEMENT = 'div'\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport type TreeOwnProps = {\n gap?: ResponsiveProp<Space>\n /** @deprecated Use `gap` instead. */\n space?: ResponsiveProp<Space>\n}\n\n/** @beta */\nexport type TreeElementType = 'div' | ComponentType\n\n/** @beta */\nexport type TreeProps<E extends TreeElementType = TreeElementType> = Props<TreeOwnProps, E>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function Tree<E extends TreeElementType = typeof DEFAULT_TREE_ELEMENT>(props: TreeProps<E>) {\n const {\n children,\n gap,\n space = 1,\n onFocus,\n ref: forwardedRef,\n ...rest\n } = props as TreeProps<typeof DEFAULT_TREE_ELEMENT>\n\n const ref = useRef<HTMLDivElement | 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<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\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 space,\n state,\n }),\n [focusedElement, itemElements, path, registerItem, setExpanded, space, state],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\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: FocusEvent<HTMLDivElement>) => {\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 }, [children])\n\n return (\n <TreeContext.Provider value={contextValue}>\n <Stack\n as=\"ul\"\n data-ui=\"Tree\"\n {...rest}\n gap={gap ?? space}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n ref={ref}\n role=\"tree\"\n >\n {children}\n </Stack>\n </TreeContext.Provider>\n )\n}\n","import {useContext} from 'react'\n\nimport {TreeContext} from './treeContext'\nimport type {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 {memo, type ReactElement} from 'react'\n\nimport {Stack} from '../../primitives'\nimport type {ComponentType, Props} from '../../types'\nimport {useTree} from './useTree'\n\n/** @public */\nexport const DEFAULT_TREE_GROUP_ELEMENT = 'div'\n\n/** @public */\nexport type TreeGroupElementType = 'div' | ComponentType\n\n/** @public */\nexport type TreeGroupOwnProps = {\n expanded?: boolean\n}\n\n/** @public */\nexport type TreeGroupProps<E extends TreeGroupElementType = TreeGroupElementType> = Props<\n TreeGroupOwnProps,\n E\n>\n\nexport const TreeGroup = memo(function TreeGroup(\n props: Props<TreeGroupProps, 'div'>,\n): ReactElement {\n const {\n children,\n expanded = false,\n ...rest\n } = props as TreeGroupProps<typeof DEFAULT_TREE_GROUP_ELEMENT>\n\n const tree = useTree()\n\n return (\n <Stack\n as=\"ul\"\n data-ui=\"TreeGroup\"\n {...rest}\n hidden={!expanded}\n marginTop={tree.space}\n role=\"group\"\n gap={tree.space}\n >\n {children}\n </Stack>\n )\n})\n","import {ToggleArrowRightIcon} from '@sanity/icons'\nimport {type ResponsiveProp, treeItem, vars} from '@sanity/ui/css'\nimport type {FontTextSize, Space, ThemeFontWeightKey} from '@sanity/ui/theme'\nimport {\n type ElementType,\n type KeyboardEvent,\n type MouseEvent,\n type MouseEventHandler,\n type ReactNode,\n type Ref,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n} from 'react'\n\nimport {Box, type BoxProps, type CardOwnProps, Flex, Text} from '../../primitives'\nimport {Selectable, type SelectableElementType} from '../../primitives/_selectable'\nimport type {ComponentType, Props} from '../../types'\nimport {TreeContext} from './treeContext'\nimport {TreeGroup} from './treeGroup'\nimport {useTree} from './useTree'\n\n/** @beta */\nexport const DEFAULT_TREE_ITEM_ELEMENT = 'a'\n\n/** @beta */\nexport type TreeItemOwnProps = CardOwnProps & {\n expanded?: boolean\n fontSize?: ResponsiveProp<FontTextSize>\n icon?: ElementType\n /**\n * Allows passing a custom element type to the link component\n */\n linkAs?: SelectableElementType\n onClick?: MouseEventHandler<HTMLAnchorElement | HTMLLIElement>\n padding?: ResponsiveProp<Space>\n space?: ResponsiveProp<Space>\n text?: ReactNode\n weight?: ThemeFontWeightKey\n}\n\n/** @beta */\nexport type TreeItemElementType = 'a' | 'li' | ComponentType\n\n/** @beta */\nexport type TreeItemProps<E extends TreeItemElementType = TreeItemElementType> = Props<\n TreeItemOwnProps,\n E\n>\n\n/**\n * This API might change. DO NOT USE IN PRODUCTION.\n * @beta\n */\nexport function TreeItem<E extends TreeItemElementType = typeof DEFAULT_TREE_ITEM_ELEMENT>(\n props: TreeItemProps<E>,\n) {\n const {\n children,\n className,\n expanded: expandedProp = false,\n fontSize = 1,\n href,\n icon: IconComponent,\n id: idProp,\n linkAs = 'a',\n muted,\n onClick,\n padding = 2,\n radius = 2,\n selected = false,\n space = 2,\n text,\n weight,\n ...rest\n } = props as TreeItemProps<typeof DEFAULT_TREE_ITEM_ELEMENT>\n\n const rootRef = useRef<HTMLElement | null>(null)\n const treeitemRef = useRef<HTMLDivElement | 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 = useMemo(() => path.concat([id || '']), [id, path])\n const itemKey = itemPath.join('/')\n const itemState = tree.state[itemKey]\n const focused = tree.focusedElement === rootRef.current\n const expanded = itemState?.expanded === undefined ? expandedProp : itemState?.expanded || false\n const tabIndex = tree.focusedElement && tree.focusedElement === rootRef.current ? 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: MouseEvent<HTMLAnchorElement> | 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(rootRef.current)\n }\n },\n [expanded, itemKey, onClick, setExpanded, setFocusedElement],\n )\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (focused && event.key === 'Enter') {\n const el = treeitemRef.current || rootRef.current\n\n el?.click()\n }\n },\n [focused],\n )\n\n useEffect(() => {\n if (!rootRef.current) return\n\n return registerItem(rootRef.current, itemPath.join('/'), expanded, selected)\n }, [expanded, itemPath, registerItem, selected])\n\n const content = (\n <Flex gap={space} padding={padding}>\n <Box\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 style={{transform: expanded ? 'rotate(90deg)' : undefined}} />\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 <Box\n data-selected={selected ? '' : undefined}\n data-tree-id={id}\n data-tree-key={itemKey}\n data-ui=\"TreeItem\"\n {...(rest as BoxProps<'li'>)}\n as=\"li\"\n className={treeItem({className})}\n onClick={handleClick}\n ref={rootRef as Ref<HTMLLIElement>}\n role=\"none\"\n >\n <Selectable\n aria-expanded={expanded}\n as={linkAs}\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n href={href}\n radius={radius}\n ref={treeitemRef}\n role=\"treeitem\"\n tabIndex={tabIndex}\n style={{\n paddingLeft: `calc(${vars.space[2]} * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup hidden={!expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n }\n\n return (\n <Box\n data-selected={selected ? '' : undefined}\n data-ui=\"TreeItem\"\n data-tree-id={id}\n data-tree-key={itemKey}\n {...(rest as BoxProps<'a'>)}\n aria-expanded={expanded}\n className={treeItem({className})}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n ref={rootRef as Ref<HTMLAnchorElement>}\n role=\"treeitem\"\n tabIndex={tabIndex}\n >\n <Selectable\n as=\"button\"\n data-pressed={selected ? '' : undefined}\n data-ui=\"TreeItem__box\"\n radius={radius}\n style={{\n paddingLeft: `calc(${vars.space[2]} * ${tree.level})`,\n }}\n >\n {content}\n </Selectable>\n\n <TreeContext.Provider value={contextValue}>\n {children && <TreeGroup expanded={expanded}>{children}</TreeGroup>}\n </TreeContext.Provider>\n </Box>\n )\n}\n"],"names":["createColorTheme","_createColorTheme","hexToRgb","_hexToRgb","hslToRgb","_hslToRgb","multiply","_multiply","parseColor","_parseColor","rgbToHex","_rgbToHex","rgbToHsl","_rgbToHsl","rgba","_rgba","screen","_screen","_responsive","media","values","callback","map","statement","mediaIndex","_raf","fn","frameId","requestAnimationFrame","cancelAnimationFrame","_raf2","innerDispose","outerDispose","_hasFocus","element","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","isHTMLAnchorElement","href","rel","isHTMLInputElement","type","disabled","isHTMLButtonElement","isHTMLSelectElement","isHTMLTextAreaElement","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","isHTMLElement","focusLastDescendant","_isScrollable","el","Element","style","window","getComputedStyle","overflowX","includes","overflowY","useArrayProp","val","defaultVal","$","_c","t0","_getArrayProp","JSON","stringify","t1","setCache","useState","cachedVal","cachedHash","hash","_getElements","elementsArg","ret","Array","isArray","push","filter","useClickOutside","listener","boundaryElement","undefined","EMPTY_ARRAY","setElement","elements","setElements","elementsRef","useRef","t2","t3","prevElements","current","nextElements","el_0","useEffect","t4","t5","handleWindowMouseDown","evt","target","Node","el_1","addEventListener","removeEventListener","useElementRect","useElementSize","_contentRect","useForwardedRef","ref","innerRef","Symbol","for","useImperativeHandle","DEFAULT_LABEL_ELEMENT","Label","props","accent","align","children","className","rest","textOverflowProp","as","muted","size","textOverflow","weight","label","t6","t7","DEFAULT_AVATAR_ELEMENT","Avatar","__unstable_hideInnerStroke","animateArrowFrom","arrowPositionProp","initials","onImageLoadError","src","title","color","arrowPosition","status","sizeProp","useResponsiveProp","setArrowPosition","imageError","setImageError","raf","t8","t9","Error","handleImageError","t10","t11","Object","_temp","initialsSize","t12","t13","avatar","t14","t15","avatarArrow","t16","t17","avatarInitials","t18","t19","avatarImage","avatarImageOutline","t20","s","DEFAULT_AVATAR_COUNTER_ELEMENT","AvatarCounter","count","labelSize","avatarCounter","DEFAULT_AVATAR_STACK_ELEMENT","AvatarStack","childrenProp","maxLength","maxLengthProp","Children","toArray","isValidElement","Math","max","len","visibleCount","extraCount","visibleChildren","slice","T0","Box","avatarStack","childIndex","cloneElement","String","DEFAULT_BADGE_ELEMENT","Badge","fontSize","padding","radius","tone","badge","DEFAULT_CHECKBOX_ELEMENT","Checkbox","checked","customValidity","forwardedRef","indeterminate","readOnly","useCustomValidity","checkbox","checkboxInput","checkboxPresentation","DEFAULT_CONTAINER_ELEMENT","Container","width","container","DEFAULT_HEADING_ELEMENT","Heading","flex","heading","DEFAULT_INLINE_ELEMENT","Inline","gap","space","BoundaryElementProvider","version","value","ErrorBoundary","Component","state","error","displayName","getDerivedStateFromError","componentDidCatch","info","onCatch","render","message","DEFAULT_SR_ONLY_ELEMENT","SrOnly","srOnly","DEFAULT_VIRTUAL_LIST_ELEMENT","VirtualList","getItemKey","onChange","renderItem","items","wrapperRef","scrollTop","setScrollTop","scrollHeight","setScrollHeight","itemHeight","setItemHeight","gapValue","setGapValue","scrollEl","findScrollable","parentNode","HTMLElement","handleScroll","passive","ro","_ResizeObserver","entries","contentRect","height","observe","unobserve","disconnect","handleScroll_0","scrollY","handleResize","innerHeight","fromIndex","floor","toIndex","ceil","bb0","offsetHeight","vars","item","_itemIndex","itemIndex","node","key","top","wrapperStyle","_scrollEl","DEFAULT_RADIO_ELEMENT","Radio","radio","radioInput","radioPresentation","DEFAULT_SELECT_ELEMENT","Select","border","select","_inputElement","selectPresentation","DEFAULT_SWITCH_ELEMENT","Switch","_switch","_switchElement","_switchPresentation","_switchTrack","_switchThumb","DEFAULT_TEXT_AREA_ELEMENT","TextArea","__unstable_disableFocusRing","textArea","_inputPresentation","TooltipDelayGroupProvider","delay","isGroupActive","setIsGroupActive","useDelayedState","openTooltipId","setOpenTooltipId","openDelay","open","closeDelay","close","AutocompleteOption","id","onSelect","selected","setTimeout","handleClick","event","_isEnterToClickElement","currentTarget","handleKeyDown","autocompleteReducer","msg","activeValue","focused","query","listFocused","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","DEFAULT_AUTOCOMPLETE_ELEMENT","DEFAULT_RENDER_VALUE","option","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","Autocomplete","filterOption","filterOptionProp","icon","listBox","EMPTY_RECORD","loading","onBlur","onFocus","onQueryChange","openButton","openOnFocus","options","optionsProp","paddingProp","popover","prefix","relatedElements","renderOption","renderOptionProp","renderPopover","renderValue","suffix","valueProp","dispatch","useReducer","defaultRenderOption","useCallback","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","listBoxId","currentOption","useMemo","find","o","filteredOptions","filteredOptionsLen","activeItemId","expanded","handleRootBlur","concat","focusInside","e","handleRootFocus","listBoxElement","focusedElement","handleOptionSelect","v","handleRootKeyDown","preventDefault","activeOption","activeIndex","nextActiveOption","listEl","handleInputChange","nextQuery","dispatchOpen","handleInputFocus","handlePopoverMouseEnter","handlePopoverMouseLeave","handleClearButtonClick","handleClearButtonFocus","listElement","activeItemElement","clearButton","openButtonBoxPadding","fromEntries","openButtonPadding","openButtonProps","handleOpenClick","onClick","openButtonNode","ChevronDownIcon","inputValue","input","AnimatedSpinnerIcon","handleListBoxKeyDown","content","active","results","hidden","inputElement","onMouseEnter","onMouseLeave","DEFAULT_BREADCRUMBS_ELEMENT","Breadcrumbs","expandButton","expandButtonProps","_gapProp","gapX","gapY","separator","_spaceProp","setOpen","expandElementRef","popoverElementRef","collapse","expand","useClickOutsideEvent","rawItems","beforeLength","afterLength","breadcrumbs","isTargetWithinScope","portalElement","containsOrEqualsElement","DEFAULT_DIALOG_CARD_ELEMENT","DialogCard","autoFocus","footer","forwardedContentRef","header","hideCloseButton","onClickOutside","onClose","portalProp","__unstable_autoFocus","__unstable_hideCloseButton","contentRef","portal","usePortal","useBoundaryElement","layer","useLayer","isTopLayer","labelId","showCloseButton","showHeader","stopPropagation","useGlobalKeyDown","event_0","target_0","dialogCard","dialogLayout","dialogHeader","CloseIcon","dialogContent","dialogFooter","DialogContext","createGlobalScopedContext","useDialog","useContext","DEFAULT_DIALOG_ELEMENT","Dialog","context","_positionProp","_zOffsetProp","onActivate","scheme","animate","cardRadius","position","shadow","zOffset","_animate","cardRadiusProp","cardShadow","positionProp","zOffsetProp","Z_OFFSETS","dialog","usePrefersReducedMotion","preDivRef","postDivRef","cardRef","focusedElementRef","cardElement","handleFocus","rootClickTimeoutRef","clearTimeout","body","cardElement_0","handleRootClick","dialogContainer","DialogProvider","contextValue","MenuButton","__unstable_disableRestoreFocusOnClose","deprecated_boundaryElement","button","buttonProp","menu","menuProp","onOpen","placement","deprecated_placement","popoverScheme","deprecated_popoverScheme","popoverRadius","deprecated_popoverRadius","preventOverflow","deprecated_preventOverflow","disableRestoreFocusOnClose","deprecated_portal","shouldFocus","setShouldFocus","buttonElement","setButtonElement","menuElements","setChildMenuElements","openRef","handleButtonClick","handleMouseDown","handleButtonKeyDown","event_1","handleMenuClickOutside","handleMenuEscape","event_2","relatedTarget","handleBlur","handleItemClick","els","els_0","_el","registerElement","t21","t22","t23","overflow","popoverProps","t24","t25","DEFAULT_SKELETON_ELEMENT","Skeleton","animated","visible","setVisible","timeout","skeleton","DEFAULT_CODE_SKELETON_ELEMENT","CodeSkeleton","codeSkeleton","DEFAULT_HEADING_SKELETON_ELEMENT","HeadingSkeleton","headingSkeleton","DEFAULT_LABEL_SKELETON_ELEMENT","LabelSkeleton","labelSkeleton","DEFAULT_TEXT_SKELETON_ELEMENT","TextSkeleton","textSkeleton","DEFAULT_TAB_PANEL_ELEMENT","TabPanel","DEFAULT_TOAST_ELEMENT","ROLES","warning","success","STATUS_CARD_TONE","BUTTON_TONE","Toast","closable","description","duration","updatedAt","cardTone","buttonTone","role","visualDuration","bounce","transition","initial","exit","toast","verticalAlign","y","scale","zIndex","opacity","when","staggerChildren","slideIn","slideOut","willChange","MotionCard","motion","create","Card","MotionFlex","Flex","MotionText","Text","useMounted","useSyncExternalStore","subscribe","_temp2","ToastContext","DEFAULT_TOAST_LAYER_ELEMENT","ToastLayer","paddingX","paddingY","toastLayer","toastId","generateToastId","ToastProvider","setState","mounted","params","startTransition","prevState","dismiss","currentState","toast_0","toast_1","Date","now","dismiss_0","id_0","params_0","useToast","isRecord","_findPrevItemElement","itemElements","idx","itemKey","segments","split","pop","p","j","k","join","_findNextItemElement","_focusItemElement","firstChild","TreeContext","DEFAULT_TREE_ELEMENT","Tree","setFocusedElement","path","setItemElements","stateRef","path_0","s_0","newState","registerItem","path_1","expanded_0","s_1","itemState","setExpanded","level","nextEl","prevEl","itemState_0","s_2","itemState_1","itemPath","parentKey","parentState","focusedKey","s_3","itemState_2","_itemElements","from","querySelectorAll","useTree","tree","TreeGroup","memo","DEFAULT_TREE_ITEM_ELEMENT","TreeItem","expandedProp","IconComponent","idProp","linkAs","text","rootRef","treeitemRef","_id","useId","closest","click","visibility","pointerEvents","transform","treeItem","paddingLeft"],"mappings":"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"}