@wordpress/components 28.4.0 → 28.5.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.
- package/CHANGELOG.md +31 -1
- package/build/autocomplete/autocompleter-ui.js +2 -0
- package/build/autocomplete/autocompleter-ui.js.map +1 -1
- package/build/base-control/styles/base-control-styles.js +8 -8
- package/build/base-control/styles/base-control-styles.js.map +1 -1
- package/build/border-control/styles.js +18 -24
- package/build/border-control/styles.js.map +1 -1
- package/build/color-palette/index.js +1 -1
- package/build/color-palette/index.js.map +1 -1
- package/build/custom-select-control/index.js +37 -14
- package/build/custom-select-control/index.js.map +1 -1
- package/build/custom-select-control/types.js.map +1 -1
- package/build/custom-select-control-v2/styles.js +9 -9
- package/build/custom-select-control-v2/styles.js.map +1 -1
- package/build/date-time/index.js +0 -7
- package/build/date-time/index.js.map +1 -1
- package/build/date-time/time/index.js +66 -38
- package/build/date-time/time/index.js.map +1 -1
- package/build/date-time/time/styles.js +11 -11
- package/build/date-time/time/styles.js.map +1 -1
- package/build/date-time/{time-input → time/time-input}/index.js +7 -7
- package/build/date-time/time/time-input/index.js.map +1 -0
- package/build/dropdown-menu-v2/styles.js +14 -14
- package/build/dropdown-menu-v2/styles.js.map +1 -1
- package/build/form-toggle/index.js +24 -24
- package/build/form-toggle/index.js.map +1 -1
- package/build/guide/index.js +2 -0
- package/build/guide/index.js.map +1 -1
- package/build/heading/types.js.map +1 -1
- package/build/modal/index.js +18 -11
- package/build/modal/index.js.map +1 -1
- package/build/query-controls/index.js +1 -1
- package/build/query-controls/index.js.map +1 -1
- package/build/radio-control/index.js +35 -8
- package/build/radio-control/index.js.map +1 -1
- package/build/radio-control/types.js.map +1 -1
- package/build/select-control/index.js +20 -8
- package/build/select-control/index.js.map +1 -1
- package/build/select-control/types.js.map +1 -1
- package/build/text-control/index.js +1 -0
- package/build/text-control/index.js.map +1 -1
- package/build/toggle-control/index.js +27 -25
- package/build/toggle-control/index.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js +6 -1
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option/component.js +6 -1
- package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-icon/component.js +14 -14
- package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
- package/build/tooltip/index.js +12 -1
- package/build/tooltip/index.js.map +1 -1
- package/build/tree-select/index.js +1 -2
- package/build/tree-select/index.js.map +1 -1
- package/build/utils/config-values.js +6 -0
- package/build/utils/config-values.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.js +2 -0
- package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
- package/build-module/base-control/styles/base-control-styles.js +8 -8
- package/build-module/base-control/styles/base-control-styles.js.map +1 -1
- package/build-module/border-control/styles.js +13 -23
- package/build-module/border-control/styles.js.map +1 -1
- package/build-module/color-palette/index.js +1 -1
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/custom-select-control/index.js +38 -14
- package/build-module/custom-select-control/index.js.map +1 -1
- package/build-module/custom-select-control/types.js.map +1 -1
- package/build-module/custom-select-control-v2/styles.js +9 -9
- package/build-module/custom-select-control-v2/styles.js.map +1 -1
- package/build-module/date-time/index.js +1 -2
- package/build-module/date-time/index.js.map +1 -1
- package/build-module/date-time/time/index.js +66 -38
- package/build-module/date-time/time/index.js.map +1 -1
- package/build-module/date-time/time/styles.js +11 -11
- package/build-module/date-time/time/styles.js.map +1 -1
- package/build-module/date-time/{time-input → time/time-input}/index.js +7 -7
- package/build-module/date-time/time/time-input/index.js.map +1 -0
- package/build-module/dropdown-menu-v2/styles.js +14 -14
- package/build-module/dropdown-menu-v2/styles.js.map +1 -1
- package/build-module/form-toggle/index.js +23 -22
- package/build-module/form-toggle/index.js.map +1 -1
- package/build-module/guide/index.js +2 -0
- package/build-module/guide/index.js.map +1 -1
- package/build-module/heading/types.js.map +1 -1
- package/build-module/modal/index.js +17 -11
- package/build-module/modal/index.js.map +1 -1
- package/build-module/query-controls/index.js +1 -1
- package/build-module/query-controls/index.js.map +1 -1
- package/build-module/radio-control/index.js +36 -10
- package/build-module/radio-control/index.js.map +1 -1
- package/build-module/radio-control/types.js.map +1 -1
- package/build-module/select-control/index.js +20 -8
- package/build-module/select-control/index.js.map +1 -1
- package/build-module/select-control/types.js.map +1 -1
- package/build-module/text-control/index.js +1 -0
- package/build-module/text-control/index.js.map +1 -1
- package/build-module/toggle-control/index.js +26 -24
- package/build-module/toggle-control/index.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js +6 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option/component.js +6 -1
- package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +14 -14
- package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
- package/build-module/tooltip/index.js +13 -2
- package/build-module/tooltip/index.js.map +1 -1
- package/build-module/tree-select/index.js +1 -2
- package/build-module/tree-select/index.js.map +1 -1
- package/build-module/utils/config-values.js +6 -0
- package/build-module/utils/config-values.js.map +1 -1
- package/build-style/style-rtl.css +60 -24
- package/build-style/style.css +60 -24
- package/build-types/autocomplete/autocompleter-ui.d.ts.map +1 -1
- package/build-types/border-control/styles.d.ts.map +1 -1
- package/build-types/button/stories/e2e/index.story.d.ts.map +1 -1
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/styles.d.ts +2 -2
- package/build-types/color-picker/styles.d.ts +3 -1
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/custom-select-control/index.d.ts +2 -2
- package/build-types/custom-select-control/index.d.ts.map +1 -1
- package/build-types/custom-select-control/stories/index.story.d.ts +3 -3
- package/build-types/custom-select-control/stories/index.story.d.ts.map +1 -1
- package/build-types/custom-select-control/types.d.ts +7 -7
- package/build-types/custom-select-control/types.d.ts.map +1 -1
- package/build-types/custom-select-control-v2/styles.d.ts +16 -28
- package/build-types/custom-select-control-v2/styles.d.ts.map +1 -1
- package/build-types/date-time/date/styles.d.ts +2 -2
- package/build-types/date-time/index.d.ts +1 -2
- package/build-types/date-time/index.d.ts.map +1 -1
- package/build-types/date-time/stories/time.story.d.ts +5 -0
- package/build-types/date-time/stories/time.story.d.ts.map +1 -1
- package/build-types/date-time/time/index.d.ts +3 -0
- package/build-types/date-time/time/index.d.ts.map +1 -1
- package/build-types/date-time/time/styles.d.ts.map +1 -1
- package/build-types/date-time/{time-input → time/time-input}/index.d.ts +1 -1
- package/build-types/date-time/time/time-input/index.d.ts.map +1 -0
- package/build-types/date-time/time/time-input/test/index.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2/styles.d.ts +24 -42
- package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
- package/build-types/form-toggle/index.d.ts +2 -5
- package/build-types/form-toggle/index.d.ts.map +1 -1
- package/build-types/guide/index.d.ts.map +1 -1
- package/build-types/heading/component.d.ts +1 -1
- package/build-types/heading/types.d.ts +1 -1
- package/build-types/heading/types.d.ts.map +1 -1
- package/build-types/modal/index.d.ts.map +1 -1
- package/build-types/navigation/styles/navigation-styles.d.ts +2 -2
- package/build-types/palette-edit/styles.d.ts +2 -2
- package/build-types/query-controls/index.d.ts.map +1 -1
- package/build-types/radio-control/index.d.ts.map +1 -1
- package/build-types/radio-control/stories/index.story.d.ts +1 -0
- package/build-types/radio-control/stories/index.story.d.ts.map +1 -1
- package/build-types/radio-control/test/index.d.ts +2 -0
- package/build-types/radio-control/test/index.d.ts.map +1 -0
- package/build-types/radio-control/types.d.ts +4 -0
- package/build-types/radio-control/types.d.ts.map +1 -1
- package/build-types/select-control/index.d.ts +4 -1
- package/build-types/select-control/index.d.ts.map +1 -1
- package/build-types/select-control/stories/index.story.d.ts +9 -3
- package/build-types/select-control/stories/index.story.d.ts.map +1 -1
- package/build-types/select-control/types.d.ts +27 -27
- package/build-types/select-control/types.d.ts.map +1 -1
- package/build-types/tabs/styles.d.ts +8 -14
- package/build-types/tabs/styles.d.ts.map +1 -1
- package/build-types/text-control/index.d.ts +1 -0
- package/build-types/text-control/index.d.ts.map +1 -1
- package/build-types/toggle-control/index.d.ts +3 -9
- package/build-types/toggle-control/index.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts +6 -1
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +6 -1
- package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +14 -14
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/build-types/tooltip/test/utils/index.d.ts +1 -5
- package/build-types/tooltip/test/utils/index.d.ts.map +1 -1
- package/build-types/tree-select/index.d.ts +1 -1
- package/build-types/tree-select/index.d.ts.map +1 -1
- package/build-types/utils/config-values.d.ts +6 -0
- package/package.json +20 -20
- package/src/alignment-matrix-control/test/index.tsx +1 -3
- package/src/autocomplete/autocompleter-ui.tsx +2 -0
- package/src/autocomplete/style.scss +0 -6
- package/src/base-control/styles/base-control-styles.ts +1 -1
- package/src/border-control/styles.ts +0 -5
- package/src/button/stories/e2e/index.story.tsx +103 -21
- package/src/button/style.scss +49 -21
- package/src/button/test/index.tsx +18 -40
- package/src/circular-option-picker/test/index.tsx +1 -4
- package/src/color-palette/index.tsx +22 -20
- package/src/composite/legacy/test/index.tsx +2 -18
- package/src/custom-select-control/index.tsx +55 -25
- package/src/custom-select-control/test/index.tsx +47 -30
- package/src/custom-select-control/types.ts +7 -7
- package/src/custom-select-control-v2/styles.ts +7 -6
- package/src/custom-select-control-v2/test/index.tsx +15 -19
- package/src/date-time/index.ts +1 -2
- package/src/date-time/stories/time.story.tsx +17 -0
- package/src/date-time/time/index.tsx +46 -16
- package/src/date-time/time/styles.ts +1 -0
- package/src/date-time/{time-input → time/time-input}/index.tsx +9 -9
- package/src/dropdown-menu-v2/styles.ts +18 -17
- package/src/dropdown-menu-v2/test/index.tsx +1 -4
- package/src/font-size-picker/test/index.tsx +50 -43
- package/src/form-toggle/index.tsx +23 -21
- package/src/guide/index.tsx +2 -0
- package/src/heading/types.ts +1 -4
- package/src/modal/index.tsx +21 -20
- package/src/placeholder/style.scss +11 -2
- package/src/query-controls/index.tsx +5 -1
- package/src/radio-control/index.tsx +48 -7
- package/src/radio-control/stories/index.story.tsx +23 -0
- package/src/radio-control/style.scss +26 -2
- package/src/radio-control/test/index.tsx +274 -0
- package/src/radio-control/types.ts +4 -0
- package/src/select-control/README.md +8 -1
- package/src/select-control/index.tsx +33 -22
- package/src/select-control/test/select-control.tsx +148 -4
- package/src/select-control/types.ts +70 -65
- package/src/tab-panel/test/index.tsx +1 -8
- package/src/tabs/test/index.tsx +68 -84
- package/src/text-control/README.md +1 -0
- package/src/text-control/index.tsx +1 -0
- package/src/text-control/style.scss +5 -0
- package/src/toggle-control/README.md +9 -0
- package/src/toggle-control/index.tsx +25 -22
- package/src/toggle-control/style.scss +2 -1
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +6 -6
- package/src/toggle-group-control/test/index.tsx +0 -6
- package/src/toggle-group-control/toggle-group-control/README.md +13 -1
- package/src/toggle-group-control/toggle-group-control/component.tsx +6 -1
- package/src/toggle-group-control/toggle-group-control-option/README.md +6 -1
- package/src/toggle-group-control/toggle-group-control-option/component.tsx +6 -1
- package/src/toggle-group-control/toggle-group-control-option-icon/README.md +1 -1
- package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +14 -14
- package/src/tooltip/index.tsx +15 -2
- package/src/tooltip/test/index.tsx +0 -5
- package/src/tooltip/test/utils/index.tsx +5 -5
- package/src/tree-select/index.tsx +1 -2
- package/src/utils/config-values.js +6 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/date-time/time-input/index.js.map +0 -1
- package/build-module/date-time/time-input/index.js.map +0 -1
- package/build-types/date-time/stories/time-input.story.d.ts +0 -12
- package/build-types/date-time/stories/time-input.story.d.ts.map +0 -1
- package/build-types/date-time/time-input/index.d.ts.map +0 -1
- package/build-types/date-time/time-input/test/index.d.ts.map +0 -1
- package/src/date-time/stories/time-input.story.tsx +0 -36
- /package/build-types/date-time/{time-input → time/time-input}/test/index.d.ts +0 -0
- /package/src/date-time/{time-input → time/time-input}/test/index.tsx +0 -0
|
@@ -23,27 +23,7 @@ import { HStack } from '../h-stack';
|
|
|
23
23
|
import { useCx } from '../utils';
|
|
24
24
|
import { space } from '../utils/space';
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
* ToggleControl is used to generate a toggle user interface.
|
|
28
|
-
*
|
|
29
|
-
* ```jsx
|
|
30
|
-
* import { ToggleControl } from '@wordpress/components';
|
|
31
|
-
* import { useState } from '@wordpress/element';
|
|
32
|
-
*
|
|
33
|
-
* const MyToggleControl = () => {
|
|
34
|
-
* const [ value, setValue ] = useState( false );
|
|
35
|
-
*
|
|
36
|
-
* return (
|
|
37
|
-
* <ToggleControl
|
|
38
|
-
* label="Fixed Background"
|
|
39
|
-
* checked={ value }
|
|
40
|
-
* onChange={ () => setValue( ( state ) => ! state ) }
|
|
41
|
-
* />
|
|
42
|
-
* );
|
|
43
|
-
* };
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
export function ToggleControl(
|
|
26
|
+
function UnforwardedToggleControl(
|
|
47
27
|
{
|
|
48
28
|
__nextHasNoMarginBottom,
|
|
49
29
|
label,
|
|
@@ -121,4 +101,27 @@ export function ToggleControl(
|
|
|
121
101
|
);
|
|
122
102
|
}
|
|
123
103
|
|
|
124
|
-
|
|
104
|
+
/**
|
|
105
|
+
* ToggleControl is used to generate a toggle user interface.
|
|
106
|
+
*
|
|
107
|
+
* ```jsx
|
|
108
|
+
* import { ToggleControl } from '@wordpress/components';
|
|
109
|
+
* import { useState } from '@wordpress/element';
|
|
110
|
+
*
|
|
111
|
+
* const MyToggleControl = () => {
|
|
112
|
+
* const [ value, setValue ] = useState( false );
|
|
113
|
+
*
|
|
114
|
+
* return (
|
|
115
|
+
* <ToggleControl
|
|
116
|
+
* __nextHasNoMarginBottom
|
|
117
|
+
* label="Fixed Background"
|
|
118
|
+
* checked={ value }
|
|
119
|
+
* onChange={ () => setValue( ( state ) => ! state ) }
|
|
120
|
+
* />
|
|
121
|
+
* );
|
|
122
|
+
* };
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export const ToggleControl = forwardRef( UnforwardedToggleControl );
|
|
126
|
+
|
|
127
|
+
export default ToggleControl;
|
|
@@ -33,7 +33,7 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
|
|
|
33
33
|
font-weight: 500;
|
|
34
34
|
line-height: 1.4;
|
|
35
35
|
text-transform: uppercase;
|
|
36
|
-
display:
|
|
36
|
+
display: block;
|
|
37
37
|
margin-bottom: calc(4px * 2);
|
|
38
38
|
padding: 0;
|
|
39
39
|
}
|
|
@@ -258,7 +258,7 @@ exports[`ToggleGroupControl controlled should render correctly with icons 1`] =
|
|
|
258
258
|
aria-checked="true"
|
|
259
259
|
aria-label="Uppercase"
|
|
260
260
|
class="emotion-12 components-toggle-group-control-option-base"
|
|
261
|
-
data-active-item=""
|
|
261
|
+
data-active-item="true"
|
|
262
262
|
data-value="uppercase"
|
|
263
263
|
data-wp-c16t="true"
|
|
264
264
|
data-wp-component="ToggleGroupControlOptionBase"
|
|
@@ -369,7 +369,7 @@ exports[`ToggleGroupControl controlled should render correctly with text options
|
|
|
369
369
|
font-weight: 500;
|
|
370
370
|
line-height: 1.4;
|
|
371
371
|
text-transform: uppercase;
|
|
372
|
-
display:
|
|
372
|
+
display: block;
|
|
373
373
|
margin-bottom: calc(4px * 2);
|
|
374
374
|
padding: 0;
|
|
375
375
|
}
|
|
@@ -593,7 +593,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
|
|
|
593
593
|
font-weight: 500;
|
|
594
594
|
line-height: 1.4;
|
|
595
595
|
text-transform: uppercase;
|
|
596
|
-
display:
|
|
596
|
+
display: block;
|
|
597
597
|
margin-bottom: calc(4px * 2);
|
|
598
598
|
padding: 0;
|
|
599
599
|
}
|
|
@@ -818,7 +818,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with icons 1`]
|
|
|
818
818
|
aria-checked="true"
|
|
819
819
|
aria-label="Uppercase"
|
|
820
820
|
class="emotion-12 components-toggle-group-control-option-base"
|
|
821
|
-
data-active-item=""
|
|
821
|
+
data-active-item="true"
|
|
822
822
|
data-value="uppercase"
|
|
823
823
|
data-wp-c16t="true"
|
|
824
824
|
data-wp-component="ToggleGroupControlOptionBase"
|
|
@@ -923,7 +923,7 @@ exports[`ToggleGroupControl uncontrolled should render correctly with text optio
|
|
|
923
923
|
font-weight: 500;
|
|
924
924
|
line-height: 1.4;
|
|
925
925
|
text-transform: uppercase;
|
|
926
|
-
display:
|
|
926
|
+
display: block;
|
|
927
927
|
margin-bottom: calc(4px * 2);
|
|
928
928
|
padding: 0;
|
|
929
929
|
}
|
|
@@ -341,11 +341,9 @@ describe.each( [
|
|
|
341
341
|
name: 'R',
|
|
342
342
|
} );
|
|
343
343
|
|
|
344
|
-
await sleep();
|
|
345
344
|
await press.Tab();
|
|
346
345
|
expect( rigas ).toHaveFocus();
|
|
347
346
|
|
|
348
|
-
await sleep();
|
|
349
347
|
await press.Tab();
|
|
350
348
|
|
|
351
349
|
// When in controlled mode, there is an additional "Reset" button.
|
|
@@ -372,7 +370,6 @@ describe.each( [
|
|
|
372
370
|
</Component>
|
|
373
371
|
);
|
|
374
372
|
|
|
375
|
-
await sleep();
|
|
376
373
|
await press.Tab();
|
|
377
374
|
|
|
378
375
|
expect(
|
|
@@ -448,7 +445,6 @@ describe.each( [
|
|
|
448
445
|
</Component>
|
|
449
446
|
);
|
|
450
447
|
|
|
451
|
-
await sleep();
|
|
452
448
|
await press.Tab();
|
|
453
449
|
expect(
|
|
454
450
|
screen.getByRole( 'button', {
|
|
@@ -457,7 +453,6 @@ describe.each( [
|
|
|
457
453
|
} )
|
|
458
454
|
).toHaveFocus();
|
|
459
455
|
|
|
460
|
-
await sleep();
|
|
461
456
|
await press.Tab();
|
|
462
457
|
expect(
|
|
463
458
|
screen.getByRole( 'button', {
|
|
@@ -490,7 +485,6 @@ describe.each( [
|
|
|
490
485
|
</Component>
|
|
491
486
|
);
|
|
492
487
|
|
|
493
|
-
await sleep();
|
|
494
488
|
await press.Tab();
|
|
495
489
|
|
|
496
490
|
expect(
|
|
@@ -20,7 +20,12 @@ import {
|
|
|
20
20
|
|
|
21
21
|
function Example() {
|
|
22
22
|
return (
|
|
23
|
-
<ToggleGroupControl
|
|
23
|
+
<ToggleGroupControl
|
|
24
|
+
label="my label"
|
|
25
|
+
value="vertical"
|
|
26
|
+
isBlock
|
|
27
|
+
__nextHasNoMarginBottom
|
|
28
|
+
>
|
|
24
29
|
<ToggleGroupControlOption value="horizontal" label="Horizontal" />
|
|
25
30
|
<ToggleGroupControlOption value="vertical" label="Vertical" />
|
|
26
31
|
</ToggleGroupControl>
|
|
@@ -82,3 +87,10 @@ Callback when a segment is selected.
|
|
|
82
87
|
The value of the `ToggleGroupControl`.
|
|
83
88
|
|
|
84
89
|
- Required: No
|
|
90
|
+
|
|
91
|
+
### `__nextHasNoMarginBottom`: `boolean`
|
|
92
|
+
|
|
93
|
+
Start opting into the new margin-free styles that will become the default in a future version.
|
|
94
|
+
|
|
95
|
+
- Required: No
|
|
96
|
+
- Default: `false`
|
|
@@ -115,7 +115,12 @@ function UnconnectedToggleGroupControl(
|
|
|
115
115
|
*
|
|
116
116
|
* function Example() {
|
|
117
117
|
* return (
|
|
118
|
-
* <ToggleGroupControl
|
|
118
|
+
* <ToggleGroupControl
|
|
119
|
+
* label="my label"
|
|
120
|
+
* value="vertical"
|
|
121
|
+
* isBlock
|
|
122
|
+
* __nextHasNoMarginBottom
|
|
123
|
+
* >
|
|
119
124
|
* <ToggleGroupControlOption value="horizontal" label="Horizontal" />
|
|
120
125
|
* <ToggleGroupControlOption value="vertical" label="Vertical" />
|
|
121
126
|
* </ToggleGroupControl>
|
|
@@ -17,7 +17,12 @@ import {
|
|
|
17
17
|
|
|
18
18
|
function Example() {
|
|
19
19
|
return (
|
|
20
|
-
<ToggleGroupControl
|
|
20
|
+
<ToggleGroupControl
|
|
21
|
+
label="my label"
|
|
22
|
+
value="vertical"
|
|
23
|
+
isBlock
|
|
24
|
+
__nextHasNoMarginBottom
|
|
25
|
+
>
|
|
21
26
|
<ToggleGroupControlOption
|
|
22
27
|
value="horizontal"
|
|
23
28
|
label="Horizontal"
|
|
@@ -48,7 +48,12 @@ function UnforwardedToggleGroupControlOption(
|
|
|
48
48
|
*
|
|
49
49
|
* function Example() {
|
|
50
50
|
* return (
|
|
51
|
-
* <ToggleGroupControl
|
|
51
|
+
* <ToggleGroupControl
|
|
52
|
+
* label="my label"
|
|
53
|
+
* value="vertical"
|
|
54
|
+
* isBlock
|
|
55
|
+
* __nextHasNoMarginBottom
|
|
56
|
+
* >
|
|
52
57
|
* <ToggleGroupControlOption value="horizontal" label="Horizontal" />
|
|
53
58
|
* <ToggleGroupControlOption value="vertical" label="Vertical" />
|
|
54
59
|
* </ToggleGroupControl>
|
|
@@ -17,7 +17,7 @@ import { formatLowercase, formatUppercase } from '@wordpress/icons';
|
|
|
17
17
|
|
|
18
18
|
function Example() {
|
|
19
19
|
return (
|
|
20
|
-
<ToggleGroupControl>
|
|
20
|
+
<ToggleGroupControl __nextHasNoMarginBottom>
|
|
21
21
|
<ToggleGroupControlOptionIcon
|
|
22
22
|
value="uppercase"
|
|
23
23
|
icon={ formatUppercase }
|
|
@@ -51,20 +51,20 @@ function UnforwardedToggleGroupControlOptionIcon(
|
|
|
51
51
|
* import { formatLowercase, formatUppercase } from '@wordpress/icons';
|
|
52
52
|
*
|
|
53
53
|
* function Example() {
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
54
|
+
* return (
|
|
55
|
+
* <ToggleGroupControl __nextHasNoMarginBottom>
|
|
56
|
+
* <ToggleGroupControlOptionIcon
|
|
57
|
+
* value="uppercase"
|
|
58
|
+
* label="Uppercase"
|
|
59
|
+
* icon={ formatUppercase }
|
|
60
|
+
* />
|
|
61
|
+
* <ToggleGroupControlOptionIcon
|
|
62
|
+
* value="lowercase"
|
|
63
|
+
* label="Lowercase"
|
|
64
|
+
* icon={ formatLowercase }
|
|
65
|
+
* />
|
|
66
|
+
* </ToggleGroupControl>
|
|
67
|
+
* );
|
|
68
68
|
* }
|
|
69
69
|
* ```
|
|
70
70
|
*/
|
package/src/tooltip/index.tsx
CHANGED
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
useContext,
|
|
14
14
|
createContext,
|
|
15
15
|
forwardRef,
|
|
16
|
+
cloneElement,
|
|
16
17
|
} from '@wordpress/element';
|
|
17
18
|
import deprecated from '@wordpress/deprecated';
|
|
18
19
|
|
|
@@ -92,6 +93,7 @@ function UnforwardedTooltip(
|
|
|
92
93
|
placement: computedPlacement,
|
|
93
94
|
showTimeout: delay,
|
|
94
95
|
} );
|
|
96
|
+
const mounted = tooltipStore.useState( 'mounted' );
|
|
95
97
|
|
|
96
98
|
if ( isNestedInTooltip ) {
|
|
97
99
|
return isOnlyChild ? (
|
|
@@ -101,12 +103,24 @@ function UnforwardedTooltip(
|
|
|
101
103
|
);
|
|
102
104
|
}
|
|
103
105
|
|
|
106
|
+
// TODO: this is a temporary workaround to minimize the effects of the
|
|
107
|
+
// Ariakit upgrade. Ariakit doesn't pass the `aria-describedby` prop to
|
|
108
|
+
// the tooltip anchor anymore since 0.4.0, so we need to add it manually.
|
|
109
|
+
// See: https://github.com/WordPress/gutenberg/pull/64066
|
|
110
|
+
function addDescribedById( element: React.ReactElement ) {
|
|
111
|
+
return describedById && mounted
|
|
112
|
+
? cloneElement( element, { 'aria-describedby': describedById } )
|
|
113
|
+
: element;
|
|
114
|
+
}
|
|
115
|
+
|
|
104
116
|
return (
|
|
105
117
|
<TooltipInternalContext.Provider value={ CONTEXT_VALUE }>
|
|
106
118
|
<Ariakit.TooltipAnchor
|
|
107
119
|
onClick={ hideOnClick ? tooltipStore.hide : undefined }
|
|
108
120
|
store={ tooltipStore }
|
|
109
|
-
render={
|
|
121
|
+
render={
|
|
122
|
+
isOnlyChild ? addDescribedById( children ) : undefined
|
|
123
|
+
}
|
|
110
124
|
ref={ ref }
|
|
111
125
|
>
|
|
112
126
|
{ isOnlyChild ? undefined : children }
|
|
@@ -135,7 +149,6 @@ function UnforwardedTooltip(
|
|
|
135
149
|
</TooltipInternalContext.Provider>
|
|
136
150
|
);
|
|
137
151
|
}
|
|
138
|
-
|
|
139
152
|
export const Tooltip = forwardRef( UnforwardedTooltip );
|
|
140
153
|
|
|
141
154
|
export default Tooltip;
|
|
@@ -59,7 +59,6 @@ describe( 'Tooltip', () => {
|
|
|
59
59
|
screen.getByRole( 'button', { name: 'Second button' } )
|
|
60
60
|
).toBeVisible();
|
|
61
61
|
|
|
62
|
-
await sleep();
|
|
63
62
|
await press.Tab();
|
|
64
63
|
|
|
65
64
|
expectTooltipToBeHidden();
|
|
@@ -145,7 +144,6 @@ describe( 'Tooltip', () => {
|
|
|
145
144
|
);
|
|
146
145
|
|
|
147
146
|
// Focus the anchor, tooltip should show
|
|
148
|
-
await sleep();
|
|
149
147
|
await press.Tab();
|
|
150
148
|
expect(
|
|
151
149
|
screen.getByRole( 'button', { name: 'Tooltip anchor' } )
|
|
@@ -153,7 +151,6 @@ describe( 'Tooltip', () => {
|
|
|
153
151
|
await waitExpectTooltipToShow();
|
|
154
152
|
|
|
155
153
|
// Focus the other button, tooltip should hide
|
|
156
|
-
await sleep();
|
|
157
154
|
await press.Tab();
|
|
158
155
|
expect(
|
|
159
156
|
screen.getByRole( 'button', { name: 'Focus me' } )
|
|
@@ -179,13 +176,11 @@ describe( 'Tooltip', () => {
|
|
|
179
176
|
expect( anchor ).toHaveAttribute( 'aria-disabled', 'true' );
|
|
180
177
|
|
|
181
178
|
// Focus anchor, tooltip should show
|
|
182
|
-
await sleep();
|
|
183
179
|
await press.Tab();
|
|
184
180
|
expect( anchor ).toHaveFocus();
|
|
185
181
|
await waitExpectTooltipToShow();
|
|
186
182
|
|
|
187
183
|
// Focus another button, tooltip should hide
|
|
188
|
-
await sleep();
|
|
189
184
|
await press.Tab();
|
|
190
185
|
expect(
|
|
191
186
|
screen.getByRole( 'button', {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import { click, press } from '@ariakit/test';
|
|
5
5
|
|
|
6
6
|
// TODO: may need to be tested with Playwright; further context:
|
|
7
7
|
// https://github.com/WordPress/gutenberg/pull/52133#issuecomment-1613691258
|
|
@@ -13,8 +13,8 @@ import type { UserEvent } from '@testing-library/user-event/dist/types/setup/set
|
|
|
13
13
|
* to avoid leaking into other tests
|
|
14
14
|
*
|
|
15
15
|
*/
|
|
16
|
-
export default async function cleanupTooltip(
|
|
17
|
-
await
|
|
18
|
-
await
|
|
19
|
-
await
|
|
16
|
+
export default async function cleanupTooltip() {
|
|
17
|
+
await press.Tab();
|
|
18
|
+
await press.Tab();
|
|
19
|
+
await click( document.body );
|
|
20
20
|
}
|
|
@@ -37,7 +37,7 @@ function getSelectOptions(
|
|
|
37
37
|
*
|
|
38
38
|
* return (
|
|
39
39
|
* <TreeSelect
|
|
40
|
-
*
|
|
40
|
+
* __nextHasNoMarginBottom
|
|
41
41
|
* label="Parent page"
|
|
42
42
|
* noOptionLabel="No parent page"
|
|
43
43
|
* onChange={ ( newPage ) => setPage( newPage ) }
|
|
@@ -73,7 +73,6 @@ function getSelectOptions(
|
|
|
73
73
|
* }
|
|
74
74
|
* ```
|
|
75
75
|
*/
|
|
76
|
-
|
|
77
76
|
export function TreeSelect( props: TreeSelectProps ) {
|
|
78
77
|
const {
|
|
79
78
|
label,
|
|
@@ -42,6 +42,12 @@ export default Object.assign( {}, CONTROL_PROPS, TOGGLE_GROUP_CONTROL_PROPS, {
|
|
|
42
42
|
colorScrollbarThumbHover: 'rgba(0, 0, 0, 0.5)',
|
|
43
43
|
colorScrollbarTrack: 'rgba(0, 0, 0, 0.04)',
|
|
44
44
|
elevationIntensity: 1,
|
|
45
|
+
radiusXSmall: '1px',
|
|
46
|
+
radiusSmall: '2px',
|
|
47
|
+
radiusMedium: '4px',
|
|
48
|
+
radiusLarge: '8px',
|
|
49
|
+
radiusFull: '9999px',
|
|
50
|
+
radiusRound: '50%',
|
|
45
51
|
radiusBlockUi: '2px',
|
|
46
52
|
borderWidth: '1px',
|
|
47
53
|
borderWidthFocus: '1.5px',
|