@wordpress/components 40.0.0 → 40.1.0

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 (472) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/CONTRIBUTING.md +2 -0
  3. package/build/border-box-control/border-box-control/component.cjs +37 -5
  4. package/build/border-box-control/border-box-control/component.cjs.map +3 -3
  5. package/build/border-box-control/border-box-control/hook.cjs +24 -3
  6. package/build/border-box-control/border-box-control/hook.cjs.map +3 -3
  7. package/build/border-box-control/border-box-control-linked-button/hook.cjs +2 -2
  8. package/build/border-box-control/border-box-control-linked-button/hook.cjs.map +2 -2
  9. package/build/border-box-control/border-box-control-split-controls/hook.cjs +2 -2
  10. package/build/border-box-control/border-box-control-split-controls/hook.cjs.map +2 -2
  11. package/build/border-box-control/border-box-control-visualizer/hook.cjs +2 -2
  12. package/build/border-box-control/border-box-control-visualizer/hook.cjs.map +2 -2
  13. package/build/color-palette/index.cjs +1 -1
  14. package/build/color-palette/index.cjs.map +2 -2
  15. package/build/composite/context.cjs +9 -2
  16. package/build/composite/context.cjs.map +2 -2
  17. package/build/composite/group-label.cjs +4 -0
  18. package/build/composite/group-label.cjs.map +2 -2
  19. package/build/composite/group.cjs +10 -2
  20. package/build/composite/group.cjs.map +2 -2
  21. package/build/composite/item.cjs +4 -0
  22. package/build/composite/item.cjs.map +3 -3
  23. package/build/context/context-system-provider.cjs +2 -5
  24. package/build/context/context-system-provider.cjs.map +3 -3
  25. package/build/context/use-context-system.cjs +7 -2
  26. package/build/context/use-context-system.cjs.map +2 -2
  27. package/build/disabled/index.cjs +1 -1
  28. package/build/disabled/index.cjs.map +2 -2
  29. package/build/draggable/index.cjs.map +1 -1
  30. package/build/form-token-field/index.cjs +1 -1
  31. package/build/form-token-field/index.cjs.map +2 -2
  32. package/build/icon/index.cjs +30 -12
  33. package/build/icon/index.cjs.map +2 -2
  34. package/build/input-control/styles/input-control-styles.cjs +42 -27
  35. package/build/input-control/styles/input-control-styles.cjs.map +2 -2
  36. package/build/item-group/context.cjs +1 -0
  37. package/build/item-group/context.cjs.map +2 -2
  38. package/build/item-group/item/component.cjs +12 -0
  39. package/build/item-group/item/component.cjs.map +3 -3
  40. package/build/item-group/item/hook.cjs +7 -6
  41. package/build/item-group/item/hook.cjs.map +2 -2
  42. package/build/item-group/item-group/component.cjs +1 -0
  43. package/build/item-group/item-group/component.cjs.map +2 -2
  44. package/build/item-group/item-group/hook.cjs +1 -1
  45. package/build/item-group/item-group/hook.cjs.map +2 -2
  46. package/build/progress-bar/index.cjs +1 -1
  47. package/build/progress-bar/index.cjs.map +2 -2
  48. package/build/resizable-box/index.cjs.map +1 -1
  49. package/build/snackbar/index.cjs +8 -5
  50. package/build/snackbar/index.cjs.map +2 -2
  51. package/build/textarea-control/index.cjs +1 -1
  52. package/build/textarea-control/index.cjs.map +2 -2
  53. package/build/toggle-group-control/context.cjs +8 -2
  54. package/build/toggle-group-control/context.cjs.map +2 -2
  55. package/build/toggle-group-control/toggle-group-control/as-button-group.cjs +5 -2
  56. package/build/toggle-group-control/toggle-group-control/as-button-group.cjs.map +2 -2
  57. package/build/toggle-group-control/toggle-group-control/as-radio-group.cjs +5 -2
  58. package/build/toggle-group-control/toggle-group-control/as-radio-group.cjs.map +2 -2
  59. package/build/toggle-group-control/toggle-group-control/component.cjs +3 -1
  60. package/build/toggle-group-control/toggle-group-control/component.cjs.map +2 -2
  61. package/build/toggle-group-control/toggle-group-control-option/component.cjs +2 -0
  62. package/build/toggle-group-control/toggle-group-control-option/component.cjs.map +2 -2
  63. package/build/toggle-group-control/toggle-group-control-option-base/component.cjs +2 -1
  64. package/build/toggle-group-control/toggle-group-control-option-base/component.cjs.map +2 -2
  65. package/build/toggle-group-control/toggle-group-control-option-icon/component.cjs +2 -0
  66. package/build/toggle-group-control/toggle-group-control-option-icon/component.cjs.map +2 -2
  67. package/build/tools-panel/tools-panel/hook.cjs +102 -106
  68. package/build/tools-panel/tools-panel/hook.cjs.map +2 -2
  69. package/build/tools-panel/tools-panel-item/hook.cjs +33 -33
  70. package/build/tools-panel/tools-panel-item/hook.cjs.map +2 -2
  71. package/build/tree-grid/cell.cjs +4 -0
  72. package/build/tree-grid/cell.cjs.map +2 -2
  73. package/build/tree-grid/roving-tab-index-item.cjs +5 -1
  74. package/build/tree-grid/roving-tab-index-item.cjs.map +2 -2
  75. package/build/tree-grid/row.cjs +6 -1
  76. package/build/tree-grid/row.cjs.map +2 -2
  77. package/build/tree-grid/use-validate-tree-grid-structure.cjs +81 -0
  78. package/build/tree-grid/use-validate-tree-grid-structure.cjs.map +7 -0
  79. package/build/utils/colors-values.cjs +3 -2
  80. package/build/utils/colors-values.cjs.map +2 -2
  81. package/build-module/border-box-control/border-box-control/component.mjs +38 -6
  82. package/build-module/border-box-control/border-box-control/component.mjs.map +2 -2
  83. package/build-module/border-box-control/border-box-control/hook.mjs +14 -3
  84. package/build-module/border-box-control/border-box-control/hook.mjs.map +2 -2
  85. package/build-module/border-box-control/border-box-control-linked-button/hook.mjs +2 -2
  86. package/build-module/border-box-control/border-box-control-linked-button/hook.mjs.map +2 -2
  87. package/build-module/border-box-control/border-box-control-split-controls/hook.mjs +2 -2
  88. package/build-module/border-box-control/border-box-control-split-controls/hook.mjs.map +2 -2
  89. package/build-module/border-box-control/border-box-control-visualizer/hook.mjs +2 -2
  90. package/build-module/border-box-control/border-box-control-visualizer/hook.mjs.map +2 -2
  91. package/build-module/color-palette/index.mjs +1 -1
  92. package/build-module/color-palette/index.mjs.map +2 -2
  93. package/build-module/composite/context.mjs +6 -1
  94. package/build-module/composite/context.mjs.map +2 -2
  95. package/build-module/composite/group-label.mjs +5 -1
  96. package/build-module/composite/group-label.mjs.map +2 -2
  97. package/build-module/composite/group.mjs +11 -3
  98. package/build-module/composite/group.mjs.map +2 -2
  99. package/build-module/composite/item.mjs +4 -0
  100. package/build-module/composite/item.mjs.map +2 -2
  101. package/build-module/context/context-system-provider.mjs +2 -5
  102. package/build-module/context/context-system-provider.mjs.map +3 -3
  103. package/build-module/context/use-context-system.mjs +7 -2
  104. package/build-module/context/use-context-system.mjs.map +2 -2
  105. package/build-module/disabled/index.mjs +1 -1
  106. package/build-module/disabled/index.mjs.map +2 -2
  107. package/build-module/draggable/index.mjs.map +1 -1
  108. package/build-module/form-token-field/index.mjs +1 -1
  109. package/build-module/form-token-field/index.mjs.map +2 -2
  110. package/build-module/icon/index.mjs +30 -12
  111. package/build-module/icon/index.mjs.map +2 -2
  112. package/build-module/input-control/styles/input-control-styles.mjs +42 -27
  113. package/build-module/input-control/styles/input-control-styles.mjs.map +2 -2
  114. package/build-module/item-group/context.mjs +1 -0
  115. package/build-module/item-group/context.mjs.map +2 -2
  116. package/build-module/item-group/item/component.mjs +12 -0
  117. package/build-module/item-group/item/component.mjs.map +2 -2
  118. package/build-module/item-group/item/hook.mjs +7 -6
  119. package/build-module/item-group/item/hook.mjs.map +2 -2
  120. package/build-module/item-group/item-group/component.mjs +1 -0
  121. package/build-module/item-group/item-group/component.mjs.map +2 -2
  122. package/build-module/item-group/item-group/hook.mjs +1 -1
  123. package/build-module/item-group/item-group/hook.mjs.map +2 -2
  124. package/build-module/progress-bar/index.mjs +1 -1
  125. package/build-module/progress-bar/index.mjs.map +2 -2
  126. package/build-module/resizable-box/index.mjs.map +1 -1
  127. package/build-module/snackbar/index.mjs +8 -5
  128. package/build-module/snackbar/index.mjs.map +2 -2
  129. package/build-module/textarea-control/index.mjs +1 -1
  130. package/build-module/textarea-control/index.mjs.map +2 -2
  131. package/build-module/toggle-group-control/context.mjs +8 -2
  132. package/build-module/toggle-group-control/context.mjs.map +2 -2
  133. package/build-module/toggle-group-control/toggle-group-control/as-button-group.mjs +5 -2
  134. package/build-module/toggle-group-control/toggle-group-control/as-button-group.mjs.map +2 -2
  135. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.mjs +5 -2
  136. package/build-module/toggle-group-control/toggle-group-control/as-radio-group.mjs.map +2 -2
  137. package/build-module/toggle-group-control/toggle-group-control/component.mjs +3 -1
  138. package/build-module/toggle-group-control/toggle-group-control/component.mjs.map +2 -2
  139. package/build-module/toggle-group-control/toggle-group-control-option/component.mjs +2 -0
  140. package/build-module/toggle-group-control/toggle-group-control-option/component.mjs.map +2 -2
  141. package/build-module/toggle-group-control/toggle-group-control-option-base/component.mjs +2 -1
  142. package/build-module/toggle-group-control/toggle-group-control-option-base/component.mjs.map +2 -2
  143. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.mjs +2 -0
  144. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.mjs.map +2 -2
  145. package/build-module/tools-panel/tools-panel/hook.mjs +103 -107
  146. package/build-module/tools-panel/tools-panel/hook.mjs.map +2 -2
  147. package/build-module/tools-panel/tools-panel-item/hook.mjs +35 -35
  148. package/build-module/tools-panel/tools-panel-item/hook.mjs.map +2 -2
  149. package/build-module/tree-grid/cell.mjs +5 -1
  150. package/build-module/tree-grid/cell.mjs.map +2 -2
  151. package/build-module/tree-grid/roving-tab-index-item.mjs +5 -1
  152. package/build-module/tree-grid/roving-tab-index-item.mjs.map +2 -2
  153. package/build-module/tree-grid/row.mjs +7 -2
  154. package/build-module/tree-grid/row.mjs.map +2 -2
  155. package/build-module/tree-grid/use-validate-tree-grid-structure.mjs +56 -0
  156. package/build-module/tree-grid/use-validate-tree-grid-structure.mjs.map +7 -0
  157. package/build-module/utils/colors-values.mjs +3 -2
  158. package/build-module/utils/colors-values.mjs.map +2 -2
  159. package/build-style/style-rtl.css +27 -85
  160. package/build-style/style.css +27 -85
  161. package/build-types/border-box-control/border-box-control/component.d.ts +4 -0
  162. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  163. package/build-types/border-box-control/border-box-control/hook.d.ts +4 -2
  164. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  165. package/build-types/border-box-control/types.d.ts +6 -2
  166. package/build-types/border-box-control/types.d.ts.map +1 -1
  167. package/build-types/composite/context.d.ts +2 -0
  168. package/build-types/composite/context.d.ts.map +1 -1
  169. package/build-types/composite/group-label.d.ts.map +1 -1
  170. package/build-types/composite/group.d.ts.map +1 -1
  171. package/build-types/composite/item.d.ts.map +1 -1
  172. package/build-types/composite/types.d.ts +1 -1
  173. package/build-types/context/context-system-provider.d.ts +8 -6
  174. package/build-types/context/context-system-provider.d.ts.map +1 -1
  175. package/build-types/context/use-context-system.d.ts.map +1 -1
  176. package/build-types/icon/index.d.ts.map +1 -1
  177. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  178. package/build-types/item-group/context.d.ts.map +1 -1
  179. package/build-types/item-group/item/component.d.ts.map +1 -1
  180. package/build-types/item-group/item/hook.d.ts +1 -1
  181. package/build-types/item-group/item/hook.d.ts.map +1 -1
  182. package/build-types/item-group/item-group/component.d.ts.map +1 -1
  183. package/build-types/item-group/types.d.ts +4 -0
  184. package/build-types/item-group/types.d.ts.map +1 -1
  185. package/build-types/popover/types.d.ts +6 -2
  186. package/build-types/popover/types.d.ts.map +1 -1
  187. package/build-types/snackbar/index.d.ts.map +1 -1
  188. package/build-types/toggle-group-control/context.d.ts +2 -2
  189. package/build-types/toggle-group-control/context.d.ts.map +1 -1
  190. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +1 -1
  191. package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts.map +1 -1
  192. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +1 -1
  193. package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts.map +1 -1
  194. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  195. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +2 -2
  196. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  197. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  198. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +2 -2
  199. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -1
  200. package/build-types/toggle-group-control/types.d.ts +12 -3
  201. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  202. package/build-types/tools-panel/tools-panel/hook.d.ts +4 -4
  203. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  204. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  205. package/build-types/tools-panel/types.d.ts +52 -9
  206. package/build-types/tools-panel/types.d.ts.map +1 -1
  207. package/build-types/tree-grid/cell.d.ts.map +1 -1
  208. package/build-types/tree-grid/roving-tab-index-item.d.ts.map +1 -1
  209. package/build-types/tree-grid/row.d.ts.map +1 -1
  210. package/build-types/tree-grid/use-validate-tree-grid-structure.d.ts +2 -0
  211. package/build-types/tree-grid/use-validate-tree-grid-structure.d.ts.map +1 -0
  212. package/build-types/utils/colors-values.d.ts.map +1 -1
  213. package/emotion-to-scss-modules.md +149 -0
  214. package/package.json +28 -27
  215. package/src/alignment-matrix-control/test/{index.tsx → index.jsdom.test.tsx} +5 -4
  216. package/src/angle-picker-control/style.module.scss +1 -1
  217. package/src/autocomplete/test/get-autocomplete-match.ts +2 -1
  218. package/src/autocomplete/test/{index.tsx → index.jsdom.test.tsx} +2 -1
  219. package/src/badge/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  220. package/src/base-control/stories/index.story.tsx +2 -2
  221. package/src/base-control/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  222. package/src/border-box-control/border-box-control/README.md +5 -3
  223. package/src/border-box-control/border-box-control/component.tsx +83 -15
  224. package/src/border-box-control/border-box-control/hook.ts +19 -1
  225. package/src/border-box-control/stories/index.story.tsx +10 -0
  226. package/src/border-box-control/style.module.scss +34 -3
  227. package/src/border-box-control/test/{index.tsx → index.jsdom.test.tsx} +138 -2
  228. package/src/border-box-control/test/utils.ts +11 -0
  229. package/src/border-box-control/types.ts +6 -2
  230. package/src/border-control/test/{index.js → index.jsdom.test.tsx} +44 -24
  231. package/src/box-control/test/{index.tsx → index.jsdom.test.tsx} +6 -3
  232. package/src/button/style.scss +0 -6
  233. package/src/button/test/{index.tsx → index.jsdom.test.tsx} +6 -2
  234. package/src/checkbox-control/stories/index.story.tsx +1 -1
  235. package/src/checkbox-control/style.scss +2 -2
  236. package/src/checkbox-control/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +10 -7
  237. package/src/checkbox-control/test/{index.tsx → index.jsdom.test.tsx} +4 -1
  238. package/src/circular-option-picker/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  239. package/src/color-indicator/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +2 -2
  240. package/src/color-indicator/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  241. package/src/color-palette/index.tsx +1 -1
  242. package/src/color-palette/test/{index.tsx → index.jsdom.test.tsx} +25 -22
  243. package/src/color-palette/test/{utils.ts → utils.jsdom.test.ts} +1 -0
  244. package/src/combobox-control/test/{index.tsx → index.jsdom.test.tsx} +12 -7
  245. package/src/composite/README.md +1 -1
  246. package/src/composite/context.tsx +6 -0
  247. package/src/composite/group-label.tsx +8 -1
  248. package/src/composite/group.tsx +9 -2
  249. package/src/composite/item.tsx +6 -0
  250. package/src/composite/legacy/test/{index.tsx → index.jsdom.test.tsx} +6 -13
  251. package/src/composite/test/{index.tsx → index.jsdom.test.tsx} +60 -17
  252. package/src/composite/types.ts +1 -1
  253. package/src/confirm-dialog/test/{index.tsx → index.jsdom.test.tsx} +16 -14
  254. package/src/content-editable-control/test/{index.tsx → index.jsdom.test.tsx} +4 -3
  255. package/src/context/{context-system-provider.js → context-system-provider.tsx} +19 -5
  256. package/src/context/stories/{ComponentsProvider.stories.jsx → ComponentsProvider.stories.tsx} +2 -2
  257. package/src/context/test/context-connect.tsx +1 -2
  258. package/src/context/test/{context-system-provider.js → context-system-provider.jsdom.test.tsx} +93 -51
  259. package/src/context/test/wordpress-component.tsx +1 -2
  260. package/src/context/use-context-system.js +13 -4
  261. package/src/custom-gradient-picker/gradient-bar/test/{utils.ts → utils.jsdom.test.ts} +6 -5
  262. package/src/custom-gradient-picker/test/serializer.ts +1 -0
  263. package/src/custom-select-control-v2/test/{index.tsx → index.jsdom.test.tsx} +4 -1
  264. package/src/date-time/date-picker/test/{index.tsx → index.jsdom.test.tsx} +6 -3
  265. package/src/date-time/date-picker/test/{use-lilius.ts → use-lilius.jsdom.test.ts} +1 -0
  266. package/src/date-time/date-time/test/{index.tsx → index.jsdom.test.tsx} +20 -11
  267. package/src/date-time/test/utils.test.ts +9 -0
  268. package/src/date-time/time-picker/test/{index.tsx → index.jsdom.test.tsx} +37 -27
  269. package/src/date-time/time-picker/time-input/test/{index.tsx → index.jsdom.test.tsx} +8 -3
  270. package/src/disabled/index.tsx +7 -7
  271. package/src/disabled/test/{index.tsx → index.jsdom.test.tsx} +26 -0
  272. package/src/draggable/index.tsx +1 -1
  273. package/src/draggable/style.module.scss +1 -1
  274. package/src/dropdown/style.module.scss +2 -2
  275. package/src/dropdown/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  276. package/src/dropdown-menu/test/{index.tsx → index.jsdom.test.tsx} +5 -4
  277. package/src/duotone-picker/test/{custom-duotone-bar.tsx → custom-duotone-bar.jsdom.test.tsx} +11 -8
  278. package/src/duotone-picker/test/{index.tsx → index.jsdom.test.tsx} +11 -10
  279. package/src/external-link/test/{index.tsx → index.jsdom.test.tsx} +5 -4
  280. package/src/focal-point-picker/test/{index.tsx → index.jsdom.test.tsx} +12 -9
  281. package/src/focal-point-picker/test/{media.tsx → media.jsdom.test.tsx} +1 -0
  282. package/src/font-size-picker/test/{font-size-picker-select.tsx → font-size-picker-select.jsdom.test.tsx} +19 -16
  283. package/src/font-size-picker/test/{font-size-picker-toggle-group.tsx → font-size-picker-toggle-group.jsdom.test.tsx} +13 -11
  284. package/src/font-size-picker/test/{index.tsx → index.jsdom.test.tsx} +19 -14
  285. package/src/font-size-picker/test/utils.ts +1 -0
  286. package/src/form-toggle/style.scss +1 -1
  287. package/src/form-toggle/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +4 -4
  288. package/src/form-toggle/test/{index.tsx → index.jsdom.test.tsx} +2 -1
  289. package/src/form-token-field/index.tsx +1 -1
  290. package/src/form-token-field/test/{index.tsx → index.jsdom.test.tsx} +86 -44
  291. package/src/gradient-picker/test/{index.tsx → index.jsdom.test.tsx} +12 -9
  292. package/src/guide/test/{index.tsx → index.jsdom.test.tsx} +4 -2
  293. package/src/h-stack/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +4 -4
  294. package/src/h-stack/test/{index.tsx → index.jsdom.test.tsx} +3 -0
  295. package/src/higher-order/with-fallback-styles/test/{index.tsx → index.jsdom.test.tsx} +3 -2
  296. package/src/higher-order/with-filters/test/__snapshots__/index.jsdom.test.tsx.snap +87 -0
  297. package/src/higher-order/with-filters/test/{index.tsx → index.jsdom.test.tsx} +6 -5
  298. package/src/higher-order/with-focus-outside/test/{index.tsx → index.jsdom.test.tsx} +2 -1
  299. package/src/higher-order/with-focus-return/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  300. package/src/higher-order/with-notices/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  301. package/src/higher-order/with-spoken-messages/test/{index.tsx → index.jsdom.test.tsx} +3 -2
  302. package/src/icon/index.tsx +28 -12
  303. package/src/icon/test/{index.tsx → index.jsdom.test.tsx} +66 -0
  304. package/src/input-control/styles/input-control-styles.tsx +38 -7
  305. package/src/input-control/test/{index.js → index.jsdom.test.tsx} +16 -10
  306. package/src/isolated-event-container/test/{index.tsx → index.jsdom.test.tsx} +4 -3
  307. package/src/item-group/context.ts +1 -0
  308. package/src/item-group/item/component.tsx +19 -1
  309. package/src/item-group/item/hook.ts +2 -3
  310. package/src/item-group/item-group/component.tsx +1 -0
  311. package/src/item-group/style.module.scss +1 -2
  312. package/src/item-group/test/__snapshots__/{index.js.snap → index.jsdom.test.tsx.snap} +9 -9
  313. package/src/item-group/test/{index.js → index.jsdom.test.tsx} +99 -2
  314. package/src/item-group/types.ts +4 -0
  315. package/src/keyboard-shortcuts/test/{index.tsx → index.jsdom.test.tsx} +5 -4
  316. package/src/menu/test/{index.tsx → index.jsdom.test.tsx} +67 -23
  317. package/src/menu-group/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  318. package/src/menu-item/test/__snapshots__/{index.js.snap → index.jsdom.test.tsx.snap} +5 -5
  319. package/src/menu-item/test/{index.js → index.jsdom.test.tsx} +1 -0
  320. package/src/modal/test/{aria-helper.ts → aria-helper.jsdom.test.ts} +1 -0
  321. package/src/modal/test/{index.tsx → index.jsdom.test.tsx} +9 -5
  322. package/src/navigable-container/test/{navigable-menu.tsx → navigable-menu.jsdom.test.tsx} +7 -5
  323. package/src/navigable-container/test/{tababble-container.tsx → tababble-container.jsdom.test.tsx} +5 -3
  324. package/src/navigator/test/{index.tsx → index.jsdom.test.tsx} +5 -2
  325. package/src/navigator/test/router.ts +1 -0
  326. package/src/notice/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +7 -4
  327. package/src/notice/test/{index.tsx → index.jsdom.test.tsx} +8 -4
  328. package/src/notice/test/{list.tsx → list.jsdom.test.tsx} +1 -0
  329. package/src/number-control/test/{index.tsx → index.jsdom.test.tsx} +9 -6
  330. package/src/palette-edit/test/{index.tsx → index.jsdom.test.tsx} +16 -13
  331. package/src/panel/test/__snapshots__/body.jsdom.test.tsx.snap +9 -0
  332. package/src/panel/test/__snapshots__/header.jsdom.test.tsx.snap +9 -0
  333. package/src/panel/test/__snapshots__/index.jsdom.test.tsx.snap +17 -0
  334. package/src/panel/test/__snapshots__/row.jsdom.test.tsx.snap +17 -0
  335. package/src/panel/test/{body.tsx → body.jsdom.test.tsx} +2 -1
  336. package/src/panel/test/{header.tsx → header.jsdom.test.tsx} +1 -0
  337. package/src/panel/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  338. package/src/panel/test/{row.tsx → row.jsdom.test.tsx} +1 -0
  339. package/src/placeholder/style.scss +0 -5
  340. package/src/placeholder/test/{index.tsx → index.jsdom.test.tsx} +19 -14
  341. package/src/popover/README.md +2 -2
  342. package/src/popover/test/{index.tsx → index.jsdom.test.tsx} +23 -0
  343. package/src/popover/types.ts +9 -3
  344. package/src/progress-bar/style.module.scss +9 -1
  345. package/src/query-controls/test/terms.ts +1 -0
  346. package/src/radio-control/test/{index.tsx → index.jsdom.test.tsx} +14 -11
  347. package/src/range-control/test/{index.tsx → index.jsdom.test.tsx} +10 -7
  348. package/src/resizable-box/index.tsx +1 -1
  349. package/src/sandbox/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  350. package/src/scroll-lock/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  351. package/src/shortcut/test/__snapshots__/index.jsdom.test.tsx.snap +15 -0
  352. package/src/shortcut/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  353. package/src/slot-fill/test/{index.js → index.jsdom.test.tsx} +4 -3
  354. package/src/slot-fill/test/{slot.js → slot.jsdom.test.tsx} +17 -9
  355. package/src/snackbar/index.tsx +10 -6
  356. package/src/snackbar/test/{index.tsx → index.jsdom.test.tsx} +41 -11
  357. package/src/snackbar/test/list.jsdom.test.tsx +100 -0
  358. package/src/style-provider/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  359. package/src/surface/style.module.scss +2 -2
  360. package/src/surface/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  361. package/src/tab-panel/style.scss +4 -23
  362. package/src/tab-panel/test/{index.tsx → index.jsdom.test.tsx} +22 -21
  363. package/src/tabs/test/{index.tsx → index.jsdom.test.tsx} +21 -19
  364. package/src/text-control/test/{text-control.tsx → text-control.jsdom.test.tsx} +1 -0
  365. package/src/text-highlight/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  366. package/src/textarea-control/style.module.scss +9 -4
  367. package/src/tip/style.scss +1 -1
  368. package/src/toggle-control/test/{index.tsx → index.jsdom.test.tsx} +4 -1
  369. package/src/toggle-group-control/context.ts +14 -5
  370. package/src/toggle-group-control/stories/index.story.tsx +15 -2
  371. package/src/toggle-group-control/test/{index.tsx → index.jsdom.test.tsx} +283 -9
  372. package/src/toggle-group-control/toggle-group-control/README.md +8 -5
  373. package/src/toggle-group-control/toggle-group-control/as-button-group.tsx +4 -0
  374. package/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +4 -0
  375. package/src/toggle-group-control/toggle-group-control/component.tsx +2 -0
  376. package/src/toggle-group-control/toggle-group-control/style.module.scss +8 -2
  377. package/src/toggle-group-control/toggle-group-control-option/README.md +8 -5
  378. package/src/toggle-group-control/toggle-group-control-option/component.tsx +2 -0
  379. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +4 -1
  380. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +7 -0
  381. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +2 -0
  382. package/src/toggle-group-control/types.ts +12 -3
  383. package/src/toolbar/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  384. package/src/toolbar/test/{toolbar-group.tsx → toolbar-group.jsdom.test.tsx} +2 -1
  385. package/src/tools-panel/test/{index.tsx → index.jsdom.test.tsx} +595 -47
  386. package/src/tools-panel/tools-panel/hook.ts +195 -180
  387. package/src/tools-panel/tools-panel-item/README.md +42 -1
  388. package/src/tools-panel/tools-panel-item/hook.ts +97 -69
  389. package/src/tools-panel/types.ts +54 -9
  390. package/src/tooltip/test/{index.tsx → index.jsdom.test.tsx} +5 -3
  391. package/src/tree-grid/cell.tsx +6 -2
  392. package/src/tree-grid/roving-tab-index-item.tsx +7 -3
  393. package/src/tree-grid/row.tsx +8 -2
  394. package/src/tree-grid/test/__snapshots__/{cell.tsx.snap → cell.jsdom.test.tsx.snap} +2 -2
  395. package/src/tree-grid/test/__snapshots__/index.jsdom.test.tsx.snap +3 -0
  396. package/src/tree-grid/test/__snapshots__/roving-tab-index-item.jsdom.test.tsx.snap +27 -0
  397. package/src/tree-grid/test/__snapshots__/roving-tab-index.jsdom.test.tsx.snap +9 -0
  398. package/src/tree-grid/test/__snapshots__/{row.tsx.snap → row.jsdom.test.tsx.snap} +9 -5
  399. package/src/tree-grid/test/cell.jsdom.test.tsx +149 -0
  400. package/src/tree-grid/test/{index.tsx → index.jsdom.test.tsx} +9 -7
  401. package/src/tree-grid/test/{roving-tab-index-item.tsx → roving-tab-index-item.jsdom.test.tsx} +4 -1
  402. package/src/tree-grid/test/{roving-tab-index.tsx → roving-tab-index.jsdom.test.tsx} +1 -0
  403. package/src/tree-grid/test/row.jsdom.test.tsx +132 -0
  404. package/src/tree-grid/use-validate-tree-grid-structure.ts +104 -0
  405. package/src/truncate/style.module.scss +0 -1
  406. package/src/truncate/test/{index.tsx → index.jsdom.test.tsx} +1 -0
  407. package/src/unit-control/test/{index.tsx → index.jsdom.test.tsx} +22 -19
  408. package/src/unit-control/test/utils.ts +1 -0
  409. package/src/utils/colors-values.js +5 -4
  410. package/src/utils/hooks/test/{use-controlled-state.js → use-controlled-state.jsdom.test.tsx} +22 -7
  411. package/src/utils/hooks/test/{use-controlled-value.js → use-controlled-value.jsdom.test.tsx} +6 -3
  412. package/src/utils/hooks/test/{use-cx.js → use-cx.jsdom.test.tsx} +8 -5
  413. package/src/utils/test/colors.js +1 -0
  414. package/src/utils/test/{get-node-text.js → get-node-text.tsx} +1 -0
  415. package/src/utils/test/math.js +1 -0
  416. package/src/utils/test/rtl.js +1 -0
  417. package/src/utils/test/space.js +1 -0
  418. package/src/utils/test/strings.js +1 -0
  419. package/src/utils/test/unit-values.js +1 -0
  420. package/src/v-stack/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +4 -4
  421. package/src/v-stack/test/{index.tsx → index.jsdom.test.tsx} +3 -0
  422. package/src/validated-form-controls/style.scss +11 -15
  423. package/src/validated-form-controls/test/{content-editable-control.tsx → content-editable-control.jsdom.test.tsx} +1 -1
  424. package/src/validated-form-controls/test/{custom-select-control.tsx → custom-select-control.jsdom.test.tsx} +3 -0
  425. package/src/validated-form-controls/test/{input-control.tsx → input-control.jsdom.test.tsx} +3 -0
  426. package/src/validated-form-controls/test/{range-control.tsx → range-control.jsdom.test.tsx} +3 -0
  427. package/src/validated-form-controls/test/{textarea-control.tsx → textarea-control.jsdom.test.tsx} +1 -0
  428. package/src/view/test/__snapshots__/{index.js.snap → index.jsdom.test.tsx.snap} +7 -7
  429. package/src/view/test/{index.js → index.jsdom.test.tsx} +7 -2
  430. package/src/context/test/__snapshots__/context-system-provider.js.snap +0 -35
  431. package/src/higher-order/with-filters/test/__snapshots__/index.tsx.snap +0 -87
  432. package/src/panel/test/__snapshots__/body.tsx.snap +0 -9
  433. package/src/panel/test/__snapshots__/header.tsx.snap +0 -9
  434. package/src/panel/test/__snapshots__/index.tsx.snap +0 -17
  435. package/src/panel/test/__snapshots__/row.tsx.snap +0 -17
  436. package/src/shortcut/test/__snapshots__/index.tsx.snap +0 -15
  437. package/src/snackbar/test/list.tsx +0 -39
  438. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +0 -359
  439. package/src/tree-grid/test/__snapshots__/index.tsx.snap +0 -3
  440. package/src/tree-grid/test/__snapshots__/roving-tab-index-item.tsx.snap +0 -27
  441. package/src/tree-grid/test/__snapshots__/roving-tab-index.tsx.snap +0 -9
  442. package/src/tree-grid/test/cell.tsx +0 -46
  443. package/src/tree-grid/test/row.tsx +0 -37
  444. /package/src/card/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
  445. /package/src/card/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  446. /package/src/color-picker/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  447. /package/src/custom-gradient-picker/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  448. /package/src/custom-select-control/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
  449. /package/src/custom-select-control/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  450. /package/src/divider/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  451. /package/src/elevation/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
  452. /package/src/elevation/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  453. /package/src/flex/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
  454. /package/src/flex/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  455. /package/src/form-file-upload/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  456. /package/src/grid/test/{grid.tsx → grid.jsdom.test.tsx} +0 -0
  457. /package/src/heading/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
  458. /package/src/heading/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  459. /package/src/input-control/test/__snapshots__/{index.js.snap → index.jsdom.test.tsx.snap} +0 -0
  460. /package/src/progress-bar/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  461. /package/src/resizable-box/resize-tooltip/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  462. /package/src/resizable-box/resize-tooltip/test/{label.tsx → label.jsdom.test.tsx} +0 -0
  463. /package/src/scrollable/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  464. /package/src/search-control/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  465. /package/src/select-control/test/__snapshots__/{select-control.tsx.snap → select-control.jsdom.test.tsx.snap} +0 -0
  466. /package/src/select-control/test/{select-control.tsx → select-control.jsdom.test.tsx} +0 -0
  467. /package/src/slot-fill/test/__snapshots__/{slot.js.snap → slot.jsdom.test.tsx.snap} +0 -0
  468. /package/src/spacer/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
  469. /package/src/spacer/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  470. /package/src/text/test/__snapshots__/{index.tsx.snap → index.jsdom.test.tsx.snap} +0 -0
  471. /package/src/text/test/{index.tsx → index.jsdom.test.tsx} +0 -0
  472. /package/src/utils/test/{polymorphic-element.tsx → polymorphic-element.jsdom.test.tsx} +0 -0
@@ -1,9 +1,12 @@
1
+ import { describe, expect, it, vi } from 'vitest';
1
2
  import { screen } from '@testing-library/react';
2
3
  import userEvent from '@testing-library/user-event';
3
4
  import { render } from '@ariakit/test/react';
4
5
  import FontSizePickerSelect from '../font-size-picker-select';
5
6
  import type { FontSize } from '../types';
6
7
 
8
+ globalThis.wpVitest.mockMatchMedia();
9
+
7
10
  describe( 'FontSizePickerSelect', () => {
8
11
  const fontSizes: FontSize[] = [
9
12
  {
@@ -25,14 +28,14 @@ describe( 'FontSizePickerSelect', () => {
25
28
 
26
29
  describe( 'valueMode prop', () => {
27
30
  it( 'should find font size by size value when valueMode is literal', async () => {
28
- const onChange = jest.fn();
31
+ const onChange = vi.fn();
29
32
  await render(
30
33
  <FontSizePickerSelect
31
34
  fontSizes={ fontSizes }
32
35
  value="16px"
33
36
  valueMode="literal"
34
37
  onChange={ onChange }
35
- onSelectCustom={ jest.fn() }
38
+ onSelectCustom={ vi.fn() }
36
39
  disableCustomFontSizes={ false }
37
40
  />
38
41
  );
@@ -43,14 +46,14 @@ describe( 'FontSizePickerSelect', () => {
43
46
  } );
44
47
 
45
48
  it( 'should find font size by slug when valueMode is slug', async () => {
46
- const onChange = jest.fn();
49
+ const onChange = vi.fn();
47
50
  await render(
48
51
  <FontSizePickerSelect
49
52
  fontSizes={ fontSizes }
50
53
  value="medium"
51
54
  valueMode="slug"
52
55
  onChange={ onChange }
53
- onSelectCustom={ jest.fn() }
56
+ onSelectCustom={ vi.fn() }
54
57
  disableCustomFontSizes={ false }
55
58
  />
56
59
  );
@@ -61,14 +64,14 @@ describe( 'FontSizePickerSelect', () => {
61
64
  } );
62
65
 
63
66
  it( 'should handle undefined value', async () => {
64
- const onChange = jest.fn();
67
+ const onChange = vi.fn();
65
68
  await render(
66
69
  <FontSizePickerSelect
67
70
  fontSizes={ fontSizes }
68
71
  value={ undefined }
69
72
  valueMode="literal"
70
73
  onChange={ onChange }
71
- onSelectCustom={ jest.fn() }
74
+ onSelectCustom={ vi.fn() }
72
75
  disableCustomFontSizes={ false }
73
76
  />
74
77
  );
@@ -79,14 +82,14 @@ describe( 'FontSizePickerSelect', () => {
79
82
  } );
80
83
 
81
84
  it( 'should handle empty string value', async () => {
82
- const onChange = jest.fn();
85
+ const onChange = vi.fn();
83
86
  await render(
84
87
  <FontSizePickerSelect
85
88
  fontSizes={ fontSizes }
86
89
  value=""
87
90
  valueMode="literal"
88
91
  onChange={ onChange }
89
- onSelectCustom={ jest.fn() }
92
+ onSelectCustom={ vi.fn() }
90
93
  disableCustomFontSizes={ false }
91
94
  />
92
95
  );
@@ -100,12 +103,12 @@ describe( 'FontSizePickerSelect', () => {
100
103
  describe( 'onChange callback', () => {
101
104
  it( 'should call onChange with FontSize object as second parameter', async () => {
102
105
  const user = userEvent.setup();
103
- const onChange = jest.fn();
106
+ const onChange = vi.fn();
104
107
  await render(
105
108
  <FontSizePickerSelect
106
109
  fontSizes={ fontSizes }
107
110
  onChange={ onChange }
108
- onSelectCustom={ jest.fn() }
111
+ onSelectCustom={ vi.fn() }
109
112
  disableCustomFontSizes={ false }
110
113
  />
111
114
  );
@@ -120,13 +123,13 @@ describe( 'FontSizePickerSelect', () => {
120
123
 
121
124
  it( 'should call onChange with undefined as second parameter for default option', async () => {
122
125
  const user = userEvent.setup();
123
- const onChange = jest.fn();
126
+ const onChange = vi.fn();
124
127
  await render(
125
128
  <FontSizePickerSelect
126
129
  fontSizes={ fontSizes }
127
130
  value="16px" // Start with a selected value
128
131
  onChange={ onChange }
129
- onSelectCustom={ jest.fn() }
132
+ onSelectCustom={ vi.fn() }
130
133
  disableCustomFontSizes={ false }
131
134
  />
132
135
  );
@@ -160,14 +163,14 @@ describe( 'FontSizePickerSelect', () => {
160
163
  ];
161
164
 
162
165
  it( 'should handle multiple font sizes with same value in literal mode', async () => {
163
- const onChange = jest.fn();
166
+ const onChange = vi.fn();
164
167
  await render(
165
168
  <FontSizePickerSelect
166
169
  fontSizes={ fontSizesWithDuplicates }
167
170
  value="12px"
168
171
  valueMode="literal"
169
172
  onChange={ onChange }
170
- onSelectCustom={ jest.fn() }
173
+ onSelectCustom={ vi.fn() }
171
174
  disableCustomFontSizes={ false }
172
175
  />
173
176
  );
@@ -178,14 +181,14 @@ describe( 'FontSizePickerSelect', () => {
178
181
  } );
179
182
 
180
183
  it( 'should handle multiple font sizes with same value in slug mode', async () => {
181
- const onChange = jest.fn();
184
+ const onChange = vi.fn();
182
185
  await render(
183
186
  <FontSizePickerSelect
184
187
  fontSizes={ fontSizesWithDuplicates }
185
188
  value="small-1"
186
189
  valueMode="slug"
187
190
  onChange={ onChange }
188
- onSelectCustom={ jest.fn() }
191
+ onSelectCustom={ vi.fn() }
189
192
  disableCustomFontSizes={ false }
190
193
  />
191
194
  );
@@ -1,8 +1,10 @@
1
+ import { describe, expect, it, vi } from 'vitest';
1
2
  import { screen } from '@testing-library/react';
2
3
  import userEvent from '@testing-library/user-event';
3
4
  import { render } from '@ariakit/test/react';
4
5
  import FontSizePickerToggleGroup from '../font-size-picker-toggle-group';
5
6
  import type { FontSize } from '../types';
7
+ globalThis.wpVitest.mockResizeObserver();
6
8
 
7
9
  describe( 'FontSizePickerToggleGroup', () => {
8
10
  const fontSizes: FontSize[] = [
@@ -25,7 +27,7 @@ describe( 'FontSizePickerToggleGroup', () => {
25
27
 
26
28
  describe( 'valueMode prop', () => {
27
29
  it( 'should find font size by size value when valueMode is literal', async () => {
28
- const onChange = jest.fn();
30
+ const onChange = vi.fn();
29
31
  await render(
30
32
  <FontSizePickerToggleGroup
31
33
  fontSizes={ fontSizes }
@@ -41,7 +43,7 @@ describe( 'FontSizePickerToggleGroup', () => {
41
43
  } );
42
44
 
43
45
  it( 'should find font size by slug when valueMode is slug', async () => {
44
- const onChange = jest.fn();
46
+ const onChange = vi.fn();
45
47
  await render(
46
48
  <FontSizePickerToggleGroup
47
49
  fontSizes={ fontSizes }
@@ -57,7 +59,7 @@ describe( 'FontSizePickerToggleGroup', () => {
57
59
  } );
58
60
 
59
61
  it( 'should handle undefined value', async () => {
60
- const onChange = jest.fn();
62
+ const onChange = vi.fn();
61
63
  await render(
62
64
  <FontSizePickerToggleGroup
63
65
  fontSizes={ fontSizes }
@@ -73,7 +75,7 @@ describe( 'FontSizePickerToggleGroup', () => {
73
75
  } );
74
76
 
75
77
  it( 'should handle empty string value', async () => {
76
- const onChange = jest.fn();
78
+ const onChange = vi.fn();
77
79
  await render(
78
80
  <FontSizePickerToggleGroup
79
81
  fontSizes={ fontSizes }
@@ -92,7 +94,7 @@ describe( 'FontSizePickerToggleGroup', () => {
92
94
  describe( 'onChange callback', () => {
93
95
  it( 'should call onChange with FontSize object as second parameter', async () => {
94
96
  const user = userEvent.setup();
95
- const onChange = jest.fn();
97
+ const onChange = vi.fn();
96
98
  await render(
97
99
  <FontSizePickerToggleGroup
98
100
  fontSizes={ fontSizes }
@@ -105,7 +107,7 @@ describe( 'FontSizePickerToggleGroup', () => {
105
107
 
106
108
  it( 'should call onChange with FontSize object when selecting a different option', async () => {
107
109
  const user = userEvent.setup();
108
- const onChange = jest.fn();
110
+ const onChange = vi.fn();
109
111
  await render(
110
112
  <FontSizePickerToggleGroup
111
113
  fontSizes={ fontSizes }
@@ -139,7 +141,7 @@ describe( 'FontSizePickerToggleGroup', () => {
139
141
  ];
140
142
 
141
143
  it( 'should handle multiple font sizes with same value in literal mode', async () => {
142
- const onChange = jest.fn();
144
+ const onChange = vi.fn();
143
145
  await render(
144
146
  <FontSizePickerToggleGroup
145
147
  fontSizes={ fontSizesWithDuplicates }
@@ -155,7 +157,7 @@ describe( 'FontSizePickerToggleGroup', () => {
155
157
  } );
156
158
 
157
159
  it( 'should handle multiple font sizes with same value in slug mode', async () => {
158
- const onChange = jest.fn();
160
+ const onChange = vi.fn();
159
161
  await render(
160
162
  <FontSizePickerToggleGroup
161
163
  fontSizes={ fontSizesWithDuplicates }
@@ -196,7 +198,7 @@ describe( 'FontSizePickerToggleGroup', () => {
196
198
  ];
197
199
 
198
200
  it( 'should handle different units in literal mode', async () => {
199
- const onChange = jest.fn();
201
+ const onChange = vi.fn();
200
202
  await render(
201
203
  <FontSizePickerToggleGroup
202
204
  fontSizes={ heterogeneousFontSizes }
@@ -212,7 +214,7 @@ describe( 'FontSizePickerToggleGroup', () => {
212
214
  } );
213
215
 
214
216
  it( 'should handle complex font size values in literal mode', async () => {
215
- const onChange = jest.fn();
217
+ const onChange = vi.fn();
216
218
  await render(
217
219
  <FontSizePickerToggleGroup
218
220
  fontSizes={ heterogeneousFontSizes }
@@ -228,7 +230,7 @@ describe( 'FontSizePickerToggleGroup', () => {
228
230
  } );
229
231
 
230
232
  it( 'should handle different units in slug mode', async () => {
231
- const onChange = jest.fn();
233
+ const onChange = vi.fn();
232
234
  await render(
233
235
  <FontSizePickerToggleGroup
234
236
  fontSizes={ heterogeneousFontSizes }
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it, test, vi } from 'vitest';
1
2
  import { screen, fireEvent } from '@testing-library/react';
2
3
  import userEvent from '@testing-library/user-event';
3
4
  import { render } from '@ariakit/test/react';
@@ -5,6 +6,10 @@ import { useState } from '@wordpress/element';
5
6
  import FontSizePicker from '../';
6
7
  import type { FontSize } from '../types';
7
8
 
9
+ globalThis.wpVitest.mockMatchMedia();
10
+
11
+ globalThis.wpVitest.mockResizeObserver();
12
+
8
13
  const ControlledFontSizePicker = ( {
9
14
  onChange,
10
15
  ...props
@@ -34,7 +39,7 @@ describe( 'FontSizePicker', () => {
34
39
  'should call onChange( $expectedValue ) after user types 80 when value is $value',
35
40
  async ( { value, expectedValue } ) => {
36
41
  const user = userEvent.setup();
37
- const onChange = jest.fn();
42
+ const onChange = vi.fn();
38
43
  await render(
39
44
  <FontSizePicker value={ value } onChange={ onChange } />
40
45
  );
@@ -57,7 +62,7 @@ describe( 'FontSizePicker', () => {
57
62
  'should call onChange( $expectedValue ) after user types 80 when first font size is $firstFontSize',
58
63
  async ( { firstFontSize, expectedValue } ) => {
59
64
  const user = userEvent.setup();
60
- const onChange = jest.fn();
65
+ const onChange = vi.fn();
61
66
  await render(
62
67
  <FontSizePicker
63
68
  fontSizes={ [ { slug: 'slug', size: firstFontSize } ] }
@@ -142,7 +147,7 @@ describe( 'FontSizePicker', () => {
142
147
  'calls onChange( $expectedArguments ) when $option is selected',
143
148
  async ( { option, value, expectedArguments } ) => {
144
149
  const user = userEvent.setup();
145
- const onChange = jest.fn();
150
+ const onChange = vi.fn();
146
151
  await render(
147
152
  <FontSizePicker
148
153
  fontSizes={ fontSizes }
@@ -264,7 +269,7 @@ describe( 'FontSizePicker', () => {
264
269
  'calls onChange( $expectedValue ) when $option is selected',
265
270
  async ( { option, value, expectedArguments } ) => {
266
271
  const user = userEvent.setup();
267
- const onChange = jest.fn();
272
+ const onChange = vi.fn();
268
273
  await render(
269
274
  <FontSizePicker
270
275
  fontSizes={ fontSizes }
@@ -333,7 +338,7 @@ describe( 'FontSizePicker', () => {
333
338
 
334
339
  it( 'calls onChange when a font size is selected', async () => {
335
340
  const user = userEvent.setup();
336
- const onChange = jest.fn();
341
+ const onChange = vi.fn();
337
342
  await render(
338
343
  <FontSizePicker fontSizes={ fontSizes } onChange={ onChange } />
339
344
  );
@@ -491,7 +496,7 @@ describe( 'FontSizePicker', () => {
491
496
  'calls onChange( $expectedArguments ) when $radio is selected',
492
497
  async ( { radio, expectedArguments } ) => {
493
498
  const user = userEvent.setup();
494
- const onChange = jest.fn();
499
+ const onChange = vi.fn();
495
500
  await render(
496
501
  <FontSizePicker
497
502
  fontSizes={ fontSizes }
@@ -646,7 +651,7 @@ describe( 'FontSizePicker', () => {
646
651
 
647
652
  it( 'allows custom values by default', async () => {
648
653
  const user = userEvent.setup();
649
- const onChange = jest.fn();
654
+ const onChange = vi.fn();
650
655
  await render(
651
656
  <FontSizePicker fontSizes={ fontSizes } onChange={ onChange } />
652
657
  );
@@ -711,7 +716,7 @@ describe( 'FontSizePicker', () => {
711
716
 
712
717
  it( 'allows a slider to be used when withSlider is set', async () => {
713
718
  const user = userEvent.setup();
714
- const onChange = jest.fn();
719
+ const onChange = vi.fn();
715
720
  await render(
716
721
  <FontSizePicker
717
722
  fontSizes={ fontSizes }
@@ -734,7 +739,7 @@ describe( 'FontSizePicker', () => {
734
739
 
735
740
  it( 'allows reset by default', async () => {
736
741
  const user = userEvent.setup();
737
- const onChange = jest.fn();
742
+ const onChange = vi.fn();
738
743
  await render(
739
744
  <FontSizePicker
740
745
  fontSizes={ fontSizes }
@@ -842,7 +847,7 @@ describe( 'FontSizePicker', () => {
842
847
 
843
848
  it( 'should call onChange with size value and FontSize object when valueMode is literal', async () => {
844
849
  const user = userEvent.setup();
845
- const onChange = jest.fn();
850
+ const onChange = vi.fn();
846
851
  await render(
847
852
  <FontSizePicker
848
853
  fontSizes={ fontSizes }
@@ -880,7 +885,7 @@ describe( 'FontSizePicker', () => {
880
885
 
881
886
  it( 'should call onChange with size value and FontSize object when valueMode is slug', async () => {
882
887
  const user = userEvent.setup();
883
- const onChange = jest.fn();
888
+ const onChange = vi.fn();
884
889
  await render(
885
890
  <FontSizePicker
886
891
  fontSizes={ fontSizes }
@@ -1031,7 +1036,7 @@ describe( 'FontSizePicker', () => {
1031
1036
 
1032
1037
  it( 'should call onChange with FontSize object as second parameter for select control', async () => {
1033
1038
  const user = userEvent.setup();
1034
- const onChange = jest.fn();
1039
+ const onChange = vi.fn();
1035
1040
  await render(
1036
1041
  <FontSizePicker fontSizes={ fontSizes } onChange={ onChange } />
1037
1042
  );
@@ -1046,7 +1051,7 @@ describe( 'FontSizePicker', () => {
1046
1051
 
1047
1052
  it( 'should call onChange with undefined as second parameter for default option', async () => {
1048
1053
  const user = userEvent.setup();
1049
- const onChange = jest.fn();
1054
+ const onChange = vi.fn();
1050
1055
  await render(
1051
1056
  <FontSizePicker
1052
1057
  fontSizes={ fontSizes }
@@ -1065,7 +1070,7 @@ describe( 'FontSizePicker', () => {
1065
1070
 
1066
1071
  it( 'should call onChange with FontSize object as second parameter for toggle group control', async () => {
1067
1072
  const user = userEvent.setup();
1068
- const onChange = jest.fn();
1073
+ const onChange = vi.fn();
1069
1074
  // Use fewer font sizes to trigger toggle group (≤ 5)
1070
1075
  const toggleGroupFontSizes = [
1071
1076
  {
@@ -1,3 +1,4 @@
1
+ import { describe, expect, test } from 'vitest';
1
2
  import { isSimpleCssValue } from '../utils';
2
3
 
3
4
  describe( 'isSimpleCssValue', () => {
@@ -103,7 +103,7 @@ $transition-duration: 0.2s;
103
103
 
104
104
  // Disabled state:
105
105
  &.is-disabled,
106
- .components-disabled & {
106
+ [inert] & {
107
107
  .components-form-toggle__track {
108
108
  background-color: $components-color-gray-100;
109
109
  border-color: var(--wpds-color-stroke-interactive-neutral-disabled);
@@ -1,6 +1,6 @@
1
- // Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
1
+ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
2
 
3
- exports[`FormToggle basic rendering should render a span element with an unchecked checkbox 1`] = `
3
+ exports[`FormToggle > basic rendering > should render a span element with an unchecked checkbox 1`] = `
4
4
  <div>
5
5
  <span
6
6
  class="components-form-toggle"
@@ -19,7 +19,7 @@ exports[`FormToggle basic rendering should render a span element with an uncheck
19
19
  </div>
20
20
  `;
21
21
 
22
- exports[`FormToggle basic rendering should render an id prop for the input checkbox 1`] = `
22
+ exports[`FormToggle > basic rendering > should render an id prop for the input checkbox 1`] = `
23
23
  Snapshot Diff:
24
24
  - First value
25
25
  + Second value
@@ -38,7 +38,7 @@ Snapshot Diff:
38
38
  />
39
39
  `;
40
40
 
41
- exports[`FormToggle basic rendering should render with an additional className 1`] = `
41
+ exports[`FormToggle > basic rendering > should render with an additional className 1`] = `
42
42
  Snapshot Diff:
43
43
  - First value
44
44
  + Second value
@@ -1,3 +1,4 @@
1
+ import { describe, expect, it, vi } from 'vitest';
1
2
  import { render, screen } from '@testing-library/react';
2
3
  import userEvent from '@testing-library/user-event';
3
4
  import { useState } from '@wordpress/element';
@@ -70,7 +71,7 @@ describe( 'FormToggle', () => {
70
71
  it( 'should flip the checked property when clicked', async () => {
71
72
  const user = userEvent.setup();
72
73
 
73
- const onChange = jest.fn();
74
+ const onChange = vi.fn();
74
75
  render( <ControlledFormToggle onChange={ onChange } /> );
75
76
 
76
77
  const input = getInput();
@@ -399,7 +399,7 @@ export function FormTokenField( props: FormTokenFieldProps ) {
399
399
  function handleUpArrowKey() {
400
400
  setSelectedSuggestionIndex( ( index ) => {
401
401
  return (
402
- ( index === 0
402
+ ( index <= 0
403
403
  ? getMatchingSuggestions(
404
404
  incompleteTokenValue,
405
405
  suggestions,