@sanity/ui 3.0.0-static.1 → 3.0.0-static.2

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 (660) hide show
  1. package/LICENSE +1 -1
  2. package/bin/ui.js +0 -1
  3. package/dist/_chunks-cjs/_visual-editing.js +3059 -0
  4. package/dist/_chunks-cjs/_visual-editing.js.map +1 -0
  5. package/dist/_chunks-cjs/buildCommand.js +14 -3524
  6. package/dist/_chunks-cjs/buildCommand.js.map +1 -1
  7. package/dist/_chunks-cjs/refractor.js +27 -0
  8. package/dist/_chunks-cjs/refractor.js.map +1 -0
  9. package/dist/_chunks-cjs/v3_v2.js +251 -0
  10. package/dist/_chunks-cjs/v3_v2.js.map +1 -0
  11. package/dist/_chunks-es/_visual-editing.mjs +3066 -0
  12. package/dist/_chunks-es/_visual-editing.mjs.map +1 -0
  13. package/dist/_chunks-es/refractor.mjs +26 -0
  14. package/dist/_chunks-es/refractor.mjs.map +1 -0
  15. package/dist/_chunks-es/v3_v2.mjs +252 -0
  16. package/dist/_chunks-es/v3_v2.mjs.map +1 -0
  17. package/dist/_visual-editing.d.mts +806 -0
  18. package/dist/_visual-editing.d.ts +806 -0
  19. package/dist/_visual-editing.js +31 -0
  20. package/dist/_visual-editing.js.map +1 -0
  21. package/dist/_visual-editing.mjs +31 -0
  22. package/dist/_visual-editing.mjs.map +1 -0
  23. package/dist/cli.js +337 -5
  24. package/dist/cli.js.map +1 -1
  25. package/dist/css.d.mts +1446 -373
  26. package/dist/css.d.ts +1446 -373
  27. package/dist/css.js +2665 -1747
  28. package/dist/css.js.map +1 -1
  29. package/dist/css.mjs +2651 -1732
  30. package/dist/css.mjs.map +1 -1
  31. package/dist/index.d.mts +418 -520
  32. package/dist/index.d.ts +418 -520
  33. package/dist/index.js +737 -4617
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +633 -4522
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/sanity-palette.css +9 -0
  38. package/dist/sanity-theme.css +1 -25
  39. package/dist/system.css +596 -404
  40. package/dist/theme.d.mts +431 -110
  41. package/dist/theme.d.ts +431 -110
  42. package/dist/theme.js +1216 -2430
  43. package/dist/theme.js.map +1 -1
  44. package/dist/theme.mjs +1238 -2450
  45. package/dist/theme.mjs.map +1 -1
  46. package/exports/_visual-editing.ts +31 -0
  47. package/package.json +92 -81
  48. package/src/{css/cli → cli}/buildCommand.ts +21 -9
  49. package/src/{css/cli → cli}/index.ts +1 -1
  50. package/src/core/StyleTags.tsx +24 -0
  51. package/src/core/_compat/index.ts +8 -1
  52. package/src/core/_compat/styles/_responsive.ts +19 -0
  53. package/src/core/_compat/styles/index.ts +1 -5
  54. package/src/core/{theme → _compat/theme}/theme.test.tsx +2 -2
  55. package/src/core/{theme → _compat/theme}/themeColorProvider.tsx +4 -2
  56. package/src/core/{theme → _compat/theme}/themeContext.ts +1 -1
  57. package/src/core/{theme → _compat/theme}/themeProvider.tsx +10 -11
  58. package/src/core/{theme → _compat/theme}/useRootTheme.ts +1 -0
  59. package/src/core/{theme → _compat/theme}/useTheme.ts +2 -2
  60. package/src/core/_compat/types.ts +11 -11
  61. package/src/core/components/autocomplete/__mocks__/apiStore.ts +1 -1
  62. package/src/core/components/autocomplete/__workshop__/async.tsx +1 -0
  63. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +4 -2
  64. package/src/core/components/autocomplete/__workshop__/custom.tsx +3 -2
  65. package/src/core/components/autocomplete/__workshop__/example.tsx +3 -2
  66. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +1 -0
  67. package/src/core/components/autocomplete/autocomplete.tsx +54 -61
  68. package/src/core/components/autocomplete/autocompleteOption.tsx +5 -4
  69. package/src/core/components/autocomplete/types.ts +2 -2
  70. package/src/core/components/breadcrumbs/__workshop__/example.tsx +7 -0
  71. package/src/core/components/breadcrumbs/breadcrumbs.tsx +32 -16
  72. package/src/core/components/dialog/__workshop__/activate.tsx +2 -1
  73. package/src/core/components/dialog/__workshop__/nested.tsx +3 -3
  74. package/src/core/components/dialog/__workshop__/onScroll.tsx +2 -2
  75. package/src/core/components/dialog/__workshop__/panes.tsx +1 -0
  76. package/src/core/components/dialog/__workshop__/position.tsx +2 -1
  77. package/src/core/components/dialog/__workshop__/props.tsx +2 -1
  78. package/src/core/components/dialog/__workshop__/wrapped.tsx +1 -3
  79. package/src/core/components/dialog/dialog.tsx +50 -27
  80. package/src/core/components/dialog/dialogProvider.tsx +4 -3
  81. package/src/core/components/dialog/useDialog.ts +1 -0
  82. package/src/core/components/hotkeys/hotkeys.tsx +20 -14
  83. package/src/core/components/menu/__workshop__/asComponent.tsx +2 -1
  84. package/src/core/components/menu/__workshop__/avatarMenu.tsx +1 -0
  85. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +1 -0
  86. package/src/core/components/menu/__workshop__/customSelectedState.tsx +1 -0
  87. package/src/core/components/menu/__workshop__/menuButton.tsx +2 -1
  88. package/src/core/components/menu/__workshop__/shouldFocus.tsx +1 -0
  89. package/src/core/components/menu/__workshop__/tones.tsx +7 -7
  90. package/src/core/components/menu/menu.test.tsx +4 -5
  91. package/src/core/components/menu/menu.tsx +49 -22
  92. package/src/core/components/menu/menuButton.tsx +47 -61
  93. package/src/core/components/menu/menuContext.ts +6 -4
  94. package/src/core/components/menu/menuDivider.tsx +9 -3
  95. package/src/core/components/menu/menuGroup.tsx +50 -26
  96. package/src/core/components/menu/menuItem.tsx +31 -38
  97. package/src/core/components/menu/useMenu.ts +1 -0
  98. package/src/core/components/menu/useMenuController.ts +18 -7
  99. package/src/core/components/skeleton/__workshop__/delay.tsx +2 -1
  100. package/src/core/components/skeleton/__workshop__/skeleton.tsx +2 -1
  101. package/src/core/components/skeleton/skeleton.tsx +4 -3
  102. package/src/core/components/skeleton/textSkeleton.tsx +11 -25
  103. package/src/core/components/tab/tab.tsx +21 -14
  104. package/src/core/components/tab/tabList.tsx +24 -11
  105. package/src/core/components/tab/tabPanel.tsx +5 -4
  106. package/src/core/components/toast/__workshop__/hook.tsx +1 -1
  107. package/src/core/components/toast/__workshop__/toast.tsx +2 -1
  108. package/src/core/components/toast/toast.test.tsx +0 -1
  109. package/src/core/components/toast/toast.tsx +130 -40
  110. package/src/core/components/toast/toastLayer.tsx +38 -0
  111. package/src/core/components/toast/toastProvider.tsx +60 -140
  112. package/src/core/components/toast/toastState.ts +6 -0
  113. package/src/core/components/toast/types.ts +10 -2
  114. package/src/core/components/toast/useToast.ts +1 -0
  115. package/src/core/components/tree/__workshop__/basic.tsx +1 -0
  116. package/src/core/components/tree/__workshop__/tabFromElement.tsx +2 -1
  117. package/src/core/components/tree/tree.tsx +16 -13
  118. package/src/core/components/tree/treeGroup.tsx +5 -7
  119. package/src/core/components/tree/treeItem.tsx +41 -34
  120. package/src/core/components/tree/useTree.ts +1 -0
  121. package/src/core/constants.ts +45 -23
  122. package/src/core/helpers/focus.ts +3 -3
  123. package/src/core/helpers/index.ts +1 -0
  124. package/src/core/helpers/props.ts +10 -0
  125. package/src/core/hooks/useArrayProp.ts +19 -15
  126. package/src/core/hooks/useClickOutside.test.tsx +3 -4
  127. package/src/core/hooks/useClickOutside.ts +1 -0
  128. package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -1
  129. package/src/core/hooks/useClickOutsideEvent.ts +2 -1
  130. package/src/core/hooks/useDelayed.test.ts +2 -1
  131. package/src/core/hooks/useDelayedState.ts +2 -3
  132. package/src/core/hooks/useElementRect/__workshop__/example.tsx +3 -2
  133. package/src/core/hooks/useElementSize.ts +2 -1
  134. package/src/core/hooks/useForwardedRef.ts +2 -2
  135. package/src/core/hooks/useGlobalKeyDown.ts +9 -4
  136. package/src/core/hooks/useMatchMedia.ts +1 -1
  137. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +3 -2
  138. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +2 -1
  139. package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -1
  140. package/src/core/hooks/usePrefersDark.test.tsx +2 -1
  141. package/src/core/hooks/usePrefersDark.ts +1 -1
  142. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -1
  143. package/src/core/hooks/usePrefersReducedMotion.test.tsx +2 -1
  144. package/src/core/hooks/usePrefersReducedMotion.ts +1 -1
  145. package/src/core/index.ts +2 -3
  146. package/src/core/lib/createGlobalScopedContext.ts +2 -1
  147. package/src/core/lib/globalScope.ts +0 -1
  148. package/src/core/primitives/_selectable/selectable.tsx +9 -5
  149. package/src/core/primitives/avatar/__workshop__/asButton.tsx +2 -1
  150. package/src/core/primitives/avatar/__workshop__/stack.tsx +2 -1
  151. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +4 -3
  152. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +26 -23
  153. package/src/core/primitives/avatar/avatar.tsx +42 -80
  154. package/src/core/primitives/avatar/avatarCounter.tsx +26 -57
  155. package/src/core/primitives/avatar/avatarStack.tsx +37 -55
  156. package/src/core/primitives/avatar/types.ts +1 -0
  157. package/src/core/primitives/badge/__workshop__/props.tsx +2 -1
  158. package/src/core/primitives/badge/__workshop__/tones.tsx +2 -1
  159. package/src/core/primitives/badge/badge.test.tsx +1 -0
  160. package/src/core/primitives/badge/badge.tsx +10 -5
  161. package/src/core/primitives/box/__workshop__/props.tsx +2 -1
  162. package/src/core/primitives/box/box.tsx +45 -12
  163. package/src/core/primitives/button/__workshop__/custom.tsx +7 -4
  164. package/src/core/primitives/button/__workshop__/disabled.tsx +1 -0
  165. package/src/core/primitives/button/__workshop__/props.tsx +7 -2
  166. package/src/core/primitives/button/__workshop__/stacked.tsx +2 -1
  167. package/src/core/primitives/button/button.test.tsx +1 -0
  168. package/src/core/primitives/button/button.tsx +137 -113
  169. package/src/core/primitives/card/__workshop__/allTones.tsx +21 -21
  170. package/src/core/primitives/card/__workshop__/asButton.tsx +44 -25
  171. package/src/core/primitives/card/__workshop__/asComponent.tsx +2 -2
  172. package/src/core/primitives/card/__workshop__/checkered.tsx +17 -7
  173. package/src/core/primitives/card/__workshop__/interactive.tsx +10 -3
  174. package/src/core/primitives/card/__workshop__/listNavigation.tsx +6 -3
  175. package/src/core/primitives/card/__workshop__/props.tsx +13 -7
  176. package/src/core/primitives/card/__workshop__/selected.tsx +11 -9
  177. package/src/core/primitives/card/card.tsx +47 -55
  178. package/src/core/primitives/card/types.ts +1 -0
  179. package/src/core/primitives/checkbox/__workshop__/tones.tsx +6 -0
  180. package/src/core/primitives/checkbox/checkbox.tsx +9 -5
  181. package/src/core/primitives/code/__workshop__/props.tsx +3 -2
  182. package/src/core/primitives/code/code.tsx +11 -11
  183. package/src/core/primitives/code/refractor.tsx +20 -0
  184. package/src/core/primitives/container/__workshop__/example.tsx +3 -2
  185. package/src/core/primitives/container/container.tsx +7 -4
  186. package/src/core/primitives/flex/__workshop__/example.tsx +5 -4
  187. package/src/core/primitives/flex/__workshop__/gap.tsx +6 -6
  188. package/src/core/primitives/flex/flex.tsx +9 -12
  189. package/src/core/primitives/grid/__workshop__/responsive.tsx +12 -12
  190. package/src/core/primitives/grid/grid.tsx +7 -11
  191. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +13 -25
  192. package/src/core/primitives/heading/__workshop__/plain.tsx +3 -2
  193. package/src/core/primitives/heading/heading.tsx +19 -39
  194. package/src/core/primitives/inline/__workshop__/plain.tsx +5 -4
  195. package/src/core/primitives/inline/inline.tsx +10 -7
  196. package/src/core/primitives/kbd/kbd.tsx +8 -6
  197. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +13 -7
  198. package/src/core/primitives/label/__workshop__/plain.tsx +22 -8
  199. package/src/core/primitives/label/label.tsx +26 -50
  200. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +3 -2
  201. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +5 -4
  202. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +1 -1
  203. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +3 -2
  204. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +5 -2
  205. package/src/core/primitives/popover/__workshop__/TestStory.tsx +5 -4
  206. package/src/core/primitives/popover/floating-ui/size.ts +2 -1
  207. package/src/core/primitives/popover/helpers.ts +4 -3
  208. package/src/core/primitives/popover/popover.tsx +51 -44
  209. package/src/core/primitives/popover/popoverCard.tsx +22 -27
  210. package/src/core/primitives/radio/__workshop__/plain.tsx +2 -2
  211. package/src/core/primitives/radio/radio.tsx +10 -11
  212. package/src/core/primitives/select/__workshop__/plain.tsx +5 -2
  213. package/src/core/primitives/select/__workshop__/readOnly.tsx +1 -1
  214. package/src/core/primitives/select/select.tsx +40 -41
  215. package/src/core/primitives/spinner/__workshop__/Props.tsx +2 -1
  216. package/src/core/primitives/spinner/spinner.tsx +5 -3
  217. package/src/core/primitives/stack/__workshop__/plain.tsx +2 -1
  218. package/src/core/primitives/stack/stack.tsx +10 -11
  219. package/src/core/primitives/switch/switch.tsx +22 -13
  220. package/src/core/primitives/text/__workshop__/colored.tsx +8 -14
  221. package/src/core/primitives/text/__workshop__/example.tsx +8 -7
  222. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +11 -21
  223. package/src/core/primitives/text/text.tsx +20 -38
  224. package/src/core/primitives/textArea/__workshop__/plain.tsx +4 -3
  225. package/src/core/primitives/textArea/textArea.tsx +28 -75
  226. package/src/core/primitives/textInput/__workshop__/index.ts +0 -5
  227. package/src/core/primitives/textInput/__workshop__/plain.tsx +8 -3
  228. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +6 -2
  229. package/src/core/primitives/textInput/__workshop__/tones.tsx +38 -0
  230. package/src/core/primitives/textInput/__workshop__/typed.tsx +2 -1
  231. package/src/core/primitives/textInput/textInput.tsx +133 -220
  232. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +2 -1
  233. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +2 -1
  234. package/src/core/primitives/tooltip/__workshop__/props.tsx +8 -3
  235. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +2 -1
  236. package/src/core/primitives/tooltip/tooltip.test.tsx +4 -2
  237. package/src/core/primitives/tooltip/tooltip.tsx +64 -61
  238. package/src/core/primitives/tooltip/tooltipCard.tsx +31 -26
  239. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +1 -1
  240. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +4 -6
  241. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -1
  242. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +1 -0
  243. package/src/core/primitives/types.ts +5 -5
  244. package/src/core/types/box.ts +0 -3
  245. package/src/core/types/button.ts +2 -0
  246. package/src/core/types/flex.ts +0 -4
  247. package/src/core/types/grid.ts +5 -7
  248. package/src/core/types/gridItem.ts +4 -9
  249. package/src/core/types/index.ts +1 -0
  250. package/src/core/types/props.ts +18 -0
  251. package/src/core/types/selectable.ts +1 -0
  252. package/src/core/utils/arrow/arrow.tsx +34 -97
  253. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -1
  254. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +4 -3
  255. package/src/core/utils/boundaryElement/index.ts +1 -1
  256. package/src/core/utils/boundaryElement/useBoundaryElement.ts +1 -0
  257. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +5 -3
  258. package/src/core/utils/elementQuery/elementQuery.tsx +21 -21
  259. package/src/core/utils/errorBoundary.tsx +5 -4
  260. package/src/core/utils/getElementRef.ts +26 -0
  261. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +1 -0
  262. package/src/core/utils/layer/__workshop__/nested.tsx +1 -0
  263. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +1 -0
  264. package/src/core/utils/layer/index.ts +1 -1
  265. package/src/core/utils/layer/layer.test.tsx +0 -1
  266. package/src/core/utils/layer/layer.tsx +15 -11
  267. package/src/core/utils/layer/layerProvider.tsx +6 -5
  268. package/src/core/utils/layer/useLayer.ts +1 -0
  269. package/src/core/utils/portal/portal.test.tsx +0 -1
  270. package/src/core/utils/portal/portal.ts +4 -2
  271. package/src/core/utils/portal/portalProvider.tsx +4 -3
  272. package/src/core/utils/portal/usePortal.ts +1 -0
  273. package/src/core/utils/spanWithTextOverflow.tsx +10 -0
  274. package/src/core/utils/srOnly/srOnly.tsx +17 -18
  275. package/src/core/utils/virtualList/virtualList.tsx +55 -37
  276. package/src/css/_resp.ts +4 -1
  277. package/src/css/compile/compilePalette.ts +60 -0
  278. package/src/css/compile/compileRule.ts +45 -13
  279. package/src/css/compile/compileRules.test.ts +35 -0
  280. package/src/css/compile/compileRules.ts +14 -30
  281. package/src/css/compile/compileTheme.ts +8 -505
  282. package/src/css/compile/compileTheme_v3.ts +410 -0
  283. package/src/css/compile/types.ts +6 -0
  284. package/src/css/components/breadcrumbs/breadcrumbs.ts +1 -1
  285. package/src/css/components/dialog/{classes.ts → dialog.ts} +7 -7
  286. package/src/css/components/dialog/index.ts +1 -1
  287. package/src/css/components/dialog/rules.ts +2 -1
  288. package/src/css/components/menu/menu.ts +5 -1
  289. package/src/css/components/menu/rules.ts +6 -1
  290. package/src/css/components/skeleton/rules.ts +28 -22
  291. package/src/css/components/skeleton/skeleton.ts +5 -5
  292. package/src/css/components/skeleton/types.ts +2 -0
  293. package/src/css/components/toast/index.ts +1 -0
  294. package/src/css/components/toast/rules.ts +17 -68
  295. package/src/css/components/toast/toast.ts +21 -0
  296. package/src/css/components/tree/rules.ts +3 -2
  297. package/src/css/components/tree/tree.ts +1 -1
  298. package/src/css/composeClassNames.ts +12 -2
  299. package/src/css/index.ts +12 -23
  300. package/src/css/primitives/_arrow/_arrow.ts +14 -0
  301. package/src/css/primitives/_arrow/index.ts +1 -0
  302. package/src/css/primitives/_arrow/rules.ts +71 -0
  303. package/src/css/primitives/_input/index.ts +2 -0
  304. package/src/css/primitives/_input/input.ts +25 -0
  305. package/src/css/primitives/_input/rules.ts +163 -0
  306. package/src/css/primitives/_input/types.ts +12 -0
  307. package/src/css/primitives/{selectable → _selectable}/__style.ts +1 -1
  308. package/src/css/primitives/_selectable/_contants.ts +11 -0
  309. package/src/css/primitives/_selectable/rules.ts +129 -0
  310. package/src/css/primitives/_selectable/selectable.ts +9 -0
  311. package/src/css/primitives/_selectable/types.ts +8 -0
  312. package/src/css/primitives/avatar/avatar.ts +10 -15
  313. package/src/css/primitives/avatar/rules.ts +85 -99
  314. package/src/css/primitives/avatar/types.ts +1 -2
  315. package/src/css/primitives/badge/badge.ts +2 -2
  316. package/src/css/primitives/badge/rules.ts +13 -16
  317. package/src/css/primitives/badge/types.ts +2 -2
  318. package/src/css/primitives/box/box.ts +24 -14
  319. package/src/css/primitives/box/rules.ts +5 -2
  320. package/src/css/primitives/box/types.ts +24 -19
  321. package/src/css/primitives/button/_constants.ts +17 -0
  322. package/src/css/primitives/button/button.ts +27 -12
  323. package/src/css/primitives/button/rules.ts +275 -40
  324. package/src/css/primitives/card/_constants.ts +13 -0
  325. package/src/css/primitives/card/card.ts +8 -13
  326. package/src/css/primitives/card/index.ts +1 -0
  327. package/src/css/primitives/card/rules.ts +353 -123
  328. package/src/css/primitives/card/types.ts +11 -0
  329. package/src/css/primitives/checkbox/checkbox.ts +2 -2
  330. package/src/css/primitives/checkbox/rules.ts +31 -15
  331. package/src/css/primitives/code/code.ts +2 -2
  332. package/src/css/primitives/code/rules.ts +27 -2
  333. package/src/css/primitives/code/types.ts +1 -1
  334. package/src/css/primitives/container/container.ts +2 -2
  335. package/src/css/primitives/container/types.ts +1 -0
  336. package/src/css/primitives/heading/heading.ts +3 -2
  337. package/src/css/primitives/heading/rules.ts +77 -6
  338. package/src/css/primitives/heading/types.ts +2 -2
  339. package/src/css/primitives/kbd/kbd.ts +2 -2
  340. package/src/css/primitives/kbd/rules.ts +5 -5
  341. package/src/css/primitives/kbd/types.ts +3 -1
  342. package/src/css/primitives/label/label.ts +2 -2
  343. package/src/css/primitives/label/rules.ts +54 -2
  344. package/src/css/primitives/label/types.ts +1 -1
  345. package/src/css/primitives/popover/popover.ts +1 -1
  346. package/src/css/primitives/radio/radio.ts +1 -1
  347. package/src/css/primitives/radio/rules.ts +117 -1
  348. package/src/css/primitives/select/index.ts +1 -0
  349. package/src/css/primitives/select/rules.ts +18 -1
  350. package/src/css/primitives/select/select.ts +8 -2
  351. package/src/css/primitives/select/types.ts +5 -0
  352. package/src/css/primitives/spinner/spinner.ts +2 -2
  353. package/src/css/primitives/switch/rules.ts +264 -56
  354. package/src/css/primitives/switch/switch.ts +17 -1
  355. package/src/css/primitives/text/rules.ts +93 -4
  356. package/src/css/primitives/text/text.ts +3 -2
  357. package/src/css/primitives/text/types.ts +2 -2
  358. package/src/css/primitives/textArea/index.ts +1 -0
  359. package/src/css/primitives/textArea/rules.ts +3 -1
  360. package/src/css/primitives/textArea/textArea.ts +4 -2
  361. package/src/css/primitives/textArea/types.ts +5 -0
  362. package/src/css/primitives/textInput/rules.ts +33 -130
  363. package/src/css/primitives/textInput/textInput.ts +4 -11
  364. package/src/css/primitives/textInput/types.ts +8 -5
  365. package/src/css/primitives/token/rules.ts +37 -37
  366. package/src/css/primitives/tooltip/rules.ts +2 -0
  367. package/src/css/primitives/tooltip/tooltip.ts +2 -2
  368. package/src/css/rules.ts +16 -2
  369. package/src/css/styles/border/border.ts +1 -1
  370. package/src/css/styles/display/display.ts +7 -0
  371. package/src/css/styles/display/index.ts +2 -0
  372. package/src/css/styles/display/rules.ts +2 -2
  373. package/src/css/styles/display/types.ts +17 -0
  374. package/src/css/styles/flex/flex.ts +1 -1
  375. package/src/css/styles/flexItem/flexItem.ts +1 -1
  376. package/src/css/styles/flexItem/rules.ts +1 -0
  377. package/src/css/styles/font/font.ts +1 -1
  378. package/src/css/styles/font/rules.ts +4 -4
  379. package/src/css/styles/gap/gap.ts +1 -1
  380. package/src/css/styles/gap/rules.ts +1 -0
  381. package/src/css/styles/gap/types.ts +1 -0
  382. package/src/css/styles/grid/grid.ts +1 -1
  383. package/src/css/styles/gridItem/gridItem.ts +1 -1
  384. package/src/css/styles/index.ts +19 -0
  385. package/src/css/styles/inset/index.ts +2 -0
  386. package/src/css/styles/inset/inset.ts +13 -0
  387. package/src/css/styles/inset/rules.ts +16 -0
  388. package/src/css/styles/inset/types.ts +13 -0
  389. package/src/css/styles/margin/margin.ts +1 -1
  390. package/src/css/styles/margin/rules.ts +1 -0
  391. package/src/css/styles/maxWidth/rules.ts +8 -31
  392. package/src/css/styles/maxWidth/types.ts +2 -1
  393. package/src/css/styles/overflow/overflow.ts +1 -1
  394. package/src/css/styles/padding/padding.ts +1 -1
  395. package/src/css/styles/padding/rules.ts +1 -0
  396. package/src/css/styles/padding/types.ts +9 -7
  397. package/src/css/styles/pointerEvents/pointerEvents.ts +1 -1
  398. package/src/css/styles/position/position.ts +2 -2
  399. package/src/css/styles/position/rules.ts +0 -7
  400. package/src/css/styles/position/types.ts +0 -4
  401. package/src/css/styles/radius/radius.ts +1 -1
  402. package/src/css/styles/radius/rules.ts +1 -1
  403. package/src/css/styles/radius/types.ts +1 -0
  404. package/src/css/styles/shadow/index.ts +2 -0
  405. package/src/css/styles/shadow/rules.ts +5 -5
  406. package/src/css/styles/shadow/shadow.ts +7 -0
  407. package/src/css/styles/shadow/types.ts +8 -0
  408. package/src/css/styles/textOverflow/index.ts +2 -0
  409. package/src/css/styles/textOverflow/rules.ts +17 -0
  410. package/src/css/styles/textOverflow/textOverflow.ts +6 -0
  411. package/src/css/styles/textOverflow/types.ts +8 -0
  412. package/src/css/styles/width/index.ts +1 -1
  413. package/src/css/styles/width/types.ts +3 -2
  414. package/src/css/types.ts +457 -289
  415. package/src/css/util.ts +27 -0
  416. package/src/css/utils/srOnly/index.ts +1 -0
  417. package/src/css/utils/srOnly/rules.ts +11 -0
  418. package/src/css/utils/srOnly/srOnly.ts +5 -0
  419. package/src/css/varNames.ts +352 -260
  420. package/src/css/vars.ts +330 -286
  421. package/src/theme/{system/_constants.ts → _constants.ts} +5 -4
  422. package/src/theme/{system/_types.ts → _types.ts} +1 -1
  423. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +1 -1
  424. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +1 -1
  425. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +1 -6
  426. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +2 -2
  427. package/src/theme/build/_deprecated/color/card/createCardStates.ts +2 -2
  428. package/src/theme/build/_deprecated/color/factory.ts +8 -9
  429. package/src/theme/build/_deprecated/color/input/createInputModes.ts +1 -1
  430. package/src/theme/build/_deprecated/color/muted/createMuted.ts +2 -2
  431. package/src/theme/build/_deprecated/color/spot/createSpot.ts +1 -1
  432. package/src/theme/build/buildColorTheme.ts +62 -52
  433. package/src/theme/build/buildTheme.ts +8 -32
  434. package/src/theme/build/colorToken/colorToken.ts +1 -1
  435. package/src/theme/build/lib/color-fns/rgba.ts +4 -0
  436. package/src/theme/build/merge.ts +0 -2
  437. package/src/theme/build/mixThemeColor.ts +1 -1
  438. package/src/theme/build/renderColorTheme.ts +34 -37
  439. package/src/theme/build/renderColorValue.ts +4 -3
  440. package/src/theme/build/resolveColorTokens.ts +57 -120
  441. package/src/theme/config/helpers.ts +2 -2
  442. package/src/theme/config/system.ts +3 -2
  443. package/src/theme/config/tokens/color/types.ts +5 -18
  444. package/src/theme/config/tokens/parseTokenKey.ts +1 -1
  445. package/src/theme/config/tokens/parseTokenValue.ts +1 -1
  446. package/src/theme/config/tokens/types.ts +3 -2
  447. package/src/theme/config/types.ts +4 -4
  448. package/src/theme/defaults/colorTokens.ts +6 -4
  449. package/src/theme/defaults/config.ts +2 -2
  450. package/src/theme/defaults/fonts.ts +18 -17
  451. package/src/theme/getScopedTheme.ts +10 -4
  452. package/src/theme/index.ts +7 -1
  453. package/src/theme/palette/constants.ts +15 -0
  454. package/src/theme/palette/index.ts +2 -0
  455. package/src/theme/palette/types.ts +16 -0
  456. package/src/theme/types.ts +32 -0
  457. package/src/theme/{system/v0 → v0}/color/_generic.ts +1 -1
  458. package/src/theme/v0/color/_system.ts +17 -0
  459. package/src/theme/{system/v0 → v0}/color/color.ts +3 -2
  460. package/src/theme/{system/v0 → v0}/color/input.ts +1 -1
  461. package/src/theme/{system/v0 → v0}/color/spot.ts +1 -1
  462. package/src/theme/{system → v0}/css.ts +1 -2
  463. package/src/theme/{system → v0}/font.ts +1 -0
  464. package/src/theme/{system → v0}/index.ts +0 -4
  465. package/src/theme/v0/theme.ts +72 -0
  466. package/src/theme/{system → v2}/avatar.ts +1 -1
  467. package/src/theme/{system → v2}/color/_constants.ts +6 -2
  468. package/src/theme/{system → v2}/color/_helpers.ts +1 -0
  469. package/src/theme/v2/color/badge.ts +16 -0
  470. package/src/theme/{system → v2}/color/color.ts +1 -1
  471. package/src/theme/{system/v0 → v2}/index.ts +2 -1
  472. package/src/theme/{system → v2}/input.ts +1 -1
  473. package/src/theme/v2/theme.ts +49 -0
  474. package/src/theme/v3/buildTheme_v3.test.ts +40 -0
  475. package/src/theme/v3/buildTheme_v3.ts +30 -0
  476. package/src/theme/v3/color/buildColor_v3.ts +193 -0
  477. package/src/theme/v3/color/card.ts +116 -0
  478. package/src/theme/v3/color/color.ts +94 -0
  479. package/src/theme/v3/color/element.ts +19 -0
  480. package/src/theme/v3/color/index.ts +7 -0
  481. package/src/theme/v3/color/parseColor.test.ts +79 -0
  482. package/src/theme/v3/color/parseColor.ts +167 -0
  483. package/src/theme/v3/color/renderColor.test.ts +19 -0
  484. package/src/theme/v3/color/renderColor.ts +33 -0
  485. package/src/theme/v3/color/token.ts +17 -0
  486. package/src/theme/v3/color/tokens.ts +5 -0
  487. package/src/theme/v3/defaults.ts +205 -0
  488. package/src/theme/v3/index.ts +6 -0
  489. package/src/theme/v3/merge.ts +22 -0
  490. package/src/theme/v3/resolveTokens.ts +199 -0
  491. package/src/theme/v3/tokens.ts +16 -0
  492. package/src/theme/v3/types.ts +48 -0
  493. package/src/theme/versioning/getTheme_v2.ts +2 -1
  494. package/src/theme/versioning/index.ts +0 -4
  495. package/src/theme/versioning/is_v0.ts +2 -1
  496. package/src/theme/versioning/is_v2.ts +2 -1
  497. package/src/theme/versioning/themeColor_v0_v2.ts +33 -5
  498. package/src/theme/versioning/themeColor_v2_v2_9.ts +49 -0
  499. package/src/theme/versioning/themeColor_v3_v2.ts +206 -0
  500. package/src/theme/versioning/v0_v2.ts +6 -1
  501. package/src/theme/versioning/v2_v0.ts +6 -6
  502. package/src/theme/versioning/v3_v2.ts +108 -0
  503. package/dist/css.esm.js +0 -3794
  504. package/dist/css.esm.js.map +0 -1
  505. package/dist/index.esm.js +0 -5431
  506. package/dist/index.esm.js.map +0 -1
  507. package/dist/theme.esm.js +0 -4201
  508. package/dist/theme.esm.js.map +0 -1
  509. package/src/core/__workshop__/constants.ts +0 -305
  510. package/src/core/__workshop__/fontsPlugin.tsx +0 -76
  511. package/src/core/_compat/styles/border/borderStyle.ts +0 -61
  512. package/src/core/_compat/styles/border/index.ts +0 -2
  513. package/src/core/_compat/styles/border/types.ts +0 -11
  514. package/src/core/_compat/styles/box/boxStyle.ts +0 -74
  515. package/src/core/_compat/styles/box/index.ts +0 -2
  516. package/src/core/_compat/styles/box/types.ts +0 -11
  517. package/src/core/_compat/styles/card/_cardColorStyle.ts +0 -101
  518. package/src/core/_compat/styles/card/index.ts +0 -1
  519. package/src/core/_compat/styles/flex/flexItemStyle.ts +0 -26
  520. package/src/core/_compat/styles/flex/flexStyle.ts +0 -69
  521. package/src/core/_compat/styles/flex/index.ts +0 -3
  522. package/src/core/_compat/styles/flex/types.ts +0 -24
  523. package/src/core/_compat/styles/focusRing/index.ts +0 -25
  524. package/src/core/_compat/styles/font/codeFontStyle.ts +0 -12
  525. package/src/core/_compat/styles/font/headingFontStyle.ts +0 -12
  526. package/src/core/_compat/styles/font/index.ts +0 -6
  527. package/src/core/_compat/styles/font/labelFontStyle.ts +0 -12
  528. package/src/core/_compat/styles/font/responsiveFont.ts +0 -101
  529. package/src/core/_compat/styles/font/textAlignStyle.ts +0 -18
  530. package/src/core/_compat/styles/font/textFontStyle.ts +0 -12
  531. package/src/core/_compat/styles/font/types.ts +0 -34
  532. package/src/core/_compat/styles/grid/gridItemStyle.ts +0 -81
  533. package/src/core/_compat/styles/grid/gridStyle.ts +0 -97
  534. package/src/core/_compat/styles/grid/index.ts +0 -3
  535. package/src/core/_compat/styles/grid/types.ts +0 -37
  536. package/src/core/_compat/styles/helpers.ts +0 -81
  537. package/src/core/_compat/styles/input/index.ts +0 -2
  538. package/src/core/_compat/styles/input/responsiveInputPaddingStyle.ts +0 -77
  539. package/src/core/_compat/styles/input/textInputStyle.ts +0 -263
  540. package/src/core/_compat/styles/internal.ts +0 -12
  541. package/src/core/_compat/styles/margin/index.ts +0 -2
  542. package/src/core/_compat/styles/margin/marginStyle.ts +0 -20
  543. package/src/core/_compat/styles/margin/marginsStyle.test.ts +0 -32
  544. package/src/core/_compat/styles/margin/types.ts +0 -9
  545. package/src/core/_compat/styles/padding/index.ts +0 -2
  546. package/src/core/_compat/styles/padding/paddingStyle.test.ts +0 -32
  547. package/src/core/_compat/styles/padding/paddingStyle.ts +0 -20
  548. package/src/core/_compat/styles/padding/types.ts +0 -12
  549. package/src/core/_compat/styles/radius/index.ts +0 -2
  550. package/src/core/_compat/styles/radius/radiusStyle.ts +0 -22
  551. package/src/core/_compat/styles/radius/types.ts +0 -8
  552. package/src/core/_compat/styles/shadow/index.ts +0 -2
  553. package/src/core/_compat/styles/shadow/shadowStyle.ts +0 -29
  554. package/src/core/_compat/styles/shadow/types.ts +0 -6
  555. package/src/core/_compat/styles/types.ts +0 -8
  556. package/src/core/components/autocomplete/__workshop__/.eslintrc +0 -5
  557. package/src/core/components/breadcrumbs/__workshop__/.eslintrc +0 -5
  558. package/src/core/components/dialog/__workshop__/.eslintrc +0 -5
  559. package/src/core/components/hotkeys/__workshop__/.eslintrc +0 -5
  560. package/src/core/components/menu/__workshop__/.eslintrc +0 -5
  561. package/src/core/components/skeleton/__workshop__/.eslintrc +0 -5
  562. package/src/core/components/tab/__workshop__/.eslintrc +0 -5
  563. package/src/core/components/toast/__workshop__/.eslintrc +0 -5
  564. package/src/core/components/tree/__workshop__/.eslintrc +0 -5
  565. package/src/core/hooks/useElementRect/__workshop__/.eslintrc +0 -5
  566. package/src/core/hooks/useMediaIndex/__workshop__/.eslintrc +0 -5
  567. package/src/core/lib/styled/elements.ts +0 -135
  568. package/src/core/lib/styled/index.ts +0 -2
  569. package/src/core/lib/styled/members.ts +0 -15
  570. package/src/core/lib/styled/styled.ts +0 -79
  571. package/src/core/primitives/avatar/__workshop__/.eslintrc +0 -5
  572. package/src/core/primitives/avatar/styles.ts +0 -166
  573. package/src/core/primitives/badge/__workshop__/.eslintrc +0 -5
  574. package/src/core/primitives/badge/styles.ts +0 -19
  575. package/src/core/primitives/box/__workshop__/.eslintrc +0 -5
  576. package/src/core/primitives/button/__workshop__/.eslintrc +0 -5
  577. package/src/core/primitives/button/styles.ts +0 -116
  578. package/src/core/primitives/card/RootCardContext.ts +0 -3
  579. package/src/core/primitives/card/__workshop__/.eslintrc +0 -5
  580. package/src/core/primitives/checkbox/__workshop__/.eslintrc +0 -5
  581. package/src/core/primitives/code/__workshop__/.eslintrc +0 -5
  582. package/src/core/primitives/code/styles.ts +0 -77
  583. package/src/core/primitives/container/__workshop__/.eslintrc +0 -5
  584. package/src/core/primitives/container/styles.ts +0 -22
  585. package/src/core/primitives/flex/__workshop__/.eslintrc +0 -5
  586. package/src/core/primitives/grid/__workshop__/.eslintrc +0 -5
  587. package/src/core/primitives/heading/__workshop__/.eslintrc +0 -5
  588. package/src/core/primitives/heading/styles.ts +0 -63
  589. package/src/core/primitives/heading/types.ts +0 -7
  590. package/src/core/primitives/inline/__workshop__/.eslintrc +0 -5
  591. package/src/core/primitives/inline/styles.ts +0 -31
  592. package/src/core/primitives/kbd/__workshop__/.eslintrc +0 -5
  593. package/src/core/primitives/label/__workshop__/.eslintrc +0 -5
  594. package/src/core/primitives/label/styles.ts +0 -44
  595. package/src/core/primitives/popover/__workshop__/.eslintrc +0 -5
  596. package/src/core/primitives/radio/__workshop__/.eslintrc +0 -5
  597. package/src/core/primitives/radio/styles.ts +0 -116
  598. package/src/core/primitives/select/__workshop__/.eslintrc +0 -5
  599. package/src/core/primitives/select/styles.ts +0 -166
  600. package/src/core/primitives/spinner/__workshop__/.eslintrc +0 -5
  601. package/src/core/primitives/stack/__workshop__/.eslintrc +0 -5
  602. package/src/core/primitives/stack/styles.ts +0 -31
  603. package/src/core/primitives/switch/__workshop__/.eslintrc +0 -5
  604. package/src/core/primitives/switch/styles.ts +0 -172
  605. package/src/core/primitives/text/__workshop__/.eslintrc +0 -5
  606. package/src/core/primitives/text/styles.ts +0 -73
  607. package/src/core/primitives/textArea/__workshop__/.eslintrc +0 -5
  608. package/src/core/primitives/textInput/__workshop__/.eslintrc +0 -5
  609. package/src/core/primitives/textInput/__workshop__/multipleTones.tsx +0 -20
  610. package/src/core/primitives/tooltip/__workshop__/.eslintrc +0 -5
  611. package/src/core/theme/__workshop__/.eslintrc +0 -5
  612. package/src/core/theme/__workshop__/build/Root.tsx +0 -367
  613. package/src/core/theme/__workshop__/build/helpers.ts +0 -46
  614. package/src/core/theme/__workshop__/build/story.tsx +0 -457
  615. package/src/core/theme/__workshop__/canvas.tsx +0 -350
  616. package/src/core/theme/__workshop__/color.tsx +0 -62
  617. package/src/core/theme/__workshop__/debug/story.tsx +0 -401
  618. package/src/core/theme/__workshop__/index.ts +0 -39
  619. package/src/core/theme/__workshop__/layer.tsx +0 -78
  620. package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
  621. package/src/core/utils/boundaryElement/__workshop__/.eslintrc +0 -5
  622. package/src/core/utils/elementQuery/__workshop__/.eslintrc +0 -5
  623. package/src/core/utils/layer/__workshop__/.eslintrc +0 -5
  624. package/src/core/utils/portal/__workshop__/.eslintrc +0 -5
  625. package/src/core/utils/virtualList/__workshop__/.eslintrc +0 -5
  626. package/src/css/primitives/selectable/rules.ts +0 -27
  627. package/src/css/primitives/selectable/selectable.ts +0 -9
  628. package/src/css/primitives/selectable/types.ts +0 -6
  629. package/src/theme/system/color/badge.ts +0 -20
  630. package/src/theme/system/theme.ts +0 -138
  631. package/src/theme/system/v0/color/_system.ts +0 -13
  632. package/theme.js +0 -2
  633. package/src/core/{theme → _compat/theme}/index.ts +1 -1
  634. package/src/core/{theme → _compat/theme}/types.ts +0 -0
  635. package/src/core/components/autocomplete/{__fixtures__ → __mocks__}/countries.ts +0 -0
  636. package/src/core/primitives/kbd/{index.tsx → index.ts} +0 -0
  637. package/src/css/primitives/{selectable → _selectable}/index.ts +0 -0
  638. package/src/theme/{system/v0 → v0}/avatar.ts +0 -0
  639. package/src/theme/{system/v0 → v0}/color/base.ts +0 -0
  640. package/src/theme/{system/v0 → v0}/color/button.ts +0 -0
  641. package/src/theme/{system/v0 → v0}/color/card.ts +0 -0
  642. package/src/theme/{system/v0 → v0}/color/index.ts +1 -1
  643. package/src/theme/{system/v0 → v0}/color/muted.ts +0 -0
  644. package/src/theme/{system/v0 → v0}/color/selectable.ts +0 -0
  645. package/src/theme/{system/v0 → v0}/color/solid.ts +0 -0
  646. package/src/theme/{system → v0}/focusRing.ts +0 -0
  647. package/src/theme/{system/v0 → v0}/input.ts +0 -0
  648. package/src/theme/{system → v0}/layer.ts +0 -0
  649. package/src/theme/{system → v0}/shadow.ts +0 -0
  650. package/src/theme/{system → v0}/styles.ts +0 -0
  651. package/src/theme/{system → v2}/color/_system.ts +1 -1
  652. /package/src/theme/{system → v2}/color/avatar.ts +0 -0
  653. /package/src/theme/{system → v2}/color/button.ts +0 -0
  654. /package/src/theme/{system → v2}/color/index.ts +0 -0
  655. /package/src/theme/{system → v2}/color/input.ts +0 -0
  656. /package/src/theme/{system → v2}/color/kbd.ts +0 -0
  657. /package/src/theme/{system → v2}/color/selectable.ts +0 -0
  658. /package/src/theme/{system → v2}/color/shadow.ts +0 -0
  659. /package/src/theme/{system → v2}/color/state.ts +0 -0
  660. /package/src/theme/{system → v2}/color/syntax.ts +0 -0
@@ -1,4 +1,4 @@
1
- import {Transition, Variant} from 'framer-motion'
1
+ import type {Transition, Variant} from 'framer-motion'
2
2
 
3
3
  /**
4
4
  * @internal
@@ -10,39 +10,61 @@ export const EMPTY_ARRAY: never[] = []
10
10
  */
11
11
  export const EMPTY_RECORD: Record<string, never> = {}
12
12
 
13
- /**
14
- * @internal
15
- */
16
- export const POPOVER_MOTION_CONTENT_OPACITY_PROPERTY = '--motion-content-opacity'
13
+ const POPOVER_MOTION_DURATION = 0.2
17
14
 
18
15
  /**
19
16
  * Shared `framer-motion` variants used by `Popover` and `Tooltip` components.
20
17
  * @internal
21
18
  */
22
19
  export const POPOVER_MOTION_PROPS: {
23
- animate: Variant
24
- initial: Variant
25
- exit: Variant
20
+ card: {
21
+ initial: Variant
22
+ hidden: Variant
23
+ visible: Variant
24
+ scaleIn: Variant
25
+ scaleOut: Variant
26
+ }
27
+ children: {
28
+ hidden: Variant
29
+ visible: Variant
30
+ }
26
31
  transition: Transition
27
32
  } = {
28
- initial: {
29
- opacity: 0.5,
30
- [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: 0,
31
- scale: 0.97,
32
- willChange: 'transform',
33
+ card: {
34
+ initial: {
35
+ scale: 0.97,
36
+ willChange: 'transform',
37
+ },
38
+ hidden: {
39
+ opacity: 0,
40
+ },
41
+ visible: {
42
+ opacity: 1,
43
+ transition: {
44
+ when: 'beforeChildren',
45
+ duration: POPOVER_MOTION_DURATION / 2,
46
+ },
47
+ },
48
+ scaleIn: {
49
+ scale: 1,
50
+ },
51
+ scaleOut: {
52
+ scale: 0.97,
53
+ },
33
54
  },
34
- animate: {
35
- opacity: [null, 1, 1],
36
- [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, null, 1],
37
- scale: 1,
55
+ children: {
56
+ hidden: {
57
+ opacity: 0,
58
+ },
59
+ visible: {
60
+ opacity: 1,
61
+ },
38
62
  },
39
- exit: {
40
- // @ts-expect-error -- passing null a second time is valid: https://github.com/framer/motion/blob/b9ce4c42914c3916ea523609c5b032dfc72718bb/packages/framer-motion/src/animation/utils/keyframes.ts#L34C22-L34C22
41
- opacity: [null, null, 0],
42
- [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY as string]: [null, 0, 0],
43
- scale: 0.97,
63
+ transition: {
64
+ type: 'spring',
65
+ visualDuration: POPOVER_MOTION_DURATION,
66
+ bounce: 0.25,
44
67
  },
45
- transition: {duration: 0.4, type: 'spring'},
46
68
  }
47
69
 
48
70
  /**
@@ -1,8 +1,8 @@
1
1
  import {
2
- isHTMLElement,
3
2
  isHTMLAnchorElement,
4
- isHTMLInputElement,
5
3
  isHTMLButtonElement,
4
+ isHTMLElement,
5
+ isHTMLInputElement,
6
6
  isHTMLSelectElement,
7
7
  isHTMLTextAreaElement,
8
8
  } from './element'
@@ -60,7 +60,7 @@ export function attemptFocus(element: HTMLElement): boolean {
60
60
 
61
61
  try {
62
62
  element.focus()
63
- } catch (_) {
63
+ } catch {
64
64
  // ignore
65
65
  }
66
66
 
@@ -1,4 +1,5 @@
1
1
  export * from './animation'
2
2
  export * from './element'
3
3
  export * from './focus'
4
+ export * from './props'
4
5
  export * from './scroll'
@@ -0,0 +1,10 @@
1
+ import {EMPTY_ARRAY} from '../constants'
2
+
3
+ /**
4
+ * @internal
5
+ */
6
+ export function _getArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {
7
+ if (val === undefined) return defaultVal || EMPTY_ARRAY
8
+
9
+ return Array.isArray(val) ? val : [val]
10
+ }
@@ -1,25 +1,29 @@
1
- import {useMemo} from 'react'
2
- import {_getArrayProp} from '../_compat'
1
+ import {useState} from 'react'
2
+
3
+ import {_getArrayProp} from '../helpers'
3
4
 
4
5
  /** @beta */
5
- export type ArrayPropPrimitive = string | number | boolean | undefined | null
6
+ // export type ArrayPropPrimitive = string | number | boolean | undefined | null
6
7
 
7
8
  /**
8
9
  * This API might change. DO NOT USE IN PRODUCTION.
9
10
  * @beta
10
11
  */
11
- export function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(
12
- val: T | T[] | undefined,
13
- defaultVal?: T[],
14
- ): T[] {
15
- // JSON.stringify is fast, but it's not faster than useMemo's referencial equality check
16
- const __perf_hash__ = useMemo(() => JSON.stringify(val ?? defaultVal), [defaultVal, val])
12
+ // export function useArrayProp<T extends ArrayPropPrimitive = ArrayPropPrimitive>(
13
+ export function useArrayProp<T>(val: T | T[] | undefined, defaultVal?: T[]): T[] {
14
+ const [[cachedVal, cachedHash], setCache] = useState<[T[], string]>(() => [
15
+ _getArrayProp(val, defaultVal),
16
+ JSON.stringify(val ?? defaultVal),
17
+ ])
18
+
19
+ const hash = JSON.stringify(val ?? defaultVal)
17
20
 
18
- return useMemo(
19
- () => _getArrayProp(val, defaultVal),
21
+ if (hash !== cachedHash) {
22
+ // If the cached hash has changed, update the cache right away.
23
+ // Calling setState during render is fine in this case, and preferred over a useEffect loop
24
+ // https://19.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes
25
+ setCache([_getArrayProp(val, defaultVal), hash])
26
+ }
20
27
 
21
- // Improve performance: Keep object identify for a given hash of the value
22
- // eslint-disable-next-line react-hooks/exhaustive-deps
23
- [__perf_hash__],
24
- )
28
+ return cachedVal
25
29
  }
@@ -1,9 +1,8 @@
1
1
  /** @jest-environment jsdom */
2
- /* eslint-disable padding-line-between-statements, react/display-name */
3
2
 
4
3
  import {render, screen} from '@testing-library/react'
5
4
  import userEvent from '@testing-library/user-event'
6
- import {useEffect, useRef, useState} from 'react'
5
+ import {MutableRefObject, useEffect, useRef, useState} from 'react'
7
6
 
8
7
  import {useClickOutside} from './useClickOutside'
9
8
 
@@ -290,7 +289,7 @@ describe('useClickOutside', () => {
290
289
  * When using the legacy version of the `useClickOutside` API it's necessary to synchronize mutable ref values
291
290
  * with a effect and state loop to ensure they're not stale
292
291
  */
293
- const useElementsFromRefs = (refs: React.MutableRefObject<HTMLElement | null>[]) => {
292
+ const useElementsFromRefs = (refs: MutableRefObject<HTMLElement | null>[]) => {
294
293
  const [elements, setElements] = useState(() => refs.map((ref) => ref.current))
295
294
 
296
295
  useEffect(() => {
@@ -439,7 +438,7 @@ describe('useClickOutside', () => {
439
438
  * When using the legacy version of the `useClickOutside` API it's necessary to synchronize mutable ref values
440
439
  * with a effect and state loop to ensure they're not stale
441
440
  */
442
- const useBoundaryElementFromRef = (ref: React.MutableRefObject<HTMLElement | null>) => {
441
+ const useBoundaryElementFromRef = (ref: MutableRefObject<HTMLElement | null>) => {
443
442
  const [element, setElement] = useState(() => ref.current)
444
443
 
445
444
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -1,4 +1,5 @@
1
1
  import {useEffect, useRef, useState} from 'react'
2
+
2
3
  import {EMPTY_ARRAY} from '../constants'
3
4
 
4
5
  /**
@@ -1,5 +1,4 @@
1
1
  /** @jest-environment jsdom */
2
- /* eslint-disable padding-line-between-statements, react/display-name */
3
2
 
4
3
  import {render, screen} from '@testing-library/react'
5
4
  import userEvent from '@testing-library/user-event'
@@ -1,5 +1,6 @@
1
1
  import {useDebugValue, useEffect} from 'react'
2
2
  import {useEffectEvent} from 'use-effect-event'
3
+
3
4
  import {EMPTY_ARRAY} from '../constants'
4
5
 
5
6
  /**
@@ -66,7 +67,7 @@ export function useClickOutsideEvent(
66
67
  return () => {
67
68
  document.removeEventListener('mousedown', handleEvent)
68
69
  }
69
- }, [hasListener, onEvent])
70
+ }, [hasListener])
70
71
 
71
72
  useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')
72
73
  }
@@ -1,6 +1,7 @@
1
1
  /** @jest-environment jsdom */
2
2
 
3
- import {renderHook, act} from '@testing-library/react'
3
+ import {act, renderHook} from '@testing-library/react'
4
+
4
5
  import {useDelayedState} from './useDelayedState'
5
6
 
6
7
  describe('useDelayedState', () => {
@@ -1,5 +1,4 @@
1
- import {useRef} from 'react'
2
- import {useState, useCallback, SetStateAction} from 'react'
1
+ import {SetStateAction, useCallback, useRef, useState} from 'react'
3
2
 
4
3
  /**
5
4
  * @beta
@@ -8,7 +7,7 @@ export function useDelayedState<S>(
8
7
  initialState: S | (() => S),
9
8
  ): [S, (nextState: SetStateAction<S>, delay?: number) => void] {
10
9
  const [state, setState] = useState(initialState)
11
- const delayedAction = useRef<NodeJS.Timeout | undefined>()
10
+ const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)
12
11
 
13
12
  const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {
14
13
  const action = () => {
@@ -1,11 +1,12 @@
1
1
  import {Box, Card, Code, Container, Stack, Text, useElementRect} from '@sanity/ui'
2
- import {useMemo, useState} from 'react'
2
+ import {useState} from 'react'
3
+
3
4
  import {Grid} from '../../../primitives'
4
5
 
5
6
  export default function ExampleStory() {
6
7
  const [element, setElement] = useState<HTMLElement | null>(null)
7
8
  const rect = useElementRect(element)
8
- const size = useMemo(() => ({width: rect?.width || 0, height: rect?.height || 0}), [rect])
9
+ const size = {width: rect?.width || 0, height: rect?.height || 0}
9
10
 
10
11
  return (
11
12
  <Box padding={[3, 4, 5]}>
@@ -1,5 +1,6 @@
1
1
  import {useEffect, useState} from 'react'
2
- import {ElementSize, _elementSizeObserver} from '../observers/elementSizeObserver'
2
+
3
+ import {_elementSizeObserver, ElementSize} from '../observers/elementSizeObserver'
3
4
 
4
5
  /**
5
6
  * Subscribe to the size of a DOM element.
@@ -1,4 +1,4 @@
1
- import {useImperativeHandle, useRef} from 'react'
1
+ import {ForwardedRef, MutableRefObject, useImperativeHandle, useRef} from 'react'
2
2
 
3
3
  /**
4
4
  * @beta
@@ -10,7 +10,7 @@ import {useImperativeHandle, useRef} from 'react'
10
10
  * +useImperativeHandle(forwardedRef, () => ref.current)
11
11
  * ```
12
12
  */
13
- export function useForwardedRef<T>(ref: React.ForwardedRef<T>): React.MutableRefObject<T | null> {
13
+ export function useForwardedRef<T>(ref: ForwardedRef<T>): MutableRefObject<T | null> {
14
14
  const innerRef = useRef<T | null>(null)
15
15
 
16
16
  useImperativeHandle(ref, () => innerRef.current!)
@@ -1,12 +1,17 @@
1
1
  import {useEffect} from 'react'
2
+ import {useEffectEvent} from 'use-effect-event'
2
3
 
3
4
  /**
4
5
  * @beta
5
6
  */
6
7
  export function useGlobalKeyDown(onKeyDown: (event: KeyboardEvent) => void): void {
7
- return useEffect(() => {
8
- addEventListener('keydown', onKeyDown)
8
+ const handleKeyDown = useEffectEvent((event: KeyboardEvent) => onKeyDown(event))
9
9
 
10
- return () => removeEventListener('keydown', onKeyDown)
11
- }, [onKeyDown])
10
+ useEffect(() => {
11
+ const handler = (event: KeyboardEvent) => handleKeyDown(event)
12
+
13
+ window.addEventListener('keydown', handler)
14
+
15
+ return () => window.removeEventListener('keydown', handler)
16
+ }, [])
12
17
  }
@@ -3,7 +3,7 @@ import {useDebugValue, useMemo, useSyncExternalStore} from 'react'
3
3
  /**
4
4
  * Efficiently subscribes to `window.matchMedia` queries
5
5
  *
6
- * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)
6
+ * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Required if the hook is called during SSR (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)
7
7
  *
8
8
  * @public
9
9
  */
@@ -1,8 +1,9 @@
1
1
  /** @jest-environment node */
2
2
 
3
3
  import {buildTheme} from '@sanity/ui/theme'
4
- import {renderToString, renderToStaticMarkup} from 'react-dom/server'
5
- import {ThemeProvider} from '../../theme'
4
+ import {renderToStaticMarkup, renderToString} from 'react-dom/server'
5
+
6
+ import {ThemeProvider} from '../../_compat'
6
7
  import {useMediaIndex} from './useMediaIndex'
7
8
 
8
9
  const theme = buildTheme()
@@ -1,5 +1,6 @@
1
1
  import {useMemo, useSyncExternalStore} from 'react'
2
- import {useTheme_v2} from '../../theme'
2
+
3
+ import {useTheme_v2} from '../../_compat'
3
4
 
4
5
  /**
5
6
  * @internal
@@ -1,5 +1,4 @@
1
1
  /** @jest-environment jsdom */
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
2
  /**
4
3
  * As this hook is used for top-level theming it's likely to be called while server-rendering
5
4
  * and that's why it's worth it to have a testing suite for hydration
@@ -1,5 +1,6 @@
1
1
  /** @jest-environment node */
2
- import {renderToString, renderToStaticMarkup} from 'react-dom/server'
2
+ import {renderToStaticMarkup, renderToString} from 'react-dom/server'
3
+
3
4
  import {usePrefersDark} from './usePrefersDark'
4
5
 
5
6
  function Log() {
@@ -3,7 +3,7 @@ import {useMatchMedia} from './useMatchMedia'
3
3
  /**
4
4
  * Returns true if a dark color scheme is preferred, false if a light color scheme is preferred or the preference is not known.
5
5
  *
6
- * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)
6
+ * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-color-scheme: light)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)
7
7
  *
8
8
  * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.
9
9
  * Chrome supports reading the `prefers-color-scheme` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Color-Scheme
@@ -1,5 +1,4 @@
1
1
  /** @jest-environment jsdom */
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
2
  /**
4
3
  * As this hook is used for top-level theming it's likely to be called while server-rendering
5
4
  * and that's why it's worth it to have a testing suite for hydration
@@ -1,5 +1,6 @@
1
1
  /** @jest-environment node */
2
- import {renderToString, renderToStaticMarkup} from 'react-dom/server'
2
+ import {renderToStaticMarkup, renderToString} from 'react-dom/server'
3
+
3
4
  import {usePrefersReducedMotion} from './usePrefersReducedMotion'
4
5
 
5
6
  function Log() {
@@ -3,7 +3,7 @@ import {useMatchMedia} from './useMatchMedia'
3
3
  /**
4
4
  * Returns true if motion should be reduced
5
5
  *
6
- * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://react.dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)
6
+ * @param getServerSnapshot - Only called during server-side rendering, and hydration if using hydrateRoot. Since the server environment doesn't have access to the DOM, we can't determine the current value of the media query and we assume `(prefers-reduced-motion: no-preference)` since it's the most common scheme (https://dev/reference/react/useSyncExternalStore#adding-support-for-server-rendering)
7
7
  *
8
8
  * If you persist the detected preference in a cookie or a header then you may implement your own server snapshot to read it.
9
9
  * Chrome supports reading the `prefers-reduced-motion` media query from a header if the server response: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-Prefers-Reduced-Motion
package/src/core/index.ts CHANGED
@@ -1,10 +1,9 @@
1
1
  export * from './_compat'
2
-
3
- export * from './primitives'
4
2
  export * from './components'
5
3
  export * from './helpers'
6
4
  export * from './hooks'
7
5
  export * from './observers'
8
- export * from './theme'
6
+ export * from './primitives'
7
+ export * from './StyleTags'
9
8
  export * from './types'
10
9
  export * from './utils'
@@ -8,7 +8,8 @@
8
8
  * It's also why it's vital that all changes to globally scoped providers remain fully backwards compatible to v1.
9
9
  */
10
10
 
11
- import {createContext, type Context} from 'react'
11
+ import {type Context, createContext} from 'react'
12
+
12
13
  import {globalScope} from './globalScope'
13
14
 
14
15
  export function createGlobalScopedContext<ContextType, const T extends ContextType = ContextType>(
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  /**
3
2
  * Gets the global scope instance in a given environment.
4
3
  *
@@ -1,16 +1,20 @@
1
- import {composeClassNames, selectable, SelectableStyleProps} from '@sanity/ui/css'
2
- import {ForwardedRef, forwardRef, HTMLProps} from 'react'
3
- import {SelectableTone} from '../../types'
1
+ import {_selectable, composeClassNames, SelectableStyleProps} from '@sanity/ui/css'
2
+ import {ForwardedRef, forwardRef} from 'react'
3
+
4
+ import {Props, SelectableTone} from '../../types'
4
5
  import {Box, BoxProps} from '../box'
5
6
 
6
7
  /** @internal */
7
8
  export interface SelectableProps extends BoxProps, SelectableStyleProps {
9
+ disabled?: boolean
10
+ href?: string
8
11
  tone?: SelectableTone
12
+ type?: 'button'
9
13
  }
10
14
 
11
15
  /** @internal */
12
16
  export const Selectable = forwardRef(function Selectable(
13
- props: SelectableProps & Omit<HTMLProps<HTMLDivElement>, 'as' | 'height' | 'wrap' | 'width'>,
17
+ props: Props<SelectableProps, 'div'>,
14
18
  ref: ForwardedRef<HTMLDivElement>,
15
19
  ) {
16
20
  const {className, radius, tone, ...restProps} = props
@@ -18,7 +22,7 @@ export const Selectable = forwardRef(function Selectable(
18
22
  return (
19
23
  <Box
20
24
  {...restProps}
21
- className={composeClassNames(className, selectable({radius, tone}))}
25
+ className={composeClassNames(className, _selectable({radius, tone}))}
22
26
  ref={ref}
23
27
  />
24
28
  )
@@ -1,6 +1,7 @@
1
1
  import {Avatar, Flex} from '@sanity/ui'
2
2
  import {useSelect} from '@sanity/ui-workshop'
3
- import {WORKSHOP_AVATAR_SIZE_OPTIONS} from '../../../__workshop__/constants'
3
+
4
+ import {WORKSHOP_AVATAR_SIZE_OPTIONS} from '../../../../../workshop/constants'
4
5
 
5
6
  export default function AsButtonStory() {
6
7
  const size = useSelect('Size', WORKSHOP_AVATAR_SIZE_OPTIONS, 1, 'Props')
@@ -1,6 +1,7 @@
1
1
  import {Avatar, AvatarCounter, AvatarStack, Flex} from '@sanity/ui'
2
2
  import {useSelect} from '@sanity/ui-workshop'
3
- import {WORKSHOP_AVATAR_SIZE_OPTIONS} from '../../../__workshop__/constants'
3
+
4
+ import {WORKSHOP_AVATAR_SIZE_OPTIONS} from '../../../../../workshop/constants'
4
5
 
5
6
  export default function StackStory() {
6
7
  const size = useSelect('Size', WORKSHOP_AVATAR_SIZE_OPTIONS, 1, 'Props')
@@ -1,4 +1,5 @@
1
1
  import {useBoolean} from '@sanity/ui-workshop'
2
+
2
3
  import {Box} from '../../box'
3
4
  import {Button} from '../../button'
4
5
  import {Container} from '../../container'
@@ -15,7 +16,7 @@ export default function WithinButtonStory() {
15
16
  <Container width={1}>
16
17
  <Stack paddingX={4} paddingY={[5, 6, 7]} space={1}>
17
18
  <Button disabled={disabled} padding={1}>
18
- <Flex align="center" gap={3} padding={2}>
19
+ <Flex align="center" flex={1} gap={3} padding={2}>
19
20
  <Box flex={1}>
20
21
  <Text size={1}>Default button</Text>
21
22
  </Box>
@@ -29,7 +30,7 @@ export default function WithinButtonStory() {
29
30
  </Flex>
30
31
  </Button>
31
32
  <Button disabled={disabled} mode="ghost" padding={1}>
32
- <Flex align="center" gap={3} padding={2}>
33
+ <Flex align="center" flex={1} gap={3} padding={2}>
33
34
  <Box flex={1}>
34
35
  <Text size={1}>Ghost button</Text>
35
36
  </Box>
@@ -43,7 +44,7 @@ export default function WithinButtonStory() {
43
44
  </Flex>
44
45
  </Button>
45
46
  <Button disabled={disabled} mode="bleed" padding={1}>
46
- <Flex align="center" gap={3} padding={2}>
47
+ <Flex align="center" flex={1} gap={3} padding={2}>
47
48
  <Box flex={1}>
48
49
  <Text size={1}>Bleed button</Text>
49
50
  </Box>
@@ -1,13 +1,16 @@
1
+ import {
2
+ Avatar,
3
+ AvatarStack,
4
+ Box,
5
+ Card,
6
+ Container,
7
+ Flex,
8
+ Layer,
9
+ Menu,
10
+ MenuItem,
11
+ Text,
12
+ } from '@sanity/ui'
1
13
  import {useBoolean} from '@sanity/ui-workshop'
2
- import {Menu, MenuItem} from '../../../components'
3
- import {Layer} from '../../../utils'
4
- import {Box} from '../../box'
5
- import {Card} from '../../card'
6
- import {Container} from '../../container'
7
- import {Flex} from '../../flex'
8
- import {Text} from '../../text'
9
- import {Avatar} from '../avatar'
10
- import {AvatarStack} from '../avatarStack'
11
14
 
12
15
  export default function WithinMenuItemStory() {
13
16
  const disabled = useBoolean('Disabled', false, 'Props')
@@ -17,45 +20,45 @@ export default function WithinMenuItemStory() {
17
20
  <Layer>
18
21
  <Box paddingX={4} paddingY={[5, 6, 7]}>
19
22
  <Card radius={3} shadow={3}>
20
- <Menu space={1}>
23
+ <Menu gap={1}>
21
24
  <MenuItem disabled={disabled} padding={0}>
22
- <Flex align="center" gap={2} padding={2}>
23
- <Box flex={1}>
25
+ <Flex align="center" gap={2} padding={1}>
26
+ <Box flex={1} padding={2}>
24
27
  <Text size={1}>Menu item 1</Text>
25
28
  </Box>
26
29
  <Box flex="none">
27
30
  <AvatarStack>
28
- <Avatar color="blue" initials="AB" />
31
+ <Avatar color="purple" initials="AB" />
29
32
  <Avatar color="magenta" initials="CD" />
30
- <Avatar color="purple" initials="EF" />
33
+ <Avatar color="orange" initials="EF" />
31
34
  </AvatarStack>
32
35
  </Box>
33
36
  </Flex>
34
37
  </MenuItem>
35
38
  <MenuItem disabled={disabled} padding={0}>
36
- <Flex align="center" gap={2} padding={2}>
37
- <Box flex={1}>
39
+ <Flex align="center" gap={2} padding={1}>
40
+ <Box flex={1} padding={2}>
38
41
  <Text size={1}>Menu item 1</Text>
39
42
  </Box>
40
43
  <Box flex="none">
41
44
  <AvatarStack>
42
- <Avatar color="blue" initials="AB" />
45
+ {/* <Avatar color="purple" initials="AB" /> */}
43
46
  <Avatar color="magenta" initials="CD" />
44
- <Avatar color="purple" initials="EF" />
47
+ <Avatar color="orange" initials="EF" />
45
48
  </AvatarStack>
46
49
  </Box>
47
50
  </Flex>
48
51
  </MenuItem>
49
52
  <MenuItem disabled={disabled} padding={0}>
50
- <Flex align="center" gap={2} padding={2}>
51
- <Box flex={1}>
53
+ <Flex align="center" gap={2} padding={1}>
54
+ <Box flex={1} padding={2}>
52
55
  <Text size={1}>Menu item 1</Text>
53
56
  </Box>
54
57
  <Box flex="none">
55
58
  <AvatarStack>
56
- <Avatar color="blue" initials="AB" />
57
- <Avatar color="magenta" initials="CD" />
58
- <Avatar color="purple" initials="EF" />
59
+ <Avatar color="purple" initials="AB" />
60
+ {/* <Avatar color="magenta" initials="CD" /> */}
61
+ {/* <Avatar color="orange" initials="EF" /> */}
59
62
  </AvatarStack>
60
63
  </Box>
61
64
  </Flex>