@wordpress/components 35.0.1 → 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 (264) hide show
  1. package/CHANGELOG.md +27 -0
  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.map +1 -1
  19. package/build/color-picker/component.cjs.map +1 -1
  20. package/build/date-time/utils.cjs.map +1 -1
  21. package/build/draggable/index.cjs.map +1 -1
  22. package/build/external-link/index.cjs +1 -1
  23. package/build/external-link/index.cjs.map +1 -1
  24. package/build/menu/popover.cjs.map +1 -1
  25. package/build/menu/styles.cjs +17 -17
  26. package/build/menu/styles.cjs.map +2 -2
  27. package/build/modal/index.cjs.map +1 -1
  28. package/build/modal/use-modal-exit-animation.cjs +37 -52
  29. package/build/modal/use-modal-exit-animation.cjs.map +2 -2
  30. package/build/palette-edit/index.cjs +1 -1
  31. package/build/progress-bar/index.cjs +1 -1
  32. package/build/progress-bar/index.cjs.map +2 -2
  33. package/build/query-controls/index.cjs +2 -2
  34. package/build/query-controls/index.cjs.map +2 -2
  35. package/build/range-control/index.cjs.map +1 -1
  36. package/build/sandbox/index.cjs +7 -1
  37. package/build/sandbox/index.cjs.map +2 -2
  38. package/build/snackbar/index.cjs +1 -1
  39. package/build/spinner/styles.cjs +4 -4
  40. package/build/spinner/styles.cjs.map +2 -2
  41. package/build/tabs/index.cjs +0 -18
  42. package/build/tabs/index.cjs.map +2 -2
  43. package/build/tabs/tablist.cjs +5 -15
  44. package/build/tabs/tablist.cjs.map +2 -2
  45. package/build/tools-panel/styles.cjs +13 -13
  46. package/build/tools-panel/styles.cjs.map +2 -2
  47. package/build/tools-panel/tools-panel/hook.cjs.map +1 -1
  48. package/build/tree-select/index.cjs +1 -1
  49. package/build/tree-select/index.cjs.map +1 -1
  50. package/build/truncate/utils.cjs +1 -1
  51. package/build/truncate/utils.cjs.map +1 -1
  52. package/build/utils/colors-values.cjs +12 -12
  53. package/build/utils/colors-values.cjs.map +2 -2
  54. package/build/utils/config-values.cjs +2 -2
  55. package/build/utils/config-values.cjs.map +2 -2
  56. package/build/utils/dropdown-motion.cjs.map +2 -2
  57. package/build/utils/strings.cjs.map +1 -1
  58. package/build-module/alignment-matrix-control/cell.mjs +1 -1
  59. package/build-module/alignment-matrix-control/cell.mjs.map +2 -2
  60. package/build-module/alignment-matrix-control/index.mjs +1 -1
  61. package/build-module/alignment-matrix-control/index.mjs.map +2 -2
  62. package/build-module/angle-picker-control/angle-circle.mjs +1 -1
  63. package/build-module/angle-picker-control/angle-circle.mjs.map +2 -2
  64. package/build-module/angle-picker-control/index.mjs +2 -2
  65. package/build-module/autocomplete/get-autocomplete-match.mjs.map +1 -1
  66. package/build-module/autocomplete/index.mjs.map +1 -1
  67. package/build-module/base-control/styles/base-control-styles.mjs +6 -6
  68. package/build-module/base-control/styles/base-control-styles.mjs.map +2 -2
  69. package/build-module/border-control/styles.mjs +17 -14
  70. package/build-module/border-control/styles.mjs.map +2 -2
  71. package/build-module/button/index.mjs +2 -5
  72. package/build-module/button/index.mjs.map +2 -2
  73. package/build-module/card/card-divider/hook.mjs.map +2 -2
  74. package/build-module/color-palette/index.mjs.map +1 -1
  75. package/build-module/color-picker/component.mjs.map +1 -1
  76. package/build-module/date-time/utils.mjs.map +1 -1
  77. package/build-module/draggable/index.mjs.map +1 -1
  78. package/build-module/external-link/index.mjs +1 -1
  79. package/build-module/external-link/index.mjs.map +1 -1
  80. package/build-module/menu/popover.mjs.map +1 -1
  81. package/build-module/menu/styles.mjs +17 -17
  82. package/build-module/menu/styles.mjs.map +2 -2
  83. package/build-module/modal/index.mjs.map +1 -1
  84. package/build-module/modal/use-modal-exit-animation.mjs +37 -52
  85. package/build-module/modal/use-modal-exit-animation.mjs.map +2 -2
  86. package/build-module/palette-edit/index.mjs +1 -1
  87. package/build-module/progress-bar/index.mjs +1 -1
  88. package/build-module/progress-bar/index.mjs.map +2 -2
  89. package/build-module/query-controls/index.mjs +2 -2
  90. package/build-module/query-controls/index.mjs.map +2 -2
  91. package/build-module/range-control/index.mjs.map +1 -1
  92. package/build-module/sandbox/index.mjs +3 -1
  93. package/build-module/sandbox/index.mjs.map +2 -2
  94. package/build-module/snackbar/index.mjs +1 -1
  95. package/build-module/spinner/styles.mjs +4 -4
  96. package/build-module/spinner/styles.mjs.map +2 -2
  97. package/build-module/tabs/index.mjs +1 -19
  98. package/build-module/tabs/index.mjs.map +2 -2
  99. package/build-module/tabs/tablist.mjs +5 -15
  100. package/build-module/tabs/tablist.mjs.map +2 -2
  101. package/build-module/tools-panel/styles.mjs +13 -13
  102. package/build-module/tools-panel/styles.mjs.map +2 -2
  103. package/build-module/tools-panel/tools-panel/hook.mjs.map +1 -1
  104. package/build-module/tree-select/index.mjs +1 -1
  105. package/build-module/tree-select/index.mjs.map +1 -1
  106. package/build-module/truncate/utils.mjs +1 -1
  107. package/build-module/truncate/utils.mjs.map +1 -1
  108. package/build-module/utils/colors-values.mjs +12 -12
  109. package/build-module/utils/colors-values.mjs.map +2 -2
  110. package/build-module/utils/config-values.mjs +2 -2
  111. package/build-module/utils/config-values.mjs.map +2 -2
  112. package/build-module/utils/dropdown-motion.mjs.map +2 -2
  113. package/build-module/utils/strings.mjs.map +1 -1
  114. package/build-style/style-rtl.css +82 -82
  115. package/build-style/style.css +82 -82
  116. package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
  117. package/build-types/border-control/styles.d.ts.map +1 -1
  118. package/build-types/button/index.d.ts +0 -2
  119. package/build-types/button/index.d.ts.map +1 -1
  120. package/build-types/card/card-divider/hook.d.ts +1 -274
  121. package/build-types/card/card-divider/hook.d.ts.map +1 -1
  122. package/build-types/composite/stories/index.story.d.ts.map +1 -1
  123. package/build-types/confirm-dialog/stories/index.story.d.ts.map +1 -1
  124. package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
  125. package/build-types/menu/styles.d.ts.map +1 -1
  126. package/build-types/menu/types.d.ts +2 -2
  127. package/build-types/sandbox/index.d.ts +15 -0
  128. package/build-types/sandbox/index.d.ts.map +1 -1
  129. package/build-types/spinner/styles.d.ts.map +1 -1
  130. package/build-types/tabs/index.d.ts.map +1 -1
  131. package/build-types/tabs/tablist.d.ts.map +1 -1
  132. package/build-types/tools-panel/styles.d.ts.map +1 -1
  133. package/build-types/utils/colors-values.d.ts.map +1 -1
  134. package/build-types/utils/dropdown-motion.d.ts.map +1 -1
  135. package/build-types/validated-form-controls/components/combobox-control.d.ts +1 -1
  136. package/package.json +34 -28
  137. package/src/angle-picker-control/angle-circle.tsx +3 -3
  138. package/src/base-control/README.md +2 -2
  139. package/src/base-control/styles/base-control-styles.ts +1 -0
  140. package/src/border-control/styles.ts +1 -0
  141. package/src/button/index.tsx +2 -4
  142. package/src/button/style.scss +3 -3
  143. package/src/card/card-divider/hook.ts +5 -1
  144. package/src/card/test/__snapshots__/index.tsx.snap +3 -3
  145. package/src/composite/stories/index.story.tsx +5 -0
  146. package/src/confirm-dialog/stories/index.story.tsx +1 -0
  147. package/src/dropdown/stories/index.story.tsx +5 -0
  148. package/src/dropdown-menu/style.scss +1 -1
  149. package/src/external-link/style.scss +4 -4
  150. package/src/form-toggle/style.scss +1 -1
  151. package/src/heading/test/__snapshots__/index.tsx.snap +4 -4
  152. package/src/menu/README.md +2 -2
  153. package/src/menu/styles.ts +2 -0
  154. package/src/menu/test/index.tsx +120 -87
  155. package/src/menu/types.ts +2 -2
  156. package/src/modal/style.scss +1 -1
  157. package/src/modal/use-modal-exit-animation.ts +2 -2
  158. package/src/notice/style.scss +11 -13
  159. package/src/panel/README.md +2 -0
  160. package/src/panel/stories/index.story.tsx +2 -2
  161. package/src/panel/style.scss +1 -1
  162. package/src/radio-control/style.scss +1 -1
  163. package/src/sandbox/index.tsx +18 -1
  164. package/src/sandbox/test/index.tsx +44 -1
  165. package/src/spinner/styles.ts +1 -0
  166. package/src/tab-panel/style.scss +6 -6
  167. package/src/tabs/index.tsx +1 -26
  168. package/src/tabs/tablist.tsx +5 -21
  169. package/src/tabs/test/index.tsx +16 -27
  170. package/src/text/test/__snapshots__/index.tsx.snap +3 -3
  171. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +34 -26
  172. package/src/toolbar/toolbar-group/style.scss +2 -2
  173. package/src/tools-panel/styles.ts +1 -1
  174. package/src/tooltip/stories/index.story.tsx +2 -2
  175. package/src/utils/colors-values.js +36 -16
  176. package/src/utils/config-values.js +2 -2
  177. package/src/utils/dropdown-motion.ts +6 -4
  178. package/src/utils/theme-variables.scss +18 -13
  179. package/build-types/card/context.d.ts +0 -3
  180. package/build-types/card/context.d.ts.map +0 -1
  181. package/build-types/date-time/date/index.d.ts +0 -23
  182. package/build-types/date-time/date/index.d.ts.map +0 -1
  183. package/build-types/date-time/date/styles.d.ts +0 -45
  184. package/build-types/date-time/date/styles.d.ts.map +0 -1
  185. package/build-types/date-time/date/test/index.d.ts +0 -2
  186. package/build-types/date-time/date/test/index.d.ts.map +0 -1
  187. package/build-types/date-time/date/test/use-lilius.d.ts +0 -2
  188. package/build-types/date-time/date/test/use-lilius.d.ts.map +0 -1
  189. package/build-types/date-time/date/use-lilius/index.d.ts +0 -169
  190. package/build-types/date-time/date/use-lilius/index.d.ts.map +0 -1
  191. package/build-types/date-time/time/index.d.ts +0 -27
  192. package/build-types/date-time/time/index.d.ts.map +0 -1
  193. package/build-types/date-time/time/styles.d.ts +0 -93
  194. package/build-types/date-time/time/styles.d.ts.map +0 -1
  195. package/build-types/date-time/time/test/index.d.ts +0 -2
  196. package/build-types/date-time/time/test/index.d.ts.map +0 -1
  197. package/build-types/date-time/time/time-input/index.d.ts +0 -4
  198. package/build-types/date-time/time/time-input/index.d.ts.map +0 -1
  199. package/build-types/date-time/time/time-input/test/index.d.ts +0 -2
  200. package/build-types/date-time/time/time-input/test/index.d.ts.map +0 -1
  201. package/build-types/date-time/time/timezone.d.ts +0 -7
  202. package/build-types/date-time/time/timezone.d.ts.map +0 -1
  203. package/build-types/mobile/image/constants.d.ts +0 -5
  204. package/build-types/mobile/image/constants.d.ts.map +0 -1
  205. package/build-types/navigation/back-button/index.d.ts +0 -7
  206. package/build-types/navigation/back-button/index.d.ts.map +0 -1
  207. package/build-types/navigation/constants.d.ts +0 -3
  208. package/build-types/navigation/constants.d.ts.map +0 -1
  209. package/build-types/navigation/context.d.ts +0 -4
  210. package/build-types/navigation/context.d.ts.map +0 -1
  211. package/build-types/navigation/group/context.d.ts +0 -7
  212. package/build-types/navigation/group/context.d.ts.map +0 -1
  213. package/build-types/navigation/group/index.d.ts +0 -7
  214. package/build-types/navigation/group/index.d.ts.map +0 -1
  215. package/build-types/navigation/index.d.ts +0 -46
  216. package/build-types/navigation/index.d.ts.map +0 -1
  217. package/build-types/navigation/item/base-content.d.ts +0 -3
  218. package/build-types/navigation/item/base-content.d.ts.map +0 -1
  219. package/build-types/navigation/item/base.d.ts +0 -3
  220. package/build-types/navigation/item/base.d.ts.map +0 -1
  221. package/build-types/navigation/item/index.d.ts +0 -7
  222. package/build-types/navigation/item/index.d.ts.map +0 -1
  223. package/build-types/navigation/item/use-navigation-tree-item.d.ts +0 -3
  224. package/build-types/navigation/item/use-navigation-tree-item.d.ts.map +0 -1
  225. package/build-types/navigation/menu/context.d.ts +0 -7
  226. package/build-types/navigation/menu/context.d.ts.map +0 -1
  227. package/build-types/navigation/menu/index.d.ts +0 -7
  228. package/build-types/navigation/menu/index.d.ts.map +0 -1
  229. package/build-types/navigation/menu/menu-title-search.d.ts +0 -3
  230. package/build-types/navigation/menu/menu-title-search.d.ts.map +0 -1
  231. package/build-types/navigation/menu/menu-title.d.ts +0 -3
  232. package/build-types/navigation/menu/menu-title.d.ts.map +0 -1
  233. package/build-types/navigation/menu/search-no-results-found.d.ts +0 -3
  234. package/build-types/navigation/menu/search-no-results-found.d.ts.map +0 -1
  235. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts +0 -3
  236. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts.map +0 -1
  237. package/build-types/navigation/stories/index.story.d.ts +0 -23
  238. package/build-types/navigation/stories/index.story.d.ts.map +0 -1
  239. package/build-types/navigation/stories/utils/controlled-state.d.ts +0 -7
  240. package/build-types/navigation/stories/utils/controlled-state.d.ts.map +0 -1
  241. package/build-types/navigation/stories/utils/default.d.ts +0 -10
  242. package/build-types/navigation/stories/utils/default.d.ts.map +0 -1
  243. package/build-types/navigation/stories/utils/group.d.ts +0 -10
  244. package/build-types/navigation/stories/utils/group.d.ts.map +0 -1
  245. package/build-types/navigation/stories/utils/hide-if-empty.d.ts +0 -10
  246. package/build-types/navigation/stories/utils/hide-if-empty.d.ts.map +0 -1
  247. package/build-types/navigation/stories/utils/more-examples.d.ts +0 -10
  248. package/build-types/navigation/stories/utils/more-examples.d.ts.map +0 -1
  249. package/build-types/navigation/stories/utils/search.d.ts +0 -10
  250. package/build-types/navigation/stories/utils/search.d.ts.map +0 -1
  251. package/build-types/navigation/styles/navigation-styles.d.ts +0 -55
  252. package/build-types/navigation/styles/navigation-styles.d.ts.map +0 -1
  253. package/build-types/navigation/test/index.d.ts +0 -2
  254. package/build-types/navigation/test/index.d.ts.map +0 -1
  255. package/build-types/navigation/types.d.ts +0 -266
  256. package/build-types/navigation/types.d.ts.map +0 -1
  257. package/build-types/navigation/use-create-navigation-tree.d.ts +0 -15
  258. package/build-types/navigation/use-create-navigation-tree.d.ts.map +0 -1
  259. package/build-types/navigation/use-navigation-tree-nodes.d.ts +0 -10
  260. package/build-types/navigation/use-navigation-tree-nodes.d.ts.map +0 -1
  261. package/build-types/navigation/utils.d.ts +0 -3
  262. package/build-types/navigation/utils.d.ts.map +0 -1
  263. package/build-types/visually-hidden/test/index.d.ts +0 -2
  264. package/build-types/visually-hidden/test/index.d.ts.map +0 -1
@@ -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;
@@ -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
  } );
@@ -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;
@@ -28,7 +28,7 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
28
28
  }
29
29
 
30
30
  .emotion-6 {
31
- background: var(--wp-components-color-background, #fff);
31
+ background: var(--wp-components-color-background, var(--wpds-color-background-surface-neutral-strong, #fff));
32
32
  border: 1px solid transparent;
33
33
  border-radius: 2px;
34
34
  display: -webkit-inline-box;
@@ -62,8 +62,8 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
62
62
  content: '';
63
63
  position: absolute;
64
64
  pointer-events: none;
65
- background: var(--wp-components-color-gray-100, #f0f0f0);
66
- border: 1px solid var(--wp-components-color-gray-700, #757575);
65
+ background: var(--wp-components-color-gray-100, var(--wpds-color-background-surface-neutral, #fcfcfc));
66
+ border: 1px solid var(--wp-components-color-gray-700, var(--wpds-color-foreground-content-neutral-weak, #707070));
67
67
  outline: 2px solid transparent;
68
68
  outline-offset: -3px;
69
69
  border-radius: 2px;
@@ -106,7 +106,7 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
106
106
  background: transparent;
107
107
  border: none;
108
108
  border-radius: 1px;
109
- color: var(--wp-components-color-gray-700, #757575);
109
+ color: var(--wp-components-color-gray-700, var(--wpds-color-foreground-content-neutral-weak, #707070));
110
110
  fill: currentColor;
111
111
  cursor: pointer;
112
112
  display: -webkit-box;
@@ -134,7 +134,7 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
134
134
  aspect-ratio: 1;
135
135
  padding-left: 0;
136
136
  padding-right: 0;
137
- color: var(--wp-components-color-foreground, #1e1e1e);
137
+ color: var(--wp-components-color-foreground, var(--wpds-color-foreground-content-neutral, #1e1e1e));
138
138
  font-weight: 499;
139
139
  }
140
140
 
@@ -156,7 +156,7 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
156
156
  }
157
157
 
158
158
  .emotion-10:hover:not( [disabled] ):not( [aria-disabled='true'] ) {
159
- color: var(--wp-components-color-foreground, #1e1e1e);
159
+ color: var(--wp-components-color-foreground, var(--wpds-color-foreground-content-neutral, #1e1e1e));
160
160
  }
161
161
 
162
162
  .emotion-11 {
@@ -180,7 +180,7 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
180
180
  background: transparent;
181
181
  border: none;
182
182
  border-radius: 1px;
183
- color: var(--wp-components-color-gray-700, #757575);
183
+ color: var(--wp-components-color-gray-700, var(--wpds-color-foreground-content-neutral-weak, #707070));
184
184
  fill: currentColor;
185
185
  cursor: pointer;
186
186
  display: -webkit-box;
@@ -228,7 +228,7 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
228
228
  }
229
229
 
230
230
  .emotion-15:hover:not( [disabled] ):not( [aria-disabled='true'] ) {
231
- color: var(--wp-components-color-foreground, #1e1e1e);
231
+ color: var(--wp-components-color-foreground, var(--wpds-color-foreground-content-neutral, #1e1e1e));
232
232
  }
233
233
 
234
234
  <div>
@@ -264,6 +264,7 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
264
264
  data-wp-c16t="true"
265
265
  data-wp-component="ToggleGroupControlOptionBase"
266
266
  id="wp-components-base-control-19-40"
267
+ name=":r3e:"
267
268
  role="radio"
268
269
  type="button"
269
270
  value="uppercase"
@@ -297,6 +298,7 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
297
298
  data-wp-c16t="true"
298
299
  data-wp-component="ToggleGroupControlOptionBase"
299
300
  id="wp-components-base-control-19-41"
301
+ name=":r3e:"
300
302
  role="radio"
301
303
  type="button"
302
304
  value="lowercase"
@@ -359,7 +361,7 @@ exports[`ToggleGroupControl controlled should render correctly with text options
359
361
  }
360
362
 
361
363
  .emotion-6 {
362
- background: var(--wp-components-color-background, #fff);
364
+ background: var(--wp-components-color-background, var(--wpds-color-background-surface-neutral-strong, #fff));
363
365
  border: 1px solid transparent;
364
366
  border-radius: 2px;
365
367
  display: -webkit-inline-box;
@@ -393,8 +395,8 @@ exports[`ToggleGroupControl controlled should render correctly with text options
393
395
  content: '';
394
396
  position: absolute;
395
397
  pointer-events: none;
396
- background: var(--wp-components-color-gray-100, #f0f0f0);
397
- border: 1px solid var(--wp-components-color-gray-700, #757575);
398
+ background: var(--wp-components-color-gray-100, var(--wpds-color-background-surface-neutral, #fcfcfc));
399
+ border: 1px solid var(--wp-components-color-gray-700, var(--wpds-color-foreground-content-neutral-weak, #707070));
398
400
  outline: 2px solid transparent;
399
401
  outline-offset: -3px;
400
402
  border-radius: 2px;
@@ -437,7 +439,7 @@ exports[`ToggleGroupControl controlled should render correctly with text options
437
439
  background: transparent;
438
440
  border: none;
439
441
  border-radius: 1px;
440
- color: var(--wp-components-color-gray-700, #757575);
442
+ color: var(--wp-components-color-gray-700, var(--wpds-color-foreground-content-neutral-weak, #707070));
441
443
  fill: currentColor;
442
444
  cursor: pointer;
443
445
  display: -webkit-box;
@@ -481,7 +483,7 @@ exports[`ToggleGroupControl controlled should render correctly with text options
481
483
  }
482
484
 
483
485
  .emotion-10:hover:not( [disabled] ):not( [aria-disabled='true'] ) {
484
- color: var(--wp-components-color-foreground, #1e1e1e);
486
+ color: var(--wp-components-color-foreground, var(--wpds-color-foreground-content-neutral, #1e1e1e));
485
487
  }
486
488
 
487
489
  .emotion-11 {
@@ -525,6 +527,7 @@ exports[`ToggleGroupControl controlled should render correctly with text options
525
527
  data-wp-c16t="true"
526
528
  data-wp-component="ToggleGroupControlOptionBase"
527
529
  id="wp-components-base-control-18-38"
530
+ name=":r37:"
528
531
  role="radio"
529
532
  type="button"
530
533
  value="rigas"
@@ -547,6 +550,7 @@ exports[`ToggleGroupControl controlled should render correctly with text options
547
550
  data-wp-c16t="true"
548
551
  data-wp-component="ToggleGroupControlOptionBase"
549
552
  id="wp-components-base-control-18-39"
553
+ name=":r37:"
550
554
  role="radio"
551
555
  type="button"
552
556
  value="jack"
@@ -598,7 +602,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
598
602
  }
599
603
 
600
604
  .emotion-6 {
601
- background: var(--wp-components-color-background, #fff);
605
+ background: var(--wp-components-color-background, var(--wpds-color-background-surface-neutral-strong, #fff));
602
606
  border: 1px solid transparent;
603
607
  border-radius: 2px;
604
608
  display: -webkit-inline-box;
@@ -632,8 +636,8 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
632
636
  content: '';
633
637
  position: absolute;
634
638
  pointer-events: none;
635
- background: var(--wp-components-color-gray-100, #f0f0f0);
636
- border: 1px solid var(--wp-components-color-gray-700, #757575);
639
+ background: var(--wp-components-color-gray-100, var(--wpds-color-background-surface-neutral, #fcfcfc));
640
+ border: 1px solid var(--wp-components-color-gray-700, var(--wpds-color-foreground-content-neutral-weak, #707070));
637
641
  outline: 2px solid transparent;
638
642
  outline-offset: -3px;
639
643
  border-radius: 2px;
@@ -676,7 +680,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
676
680
  background: transparent;
677
681
  border: none;
678
682
  border-radius: 1px;
679
- color: var(--wp-components-color-gray-700, #757575);
683
+ color: var(--wp-components-color-gray-700, var(--wpds-color-foreground-content-neutral-weak, #707070));
680
684
  fill: currentColor;
681
685
  cursor: pointer;
682
686
  display: -webkit-box;
@@ -704,7 +708,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
704
708
  aspect-ratio: 1;
705
709
  padding-left: 0;
706
710
  padding-right: 0;
707
- color: var(--wp-components-color-foreground, #1e1e1e);
711
+ color: var(--wp-components-color-foreground, var(--wpds-color-foreground-content-neutral, #1e1e1e));
708
712
  font-weight: 499;
709
713
  }
710
714
 
@@ -726,7 +730,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
726
730
  }
727
731
 
728
732
  .emotion-10:hover:not( [disabled] ):not( [aria-disabled='true'] ) {
729
- color: var(--wp-components-color-foreground, #1e1e1e);
733
+ color: var(--wp-components-color-foreground, var(--wpds-color-foreground-content-neutral, #1e1e1e));
730
734
  }
731
735
 
732
736
  .emotion-11 {
@@ -750,7 +754,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
750
754
  background: transparent;
751
755
  border: none;
752
756
  border-radius: 1px;
753
- color: var(--wp-components-color-gray-700, #757575);
757
+ color: var(--wp-components-color-gray-700, var(--wpds-color-foreground-content-neutral-weak, #707070));
754
758
  fill: currentColor;
755
759
  cursor: pointer;
756
760
  display: -webkit-box;
@@ -798,7 +802,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
798
802
  }
799
803
 
800
804
  .emotion-15:hover:not( [disabled] ):not( [aria-disabled='true'] ) {
801
- color: var(--wp-components-color-foreground, #1e1e1e);
805
+ color: var(--wp-components-color-foreground, var(--wpds-color-foreground-content-neutral, #1e1e1e));
802
806
  }
803
807
 
804
808
  <div>
@@ -834,6 +838,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
834
838
  data-wp-c16t="true"
835
839
  data-wp-component="ToggleGroupControlOptionBase"
836
840
  id="wp-components-base-control-1-2"
841
+ name=":r7:"
837
842
  role="radio"
838
843
  type="button"
839
844
  value="uppercase"
@@ -867,6 +872,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
867
872
  data-wp-c16t="true"
868
873
  data-wp-component="ToggleGroupControlOptionBase"
869
874
  id="wp-components-base-control-1-3"
875
+ name=":r7:"
870
876
  role="radio"
871
877
  type="button"
872
878
  value="lowercase"
@@ -923,7 +929,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
923
929
  }
924
930
 
925
931
  .emotion-6 {
926
- background: var(--wp-components-color-background, #fff);
932
+ background: var(--wp-components-color-background, var(--wpds-color-background-surface-neutral-strong, #fff));
927
933
  border: 1px solid transparent;
928
934
  border-radius: 2px;
929
935
  display: -webkit-inline-box;
@@ -957,8 +963,8 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
957
963
  content: '';
958
964
  position: absolute;
959
965
  pointer-events: none;
960
- background: var(--wp-components-color-gray-100, #f0f0f0);
961
- border: 1px solid var(--wp-components-color-gray-700, #757575);
966
+ background: var(--wp-components-color-gray-100, var(--wpds-color-background-surface-neutral, #fcfcfc));
967
+ border: 1px solid var(--wp-components-color-gray-700, var(--wpds-color-foreground-content-neutral-weak, #707070));
962
968
  outline: 2px solid transparent;
963
969
  outline-offset: -3px;
964
970
  border-radius: 2px;
@@ -1001,7 +1007,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
1001
1007
  background: transparent;
1002
1008
  border: none;
1003
1009
  border-radius: 1px;
1004
- color: var(--wp-components-color-gray-700, #757575);
1010
+ color: var(--wp-components-color-gray-700, var(--wpds-color-foreground-content-neutral-weak, #707070));
1005
1011
  fill: currentColor;
1006
1012
  cursor: pointer;
1007
1013
  display: -webkit-box;
@@ -1045,7 +1051,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
1045
1051
  }
1046
1052
 
1047
1053
  .emotion-10:hover:not( [disabled] ):not( [aria-disabled='true'] ) {
1048
- color: var(--wp-components-color-foreground, #1e1e1e);
1054
+ color: var(--wp-components-color-foreground, var(--wpds-color-foreground-content-neutral, #1e1e1e));
1049
1055
  }
1050
1056
 
1051
1057
  .emotion-11 {
@@ -1089,6 +1095,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
1089
1095
  data-wp-c16t="true"
1090
1096
  data-wp-component="ToggleGroupControlOptionBase"
1091
1097
  id="wp-components-base-control-0-0"
1098
+ name=":r0:"
1092
1099
  role="radio"
1093
1100
  type="button"
1094
1101
  value="rigas"
@@ -1111,6 +1118,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
1111
1118
  data-wp-c16t="true"
1112
1119
  data-wp-component="ToggleGroupControlOptionBase"
1113
1120
  id="wp-components-base-control-0-1"
1121
+ name=":r0:"
1114
1122
  role="radio"
1115
1123
  type="button"
1116
1124
  value="jack"