@sanity/ui 2.16.21 → 2.16.23

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 (328) hide show
  1. package/dist/_chunks-cjs/_visual-editing.js +121 -1046
  2. package/dist/_chunks-cjs/_visual-editing.js.map +1 -1
  3. package/dist/_chunks-cjs/refractor.js.map +1 -1
  4. package/dist/_chunks-es/_visual-editing.mjs +116 -1041
  5. package/dist/_chunks-es/_visual-editing.mjs.map +1 -1
  6. package/dist/_chunks-es/refractor.mjs.map +1 -1
  7. package/dist/_visual-editing.d.mts +411 -351
  8. package/dist/_visual-editing.d.ts +411 -351
  9. package/dist/index.d.mts +1107 -930
  10. package/dist/index.d.ts +1107 -930
  11. package/dist/index.js +67 -158
  12. package/dist/index.js.map +1 -1
  13. package/dist/index.mjs +65 -156
  14. package/dist/index.mjs.map +1 -1
  15. package/dist/theme.d.mts +769 -681
  16. package/dist/theme.d.ts +769 -681
  17. package/dist/theme.js +47 -0
  18. package/dist/theme.js.map +1 -1
  19. package/dist/theme.mjs +47 -0
  20. package/dist/theme.mjs.map +1 -1
  21. package/exports/_visual-editing.ts +1 -0
  22. package/package.json +50 -163
  23. package/src/core/_compat.ts +30 -0
  24. package/src/core/components/autocomplete/autocomplete.tsx +11 -4
  25. package/src/core/components/autocomplete/autocompleteOption.tsx +1 -0
  26. package/src/core/components/breadcrumbs/breadcrumbs.tsx +1 -0
  27. package/src/core/components/dialog/dialog.tsx +3 -0
  28. package/src/core/components/hotkeys/hotkeys.tsx +1 -0
  29. package/src/core/components/menu/menu.test.tsx +6 -4
  30. package/src/core/components/menu/menu.tsx +3 -2
  31. package/src/core/components/menu/menuButton.tsx +8 -0
  32. package/src/core/components/menu/menuGroup.tsx +5 -2
  33. package/src/core/components/menu/menuItem.tsx +4 -0
  34. package/src/core/components/menu/useMenuController.ts +6 -4
  35. package/src/core/components/skeleton/skeleton.tsx +2 -1
  36. package/src/core/components/tab/tab.tsx +1 -0
  37. package/src/core/components/tab/tabList.tsx +1 -0
  38. package/src/core/components/toast/toast.test.tsx +9 -4
  39. package/src/core/components/toast/toast.tsx +1 -1
  40. package/src/core/components/toast/toastProvider.tsx +1 -1
  41. package/src/core/components/tree/tree.tsx +1 -0
  42. package/src/core/components/tree/treeGroup.tsx +1 -0
  43. package/src/core/components/tree/treeItem.tsx +2 -2
  44. package/src/core/constants.ts +2 -2
  45. package/src/core/hooks/useClickOutside.test.tsx +43 -15
  46. package/src/core/hooks/useClickOutside.ts +1 -1
  47. package/src/core/hooks/useClickOutsideEvent.test.tsx +8 -4
  48. package/src/core/hooks/useDelayed.test.ts +7 -6
  49. package/src/core/hooks/useElementRect/useElementRect.ts +1 -0
  50. package/src/core/hooks/useForwardedRef.ts +1 -0
  51. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +2 -1
  52. package/src/core/hooks/usePrefersDark.hydration.test.tsx +7 -5
  53. package/src/core/hooks/usePrefersDark.test.tsx +3 -1
  54. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +7 -5
  55. package/src/core/hooks/usePrefersReducedMotion.test.tsx +3 -1
  56. package/src/core/lib/createGlobalScopedContext.ts +1 -0
  57. package/src/core/lib/globalScope.ts +1 -0
  58. package/src/core/observers/elementSizeObserver.ts +1 -0
  59. package/src/core/primitives/avatar/avatar.tsx +1 -2
  60. package/src/core/primitives/avatar/avatarStack.tsx +1 -0
  61. package/src/core/primitives/badge/badge.test.tsx +3 -2
  62. package/src/core/primitives/badge/badge.tsx +2 -1
  63. package/src/core/primitives/box/box.tsx +2 -1
  64. package/src/core/primitives/button/button.test.tsx +3 -2
  65. package/src/core/primitives/button/button.tsx +2 -0
  66. package/src/core/primitives/button/styles.ts +1 -0
  67. package/src/core/primitives/card/card.tsx +1 -5
  68. package/src/core/primitives/card/types.ts +1 -0
  69. package/src/core/primitives/code/refractor.tsx +2 -0
  70. package/src/core/primitives/flex/flex.tsx +1 -3
  71. package/src/core/primitives/inline/inline.tsx +1 -0
  72. package/src/core/primitives/popover/popover.tsx +13 -4
  73. package/src/core/primitives/popover/popoverCard.tsx +2 -1
  74. package/src/core/primitives/popover/types.ts +0 -1
  75. package/src/core/primitives/stack/styles.ts +1 -0
  76. package/src/core/primitives/textInput/textInput.tsx +2 -0
  77. package/src/core/primitives/tooltip/tooltip.test.tsx +82 -49
  78. package/src/core/primitives/tooltip/tooltip.tsx +6 -1
  79. package/src/core/primitives/tooltip/tooltipCard.tsx +2 -1
  80. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +2 -0
  81. package/src/core/styles/flex/types.ts +0 -1
  82. package/src/core/styles/font/responsiveFont.ts +0 -3
  83. package/src/core/styles/font/types.ts +1 -3
  84. package/src/core/styles/grid/gridStyle.ts +1 -0
  85. package/src/core/styles/margin/marginStyle.ts +1 -0
  86. package/src/core/styles/margin/marginsStyle.test.ts +2 -1
  87. package/src/core/styles/padding/paddingStyle.test.ts +2 -1
  88. package/src/core/styles/padding/paddingStyle.ts +1 -0
  89. package/src/core/theme/theme.test.tsx +7 -3
  90. package/src/core/theme/useRootTheme.ts +1 -0
  91. package/src/core/theme/useTheme.ts +2 -0
  92. package/src/core/utils/arrow/arrow.tsx +1 -0
  93. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +9 -4
  94. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +1 -0
  95. package/src/core/utils/getElementRef.ts +5 -0
  96. package/src/core/utils/layer/getLayerContext.test.ts +2 -0
  97. package/src/core/utils/layer/layer.test.tsx +9 -4
  98. package/src/core/utils/layer/layer.tsx +1 -0
  99. package/src/core/utils/layer/useLayer.ts +2 -0
  100. package/src/core/utils/portal/portal.test.tsx +9 -4
  101. package/src/core/utils/portal/portalProvider.tsx +4 -3
  102. package/src/core/utils/virtualList/virtualList.tsx +2 -1
  103. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +10 -0
  104. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +4 -0
  105. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +5 -0
  106. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +5 -0
  107. package/src/theme/build/_deprecated/color/card/createCardStates.ts +6 -0
  108. package/src/theme/build/_deprecated/color/color.test.ts +5 -1
  109. package/src/theme/build/_deprecated/color/defaults.ts +1 -0
  110. package/src/theme/build/_deprecated/color/factory.ts +36 -0
  111. package/src/theme/build/_deprecated/color/input/createInputModes.ts +5 -0
  112. package/src/theme/build/_deprecated/color/muted/createMuted.ts +4 -0
  113. package/src/theme/build/_deprecated/color/spot/createSpot.ts +3 -0
  114. package/src/theme/build/buildColorTheme.test.ts +2 -0
  115. package/src/theme/build/buildColorTheme.ts +7 -0
  116. package/src/theme/build/buildTheme.test.ts +2 -0
  117. package/src/theme/build/lib/color-fns/color-fns.test.ts +3 -1
  118. package/src/theme/build/merge.ts +5 -0
  119. package/src/theme/build/mixThemeColor.test.ts +2 -0
  120. package/src/theme/build/renderColorTheme.ts +6 -0
  121. package/src/theme/build/renderColorValue.ts +0 -2
  122. package/src/theme/build/resolveColorTokens.ts +6 -0
  123. package/src/theme/build/theme.test.ts +2 -0
  124. package/src/theme/config/helpers.ts +5 -0
  125. package/src/theme/config/system.ts +2 -0
  126. package/src/theme/config/tokens/color/types.ts +6 -4
  127. package/src/theme/config/tokens/parseTokenKey.test.ts +2 -0
  128. package/src/theme/config/tokens/parseTokenValue.test.ts +2 -0
  129. package/src/theme/config/tokens/parseTokenValue.ts +1 -0
  130. package/src/theme/getScopedTheme.ts +5 -0
  131. package/src/theme/system/color/_helpers.ts +4 -0
  132. package/src/theme/system/theme.ts +4 -0
  133. package/src/theme/system/v0/color/_system.ts +1 -0
  134. package/src/theme/system/v0/color/button.ts +14 -0
  135. package/src/theme/system/v0/color/card.ts +6 -0
  136. package/src/theme/system/v0/color/color.ts +11 -0
  137. package/src/theme/system/v0/color/input.ts +6 -0
  138. package/src/theme/system/v0/color/muted.ts +11 -0
  139. package/src/theme/system/v0/color/selectable.ts +11 -0
  140. package/src/theme/system/v0/color/solid.ts +11 -0
  141. package/src/theme/system/v0/color/spot.ts +1 -0
  142. package/src/theme/versioning/getTheme_v2.ts +15 -0
  143. package/src/theme/versioning/themeColor_v0_v2.ts +7 -0
  144. package/src/theme/versioning/themeColor_v2_v2_9.ts +1 -0
  145. package/src/theme/versioning/v0_v2.ts +13 -1
  146. package/src/theme/versioning/v2_v0.ts +15 -0
  147. package/src/core/__workshop__/constants.ts +0 -293
  148. package/src/core/components/autocomplete/__mocks__/apiStore.ts +0 -49
  149. package/src/core/components/autocomplete/__mocks__/countries.ts +0 -245
  150. package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
  151. package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -137
  152. package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -89
  153. package/src/core/components/autocomplete/__workshop__/example.tsx +0 -79
  154. package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
  155. package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -294
  156. package/src/core/components/autocomplete/__workshop__/index.ts +0 -39
  157. package/src/core/components/autocomplete/__workshop__/types.ts +0 -4
  158. package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -62
  159. package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -14
  160. package/src/core/components/dialog/__workshop__/activate.tsx +0 -134
  161. package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
  162. package/src/core/components/dialog/__workshop__/index.ts +0 -19
  163. package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
  164. package/src/core/components/dialog/__workshop__/nested.tsx +0 -72
  165. package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -39
  166. package/src/core/components/dialog/__workshop__/panes.tsx +0 -82
  167. package/src/core/components/dialog/__workshop__/position.tsx +0 -30
  168. package/src/core/components/dialog/__workshop__/props.tsx +0 -75
  169. package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
  170. package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
  171. package/src/core/components/hotkeys/__workshop__/index.ts +0 -14
  172. package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
  173. package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
  174. package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -51
  175. package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -46
  176. package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
  177. package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
  178. package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -39
  179. package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
  180. package/src/core/components/menu/__workshop__/groups.tsx +0 -156
  181. package/src/core/components/menu/__workshop__/index.ts +0 -89
  182. package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
  183. package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -65
  184. package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
  185. package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
  186. package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
  187. package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -47
  188. package/src/core/components/menu/__workshop__/tones.tsx +0 -25
  189. package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
  190. package/src/core/components/skeleton/__workshop__/delay.tsx +0 -70
  191. package/src/core/components/skeleton/__workshop__/index.ts +0 -11
  192. package/src/core/components/skeleton/__workshop__/skeleton.tsx +0 -64
  193. package/src/core/components/tab/__workshop__/example.tsx +0 -79
  194. package/src/core/components/tab/__workshop__/index.ts +0 -14
  195. package/src/core/components/toast/__workshop__/hook.tsx +0 -71
  196. package/src/core/components/toast/__workshop__/index.ts +0 -19
  197. package/src/core/components/toast/__workshop__/toast.tsx +0 -26
  198. package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
  199. package/src/core/components/tree/__workshop__/basic.tsx +0 -105
  200. package/src/core/components/tree/__workshop__/index.ts +0 -21
  201. package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
  202. package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -32
  203. package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
  204. package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -14
  205. package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
  206. package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
  207. package/src/core/primitives/avatar/__workshop__/index.ts +0 -29
  208. package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
  209. package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -63
  210. package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -70
  211. package/src/core/primitives/badge/__workshop__/index.ts +0 -19
  212. package/src/core/primitives/badge/__workshop__/props.tsx +0 -30
  213. package/src/core/primitives/badge/__workshop__/tones.tsx +0 -21
  214. package/src/core/primitives/box/__workshop__/index.ts +0 -19
  215. package/src/core/primitives/box/__workshop__/props.tsx +0 -20
  216. package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
  217. package/src/core/primitives/button/__workshop__/custom.tsx +0 -51
  218. package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
  219. package/src/core/primitives/button/__workshop__/disabled.tsx +0 -74
  220. package/src/core/primitives/button/__workshop__/index.ts +0 -59
  221. package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
  222. package/src/core/primitives/button/__workshop__/props.tsx +0 -55
  223. package/src/core/primitives/button/__workshop__/sanityUploadButton.tsx +0 -36
  224. package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
  225. package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
  226. package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
  227. package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -28
  228. package/src/core/primitives/card/__workshop__/allTones.tsx +0 -25
  229. package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
  230. package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
  231. package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
  232. package/src/core/primitives/card/__workshop__/index.ts +0 -18
  233. package/src/core/primitives/card/__workshop__/interactive.tsx +0 -30
  234. package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -80
  235. package/src/core/primitives/card/__workshop__/props.tsx +0 -53
  236. package/src/core/primitives/card/__workshop__/selected.tsx +0 -94
  237. package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
  238. package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
  239. package/src/core/primitives/checkbox/__workshop__/index.ts +0 -13
  240. package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -33
  241. package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
  242. package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -28
  243. package/src/core/primitives/code/__workshop__/index.ts +0 -19
  244. package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
  245. package/src/core/primitives/code/__workshop__/props.tsx +0 -21
  246. package/src/core/primitives/container/__workshop__/example.tsx +0 -20
  247. package/src/core/primitives/container/__workshop__/index.ts +0 -8
  248. package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
  249. package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
  250. package/src/core/primitives/flex/__workshop__/index.ts +0 -11
  251. package/src/core/primitives/grid/__workshop__/index.ts +0 -10
  252. package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
  253. package/src/core/primitives/heading/__workshop__/index.ts +0 -19
  254. package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
  255. package/src/core/primitives/heading/__workshop__/plain.tsx +0 -32
  256. package/src/core/primitives/inline/__workshop__/index.ts +0 -8
  257. package/src/core/primitives/inline/__workshop__/plain.tsx +0 -27
  258. package/src/core/primitives/kbd/__workshop__/index.ts +0 -8
  259. package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
  260. package/src/core/primitives/label/__workshop__/index.ts +0 -19
  261. package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -48
  262. package/src/core/primitives/label/__workshop__/plain.tsx +0 -24
  263. package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
  264. package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
  265. package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
  266. package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
  267. package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
  268. package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
  269. package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -89
  270. package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -97
  271. package/src/core/primitives/popover/__workshop__/index.ts +0 -49
  272. package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
  273. package/src/core/primitives/radio/__workshop__/index.ts +0 -11
  274. package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
  275. package/src/core/primitives/select/__workshop__/index.ts +0 -11
  276. package/src/core/primitives/select/__workshop__/plain.tsx +0 -27
  277. package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
  278. package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
  279. package/src/core/primitives/spinner/__workshop__/index.ts +0 -14
  280. package/src/core/primitives/stack/__workshop__/index.ts +0 -14
  281. package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
  282. package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
  283. package/src/core/primitives/switch/__workshop__/index.ts +0 -11
  284. package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
  285. package/src/core/primitives/text/__workshop__/colored.tsx +0 -30
  286. package/src/core/primitives/text/__workshop__/example.tsx +0 -39
  287. package/src/core/primitives/text/__workshop__/index.ts +0 -24
  288. package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
  289. package/src/core/primitives/textArea/__workshop__/index.ts +0 -14
  290. package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -50
  291. package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
  292. package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
  293. package/src/core/primitives/textInput/__workshop__/index.ts +0 -44
  294. package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -98
  295. package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
  296. package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
  297. package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
  298. package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
  299. package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
  300. package/src/core/primitives/tooltip/__workshop__/index.ts +0 -29
  301. package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
  302. package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -107
  303. package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
  304. package/src/core/theme/__workshop__/build/Root.tsx +0 -367
  305. package/src/core/theme/__workshop__/build/helpers.ts +0 -46
  306. package/src/core/theme/__workshop__/build/story.tsx +0 -465
  307. package/src/core/theme/__workshop__/canvas.tsx +0 -352
  308. package/src/core/theme/__workshop__/color.tsx +0 -62
  309. package/src/core/theme/__workshop__/debug/story.tsx +0 -408
  310. package/src/core/theme/__workshop__/index.ts +0 -39
  311. package/src/core/theme/__workshop__/layer.tsx +0 -78
  312. package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
  313. package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -14
  314. package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
  315. package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
  316. package/src/core/utils/elementQuery/__workshop__/index.ts +0 -14
  317. package/src/core/utils/layer/__workshop__/_debug.tsx +0 -17
  318. package/src/core/utils/layer/__workshop__/index.ts +0 -24
  319. package/src/core/utils/layer/__workshop__/multipleRoots.tsx +0 -49
  320. package/src/core/utils/layer/__workshop__/nested.tsx +0 -98
  321. package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
  322. package/src/core/utils/portal/__workshop__/index.ts +0 -14
  323. package/src/core/utils/portal/__workshop__/named.tsx +0 -63
  324. package/src/core/utils/virtualList/__workshop__/changingProps.tsx +0 -36
  325. package/src/core/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
  326. package/src/core/utils/virtualList/__workshop__/index.ts +0 -29
  327. package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
  328. package/src/core/utils/virtualList/__workshop__/windowScrolll.tsx +0 -22
@@ -6,21 +6,26 @@
6
6
  // Access the ref using the method that doesn't yield a warning.
7
7
  export function getElementRef(element: React.ReactElement) {
8
8
  // React <=18 in DEV
9
+ // oxlint-disable-next-line unbound-method
9
10
  let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get
10
11
  let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning
11
12
 
12
13
  if (mayWarn) {
14
+ // oxlint-disable-next-line no-unsafe-type-assertion
13
15
  return (element as any).ref
14
16
  }
15
17
 
16
18
  // React 19 in DEV
19
+ // oxlint-disable-next-line unbound-method
17
20
  getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get
18
21
  mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning
19
22
 
20
23
  if (mayWarn) {
24
+ // oxlint-disable-next-line no-unsafe-type-assertion
21
25
  return (element.props as {ref?: React.Ref<unknown>}).ref
22
26
  }
23
27
 
24
28
  // Not DEV
29
+ // oxlint-disable-next-line no-unsafe-type-assertion
25
30
  return (element.props as {ref?: React.Ref<unknown>}).ref || (element as any).ref
26
31
  }
@@ -1,3 +1,5 @@
1
+ import {describe, expect, it} from 'vitest'
2
+
1
3
  import {getLayerContext} from './getLayerContext'
2
4
  import {LayerContextValue} from './types'
3
5
 
@@ -1,4 +1,6 @@
1
- /** @jest-environment jsdom */
1
+ /** @vitest-environment jsdom */
2
+
3
+ import {describe, expect, it, vi} from 'vitest'
2
4
 
3
5
  import {render} from '../../../../test'
4
6
  import {LayerContext} from './layerContext'
@@ -8,7 +10,7 @@ import {useLayer} from './useLayer'
8
10
  describe('utils/layer', () => {
9
11
  describe('useLayer', () => {
10
12
  it('should get context value', async () => {
11
- const log = jest.fn()
13
+ const log = vi.fn()
12
14
 
13
15
  function Debug() {
14
16
  const rootLayer = useLayer()
@@ -29,6 +31,7 @@ describe('utils/layer', () => {
29
31
  }
30
32
 
31
33
  return (
34
+ // oxlint-disable-next-line jsx-no-constructed-context-values
32
35
  <LayerContext.Provider value={value}>
33
36
  <Debug />
34
37
  </LayerContext.Provider>
@@ -45,7 +48,7 @@ describe('utils/layer', () => {
45
48
  })
46
49
 
47
50
  it('should fail when no context value is provided', async () => {
48
- const log = jest.fn()
51
+ const log = vi.fn()
49
52
 
50
53
  function Debug() {
51
54
  try {
@@ -61,6 +64,7 @@ describe('utils/layer', () => {
61
64
  const value = undefined
62
65
 
63
66
  return (
67
+ // oxlint-disable-next-line no-unsafe-type-assertion
64
68
  <LayerContext.Provider value={value as any}>
65
69
  <Debug />
66
70
  </LayerContext.Provider>
@@ -73,7 +77,7 @@ describe('utils/layer', () => {
73
77
  })
74
78
 
75
79
  it('should fail when context value is not compatible', async () => {
76
- const log = jest.fn()
80
+ const log = vi.fn()
77
81
 
78
82
  function Debug() {
79
83
  try {
@@ -92,6 +96,7 @@ describe('utils/layer', () => {
92
96
  }
93
97
 
94
98
  return (
99
+ // oxlint-disable-next-line jsx-no-constructed-context-values, no-unsafe-type-assertion
95
100
  <LayerContext.Provider value={value as any}>
96
101
  <Debug />
97
102
  </LayerContext.Provider>
@@ -49,6 +49,7 @@ const LayerChildren = forwardRef(function LayerChildren(
49
49
  }, [isTopLayer, onActivate])
50
50
 
51
51
  const handleFocus = useCallback(
52
+ // oxlint-disable-next-line no-unnecessary-type-arguments
52
53
  (event: FocusEvent<HTMLDivElement, Element>) => {
53
54
  // Call the user-provided onFocus handler if any
54
55
  onFocus?.(event)
@@ -18,8 +18,10 @@ export function useLayer(): LayerContextValue {
18
18
  return getLayerContext(value)
19
19
  } catch (err) {
20
20
  if (err instanceof Error) {
21
+ // oxlint-disable-next-line preserve-caught-error
21
22
  throw new Error(`useLayer(): ${err.message}`)
22
23
  } else {
24
+ // oxlint-disable-next-line preserve-caught-error, restrict-template-expressions
23
25
  throw new Error(`useLayer(): ${err}`)
24
26
  }
25
27
  }
@@ -1,4 +1,6 @@
1
- /** @jest-environment jsdom */
1
+ /** @vitest-environment jsdom */
2
+
3
+ import {describe, expect, it, vi} from 'vitest'
2
4
 
3
5
  import {render} from '../../../../test'
4
6
  import {PortalContext} from './portalContext'
@@ -8,7 +10,7 @@ import {usePortal} from './usePortal'
8
10
  describe('utils/portal', () => {
9
11
  describe('usePortal', () => {
10
12
  it('should get context value', async () => {
11
- const log = jest.fn()
13
+ const log = vi.fn()
12
14
 
13
15
  function Debug() {
14
16
  const rootPortal = usePortal()
@@ -26,6 +28,7 @@ describe('utils/portal', () => {
26
28
  }
27
29
 
28
30
  return (
31
+ // oxlint-disable-next-line jsx-no-constructed-context-values
29
32
  <PortalContext.Provider value={value}>
30
33
  <Debug />
31
34
  </PortalContext.Provider>
@@ -40,7 +43,7 @@ describe('utils/portal', () => {
40
43
  })
41
44
 
42
45
  it('should fail when no context value is provided', async () => {
43
- const log = jest.fn()
46
+ const log = vi.fn()
44
47
 
45
48
  function Debug() {
46
49
  try {
@@ -56,6 +59,7 @@ describe('utils/portal', () => {
56
59
  const value = undefined
57
60
 
58
61
  return (
62
+ // oxlint-disable-next-line no-unsafe-type-assertion
59
63
  <PortalContext.Provider value={value as any}>
60
64
  <Debug />
61
65
  </PortalContext.Provider>
@@ -68,7 +72,7 @@ describe('utils/portal', () => {
68
72
  })
69
73
 
70
74
  it('should fail when context value is not compatible', async () => {
71
- const log = jest.fn()
75
+ const log = vi.fn()
72
76
 
73
77
  function Debug() {
74
78
  try {
@@ -87,6 +91,7 @@ describe('utils/portal', () => {
87
91
  }
88
92
 
89
93
  return (
94
+ // oxlint-disable-next-line jsx-no-constructed-context-values, no-unsafe-type-assertion
90
95
  <PortalContext.Provider value={value as any}>
91
96
  <Debug />
92
97
  </PortalContext.Provider>
@@ -23,6 +23,7 @@ export interface PortalProviderProps {
23
23
  * @public
24
24
  */
25
25
  export function PortalProvider(props: PortalProviderProps): React.JSX.Element {
26
+ // oxlint-disable-next-line no-deprecated
26
27
  const {boundaryElement, children, element, __unstable_elements: elementsProp} = props
27
28
  const elements = useUnique(elementsProp)
28
29
  const fallbackElement = useSyncExternalStore(
@@ -54,13 +55,13 @@ const emptySubscribe = () => () => {}
54
55
  function useUnique<ValueType extends Comparable = Comparable>(value: ValueType): ValueType {
55
56
  const valueRef = useRef<ValueType>(value)
56
57
 
57
- // eslint-disable-next-line react-hooks/refs
58
+ // oxlint-disable-next-line react-compiler
58
59
  if (!_isEqual(valueRef.current, value)) {
59
- // eslint-disable-next-line react-hooks/refs
60
+ // oxlint-disable-next-line react-compiler
60
61
  valueRef.current = value
61
62
  }
62
63
 
63
- // eslint-disable-next-line react-hooks/refs
64
+ // oxlint-disable-next-line react-compiler
64
65
  return valueRef.current
65
66
  }
66
67
 
@@ -92,6 +92,7 @@ export const VirtualList = forwardRef(function VirtualList(
92
92
 
93
93
  handleScroll()
94
94
 
95
+ // oxlint-disable-next-line consistent-return
95
96
  return () => {
96
97
  scrollEl.removeEventListener('scroll', handleScroll)
97
98
 
@@ -111,11 +112,11 @@ export const VirtualList = forwardRef(function VirtualList(
111
112
  window.addEventListener('scroll', handleScroll, {passive: true})
112
113
  window.addEventListener('resize', handleResize)
113
114
 
114
- // eslint-disable-next-line react-hooks/set-state-in-effect
115
115
  setScrollHeight(window.innerHeight)
116
116
 
117
117
  handleScroll()
118
118
 
119
+ // oxlint-disable-next-line consistent-return
119
120
  return () => {
120
121
  window.removeEventListener('scroll', handleScroll)
121
122
  window.removeEventListener('resize', handleResize)
@@ -8,11 +8,16 @@ import {
8
8
  import {ThemeColorBuilderOpts} from '../factory'
9
9
 
10
10
  export function createSelectableTones(
11
+ // oxlint-disable-next-line no-deprecated
11
12
  opts: ThemeColorBuilderOpts,
13
+ // oxlint-disable-next-line no-deprecated
12
14
  base: ThemeColorBase,
13
15
  dark: boolean,
16
+ // oxlint-disable-next-line no-deprecated
14
17
  solid: ThemeColorSolid,
18
+ // oxlint-disable-next-line no-deprecated
15
19
  muted: ThemeColorMuted,
20
+ // oxlint-disable-next-line no-deprecated
16
21
  ): ThemeColorSelectable {
17
22
  return {
18
23
  default: _createSelectableStates(opts, base, dark, solid, muted, 'default'),
@@ -24,12 +29,17 @@ export function createSelectableTones(
24
29
  }
25
30
 
26
31
  function _createSelectableStates(
32
+ // oxlint-disable-next-line no-deprecated
27
33
  opts: ThemeColorBuilderOpts,
34
+ // oxlint-disable-next-line no-deprecated
28
35
  base: ThemeColorBase,
29
36
  dark: boolean,
37
+ // oxlint-disable-next-line no-deprecated
30
38
  solid: ThemeColorSolid,
39
+ // oxlint-disable-next-line no-deprecated
31
40
  muted: ThemeColorMuted,
32
41
  tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical',
42
+ // oxlint-disable-next-line no-deprecated
33
43
  ): ThemeColorSelectableStates {
34
44
  return {
35
45
  enabled: opts.selectable({
@@ -2,10 +2,14 @@ import {ThemeColorBase, ThemeColorName, ThemeColorSolid} from '../../../../syste
2
2
  import {ThemeColorBuilderOpts} from '../factory'
3
3
 
4
4
  export function createSolidTones(
5
+ // oxlint-disable-next-line no-deprecated
5
6
  opts: ThemeColorBuilderOpts,
7
+ // oxlint-disable-next-line no-deprecated
6
8
  base: ThemeColorBase,
7
9
  dark: boolean,
10
+ // oxlint-disable-next-line no-deprecated
8
11
  name: ThemeColorName,
12
+ // oxlint-disable-next-line no-deprecated
9
13
  ): ThemeColorSolid {
10
14
  return {
11
15
  default: {
@@ -8,11 +8,16 @@ import {ThemeColorBuilderOpts} from '../factory'
8
8
  import {createButtonTones} from './createButtonTones'
9
9
 
10
10
  export function createButtonModes(
11
+ // oxlint-disable-next-line no-deprecated
11
12
  opts: ThemeColorBuilderOpts,
13
+ // oxlint-disable-next-line no-deprecated
12
14
  base: ThemeColorBase,
13
15
  dark: boolean,
16
+ // oxlint-disable-next-line no-deprecated
14
17
  solid: ThemeColorSolid,
18
+ // oxlint-disable-next-line no-deprecated
15
19
  muted: ThemeColorMuted,
20
+ // oxlint-disable-next-line no-deprecated
16
21
  ): ThemeColorButton {
17
22
  return {
18
23
  default: createButtonTones(opts, base, dark, solid, muted, 'default'),
@@ -8,12 +8,17 @@ import {
8
8
  import {ThemeColorBuilderOpts} from '../factory'
9
9
 
10
10
  export function createButtonTones(
11
+ // oxlint-disable-next-line no-deprecated
11
12
  opts: ThemeColorBuilderOpts,
13
+ // oxlint-disable-next-line no-deprecated
12
14
  base: ThemeColorBase,
13
15
  dark: boolean,
16
+ // oxlint-disable-next-line no-deprecated
14
17
  solid: ThemeColorSolid,
18
+ // oxlint-disable-next-line no-deprecated
15
19
  muted: ThemeColorMuted,
16
20
  mode: ThemeColorButtonModeKey,
21
+ // oxlint-disable-next-line no-deprecated
17
22
  ): ThemeColorButtonTones {
18
23
  return {
19
24
  default: opts.button({
@@ -8,12 +8,18 @@ import {
8
8
  import {ThemeColorBuilderOpts} from '../factory'
9
9
 
10
10
  export function createCardStates(
11
+ // oxlint-disable-next-line no-deprecated
11
12
  opts: ThemeColorBuilderOpts,
13
+ // oxlint-disable-next-line no-deprecated
12
14
  base: ThemeColorBase,
13
15
  dark: boolean,
16
+ // oxlint-disable-next-line no-deprecated
14
17
  name: ThemeColorName,
18
+ // oxlint-disable-next-line no-deprecated
15
19
  solid: ThemeColorSolid,
20
+ // oxlint-disable-next-line no-deprecated
16
21
  muted: ThemeColorMuted,
22
+ // oxlint-disable-next-line no-deprecated
17
23
  ): ThemeColorCard {
18
24
  return {
19
25
  enabled: opts.card({
@@ -1,10 +1,13 @@
1
- /** @jest-environment jsdom */
1
+ /** @vitest-environment jsdom */
2
+
3
+ import {describe, expect, it} from 'vitest'
2
4
 
3
5
  import {createColorTheme} from './factory'
4
6
 
5
7
  describe('color', () => {
6
8
  describe('createColorTheme', () => {
7
9
  it('should generate base (scheme=light, name=default)', () => {
10
+ // oxlint-disable-next-line no-deprecated
8
11
  const theme = createColorTheme()
9
12
  const scheme = 'light'
10
13
  const name = 'default'
@@ -29,6 +32,7 @@ describe('color', () => {
29
32
  })
30
33
 
31
34
  it('should generate muted states (scheme=light, name=default)', () => {
35
+ // oxlint-disable-next-line no-deprecated
32
36
  const theme = createColorTheme()
33
37
  const scheme = 'light'
34
38
  const name = 'default'
@@ -105,6 +105,7 @@ const tones = {
105
105
  },
106
106
  }
107
107
 
108
+ // oxlint-disable-next-line no-deprecated
108
109
  export const defaultOpts: ThemeColorBuilderOpts = {
109
110
  base: ({dark, name}) => {
110
111
  if (name === 'default') {
@@ -30,53 +30,81 @@ import {createSpot} from './spot/createSpot'
30
30
  * @deprecated Use `buildColorTheme` instead.
31
31
  */
32
32
  export interface ThemeColorBuilderOpts {
33
+ // oxlint-disable-next-line no-deprecated
33
34
  base: (opts: {dark: boolean; name: ThemeColorName}) => ThemeColorBase
34
35
  solid: (opts: {
36
+ // oxlint-disable-next-line no-deprecated
35
37
  base: ThemeColorBase
36
38
  dark: boolean
39
+ // oxlint-disable-next-line no-deprecated
37
40
  tone: ThemeColorName
41
+ // oxlint-disable-next-line no-deprecated
38
42
  name: ThemeColorName
39
43
  state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'
44
+ // oxlint-disable-next-line no-deprecated
40
45
  }) => ThemeColorGenericState
41
46
  muted: (opts: {
47
+ // oxlint-disable-next-line no-deprecated
42
48
  base: ThemeColorBase
43
49
  dark: boolean
50
+ // oxlint-disable-next-line no-deprecated
44
51
  tone: ThemeColorToneKey
52
+ // oxlint-disable-next-line no-deprecated
45
53
  name: ThemeColorName
46
54
  state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'
55
+ // oxlint-disable-next-line no-deprecated
47
56
  }) => ThemeColorGenericState
48
57
  card: (opts: {
58
+ // oxlint-disable-next-line no-deprecated
49
59
  base: ThemeColorBase
50
60
  dark: boolean
61
+ // oxlint-disable-next-line no-deprecated
51
62
  muted: ThemeColorMuted
63
+ // oxlint-disable-next-line no-deprecated
52
64
  name: ThemeColorName
65
+ // oxlint-disable-next-line no-deprecated
53
66
  solid: ThemeColorSolid
54
67
  state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'
68
+ // oxlint-disable-next-line no-deprecated
55
69
  }) => ThemeColorGenericState
56
70
  button: (opts: {
57
71
  dark: boolean
58
72
  mode: ThemeColorButtonModeKey
73
+ // oxlint-disable-next-line no-deprecated
59
74
  base: ThemeColorBase
75
+ // oxlint-disable-next-line no-deprecated
60
76
  solid: ThemeColorSolidTone
77
+ // oxlint-disable-next-line no-deprecated
61
78
  muted: ThemeColorMutedTone
79
+ // oxlint-disable-next-line no-deprecated
62
80
  }) => ThemeColorButtonStates
63
81
  input: (opts: {
82
+ // oxlint-disable-next-line no-deprecated
64
83
  base: ThemeColorBase
84
+ // oxlint-disable-next-line no-deprecated
65
85
  solid: ThemeColorSolidTone
86
+ // oxlint-disable-next-line no-deprecated
66
87
  muted: ThemeColorMutedTone
67
88
  dark: boolean
68
89
  mode: 'default' | 'invalid'
69
90
  state: 'enabled' | 'disabled' | 'hovered' | 'readOnly'
91
+ // oxlint-disable-next-line no-deprecated
70
92
  }) => ThemeColorInputState
71
93
  selectable: (opts: {
72
94
  dark: boolean
95
+ // oxlint-disable-next-line no-deprecated
73
96
  base: ThemeColorBase
97
+ // oxlint-disable-next-line no-deprecated
74
98
  solid: ThemeColorSolid
99
+ // oxlint-disable-next-line no-deprecated
75
100
  muted: ThemeColorMuted
76
101
  state: 'enabled' | 'disabled' | 'hovered' | 'pressed' | 'selected'
77
102
  tone: 'default' | 'primary' | 'positive' | 'caution' | 'critical'
103
+ // oxlint-disable-next-line no-deprecated
78
104
  }) => ThemeColorGenericState
105
+ // oxlint-disable-next-line no-deprecated
79
106
  syntax: (opts: {base: ThemeColorBase; dark: boolean}) => ThemeColorSyntax
107
+ // oxlint-disable-next-line no-deprecated
80
108
  spot: (opts: {base: ThemeColorBase; dark: boolean; key: ThemeColorSpotKey}) => string
81
109
  }
82
110
 
@@ -84,6 +112,7 @@ export interface ThemeColorBuilderOpts {
84
112
  * @public
85
113
  * @deprecated Use `ThemeConfig` instead.
86
114
  */
115
+ // oxlint-disable-next-line no-deprecated
87
116
  export type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>
88
117
 
89
118
  /**
@@ -91,8 +120,11 @@ export type PartialThemeColorBuilderOpts = Partial<ThemeColorBuilderOpts>
91
120
  * @deprecated Use `buildColorTheme` instead.
92
121
  */
93
122
  export function createColorTheme(
123
+ // oxlint-disable-next-line no-deprecated
94
124
  partialOpts: PartialThemeColorBuilderOpts = {},
125
+ // oxlint-disable-next-line no-deprecated
95
126
  ): ThemeColorSchemes {
127
+ // oxlint-disable-next-line no-deprecated
96
128
  const builders: ThemeColorBuilderOpts = {...defaultOpts, ...partialOpts}
97
129
 
98
130
  return {
@@ -104,6 +136,7 @@ export function createColorTheme(
104
136
  /**
105
137
  * @internal
106
138
  */
139
+ // oxlint-disable-next-line no-deprecated
107
140
  function _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeColorScheme {
108
141
  return {
109
142
  default: _createColor(opts, dark, 'default'),
@@ -119,9 +152,12 @@ function _createColorScheme(opts: ThemeColorBuilderOpts, dark: boolean): ThemeCo
119
152
  * @internal
120
153
  */
121
154
  function _createColor(
155
+ // oxlint-disable-next-line no-deprecated
122
156
  opts: ThemeColorBuilderOpts,
123
157
  dark: boolean,
158
+ // oxlint-disable-next-line no-deprecated
124
159
  name: ThemeColorName,
160
+ // oxlint-disable-next-line no-deprecated
125
161
  ): ThemeColor {
126
162
  const base = opts.base({dark, name})
127
163
  const solid = createSolidTones(opts, base, dark, name)
@@ -2,11 +2,16 @@ import {ThemeColorBase, ThemeColorInput, ThemeColorMuted, ThemeColorSolid} from
2
2
  import {ThemeColorBuilderOpts} from '../factory'
3
3
 
4
4
  export function createInputModes(
5
+ // oxlint-disable-next-line no-deprecated
5
6
  opts: ThemeColorBuilderOpts,
7
+ // oxlint-disable-next-line no-deprecated
6
8
  base: ThemeColorBase,
7
9
  dark: boolean,
10
+ // oxlint-disable-next-line no-deprecated
8
11
  solid: ThemeColorSolid,
12
+ // oxlint-disable-next-line no-deprecated
9
13
  muted: ThemeColorMuted,
14
+ // oxlint-disable-next-line no-deprecated
10
15
  ): ThemeColorInput {
11
16
  return {
12
17
  default: {
@@ -2,10 +2,14 @@ import {ThemeColorBase, ThemeColorMuted, ThemeColorName} from '../../../../syste
2
2
  import {ThemeColorBuilderOpts} from '../factory'
3
3
 
4
4
  export function createMutedTones(
5
+ // oxlint-disable-next-line no-deprecated
5
6
  opts: ThemeColorBuilderOpts,
7
+ // oxlint-disable-next-line no-deprecated
6
8
  base: ThemeColorBase,
7
9
  dark: boolean,
10
+ // oxlint-disable-next-line no-deprecated
8
11
  name: ThemeColorName,
12
+ // oxlint-disable-next-line no-deprecated
9
13
  ): ThemeColorMuted {
10
14
  return {
11
15
  default: {
@@ -2,9 +2,12 @@ import {ThemeColorBase, ThemeColorSpot} from '../../../../system'
2
2
  import {ThemeColorBuilderOpts} from '../factory'
3
3
 
4
4
  export function createSpot(
5
+ // oxlint-disable-next-line no-deprecated
5
6
  opts: ThemeColorBuilderOpts,
7
+ // oxlint-disable-next-line no-deprecated
6
8
  base: ThemeColorBase,
7
9
  dark: boolean,
10
+ // oxlint-disable-next-line no-deprecated
8
11
  ): ThemeColorSpot {
9
12
  return {
10
13
  gray: opts.spot({base, dark, key: 'gray'}),
@@ -1,3 +1,5 @@
1
+ import {expect, test} from 'vitest'
2
+
1
3
  import {ThemeColorTokens} from '../config'
2
4
  import {buildColorTheme} from './buildColorTheme'
3
5
 
@@ -47,6 +47,7 @@ function buildColorScheme(
47
47
  ): ThemeColorScheme_v2 {
48
48
  const {scheme} = options
49
49
 
50
+ // oxlint-disable-next-line no-unsafe-type-assertion
50
51
  const colorScheme = {} as ThemeColorScheme_v2
51
52
 
52
53
  for (const tone of THEME_COLOR_CARD_TONES) {
@@ -167,6 +168,7 @@ function buildBadgeColorTheme(
167
168
  ): ThemeColorBadge_v2 {
168
169
  const {scheme} = options
169
170
 
171
+ // oxlint-disable-next-line no-unsafe-type-assertion
170
172
  const colorBadge = {} as ThemeColorBadge_v2
171
173
 
172
174
  for (const tone of THEME_COLOR_STATE_TONES) {
@@ -206,6 +208,7 @@ function buildButtonColorTheme(
206
208
  modes[mode] = buildButtonTonesColorTheme({cardTone, scheme, mode}, config)
207
209
  }
208
210
 
211
+ // oxlint-disable-next-line no-unsafe-type-assertion
209
212
  return modes as ThemeColorButton_v2
210
213
  }
211
214
 
@@ -225,6 +228,7 @@ function buildButtonTonesColorTheme(
225
228
  tones[tone] = buildButtonStatesColorTheme({cardTone, mode, scheme, tone}, config)
226
229
  }
227
230
 
231
+ // oxlint-disable-next-line no-unsafe-type-assertion
228
232
  return tones as ThemeColorButtonMode_v2
229
233
  }
230
234
 
@@ -245,6 +249,7 @@ function buildButtonStatesColorTheme(
245
249
  states[state] = buildButtonStateColorTheme({cardTone, mode, tone, scheme, state}, config)
246
250
  }
247
251
 
252
+ // oxlint-disable-next-line no-unsafe-type-assertion
248
253
  return states as ThemeColorButtonTone_v2
249
254
  }
250
255
 
@@ -372,6 +377,7 @@ function buildSelectableColorTheme(
372
377
  tones[tone] = buildSelectableStatesColorTheme({cardTone, scheme, tone}, config)
373
378
  }
374
379
 
380
+ // oxlint-disable-next-line no-unsafe-type-assertion
375
381
  return tones as ThemeColorButtonMode_v2
376
382
  }
377
383
 
@@ -391,6 +397,7 @@ function buildSelectableStatesColorTheme(
391
397
  states[state] = buildSelectableStateColorTheme({cardTone, tone, scheme, state}, config)
392
398
  }
393
399
 
400
+ // oxlint-disable-next-line no-unsafe-type-assertion
394
401
  return states as ThemeColorButtonTone_v2
395
402
  }
396
403
 
@@ -1,3 +1,5 @@
1
+ import {expect, test} from 'vitest'
2
+
1
3
  import {defaultColorPalette} from '../defaults/colorPalette'
2
4
  import {buildTheme} from './buildTheme'
3
5
 
@@ -1,4 +1,6 @@
1
- /** @jest-environment jsdom */
1
+ /** @vitest-environment jsdom */
2
+
3
+ import {describe, expect, it} from 'vitest'
2
4
 
3
5
  import {multiply, screen} from './blend'
4
6
  import {hexToRgb, rgbToHex} from './convert'
@@ -1,12 +1,15 @@
1
1
  import {isRecord} from './lib/isRecord'
2
2
 
3
3
  export function merge<T extends Record<string, any>>(...records: (T | undefined)[]): T {
4
+ // oxlint-disable-next-line no-unsafe-type-assertion
4
5
  const _records = records.filter(Boolean) as T[]
5
6
 
6
7
  if (_records.length === 0) {
8
+ // oxlint-disable-next-line no-unsafe-type-assertion
7
9
  return {} as T
8
10
  }
9
11
 
12
+ // oxlint-disable-next-line no-unsafe-type-assertion
10
13
  return _records.reduce(_merge, {} as T)
11
14
  }
12
15
 
@@ -16,8 +19,10 @@ function _merge<T extends Record<string, any>>(acc: T, source: T): T {
16
19
  const nextValue = source[key]
17
20
 
18
21
  if (isRecord(prevValue) && isRecord(nextValue)) {
22
+ // oxlint-disable-next-line no-unsafe-type-assertion
19
23
  ;(acc as any)[key] = merge(prevValue, nextValue)
20
24
  } else {
25
+ // oxlint-disable-next-line no-unsafe-type-assertion
21
26
  ;(acc as any)[key] = nextValue
22
27
  }
23
28
  }
@@ -1,3 +1,5 @@
1
+ import {expect, test} from 'vitest'
2
+
1
3
  import {mixThemeColor} from './mixThemeColor'
2
4
 
3
5
  test('mix 1', () => {