@wordpress/components 35.0.0 → 35.1.1-next.v.202606191442.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 (434) hide show
  1. package/CHANGELOG.md +47 -1
  2. package/build/alignment-matrix-control/cell.cjs +1 -1
  3. package/build/alignment-matrix-control/cell.cjs.map +2 -2
  4. package/build/alignment-matrix-control/index.cjs +1 -1
  5. package/build/alignment-matrix-control/index.cjs.map +2 -2
  6. package/build/angle-picker-control/angle-circle.cjs +1 -1
  7. package/build/angle-picker-control/angle-circle.cjs.map +2 -2
  8. package/build/angle-picker-control/index.cjs +2 -2
  9. package/build/autocomplete/get-autocomplete-match.cjs.map +1 -1
  10. package/build/autocomplete/index.cjs.map +1 -1
  11. package/build/base-control/styles/base-control-styles.cjs +6 -6
  12. package/build/base-control/styles/base-control-styles.cjs.map +2 -2
  13. package/build/border-control/styles.cjs +17 -14
  14. package/build/border-control/styles.cjs.map +2 -2
  15. package/build/button/index.cjs +3 -7
  16. package/build/button/index.cjs.map +2 -2
  17. package/build/card/card-divider/hook.cjs.map +2 -2
  18. package/build/color-palette/index.cjs +3 -0
  19. package/build/color-palette/index.cjs.map +2 -2
  20. package/build/color-picker/component.cjs.map +1 -1
  21. package/build/custom-gradient-picker/gradient-bar/index.cjs.map +2 -2
  22. package/build/date-time/utils.cjs.map +1 -1
  23. package/build/draggable/index.cjs +1 -1
  24. package/build/draggable/index.cjs.map +2 -2
  25. package/build/external-link/index.cjs +1 -1
  26. package/build/external-link/index.cjs.map +1 -1
  27. package/build/menu/popover.cjs.map +1 -1
  28. package/build/menu/styles.cjs +17 -17
  29. package/build/menu/styles.cjs.map +2 -2
  30. package/build/modal/index.cjs.map +1 -1
  31. package/build/modal/use-modal-exit-animation.cjs +37 -52
  32. package/build/modal/use-modal-exit-animation.cjs.map +2 -2
  33. package/build/navigable-container/container.cjs +15 -21
  34. package/build/navigable-container/container.cjs.map +2 -2
  35. package/build/palette-edit/index.cjs +1 -1
  36. package/build/progress-bar/index.cjs +1 -1
  37. package/build/progress-bar/index.cjs.map +2 -2
  38. package/build/query-controls/index.cjs +2 -2
  39. package/build/query-controls/index.cjs.map +2 -2
  40. package/build/range-control/index.cjs.map +1 -1
  41. package/build/sandbox/index.cjs +7 -1
  42. package/build/sandbox/index.cjs.map +2 -2
  43. package/build/snackbar/index.cjs +1 -1
  44. package/build/spinner/styles.cjs +4 -4
  45. package/build/spinner/styles.cjs.map +2 -2
  46. package/build/tabs/index.cjs +0 -18
  47. package/build/tabs/index.cjs.map +2 -2
  48. package/build/tabs/tablist.cjs +5 -15
  49. package/build/tabs/tablist.cjs.map +2 -2
  50. package/build/tools-panel/styles.cjs +13 -13
  51. package/build/tools-panel/styles.cjs.map +2 -2
  52. package/build/tools-panel/tools-panel/hook.cjs.map +1 -1
  53. package/build/tree-select/index.cjs +1 -1
  54. package/build/tree-select/index.cjs.map +1 -1
  55. package/build/truncate/utils.cjs +1 -1
  56. package/build/truncate/utils.cjs.map +1 -1
  57. package/build/unit-control/utils.cjs +33 -35
  58. package/build/unit-control/utils.cjs.map +2 -2
  59. package/build/utils/colors-values.cjs +12 -12
  60. package/build/utils/colors-values.cjs.map +2 -2
  61. package/build/utils/config-values.cjs +2 -2
  62. package/build/utils/config-values.cjs.map +2 -2
  63. package/build/utils/dropdown-motion.cjs.map +2 -2
  64. package/build/utils/strings.cjs.map +1 -1
  65. package/build-module/alignment-matrix-control/cell.mjs +1 -1
  66. package/build-module/alignment-matrix-control/cell.mjs.map +2 -2
  67. package/build-module/alignment-matrix-control/index.mjs +1 -1
  68. package/build-module/alignment-matrix-control/index.mjs.map +2 -2
  69. package/build-module/angle-picker-control/angle-circle.mjs +1 -1
  70. package/build-module/angle-picker-control/angle-circle.mjs.map +2 -2
  71. package/build-module/angle-picker-control/index.mjs +2 -2
  72. package/build-module/autocomplete/get-autocomplete-match.mjs.map +1 -1
  73. package/build-module/autocomplete/index.mjs.map +1 -1
  74. package/build-module/base-control/styles/base-control-styles.mjs +6 -6
  75. package/build-module/base-control/styles/base-control-styles.mjs.map +2 -2
  76. package/build-module/border-control/styles.mjs +17 -14
  77. package/build-module/border-control/styles.mjs.map +2 -2
  78. package/build-module/button/index.mjs +2 -5
  79. package/build-module/button/index.mjs.map +2 -2
  80. package/build-module/card/card-divider/hook.mjs.map +2 -2
  81. package/build-module/color-palette/index.mjs +3 -0
  82. package/build-module/color-palette/index.mjs.map +2 -2
  83. package/build-module/color-picker/component.mjs.map +1 -1
  84. package/build-module/custom-gradient-picker/gradient-bar/index.mjs.map +2 -2
  85. package/build-module/date-time/utils.mjs.map +1 -1
  86. package/build-module/draggable/index.mjs +1 -1
  87. package/build-module/draggable/index.mjs.map +2 -2
  88. package/build-module/external-link/index.mjs +1 -1
  89. package/build-module/external-link/index.mjs.map +1 -1
  90. package/build-module/menu/popover.mjs.map +1 -1
  91. package/build-module/menu/styles.mjs +17 -17
  92. package/build-module/menu/styles.mjs.map +2 -2
  93. package/build-module/modal/index.mjs.map +1 -1
  94. package/build-module/modal/use-modal-exit-animation.mjs +37 -52
  95. package/build-module/modal/use-modal-exit-animation.mjs.map +2 -2
  96. package/build-module/navigable-container/container.mjs +16 -22
  97. package/build-module/navigable-container/container.mjs.map +2 -2
  98. package/build-module/palette-edit/index.mjs +1 -1
  99. package/build-module/progress-bar/index.mjs +1 -1
  100. package/build-module/progress-bar/index.mjs.map +2 -2
  101. package/build-module/query-controls/index.mjs +2 -2
  102. package/build-module/query-controls/index.mjs.map +2 -2
  103. package/build-module/range-control/index.mjs.map +1 -1
  104. package/build-module/sandbox/index.mjs +3 -1
  105. package/build-module/sandbox/index.mjs.map +2 -2
  106. package/build-module/snackbar/index.mjs +1 -1
  107. package/build-module/spinner/styles.mjs +4 -4
  108. package/build-module/spinner/styles.mjs.map +2 -2
  109. package/build-module/tabs/index.mjs +1 -19
  110. package/build-module/tabs/index.mjs.map +2 -2
  111. package/build-module/tabs/tablist.mjs +5 -15
  112. package/build-module/tabs/tablist.mjs.map +2 -2
  113. package/build-module/tools-panel/styles.mjs +13 -13
  114. package/build-module/tools-panel/styles.mjs.map +2 -2
  115. package/build-module/tools-panel/tools-panel/hook.mjs.map +1 -1
  116. package/build-module/tree-select/index.mjs +1 -1
  117. package/build-module/tree-select/index.mjs.map +1 -1
  118. package/build-module/truncate/utils.mjs +1 -1
  119. package/build-module/truncate/utils.mjs.map +1 -1
  120. package/build-module/unit-control/utils.mjs +33 -35
  121. package/build-module/unit-control/utils.mjs.map +2 -2
  122. package/build-module/utils/colors-values.mjs +12 -12
  123. package/build-module/utils/colors-values.mjs.map +2 -2
  124. package/build-module/utils/config-values.mjs +2 -2
  125. package/build-module/utils/config-values.mjs.map +2 -2
  126. package/build-module/utils/dropdown-motion.mjs.map +2 -2
  127. package/build-module/utils/strings.mjs.map +1 -1
  128. package/build-style/style-rtl.css +122 -91
  129. package/build-style/style.css +122 -91
  130. package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
  131. package/build-types/border-control/styles.d.ts.map +1 -1
  132. package/build-types/button/index.d.ts +0 -2
  133. package/build-types/button/index.d.ts.map +1 -1
  134. package/build-types/card/card-divider/hook.d.ts +1 -274
  135. package/build-types/card/card-divider/hook.d.ts.map +1 -1
  136. package/build-types/color-palette/index.d.ts.map +1 -1
  137. package/build-types/composite/stories/index.story.d.ts.map +1 -1
  138. package/build-types/confirm-dialog/stories/index.story.d.ts.map +1 -1
  139. package/build-types/custom-gradient-picker/gradient-bar/index.d.ts.map +1 -1
  140. package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
  141. package/build-types/menu/styles.d.ts.map +1 -1
  142. package/build-types/menu/types.d.ts +2 -2
  143. package/build-types/navigable-container/container.d.ts.map +1 -1
  144. package/build-types/sandbox/index.d.ts +15 -0
  145. package/build-types/sandbox/index.d.ts.map +1 -1
  146. package/build-types/spinner/styles.d.ts.map +1 -1
  147. package/build-types/tabs/index.d.ts.map +1 -1
  148. package/build-types/tabs/tablist.d.ts.map +1 -1
  149. package/build-types/tools-panel/styles.d.ts.map +1 -1
  150. package/build-types/unit-control/utils.d.ts.map +1 -1
  151. package/build-types/utils/colors-values.d.ts.map +1 -1
  152. package/build-types/utils/dropdown-motion.d.ts.map +1 -1
  153. package/build-types/validated-form-controls/components/combobox-control.d.ts +1 -1
  154. package/package.json +44 -36
  155. package/src/angle-picker-control/angle-circle.tsx +3 -3
  156. package/src/base-control/README.md +2 -2
  157. package/src/base-control/styles/base-control-styles.ts +1 -0
  158. package/src/border-control/styles.ts +1 -0
  159. package/src/button/index.tsx +2 -4
  160. package/src/button/style.scss +3 -3
  161. package/src/card/card/README.md +4 -4
  162. package/src/card/card-divider/hook.ts +5 -1
  163. package/src/card/test/__snapshots__/index.tsx.snap +3 -3
  164. package/src/checkbox-control/README.md +1 -1
  165. package/src/clipboard-button/README.md +4 -4
  166. package/src/color-palette/index.tsx +5 -0
  167. package/src/color-palette/test/index.tsx +30 -0
  168. package/src/combobox-control/README.md +1 -1
  169. package/src/composite/stories/index.story.tsx +5 -0
  170. package/src/confirm-dialog/README.md +1 -1
  171. package/src/confirm-dialog/stories/index.story.tsx +1 -0
  172. package/src/custom-gradient-picker/gradient-bar/index.tsx +1 -1
  173. package/src/dropdown/stories/index.story.tsx +5 -0
  174. package/src/dropdown-menu/style.scss +1 -1
  175. package/src/external-link/style.scss +4 -4
  176. package/src/flex/flex/README.md +1 -1
  177. package/src/form-toggle/style.scss +1 -1
  178. package/src/heading/test/__snapshots__/index.tsx.snap +4 -4
  179. package/src/menu/README.md +2 -2
  180. package/src/menu/styles.ts +2 -0
  181. package/src/menu/test/index.tsx +120 -87
  182. package/src/menu/types.ts +2 -2
  183. package/src/modal/style.scss +1 -1
  184. package/src/modal/use-modal-exit-animation.ts +2 -2
  185. package/src/navigable-container/container.tsx +22 -30
  186. package/src/notice/style.scss +11 -13
  187. package/src/panel/README.md +2 -0
  188. package/src/panel/stories/index.story.tsx +2 -2
  189. package/src/panel/style.scss +1 -1
  190. package/src/popover/README.md +1 -1
  191. package/src/radio-control/style.scss +1 -1
  192. package/src/sandbox/index.tsx +18 -1
  193. package/src/sandbox/test/index.tsx +44 -1
  194. package/src/scrollable/README.md +1 -1
  195. package/src/spinner/styles.ts +1 -0
  196. package/src/tab-panel/style.scss +6 -6
  197. package/src/tabs/index.tsx +1 -26
  198. package/src/tabs/tablist.tsx +5 -21
  199. package/src/tabs/test/index.tsx +16 -27
  200. package/src/text/test/__snapshots__/index.tsx.snap +3 -3
  201. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +34 -26
  202. package/src/toolbar/toolbar-group/style.scss +2 -2
  203. package/src/tools-panel/styles.ts +1 -1
  204. package/src/tooltip/stories/index.story.tsx +2 -2
  205. package/src/tooltip/style.scss +1 -1
  206. package/src/unit-control/utils.ts +33 -52
  207. package/src/utils/colors-values.js +36 -16
  208. package/src/utils/config-values.js +2 -2
  209. package/src/utils/dropdown-motion.ts +6 -4
  210. package/src/utils/theme-variables.scss +18 -13
  211. package/build/mobile/image/constants.cjs +0 -34
  212. package/build/mobile/image/constants.cjs.map +0 -7
  213. package/build-module/mobile/image/constants.mjs +0 -9
  214. package/build-module/mobile/image/constants.mjs.map +0 -7
  215. package/build-types/mobile/image/constants.d.ts +0 -5
  216. package/build-types/mobile/image/constants.d.ts.map +0 -1
  217. package/src/autocomplete/autocompleter-ui.native.js +0 -211
  218. package/src/autocomplete/background-view.android.js +0 -25
  219. package/src/autocomplete/background-view.ios.js +0 -23
  220. package/src/autocomplete/style.android.scss +0 -7
  221. package/src/autocomplete/style.native.scss +0 -74
  222. package/src/base-control/index.native.js +0 -14
  223. package/src/button/index.native.js +0 -236
  224. package/src/button/style.native.scss +0 -9
  225. package/src/color-control/index.native.js +0 -24
  226. package/src/color-indicator/index.native.js +0 -80
  227. package/src/color-indicator/style.native.scss +0 -51
  228. package/src/color-palette/index.native.js +0 -360
  229. package/src/color-palette/style.native.scss +0 -49
  230. package/src/color-picker/hsv-color-picker.native.js +0 -88
  231. package/src/color-picker/hue-picker.native.js +0 -198
  232. package/src/color-picker/index.native.js +0 -215
  233. package/src/color-picker/saturation-picker.native.js +0 -167
  234. package/src/color-picker/style.native.scss +0 -87
  235. package/src/custom-gradient-picker/index.native.js +0 -110
  236. package/src/custom-gradient-picker/style.native.scss +0 -3
  237. package/src/dashicon/index.native.js +0 -18
  238. package/src/disabled/index.native.js +0 -10
  239. package/src/draggable/index.native.js +0 -234
  240. package/src/draggable/style.native.scss +0 -3
  241. package/src/draggable/test/index.native.js +0 -138
  242. package/src/dropdown/index.native.js +0 -59
  243. package/src/dropdown-menu/index.native.js +0 -152
  244. package/src/external-link/index.native.js +0 -25
  245. package/src/focal-point-picker/focal-point.native.js +0 -30
  246. package/src/focal-point-picker/index.native.js +0 -281
  247. package/src/focal-point-picker/tooltip/index.native.js +0 -144
  248. package/src/focal-point-picker/tooltip/style.native.scss +0 -42
  249. package/src/font-size-picker/index.native.js +0 -190
  250. package/src/font-size-picker/style.native.scss +0 -6
  251. package/src/footer-message-control/index.native.js +0 -14
  252. package/src/higher-order/with-focus-outside/index.native.js +0 -38
  253. package/src/index.native.js +0 -134
  254. package/src/keyboard-shortcuts/index.native.js +0 -2
  255. package/src/mobile/README.md +0 -3
  256. package/src/mobile/autocompletion-items.native.js +0 -11
  257. package/src/mobile/badge/README.md +0 -31
  258. package/src/mobile/badge/index.native.js +0 -27
  259. package/src/mobile/badge/style.scss +0 -18
  260. package/src/mobile/bottom-sheet/borderStyles.android.scss +0 -8
  261. package/src/mobile/bottom-sheet/borderStyles.ios.scss +0 -9
  262. package/src/mobile/bottom-sheet/bottom-sheet-context.native.js +0 -40
  263. package/src/mobile/bottom-sheet/bottom-sheet-navigation/README.md +0 -101
  264. package/src/mobile/bottom-sheet/bottom-sheet-navigation/bottom-sheet-navigation-context.native.js +0 -16
  265. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +0 -193
  266. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +0 -146
  267. package/src/mobile/bottom-sheet/bottom-sheet-navigation/styles.native.scss +0 -11
  268. package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +0 -197
  269. package/src/mobile/bottom-sheet/button.native.js +0 -19
  270. package/src/mobile/bottom-sheet/cell.native.js +0 -464
  271. package/src/mobile/bottom-sheet/cellStyles.android.scss +0 -15
  272. package/src/mobile/bottom-sheet/cellStyles.ios.scss +0 -19
  273. package/src/mobile/bottom-sheet/chevron-back.native.js +0 -18
  274. package/src/mobile/bottom-sheet/color-cell.native.js +0 -35
  275. package/src/mobile/bottom-sheet/cycle-picker-cell.native.js +0 -31
  276. package/src/mobile/bottom-sheet/footer-message-cell.native.js +0 -23
  277. package/src/mobile/bottom-sheet/footer-message-link/README.md +0 -37
  278. package/src/mobile/bottom-sheet/footer-message-link/footer-message-link.native.js +0 -26
  279. package/src/mobile/bottom-sheet/footer-message-link/styles.native.scss +0 -7
  280. package/src/mobile/bottom-sheet/index.native.js +0 -646
  281. package/src/mobile/bottom-sheet/keyboard-avoiding-view.native.js +0 -125
  282. package/src/mobile/bottom-sheet/link-cell.native.js +0 -35
  283. package/src/mobile/bottom-sheet/link-suggestion-item-cell.native.js +0 -92
  284. package/src/mobile/bottom-sheet/link-suggestion-styles.native.scss +0 -27
  285. package/src/mobile/bottom-sheet/lock-icon/index.native.js +0 -19
  286. package/src/mobile/bottom-sheet/lock-icon/styles.native.scss +0 -8
  287. package/src/mobile/bottom-sheet/nav-bar/README.md +0 -63
  288. package/src/mobile/bottom-sheet/nav-bar/action-button.native.js +0 -30
  289. package/src/mobile/bottom-sheet/nav-bar/apply-button.native.js +0 -53
  290. package/src/mobile/bottom-sheet/nav-bar/back-button.native.js +0 -94
  291. package/src/mobile/bottom-sheet/nav-bar/heading.native.js +0 -33
  292. package/src/mobile/bottom-sheet/nav-bar/index.native.js +0 -23
  293. package/src/mobile/bottom-sheet/nav-bar/styles.native.scss +0 -69
  294. package/src/mobile/bottom-sheet/picker-cell.native.js +0 -40
  295. package/src/mobile/bottom-sheet/radio-cell.native.js +0 -39
  296. package/src/mobile/bottom-sheet/range-cell.native.js +0 -274
  297. package/src/mobile/bottom-sheet/range-cell.native.scss +0 -40
  298. package/src/mobile/bottom-sheet/range-text-input.native.js +0 -248
  299. package/src/mobile/bottom-sheet/ripple.native.js +0 -83
  300. package/src/mobile/bottom-sheet/ripple.native.scss +0 -11
  301. package/src/mobile/bottom-sheet/stepper-cell/index.native.js +0 -264
  302. package/src/mobile/bottom-sheet/stepper-cell/stepper.android.js +0 -78
  303. package/src/mobile/bottom-sheet/stepper-cell/stepper.ios.js +0 -64
  304. package/src/mobile/bottom-sheet/stepper-cell/style.native.scss +0 -89
  305. package/src/mobile/bottom-sheet/styles.native.scss +0 -333
  306. package/src/mobile/bottom-sheet/sub-sheet/README.md +0 -90
  307. package/src/mobile/bottom-sheet/sub-sheet/index.native.js +0 -49
  308. package/src/mobile/bottom-sheet/switch-cell.native.js +0 -75
  309. package/src/mobile/bottom-sheet/test/index.native.js +0 -24
  310. package/src/mobile/bottom-sheet/test/range-cell.native.js +0 -73
  311. package/src/mobile/bottom-sheet-select-control/README.md +0 -97
  312. package/src/mobile/bottom-sheet-select-control/index.native.js +0 -124
  313. package/src/mobile/bottom-sheet-select-control/style.native.scss +0 -3
  314. package/src/mobile/bottom-sheet-text-control/README.md +0 -98
  315. package/src/mobile/bottom-sheet-text-control/index.native.js +0 -104
  316. package/src/mobile/bottom-sheet-text-control/styles.scss +0 -25
  317. package/src/mobile/clipboard/index.native.js +0 -18
  318. package/src/mobile/color-settings/gradient-picker-screen.native.js +0 -37
  319. package/src/mobile/color-settings/index.native.js +0 -88
  320. package/src/mobile/color-settings/palette.screen.native.js +0 -232
  321. package/src/mobile/color-settings/picker-screen.native.js +0 -60
  322. package/src/mobile/color-settings/style.native.scss +0 -62
  323. package/src/mobile/color-settings/utils.native.js +0 -36
  324. package/src/mobile/cycle-select-control/README.md +0 -3
  325. package/src/mobile/cycle-select-control/index.native.js +0 -39
  326. package/src/mobile/dashicons/index.native.js +0 -22
  327. package/src/mobile/focal-point-settings-panel/index.native.js +0 -84
  328. package/src/mobile/focal-point-settings-panel/styles.native.scss +0 -3
  329. package/src/mobile/gradient/index.native.js +0 -188
  330. package/src/mobile/gradient/style.native.scss +0 -8
  331. package/src/mobile/gradient/test/index.native.js +0 -114
  332. package/src/mobile/gridicons/index.native.js +0 -39
  333. package/src/mobile/html-text-input/index.native.js +0 -169
  334. package/src/mobile/html-text-input/style.android.scss +0 -8
  335. package/src/mobile/html-text-input/style.ios.scss +0 -10
  336. package/src/mobile/html-text-input/style.scss +0 -45
  337. package/src/mobile/html-text-input/test/__snapshots__/index.native.js.snap +0 -48
  338. package/src/mobile/html-text-input/test/index.native.js +0 -118
  339. package/src/mobile/image/constants.js +0 -1
  340. package/src/mobile/image/icon-customize.native.js +0 -10
  341. package/src/mobile/image/icon-retry.native.js +0 -11
  342. package/src/mobile/image/image-editing-button.native.js +0 -63
  343. package/src/mobile/image/index.native.js +0 -401
  344. package/src/mobile/image/style.native.scss +0 -179
  345. package/src/mobile/image/utils/index.native.js +0 -58
  346. package/src/mobile/keyboard-avoiding-view/index.android.js +0 -8
  347. package/src/mobile/keyboard-avoiding-view/index.ios.js +0 -143
  348. package/src/mobile/keyboard-avoiding-view/styles.native.scss +0 -9
  349. package/src/mobile/keyboard-aware-flat-list/index.android.js +0 -81
  350. package/src/mobile/keyboard-aware-flat-list/index.ios.js +0 -147
  351. package/src/mobile/keyboard-aware-flat-list/shared.native.js +0 -26
  352. package/src/mobile/keyboard-aware-flat-list/styles.native.scss +0 -8
  353. package/src/mobile/keyboard-aware-flat-list/test/use-keyboard-offset.native.js +0 -203
  354. package/src/mobile/keyboard-aware-flat-list/test/use-scroll-to-section.native.js +0 -142
  355. package/src/mobile/keyboard-aware-flat-list/test/use-scroll.native.js +0 -71
  356. package/src/mobile/keyboard-aware-flat-list/test/use-text-input-caret-position.native.js +0 -82
  357. package/src/mobile/keyboard-aware-flat-list/test/use-text-input-offset.native.js +0 -147
  358. package/src/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js +0 -87
  359. package/src/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +0 -41
  360. package/src/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js +0 -100
  361. package/src/mobile/keyboard-aware-flat-list/use-scroll.native.js +0 -100
  362. package/src/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js +0 -36
  363. package/src/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js +0 -54
  364. package/src/mobile/layout-animation/index.native.js +0 -16
  365. package/src/mobile/link-picker/index.native.js +0 -160
  366. package/src/mobile/link-picker/link-picker-results.native.js +0 -129
  367. package/src/mobile/link-picker/link-picker-screen.native.js +0 -60
  368. package/src/mobile/link-picker/styles.native.scss +0 -45
  369. package/src/mobile/link-picker/test/performance/index.native.js +0 -35
  370. package/src/mobile/link-settings/index.native.js +0 -332
  371. package/src/mobile/link-settings/link-rel.native.js +0 -10
  372. package/src/mobile/link-settings/link-settings-navigation.native.js +0 -50
  373. package/src/mobile/link-settings/link-settings-screen.native.js +0 -44
  374. package/src/mobile/link-settings/style.native.scss +0 -4
  375. package/src/mobile/link-settings/test/edit.native.js +0 -325
  376. package/src/mobile/link-settings/test/link-settings-navigation.native.js +0 -94
  377. package/src/mobile/media-edit/index.native.js +0 -125
  378. package/src/mobile/picker/index.android.js +0 -104
  379. package/src/mobile/picker/index.ios.js +0 -96
  380. package/src/mobile/picker/styles.native.scss +0 -29
  381. package/src/mobile/segmented-control/index.native.js +0 -186
  382. package/src/mobile/segmented-control/style.native.scss +0 -99
  383. package/src/mobile/utils/alignments.native.js +0 -78
  384. package/src/mobile/utils/get-px-from-css-unit.native.js +0 -329
  385. package/src/mobile/utils/index.native.js +0 -12
  386. package/src/mobile/utils/test/get-px-from-css-unit.native.js +0 -172
  387. package/src/mobile/utils/test/index.native.js +0 -134
  388. package/src/mobile/utils/use-is-floating-keyboard.native.js +0 -31
  389. package/src/mobile/utils/use-unit-converter-to-mobile.native.js +0 -90
  390. package/src/notice/index.native.js +0 -123
  391. package/src/notice/list.native.js +0 -55
  392. package/src/notice/style.native.scss +0 -60
  393. package/src/panel/actions.native.js +0 -46
  394. package/src/panel/actions.native.scss +0 -12
  395. package/src/panel/body.native.js +0 -29
  396. package/src/panel/body.native.scss +0 -11
  397. package/src/panel/bottom-separator-cover.native.js +0 -27
  398. package/src/panel/bottom-separator-cover.native.scss +0 -9
  399. package/src/private-apis.native.js +0 -13
  400. package/src/query-controls/index.native.js +0 -103
  401. package/src/radio-control/index.native.js +0 -24
  402. package/src/range-control/index.native.js +0 -73
  403. package/src/resizable-box/index.native.js +0 -32
  404. package/src/resizable-box/style.native.scss +0 -14
  405. package/src/sandbox/index.native.js +0 -392
  406. package/src/sandbox/style.native.scss +0 -7
  407. package/src/search-control/index.native.js +0 -274
  408. package/src/search-control/platform-style.android.scss +0 -57
  409. package/src/search-control/platform-style.ios.scss +0 -43
  410. package/src/search-control/style.native.scss +0 -63
  411. package/src/select-control/index.native.js +0 -41
  412. package/src/slot-fill/index.native.js +0 -25
  413. package/src/spinner/index.native.js +0 -22
  414. package/src/spinner/style.native.scss +0 -4
  415. package/src/style-provider/index.native.js +0 -3
  416. package/src/text/index.native.js +0 -13
  417. package/src/text/styles/emotion-css.native.js +0 -6
  418. package/src/text/styles/font-family.native.js +0 -1
  419. package/src/text/styles/text-mixins.native.js +0 -163
  420. package/src/text-control/index.native.js +0 -41
  421. package/src/textarea-control/index.native.js +0 -26
  422. package/src/toggle-control/index.native.js +0 -31
  423. package/src/toolbar/toolbar/style.native.scss +0 -11
  424. package/src/toolbar/toolbar/toolbar-container.native.js +0 -8
  425. package/src/toolbar/toolbar-button/toolbar-button-container.native.js +0 -8
  426. package/src/toolbar/toolbar-group/style.native.scss +0 -10
  427. package/src/toolbar/toolbar-group/toolbar-group-collapsed.native.js +0 -36
  428. package/src/toolbar/toolbar-group/toolbar-group-container.native.js +0 -26
  429. package/src/toolbar/toolbar-item/index.native.js +0 -17
  430. package/src/tooltip/index.native.js +0 -292
  431. package/src/tooltip/style.native.scss +0 -39
  432. package/src/tooltip/test/index.native.js +0 -98
  433. package/src/unit-control/index.native.js +0 -202
  434. package/src/unit-control/style.native.scss +0 -19
@@ -6,7 +6,7 @@ import type { ForwardedRef } from 'react';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { forwardRef, useRef, useEffect, useCallback } from '@wordpress/element';
9
+ import { forwardRef, useRef, useEffect } from '@wordpress/element';
10
10
  import { useMergeRefs } from '@wordpress/compose';
11
11
  import { focus } from '@wordpress/dom';
12
12
 
@@ -29,6 +29,21 @@ function cycleValue( value: number, total: number, offset: number ) {
29
29
  return nextValue;
30
30
  }
31
31
 
32
+ function getFocusableContext(
33
+ container: HTMLElement,
34
+ target: Element,
35
+ tabbableOnly: boolean
36
+ ) {
37
+ const finder = tabbableOnly ? focus.tabbable : focus.focusable;
38
+ const focusables = finder.find( container );
39
+
40
+ const index = focusables.indexOf( target as HTMLElement );
41
+ if ( index > -1 ) {
42
+ return { index, target, focusables };
43
+ }
44
+ return null;
45
+ }
46
+
32
47
  function UnforwardedNavigableContainer(
33
48
  {
34
49
  children,
@@ -44,33 +59,6 @@ function UnforwardedNavigableContainer(
44
59
  ) {
45
60
  const containerRef = useRef< HTMLDivElement | null >( null );
46
61
 
47
- const getFocusableIndex = useCallback(
48
- ( focusables: Element[], target: Element ) => {
49
- return focusables.indexOf( target );
50
- },
51
- []
52
- );
53
-
54
- const getFocusableContext = useCallback(
55
- ( target: Element ) => {
56
- if ( ! containerRef.current ) {
57
- return null;
58
- }
59
-
60
- const finder = onlyBrowserTabstops
61
- ? focus.tabbable
62
- : focus.focusable;
63
- const focusables = finder.find( containerRef.current );
64
-
65
- const index = getFocusableIndex( focusables, target );
66
- if ( index > -1 && target ) {
67
- return { index, target, focusables };
68
- }
69
- return null;
70
- },
71
- [ onlyBrowserTabstops, getFocusableIndex ]
72
- );
73
-
74
62
  useEffect( () => {
75
63
  const container = containerRef.current;
76
64
  if ( ! container ) {
@@ -114,7 +102,11 @@ function UnforwardedNavigableContainer(
114
102
  return;
115
103
  }
116
104
 
117
- const context = getFocusableContext( activeElement );
105
+ const context = getFocusableContext(
106
+ container!,
107
+ activeElement,
108
+ !! onlyBrowserTabstops
109
+ );
118
110
  if ( ! context ) {
119
111
  return;
120
112
  }
@@ -151,7 +143,7 @@ function UnforwardedNavigableContainer(
151
143
  stopNavigationEvents,
152
144
  cycle,
153
145
  onNavigate,
154
- getFocusableContext,
146
+ onlyBrowserTabstops,
155
147
  ] );
156
148
 
157
149
  const mergedRef = useMergeRefs( [ containerRef, ref ] );
@@ -1,9 +1,9 @@
1
1
  @use "@wordpress/base-styles/variables" as *;
2
2
 
3
3
  .components-notice {
4
- --wp-components-notice-background-color: var(--wpds-color-bg-surface-info-weak);
4
+ --wp-components-notice-background-color: var(--wpds-color-background-surface-info-weak);
5
5
  --wp-components-notice-border-color: var(--wpds-color-stroke-surface-info);
6
- --wp-components-notice-text-color: var(--wpds-color-fg-content-info);
6
+ --wp-components-notice-text-color: var(--wpds-color-foreground-content-info);
7
7
 
8
8
  box-sizing: border-box;
9
9
  display: grid;
@@ -19,21 +19,21 @@
19
19
  line-height: var(--wpds-typography-line-height-sm);
20
20
 
21
21
  &.is-success {
22
- --wp-components-notice-background-color: var(--wpds-color-bg-surface-success-weak);
22
+ --wp-components-notice-background-color: var(--wpds-color-background-surface-success-weak);
23
23
  --wp-components-notice-border-color: var(--wpds-color-stroke-surface-success);
24
- --wp-components-notice-text-color: var(--wpds-color-fg-content-success);
24
+ --wp-components-notice-text-color: var(--wpds-color-foreground-content-success);
25
25
  }
26
26
 
27
27
  &.is-warning {
28
- --wp-components-notice-background-color: var(--wpds-color-bg-surface-warning-weak);
28
+ --wp-components-notice-background-color: var(--wpds-color-background-surface-warning-weak);
29
29
  --wp-components-notice-border-color: var(--wpds-color-stroke-surface-warning);
30
- --wp-components-notice-text-color: var(--wpds-color-fg-content-warning);
30
+ --wp-components-notice-text-color: var(--wpds-color-foreground-content-warning);
31
31
  }
32
32
 
33
33
  &.is-error {
34
- --wp-components-notice-background-color: var(--wpds-color-bg-surface-error-weak);
34
+ --wp-components-notice-background-color: var(--wpds-color-background-surface-error-weak);
35
35
  --wp-components-notice-border-color: var(--wpds-color-stroke-surface-error);
36
- --wp-components-notice-text-color: var(--wpds-color-fg-content-error);
36
+ --wp-components-notice-text-color: var(--wpds-color-foreground-content-error);
37
37
  }
38
38
  }
39
39
 
@@ -46,9 +46,7 @@
46
46
  // consistent across variants, matching `@wordpress/ui` Notice (`.title` /
47
47
  // `.description` always use `--text-vertical-padding` whether or not `CloseIcon`
48
48
  // is rendered).
49
- // TODO: Replace `$button-size-small` with a WPDS size token once size tokens
50
- // land in `@wordpress/theme`.
51
- padding-block: calc((#{$button-size-small} - 1lh) / 2);
49
+ padding-block: calc((var(--wpds-dimension-size-sm) - 1lh) / 2);
52
50
  }
53
51
 
54
52
  .components-notice__actions {
@@ -65,13 +63,13 @@
65
63
  .components-notice__dismiss {
66
64
  grid-column: 2;
67
65
  grid-row: 1;
68
- color: var(--wpds-color-fg-interactive-neutral);
66
+ color: var(--wpds-color-foreground-interactive-neutral);
69
67
  margin-inline-start: var(--wpds-dimension-gap-xs);
70
68
 
71
69
  &:not(:disabled):not([aria-disabled="true"]):not(.is-secondary):hover,
72
70
  &:not(:disabled):not([aria-disabled="true"]):not(.is-secondary):active,
73
71
  &:not(:disabled):not([aria-disabled="true"]):focus {
74
- color: var(--wpds-color-fg-interactive-neutral-active);
72
+ color: var(--wpds-color-foreground-interactive-neutral-active);
75
73
  background-color: transparent;
76
74
  }
77
75
 
@@ -2,6 +2,8 @@
2
2
 
3
3
  Panels expand and collapse multiple sections of content.
4
4
 
5
+ The `Panel` family is intended for the block inspector sidebar. For collapsible sections elsewhere, use the [`CollapsibleCard`](https://wordpress.github.io/gutenberg/?path=/docs/design-system-components-collapsiblecard--docs) component instead.
6
+
5
7
  ![](https://make.wordpress.org/design/files/2019/03/panel.png)
6
8
 
7
9
  ## Design guidelines
@@ -17,7 +17,6 @@ import PanelBody from '../body';
17
17
  import InputControl from '../../input-control';
18
18
 
19
19
  const meta: Meta< typeof Panel > = {
20
- tags: [ 'manifest' ],
21
20
  title: 'Components/Containers/Panel',
22
21
  id: 'components-panel',
23
22
  component: Panel,
@@ -30,7 +29,8 @@ const meta: Meta< typeof Panel > = {
30
29
  docs: { canvas: { sourceState: 'shown' } },
31
30
  componentStatus: {
32
31
  status: 'recommended',
33
- whereUsed: 'global',
32
+ whereUsed: 'editor',
33
+ notes: 'Intended for the block inspector sidebar. For collapsible sections elsewhere, use `CollapsibleCard` from `@wordpress/ui` instead.',
34
34
  },
35
35
  },
36
36
  };
@@ -40,7 +40,7 @@
40
40
  justify-content: space-between;
41
41
  align-items: center;
42
42
  padding: 0 $grid-unit-20;
43
- border-bottom: $border-width solid $gray-300;
43
+ border-bottom: $border-width solid var(--wpds-color-stroke-surface-neutral);
44
44
 
45
45
  // This helps ensure the correct panel height, including the border, avoiding subpixel rounding issues.
46
46
  box-sizing: content-box;
@@ -128,7 +128,7 @@ Show the popover fullscreen on mobile viewports.
128
128
 
129
129
  Specifies whether the popover should flip across its axis if there isn't space for it in the normal placement.
130
130
 
131
- When the using a 'top' placement, the popover will switch to a 'bottom' placement. When using a 'left' placement, the popover will switch to a `right' placement.
131
+ When using a 'top' placement, the popover will switch to a 'bottom' placement. When using a 'left' placement, the popover will switch to a 'right' placement.
132
132
 
133
133
  The popover will retain its alignment of 'start' or 'end' when flipping.
134
134
 
@@ -56,7 +56,7 @@
56
56
 
57
57
  &:disabled {
58
58
  background: $components-color-gray-100;
59
- border: 1px solid $components-color-gray-300;
59
+ border: 1px solid var(--wpds-color-stroke-interactive-neutral-disabled);
60
60
  opacity: 1; // Override style from wp-admin forms.css.
61
61
 
62
62
  &:checked::before {
@@ -17,6 +17,23 @@ import type { SandBoxProps } from './types';
17
17
 
18
18
  type SandBoxContentProps = Omit< SandBoxProps, 'allowSameOrigin' >;
19
19
 
20
+ /**
21
+ * Matches CSS viewport-relative length values such as `100vh`, `50.5vw`,
22
+ * and `.5dvh`. Used to strip viewport units from user-supplied HTML inside
23
+ * the sandbox iframe, because those units are relative to the iframe's
24
+ * own size and would create a measurement feedback loop with the
25
+ * resize observer.
26
+ *
27
+ * Exported for tests. NOTE: an identical regex literal is duplicated
28
+ * inside `observeAndResizeJS` below because that function is serialized
29
+ * via `.toString()` and embedded into the iframe's `srcdoc` — it has no
30
+ * access to this module's scope at runtime. If you change one, change
31
+ * the other; the "is embedded in the sandbox iframe srcdoc" test
32
+ * guards against drift.
33
+ */
34
+ export const VIEWPORT_UNIT_VALUE_REGEX =
35
+ /^\d*\.?\d+(?:vw|vh|svw|lvw|dvw|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax)$/;
36
+
20
37
  const observeAndResizeJS = function () {
21
38
  const { MutationObserver } = window;
22
39
 
@@ -58,7 +75,7 @@ const observeAndResizeJS = function () {
58
75
  [ 'width', 'height', 'minHeight', 'maxHeight' ] as const
59
76
  ).forEach( function ( style ) {
60
77
  if (
61
- /^\\d+(vw|vh|svw|lvw|dvw|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax)$/.test(
78
+ /^\d*\.?\d+(?:vw|vh|svw|lvw|dvw|svh|lvh|dvh|vi|svi|lvi|dvi|vb|svb|lvb|dvb|vmin|svmin|lvmin|dvmin|vmax|svmax|lvmax|dvmax)$/.test(
62
79
  ruleOrNode.style[ style ]
63
80
  )
64
81
  ) {
@@ -11,7 +11,7 @@ import { useState } from '@wordpress/element';
11
11
  /**
12
12
  * Internal dependencies
13
13
  */
14
- import SandBox from '..';
14
+ import SandBox, { VIEWPORT_UNIT_VALUE_REGEX } from '..';
15
15
 
16
16
  describe( 'SandBox', () => {
17
17
  const TestWrapper = () => {
@@ -109,4 +109,47 @@ describe( 'SandBox', () => {
109
109
  expect.stringContaining( 'https://another.super.embed' )
110
110
  );
111
111
  } );
112
+
113
+ describe( 'VIEWPORT_UNIT_VALUE_REGEX', () => {
114
+ it.each( [
115
+ '100vh',
116
+ '50vw',
117
+ '0vh',
118
+ '50.5vh',
119
+ '.5vh',
120
+ '100dvh',
121
+ '50svw',
122
+ '1lvi',
123
+ '100vmin',
124
+ '100vmax',
125
+ ] )( 'matches viewport unit value %s', ( value ) => {
126
+ expect( VIEWPORT_UNIT_VALUE_REGEX.test( value ) ).toBe( true );
127
+ } );
128
+
129
+ it.each( [
130
+ '100px',
131
+ '50%',
132
+ '100',
133
+ 'vh',
134
+ '.vh',
135
+ 'calc(100vh - 10px)',
136
+ '100 vh',
137
+ '',
138
+ ] )( 'does not match %s', ( value ) => {
139
+ expect( VIEWPORT_UNIT_VALUE_REGEX.test( value ) ).toBe( false );
140
+ } );
141
+
142
+ it( 'is embedded in the sandbox iframe srcdoc', () => {
143
+ // Guards against drift between the exported constant and
144
+ // the copy inlined into `observeAndResizeJS`, which is
145
+ // serialized via `.toString()` into the iframe srcdoc and
146
+ // cannot reference module-scope values at runtime.
147
+ render( <SandBox html="<p>x</p>" title="Regex Sync Test" /> );
148
+ const iframe =
149
+ screen.getByTitle< HTMLIFrameElement >( 'Regex Sync Test' );
150
+ const srcDoc = iframe.getAttribute( 'srcdoc' ) ?? '';
151
+
152
+ expect( srcDoc ).toContain( VIEWPORT_UNIT_VALUE_REGEX.source );
153
+ } );
154
+ } );
112
155
  } );
@@ -4,7 +4,7 @@
4
4
  This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.
5
5
  </div>
6
6
 
7
- `Scrollable` is a layout component that content in a scrollable container.
7
+ `Scrollable` is a layout component that puts content in a scrollable container.
8
8
 
9
9
  ## Usage
10
10
 
@@ -35,6 +35,7 @@ const commonPathProps = css`
35
35
  stroke-width: 1.5px;
36
36
  `;
37
37
 
38
+ // TODO: should use the `stroke-surface-neutral` WPDS token when refactored to SCSS modules
38
39
  export const SpinnerTrack = styled.circle`
39
40
  ${ commonPathProps };
40
41
  stroke: ${ COLORS.gray[ 300 ] };
@@ -21,15 +21,15 @@
21
21
  padding: 3px var(--wpds-dimension-padding-lg); // Use padding to offset the is-active border, this benefits Windows High Contrast mode
22
22
  margin-left: 0;
23
23
  font-weight: var(--wpds-typography-font-weight-regular);
24
- color: var(--wpds-color-fg-interactive-neutral);
24
+ color: var(--wpds-color-foreground-interactive-neutral);
25
25
 
26
26
  &:disabled,
27
27
  &[aria-disabled="true"] {
28
- color: var(--wpds-color-fg-interactive-neutral-disabled);
28
+ color: var(--wpds-color-foreground-interactive-neutral-disabled);
29
29
  }
30
30
 
31
31
  &:not(:disabled, [aria-disabled="true"]):is(:hover, :focus-visible) {
32
- color: var(--wpds-color-fg-interactive-neutral-active);
32
+ color: var(--wpds-color-foreground-interactive-neutral-active);
33
33
  }
34
34
 
35
35
  &:focus:not(:disabled) {
@@ -87,7 +87,7 @@
87
87
  &:focus-visible::before {
88
88
  box-shadow:
89
89
  0 0 0 var(--wpds-border-width-focus)
90
- var(--wpds-color-stroke-focus-brand);
90
+ var(--wpds-color-stroke-focus);
91
91
 
92
92
  // Windows high contrast mode.
93
93
  outline: 2px solid transparent;
@@ -101,7 +101,7 @@
101
101
  }
102
102
 
103
103
  &.is-active {
104
- background: var(--wpds-color-bg-interactive-neutral-weak-active);
104
+ background: var(--wpds-color-background-interactive-neutral-weak-active);
105
105
  }
106
106
  }
107
107
  }
@@ -115,7 +115,7 @@
115
115
  &:focus-visible {
116
116
  box-shadow:
117
117
  0 0 0 var(--wpds-border-width-focus)
118
- var(--wpds-color-stroke-focus-brand);
118
+ var(--wpds-color-stroke-focus);
119
119
 
120
120
  // Windows high contrast mode.
121
121
  outline: 2px solid transparent;
@@ -7,7 +7,7 @@ import * as Ariakit from '@ariakit/react';
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { useInstanceId } from '@wordpress/compose';
10
- import { useEffect, useMemo } from '@wordpress/element';
10
+ import { useMemo } from '@wordpress/element';
11
11
  import { isRTL } from '@wordpress/i18n';
12
12
 
13
13
  /**
@@ -84,31 +84,6 @@ export const Tabs = Object.assign(
84
84
  rtl: isRTL(),
85
85
  } );
86
86
 
87
- const { items, activeId } = Ariakit.useStoreState( store );
88
- const { setActiveId } = store;
89
-
90
- useEffect( () => {
91
- requestAnimationFrame( () => {
92
- const focusedElement =
93
- items?.[ 0 ]?.element?.ownerDocument.activeElement;
94
-
95
- if (
96
- ! focusedElement ||
97
- ! items.some( ( item ) => focusedElement === item.element )
98
- ) {
99
- return; // Return early if no tabs are focused.
100
- }
101
-
102
- // If, after ariakit re-computes the active tab, that tab doesn't match
103
- // the currently focused tab, then we force an update to ariakit to avoid
104
- // any mismatches, especially when navigating to previous/next tab with
105
- // arrow keys.
106
- if ( activeId !== focusedElement.id ) {
107
- setActiveId( focusedElement.id );
108
- }
109
- } );
110
- }, [ activeId, items, setActiveId ] );
111
-
112
87
  const contextValue = useMemo(
113
88
  () => ( {
114
89
  store,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import * as Ariakit from '@ariakit/react';
4
+ import { useStoreState } from '@ariakit/react';
5
5
  import clsx from 'clsx';
6
6
 
7
7
  /**
@@ -73,15 +73,14 @@ export const TabList = forwardRef<
73
73
  >( function TabList( { children, ...otherProps }, ref ) {
74
74
  const { store } = useTabsContext() ?? {};
75
75
 
76
- const selectedId = Ariakit.useStoreState( store, 'selectedId' );
77
- const activeId = Ariakit.useStoreState( store, 'activeId' );
78
- const selectOnMove = Ariakit.useStoreState( store, 'selectOnMove' );
79
- const items = Ariakit.useStoreState( store, 'items' );
76
+ const selectedId = useStoreState( store, 'selectedId' );
77
+ const selectOnMove = useStoreState( store, 'selectOnMove' );
78
+ const items = useStoreState( store, 'items' );
80
79
  const [ parent, setParent ] = useState< HTMLElement >();
81
80
  const refs = useMergeRefs( [ ref, setParent ] );
82
81
 
83
82
  const selectedItem = store?.item( selectedId );
84
- const renderedItems = Ariakit.useStoreState( store, 'renderedItems' );
83
+ const renderedItems = useStoreState( store, 'renderedItems' );
85
84
 
86
85
  const selectedItemIndex =
87
86
  renderedItems && selectedItem
@@ -110,20 +109,6 @@ export const TabList = forwardRef<
110
109
  // Make sure selected tab is scrolled into view.
111
110
  useScrollRectIntoView( parent, selectedRect );
112
111
 
113
- const onBlur = () => {
114
- if ( ! selectOnMove ) {
115
- return;
116
- }
117
-
118
- // When automatic tab selection is on, make sure that the active tab is up
119
- // to date with the selected tab when leaving the tablist. This makes sure
120
- // that the selected tab will receive keyboard focus when tabbing back into
121
- // the tablist.
122
- if ( selectedId !== activeId ) {
123
- store?.setActiveId( selectedId );
124
- }
125
- };
126
-
127
112
  if ( ! store ) {
128
113
  warning( '`Tabs.TabList` must be wrapped in a `Tabs` component.' );
129
114
  return null;
@@ -141,7 +126,6 @@ export const TabList = forwardRef<
141
126
  tabIndex={ props.tabIndex ?? -1 }
142
127
  />
143
128
  ) }
144
- onBlur={ onBlur }
145
129
  data-select-on-move={ selectOnMove ? 'true' : 'false' }
146
130
  { ...otherProps }
147
131
  className={ clsx(
@@ -1465,28 +1465,24 @@ describe( 'Tabs', () => {
1465
1465
  />
1466
1466
  );
1467
1467
 
1468
- // When the selected tab is changed, focus should not be changed.
1468
+ // When the selected tab is changed by the controlling
1469
+ // component while the tablist holds focus, focus moves to
1470
+ // the newly selected tab (Gamma).
1469
1471
  expect(
1470
1472
  screen.getByRole( 'tab', {
1471
1473
  selected: true,
1472
1474
  name: 'Gamma',
1473
1475
  } )
1474
- ).toBeVisible();
1475
- expect(
1476
- screen.getByRole( 'tab', {
1477
- selected: false,
1478
- name: 'Beta',
1479
- } )
1480
1476
  ).toHaveFocus();
1481
1477
 
1482
- // Arrow left should move focus to the previous tab (alpha).
1483
- // The alpha tab should be always focused, and should be selected
1478
+ // Arrow left should move focus to the previous tab (Beta).
1479
+ // Beta should always be focused, and should be selected
1484
1480
  // when the `selectOnMove` prop is set to `true`.
1485
1481
  await press.ArrowLeft();
1486
1482
  expect(
1487
1483
  screen.getByRole( 'tab', {
1488
1484
  selected: selectOnMove,
1489
- name: 'Alpha',
1485
+ name: 'Beta',
1490
1486
  } )
1491
1487
  ).toHaveFocus();
1492
1488
  } );
@@ -1530,18 +1526,15 @@ describe( 'Tabs', () => {
1530
1526
  </>
1531
1527
  );
1532
1528
 
1533
- // When the selected tab is changed, it should not automatically receive focus.
1529
+ // When the selected tab is changed by the controlling
1530
+ // component while the tablist holds focus, focus moves to
1531
+ // the newly selected tab (Gamma), which also becomes the
1532
+ // active tab.
1534
1533
  expect(
1535
1534
  screen.getByRole( 'tab', {
1536
1535
  selected: true,
1537
1536
  name: 'Gamma',
1538
1537
  } )
1539
- ).toBeVisible();
1540
- expect(
1541
- screen.getByRole( 'tab', {
1542
- selected: false,
1543
- name: 'Beta',
1544
- } )
1545
1538
  ).toHaveFocus();
1546
1539
 
1547
1540
  // Press shift+tab, move focus to the button before Tabs
@@ -1550,18 +1543,14 @@ describe( 'Tabs', () => {
1550
1543
  screen.getByRole( 'button', { name: 'Focus me' } )
1551
1544
  ).toHaveFocus();
1552
1545
 
1553
- // Press tab, move focus back to the tablist
1546
+ // Press tab, move focus back to the tablist. Because the
1547
+ // newly selected tab became the active tab, focus returns
1548
+ // to Gamma regardless of `selectOnMove`.
1554
1549
  await press.Tab();
1555
-
1556
- const betaTab = screen.getByRole( 'tab', {
1557
- name: 'Beta',
1558
- } );
1559
- const gammaTab = screen.getByRole( 'tab', {
1560
- name: 'Gamma',
1561
- } );
1562
-
1563
1550
  expect(
1564
- selectOnMove ? gammaTab : betaTab
1551
+ screen.getByRole( 'tab', {
1552
+ name: 'Gamma',
1553
+ } )
1565
1554
  ).toHaveFocus();
1566
1555
  } );
1567
1556
  }
@@ -6,7 +6,7 @@ Snapshot Diff:
6
6
  + Base styles
7
7
 
8
8
  @@ -3,8 +3,9 @@
9
- "color": "var(--wp-components-color-foreground, #1e1e1e)",
9
+ "color": "var(--wp-components-color-foreground, var(--wpds-color-foreground-content-neutral, #1e1e1e))",
10
10
  "font-size": "calc((13 / 13) * 13px)",
11
11
  "font-weight": "normal",
12
12
  "line-height": "1.4",
@@ -19,7 +19,7 @@ Snapshot Diff:
19
19
 
20
20
  exports[`Text should render highlighted words with highlightCaseSensitive 1`] = `
21
21
  .emotion-0 {
22
- color: var(--wp-components-color-foreground, #1e1e1e);
22
+ color: var(--wp-components-color-foreground, var(--wpds-color-foreground-content-neutral, #1e1e1e));
23
23
  line-height: 1.4;
24
24
  margin: 0;
25
25
  text-wrap: pretty;
@@ -51,7 +51,7 @@ exports[`Text should render highlighted words with highlightCaseSensitive 1`] =
51
51
 
52
52
  exports[`Text snapshot tests should render correctly 1`] = `
53
53
  .emotion-0 {
54
- color: var(--wp-components-color-foreground, #1e1e1e);
54
+ color: var(--wp-components-color-foreground, var(--wpds-color-foreground-content-neutral, #1e1e1e));
55
55
  line-height: 1.4;
56
56
  margin: 0;
57
57
  text-wrap: pretty;