@wordpress/components 22.0.0 → 22.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/build/angle-picker-control/index.js +3 -1
- package/build/angle-picker-control/index.js.map +1 -1
- package/build/autocomplete/index.js +7 -3
- package/build/autocomplete/index.js.map +1 -1
- package/build/border-box-control/border-box-control/component.js +1 -1
- package/build/border-box-control/border-box-control/component.js.map +1 -1
- package/build/border-box-control/border-box-control/hook.js +13 -1
- package/build/border-box-control/border-box-control/hook.js.map +1 -1
- package/build/border-box-control/border-box-control-split-controls/hook.js +11 -1
- package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
- package/build/border-control/border-control/component.js +2 -2
- package/build/border-control/border-control/component.js.map +1 -1
- package/build/border-control/border-control/hook.js +11 -1
- package/build/border-control/border-control/hook.js.map +1 -1
- package/build/border-control/border-control-dropdown/component.js +1 -1
- package/build/border-control/border-control-dropdown/component.js.map +1 -1
- package/build/border-control/border-control-dropdown/hook.js +10 -2
- package/build/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build/color-palette/index.js +1 -1
- package/build/color-palette/index.js.map +1 -1
- package/build/color-picker/input-with-slider.js +17 -3
- package/build/color-picker/input-with-slider.js.map +1 -1
- package/build/custom-select-control/index.js +5 -2
- package/build/custom-select-control/index.js.map +1 -1
- package/build/dashicon/index.js +17 -2
- package/build/dashicon/index.js.map +1 -1
- package/build/draggable/index.js +58 -38
- package/build/draggable/index.js.map +1 -1
- package/build/draggable/types.js +6 -0
- package/build/draggable/types.js.map +1 -0
- package/build/flex/flex/hook.js +2 -3
- package/build/flex/flex/hook.js.map +1 -1
- package/build/focal-point-picker/focal-point.js +2 -12
- package/build/focal-point-picker/focal-point.js.map +1 -1
- package/build/focal-point-picker/styles/focal-point-style.js +11 -51
- package/build/focal-point-picker/styles/focal-point-style.js.map +1 -1
- package/build/font-size-picker/constants.js +41 -0
- package/build/font-size-picker/constants.js.map +1 -0
- package/build/font-size-picker/font-size-picker-select.js +97 -0
- package/build/font-size-picker/font-size-picker-select.js.map +1 -0
- package/build/font-size-picker/font-size-picker-toggle-group.js +50 -0
- package/build/font-size-picker/font-size-picker-toggle-group.js.map +1 -0
- package/build/font-size-picker/index.js +39 -76
- package/build/font-size-picker/index.js.map +1 -1
- package/build/font-size-picker/utils.js +17 -89
- package/build/font-size-picker/utils.js.map +1 -1
- package/build/form-token-field/index.js +9 -6
- package/build/form-token-field/index.js.map +1 -1
- package/build/higher-order/navigate-regions/index.js +3 -0
- package/build/higher-order/navigate-regions/index.js.map +1 -1
- package/build/icon/index.js +3 -2
- package/build/icon/index.js.map +1 -1
- package/build/index.js +8 -0
- package/build/index.js.map +1 -1
- package/build/menu-group/index.js +17 -3
- package/build/menu-group/index.js.map +1 -1
- package/build/menu-group/types.js +6 -0
- package/build/menu-group/types.js.map +1 -0
- package/build/navigator/navigator-screen/component.js +9 -5
- package/build/navigator/navigator-screen/component.js.map +1 -1
- package/build/palette-edit/index.js +3 -1
- package/build/palette-edit/index.js.map +1 -1
- package/build/popover/index.js +8 -4
- package/build/popover/index.js.map +1 -1
- package/build/range-control/styles/range-control-styles.js +47 -57
- package/build/range-control/styles/range-control-styles.js.map +1 -1
- package/build/spinner/styles.js +4 -4
- package/build/spinner/styles.js.map +1 -1
- package/build/tab-panel/index.js +3 -4
- package/build/tab-panel/index.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js +1 -0
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/styles.js +11 -6
- package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build/tools-panel/styles.js +14 -14
- package/build/tools-panel/styles.js.map +1 -1
- package/build/tools-panel/tools-panel-item/hook.js +9 -5
- package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build/utils/colors-values.js +3 -2
- package/build/utils/colors-values.js.map +1 -1
- package/build/utils/input/base.js +2 -2
- package/build/utils/input/base.js.map +1 -1
- package/build/view/index.js.map +1 -1
- package/build-module/angle-picker-control/index.js +2 -1
- package/build-module/angle-picker-control/index.js.map +1 -1
- package/build-module/autocomplete/index.js +7 -3
- package/build-module/autocomplete/index.js.map +1 -1
- package/build-module/border-box-control/border-box-control/component.js +1 -1
- package/build-module/border-box-control/border-box-control/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control/hook.js +13 -1
- package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
- package/build-module/border-box-control/border-box-control-split-controls/hook.js +11 -1
- package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
- package/build-module/border-control/border-control/component.js +2 -2
- package/build-module/border-control/border-control/component.js.map +1 -1
- package/build-module/border-control/border-control/hook.js +11 -1
- package/build-module/border-control/border-control/hook.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/component.js +1 -1
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/hook.js +10 -2
- package/build-module/border-control/border-control-dropdown/hook.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/color-picker/input-with-slider.js +17 -3
- package/build-module/color-picker/input-with-slider.js.map +1 -1
- package/build-module/custom-select-control/index.js +5 -2
- package/build-module/custom-select-control/index.js.map +1 -1
- package/build-module/dashicon/index.js +17 -2
- package/build-module/dashicon/index.js.map +1 -1
- package/build-module/draggable/index.js +59 -38
- package/build-module/draggable/index.js.map +1 -1
- package/build-module/draggable/types.js +2 -0
- package/build-module/draggable/types.js.map +1 -0
- package/build-module/flex/flex/hook.js +2 -3
- package/build-module/flex/flex/hook.js.map +1 -1
- package/build-module/focal-point-picker/focal-point.js +3 -13
- package/build-module/focal-point-picker/focal-point.js.map +1 -1
- package/build-module/focal-point-picker/styles/focal-point-style.js +6 -52
- package/build-module/focal-point-picker/styles/focal-point-style.js.map +1 -1
- package/build-module/font-size-picker/constants.js +31 -0
- package/build-module/font-size-picker/constants.js.map +1 -0
- package/build-module/font-size-picker/font-size-picker-select.js +83 -0
- package/build-module/font-size-picker/font-size-picker-select.js.map +1 -0
- package/build-module/font-size-picker/font-size-picker-toggle-group.js +40 -0
- package/build-module/font-size-picker/font-size-picker-toggle-group.js.map +1 -0
- package/build-module/font-size-picker/index.js +38 -76
- package/build-module/font-size-picker/index.js.map +1 -1
- package/build-module/font-size-picker/utils.js +15 -86
- package/build-module/font-size-picker/utils.js.map +1 -1
- package/build-module/form-token-field/index.js +9 -6
- package/build-module/form-token-field/index.js.map +1 -1
- package/build-module/higher-order/navigate-regions/index.js +3 -0
- package/build-module/higher-order/navigate-regions/index.js.map +1 -1
- package/build-module/icon/index.js +3 -2
- package/build-module/icon/index.js.map +1 -1
- package/build-module/index.js +1 -0
- package/build-module/index.js.map +1 -1
- package/build-module/menu-group/index.js +20 -2
- package/build-module/menu-group/index.js.map +1 -1
- package/build-module/menu-group/types.js +2 -0
- package/build-module/menu-group/types.js.map +1 -0
- package/build-module/navigator/navigator-screen/component.js +9 -5
- package/build-module/navigator/navigator-screen/component.js.map +1 -1
- package/build-module/palette-edit/index.js +3 -1
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/popover/index.js +8 -4
- package/build-module/popover/index.js.map +1 -1
- package/build-module/range-control/styles/range-control-styles.js +47 -57
- package/build-module/range-control/styles/range-control-styles.js.map +1 -1
- package/build-module/spinner/styles.js +4 -4
- package/build-module/spinner/styles.js.map +1 -1
- package/build-module/tab-panel/index.js +4 -5
- package/build-module/tab-panel/index.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js +1 -0
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/styles.js +12 -6
- package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
- package/build-module/tools-panel/styles.js +14 -14
- package/build-module/tools-panel/styles.js.map +1 -1
- package/build-module/tools-panel/tools-panel-item/hook.js +9 -5
- package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build-module/utils/colors-values.js +3 -2
- package/build-module/utils/colors-values.js.map +1 -1
- package/build-module/utils/input/base.js +2 -2
- package/build-module/utils/input/base.js.map +1 -1
- package/build-module/view/index.js.map +1 -1
- package/build-style/style-rtl.css +72 -44
- package/build-style/style.css +72 -44
- package/build-types/border-box-control/border-box-control/component.d.ts +4 -4
- package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts +6 -6
- package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +4 -2
- package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +3 -3
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +5 -5
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-visualizer/component.d.ts +3 -2
- package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -1
- package/build-types/border-box-control/stories/index.d.ts +3 -3
- package/build-types/border-box-control/types.d.ts +5 -38
- package/build-types/border-box-control/types.d.ts.map +1 -1
- package/build-types/border-control/border-control/component.d.ts +4 -2
- package/build-types/border-control/border-control/component.d.ts.map +1 -1
- package/build-types/border-control/border-control/hook.d.ts +5 -5
- package/build-types/border-control/border-control/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/component.d.ts +3 -3
- package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/hook.d.ts +5 -5
- package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
- package/build-types/border-control/stories/index.d.ts +24 -12
- package/build-types/border-control/stories/index.d.ts.map +1 -1
- package/build-types/border-control/types.d.ts +10 -51
- package/build-types/border-control/types.d.ts.map +1 -1
- package/build-types/color-palette/index.d.ts +16 -2
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-palette/stories/index.d.ts +31 -2
- package/build-types/color-palette/stories/index.d.ts.map +1 -1
- package/build-types/color-palette/types.d.ts +14 -10
- package/build-types/color-palette/types.d.ts.map +1 -1
- package/build-types/color-picker/input-with-slider.d.ts.map +1 -1
- package/build-types/custom-select-control/index.d.ts.map +1 -1
- package/build-types/dashicon/index.d.ts +6 -1
- package/build-types/dashicon/index.d.ts.map +1 -1
- package/build-types/date-time/types.d.ts +0 -16
- package/build-types/date-time/types.d.ts.map +1 -1
- package/build-types/draggable/index.d.ts +42 -66
- package/build-types/draggable/index.d.ts.map +1 -1
- package/build-types/draggable/stories/index.d.ts +12 -0
- package/build-types/draggable/stories/index.d.ts.map +1 -0
- package/build-types/draggable/types.d.ts +58 -0
- package/build-types/draggable/types.d.ts.map +1 -0
- package/build-types/flex/flex/hook.d.ts.map +1 -1
- package/build-types/focal-point-picker/focal-point.d.ts.map +1 -1
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
- package/build-types/focal-point-picker/styles/focal-point-style.d.ts +1 -12
- package/build-types/focal-point-picker/styles/focal-point-style.d.ts.map +1 -1
- package/build-types/font-size-picker/constants.d.ts +15 -0
- package/build-types/font-size-picker/constants.d.ts.map +1 -0
- package/build-types/font-size-picker/font-size-picker-select.d.ts +5 -0
- package/build-types/font-size-picker/font-size-picker-select.d.ts.map +1 -0
- package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts +5 -0
- package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts.map +1 -0
- package/build-types/font-size-picker/index.d.ts.map +1 -1
- package/build-types/font-size-picker/types.d.ts +13 -13
- package/build-types/font-size-picker/types.d.ts.map +1 -1
- package/build-types/font-size-picker/utils.d.ts +6 -18
- package/build-types/font-size-picker/utils.d.ts.map +1 -1
- package/build-types/form-token-field/index.d.ts.map +1 -1
- package/build-types/icon/index.d.ts +1 -1
- package/build-types/icon/index.d.ts.map +1 -1
- package/build-types/menu-group/index.d.ts +21 -1
- package/build-types/menu-group/index.d.ts.map +1 -1
- package/build-types/menu-group/test/index.d.ts +2 -0
- package/build-types/menu-group/test/index.d.ts.map +1 -0
- package/build-types/menu-group/types.d.ts +23 -0
- package/build-types/menu-group/types.d.ts.map +1 -0
- package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/tab-panel/index.d.ts.map +1 -1
- package/build-types/toggle-group-control/stories/index.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +1 -2
- package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/types.d.ts +2 -1
- package/build-types/toggle-group-control/types.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/utils/colors-values.d.ts +1 -0
- package/build-types/utils/colors-values.d.ts.map +1 -1
- package/build-types/view/index.d.ts +1 -1
- package/build-types/view/index.d.ts.map +1 -1
- package/package.json +17 -17
- package/src/angle-picker-control/index.js +2 -1
- package/src/autocomplete/index.js +12 -3
- package/src/autocomplete/style.scss +1 -1
- package/src/base-field/test/__snapshots__/index.js.snap +9 -7
- package/src/base-field/test/index.js +27 -15
- package/src/border-box-control/border-box-control/README.md +5 -17
- package/src/border-box-control/border-box-control/component.tsx +1 -1
- package/src/border-box-control/border-box-control/hook.ts +18 -4
- package/src/border-box-control/border-box-control-split-controls/hook.ts +10 -0
- package/src/border-box-control/types.ts +32 -58
- package/src/border-control/border-control/README.md +4 -17
- package/src/border-control/border-control/component.tsx +2 -2
- package/src/border-control/border-control/hook.ts +10 -0
- package/src/border-control/border-control-dropdown/component.tsx +7 -6
- package/src/border-control/border-control-dropdown/hook.ts +9 -1
- package/src/border-control/types.ts +43 -80
- package/src/card/test/__snapshots__/index.tsx.snap +64 -368
- package/src/card/test/index.tsx +2 -2
- package/src/checkbox-control/style.scss +3 -3
- package/src/color-palette/README.md +12 -16
- package/src/color-palette/index.tsx +1 -1
- package/src/color-palette/style.scss +1 -1
- package/src/color-palette/types.ts +14 -10
- package/src/color-picker/input-with-slider.tsx +13 -2
- package/src/custom-select-control/index.js +7 -0
- package/src/custom-select-control/stories/index.js +1 -0
- package/src/custom-select-control/style.scss +6 -1
- package/src/custom-select-control/test/index.js +39 -0
- package/src/dashicon/index.js +21 -2
- package/src/date-time/date/test/index.tsx +2 -2
- package/src/date-time/types.ts +0 -19
- package/src/divider/test/index.tsx +4 -4
- package/src/draggable/README.md +13 -18
- package/src/draggable/{index.js → index.tsx} +71 -47
- package/src/draggable/stories/index.tsx +83 -0
- package/src/draggable/types.ts +58 -0
- package/src/drop-zone/style.scss +1 -1
- package/src/flex/flex/hook.ts +0 -3
- package/src/flex/test/index.tsx +29 -3
- package/src/focal-point-picker/focal-point.tsx +2 -24
- package/src/focal-point-picker/styles/focal-point-style.ts +8 -32
- package/src/font-size-picker/constants.ts +37 -0
- package/src/font-size-picker/font-size-picker-select.tsx +98 -0
- package/src/font-size-picker/font-size-picker-toggle-group.tsx +41 -0
- package/src/font-size-picker/index.tsx +55 -118
- package/src/font-size-picker/test/index.tsx +253 -44
- package/src/font-size-picker/test/utils.ts +58 -98
- package/src/font-size-picker/types.ts +25 -16
- package/src/font-size-picker/utils.ts +16 -102
- package/src/form-toggle/style.scss +3 -3
- package/src/form-token-field/index.tsx +13 -5
- package/src/form-token-field/style.scss +2 -2
- package/src/form-token-field/test/index.tsx +6 -6
- package/src/higher-order/navigate-regions/index.js +4 -0
- package/src/higher-order/navigate-regions/style.scss +72 -20
- package/src/higher-order/with-notices/test/index.js +1 -1
- package/src/icon/index.tsx +3 -2
- package/src/icon/test/index.js +10 -0
- package/src/index.js +1 -0
- package/src/item-group/stories/index.js +1 -1
- package/src/menu-group/{index.js → index.tsx} +22 -3
- package/src/menu-group/test/{index.js → index.tsx} +0 -0
- package/src/menu-group/types.ts +23 -0
- package/src/menu-item/style.scss +1 -1
- package/src/mobile/bottom-sheet/test/range-cell.native.js +4 -4
- package/src/mobile/html-text-input/test/index.native.js +2 -2
- package/src/mobile/link-settings/test/edit.native.js +29 -29
- package/src/mobile/link-settings/test/link-settings-navigation.native.js +5 -5
- package/src/navigator/navigator-screen/component.tsx +8 -3
- package/src/notice/README.md +2 -1
- package/src/notice/style.scss +1 -1
- package/src/palette-edit/index.js +3 -0
- package/src/panel/style.scss +1 -1
- package/src/popover/index.tsx +18 -7
- package/src/range-control/styles/range-control-styles.ts +2 -2
- package/src/resizable-box/style.scss +2 -2
- package/src/scrollable/test/index.tsx +7 -3
- package/src/search-control/style.scss +1 -1
- package/src/snackbar/style.scss +2 -2
- package/src/spacer/test/index.tsx +33 -3
- package/src/spinner/styles.ts +1 -1
- package/src/surface/test/index.tsx +12 -12
- package/src/tab-panel/index.tsx +9 -6
- package/src/tab-panel/style.scss +4 -5
- package/src/text/test/index.tsx +4 -4
- package/src/toggle-group-control/stories/index.tsx +2 -0
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +6 -8
- package/src/toggle-group-control/test/index.tsx +29 -17
- package/src/toggle-group-control/toggle-group-control/README.md +8 -1
- package/src/toggle-group-control/toggle-group-control/component.tsx +1 -1
- package/src/toggle-group-control/toggle-group-control/styles.ts +22 -16
- package/src/toggle-group-control/types.ts +2 -1
- package/src/tools-panel/styles.ts +1 -1
- package/src/tools-panel/tools-panel-item/hook.ts +6 -1
- package/src/tree-grid/test/index.js +12 -12
- package/src/truncate/test/index.tsx +9 -9
- package/src/ui/form-group/test/index.js +16 -17
- package/src/utils/colors-values.js +4 -2
- package/src/utils/hooks/stories/use-cx.js +1 -1
- package/src/utils/input/base.js +2 -2
- package/src/view/{index.js → index.ts} +0 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/src/draggable/stories/index.js +0 -72
|
@@ -6,42 +6,8 @@ import { __ } from '@wordpress/i18n';
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
|
-
import type {
|
|
10
|
-
|
|
11
|
-
FontSizeOption,
|
|
12
|
-
FontSizeSelectOption,
|
|
13
|
-
FontSizeToggleGroupOption,
|
|
14
|
-
FontSizePickerProps,
|
|
15
|
-
} from './types';
|
|
16
|
-
|
|
17
|
-
const DEFAULT_FONT_SIZE = 'default';
|
|
18
|
-
const DEFAULT_FONT_SIZE_OPTION = {
|
|
19
|
-
slug: DEFAULT_FONT_SIZE,
|
|
20
|
-
name: __( 'Default' ),
|
|
21
|
-
};
|
|
22
|
-
export const CUSTOM_FONT_SIZE = 'custom';
|
|
23
|
-
const CUSTOM_FONT_SIZE_OPTION = {
|
|
24
|
-
slug: CUSTOM_FONT_SIZE,
|
|
25
|
-
name: __( 'Custom' ),
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* In case we have at most five font sizes, show a `T-shirt size`
|
|
30
|
-
* alias as a label of the font size. The label assumes that the font sizes
|
|
31
|
-
* are ordered accordingly - from smallest to largest.
|
|
32
|
-
*/
|
|
33
|
-
const FONT_SIZES_ALIASES = [
|
|
34
|
-
/* translators: S stands for 'small' and is a size label. */
|
|
35
|
-
__( 'S' ),
|
|
36
|
-
/* translators: M stands for 'medium' and is a size label. */
|
|
37
|
-
__( 'M' ),
|
|
38
|
-
/* translators: L stands for 'large' and is a size label. */
|
|
39
|
-
__( 'L' ),
|
|
40
|
-
/* translators: XL stands for 'extra large' and is a size label. */
|
|
41
|
-
__( 'XL' ),
|
|
42
|
-
/* translators: XXL stands for 'extra extra large' and is a size label. */
|
|
43
|
-
__( 'XXL' ),
|
|
44
|
-
];
|
|
9
|
+
import type { FontSizePickerProps, FontSize } from './types';
|
|
10
|
+
import { parseQuantityAndUnitFromRawValue } from '../unit-control';
|
|
45
11
|
|
|
46
12
|
/**
|
|
47
13
|
* Some themes use css vars for their font sizes, so until we
|
|
@@ -58,75 +24,23 @@ export function isSimpleCssValue(
|
|
|
58
24
|
}
|
|
59
25
|
|
|
60
26
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
27
|
+
* If all of the given font sizes have the same unit (e.g. 'px'), return that
|
|
28
|
+
* unit. Otherwise return null.
|
|
63
29
|
*
|
|
64
|
-
* @param
|
|
65
|
-
* @
|
|
66
|
-
* @param disableCustomFontSizes Flag that indicates if custom font sizes are disabled.
|
|
67
|
-
* @return Array of font sizes in proper format for the used control.
|
|
30
|
+
* @param fontSizes List of font sizes.
|
|
31
|
+
* @return The common unit, or null.
|
|
68
32
|
*/
|
|
69
|
-
export function
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
disableCustomFontSizes: boolean
|
|
73
|
-
): FontSizeSelectOption[] | FontSizeToggleGroupOption[] | null {
|
|
74
|
-
if ( disableCustomFontSizes && ! optionsArray.length ) {
|
|
33
|
+
export function getCommonSizeUnit( fontSizes: FontSize[] ) {
|
|
34
|
+
const [ firstFontSize, ...otherFontSizes ] = fontSizes;
|
|
35
|
+
if ( ! firstFontSize ) {
|
|
75
36
|
return null;
|
|
76
37
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
: getToggleGroupOptions( optionsArray );
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
function getSelectOptions(
|
|
83
|
-
optionsArray: FontSize[],
|
|
84
|
-
disableCustomFontSizes: boolean
|
|
85
|
-
): FontSizeSelectOption[] {
|
|
86
|
-
const options: FontSizeOption[] = [
|
|
87
|
-
DEFAULT_FONT_SIZE_OPTION,
|
|
88
|
-
...optionsArray,
|
|
89
|
-
...( disableCustomFontSizes ? [] : [ CUSTOM_FONT_SIZE_OPTION ] ),
|
|
90
|
-
];
|
|
91
|
-
return options.map( ( { slug, name, size } ) => ( {
|
|
92
|
-
key: slug,
|
|
93
|
-
name: name || slug,
|
|
94
|
-
size,
|
|
95
|
-
__experimentalHint:
|
|
96
|
-
size && isSimpleCssValue( size ) && parseFloat( String( size ) ),
|
|
97
|
-
} ) );
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Build options for the toggle group options.
|
|
102
|
-
*
|
|
103
|
-
* @param optionsArray An array of font size options.
|
|
104
|
-
* @param labelAliases An array of alternative labels.
|
|
105
|
-
* @return Remapped optionsArray.
|
|
106
|
-
*/
|
|
107
|
-
export function getToggleGroupOptions(
|
|
108
|
-
optionsArray: FontSize[],
|
|
109
|
-
labelAliases: string[] = FONT_SIZES_ALIASES
|
|
110
|
-
): FontSizeToggleGroupOption[] {
|
|
111
|
-
return optionsArray.map( ( { slug, size, name }, index ) => {
|
|
112
|
-
return {
|
|
113
|
-
key: slug,
|
|
114
|
-
value: size,
|
|
115
|
-
label: labelAliases[ index ],
|
|
116
|
-
name: name || labelAliases[ index ],
|
|
117
|
-
};
|
|
118
|
-
} );
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
export function getSelectedOption(
|
|
122
|
-
fontSizes: FontSize[],
|
|
123
|
-
value: FontSizePickerProps[ 'value' ]
|
|
124
|
-
): FontSizeOption {
|
|
125
|
-
if ( ! value ) {
|
|
126
|
-
return DEFAULT_FONT_SIZE_OPTION;
|
|
127
|
-
}
|
|
128
|
-
return (
|
|
129
|
-
fontSizes.find( ( font ) => font.size === value ) ||
|
|
130
|
-
CUSTOM_FONT_SIZE_OPTION
|
|
38
|
+
const [ , firstUnit ] = parseQuantityAndUnitFromRawValue(
|
|
39
|
+
firstFontSize.size
|
|
131
40
|
);
|
|
41
|
+
const areAllSizesSameUnit = otherFontSizes.every( ( fontSize ) => {
|
|
42
|
+
const [ , unit ] = parseQuantityAndUnitFromRawValue( fontSize.size );
|
|
43
|
+
return unit === firstUnit;
|
|
44
|
+
} );
|
|
45
|
+
return areAllSizesSameUnit ? firstUnit : null;
|
|
132
46
|
}
|
|
@@ -38,13 +38,13 @@ $toggle-border-width: 1px;
|
|
|
38
38
|
|
|
39
39
|
// Checked state.
|
|
40
40
|
&.is-checked .components-form-toggle__track {
|
|
41
|
-
background-color:
|
|
42
|
-
border: $toggle-border-width solid
|
|
41
|
+
background-color: $components-color-accent;
|
|
42
|
+
border: $toggle-border-width solid $components-color-accent;
|
|
43
43
|
border: #{ $toggle-height * 0.5 } solid transparent; // Expand the border to fake a solid in Windows High Contrast Mode.
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
.components-form-toggle__input:focus + .components-form-toggle__track {
|
|
47
|
-
box-shadow: 0 0 0 2px $white, 0 0 0 (2px + $border-width-focus)
|
|
47
|
+
box-shadow: 0 0 0 2px $white, 0 0 0 (2px + $border-width-focus) $components-color-accent;
|
|
48
48
|
|
|
49
49
|
// Windows High Contrast mode will show this outline, but not the box-shadow.
|
|
50
50
|
outline: 2px solid transparent;
|
|
@@ -169,10 +169,18 @@ export function FormTokenField( props: FormTokenFieldProps ) {
|
|
|
169
169
|
function onKeyDown( event: KeyboardEvent ) {
|
|
170
170
|
let preventDefault = false;
|
|
171
171
|
|
|
172
|
-
if (
|
|
172
|
+
if (
|
|
173
|
+
event.defaultPrevented ||
|
|
174
|
+
// Ignore keydowns from IMEs
|
|
175
|
+
event.nativeEvent.isComposing ||
|
|
176
|
+
// Workaround for Mac Safari where the final Enter/Backspace of an IME composition
|
|
177
|
+
// is `isComposing=false`, even though it's technically still part of the composition.
|
|
178
|
+
// These can only be detected by keyCode.
|
|
179
|
+
event.keyCode === 229
|
|
180
|
+
) {
|
|
173
181
|
return;
|
|
174
182
|
}
|
|
175
|
-
switch ( event.
|
|
183
|
+
switch ( event.key ) {
|
|
176
184
|
case 'Backspace':
|
|
177
185
|
preventDefault = handleDeleteKey( deleteTokenBeforeInput );
|
|
178
186
|
break;
|
|
@@ -213,9 +221,9 @@ export function FormTokenField( props: FormTokenFieldProps ) {
|
|
|
213
221
|
|
|
214
222
|
function onKeyPress( event: KeyboardEvent ) {
|
|
215
223
|
let preventDefault = false;
|
|
216
|
-
|
|
217
|
-
switch ( event.
|
|
218
|
-
case
|
|
224
|
+
|
|
225
|
+
switch ( event.key ) {
|
|
226
|
+
case ',':
|
|
219
227
|
preventDefault = handleCommaKey();
|
|
220
228
|
break;
|
|
221
229
|
default:
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
|
|
89
89
|
.components-form-token-field__token-text {
|
|
90
90
|
background: transparent;
|
|
91
|
-
color:
|
|
91
|
+
color: $components-color-accent;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
.components-form-token-field__remove-token {
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
cursor: pointer;
|
|
184
184
|
|
|
185
185
|
&.is-selected {
|
|
186
|
-
background:
|
|
186
|
+
background: $components-color-accent;
|
|
187
187
|
color: $white;
|
|
188
188
|
}
|
|
189
189
|
}
|
|
@@ -277,8 +277,8 @@ describe( 'FormTokenField', () => {
|
|
|
277
277
|
|
|
278
278
|
// There should be 1 "remove item" button for the "bergamot" token
|
|
279
279
|
expect(
|
|
280
|
-
screen.
|
|
281
|
-
).
|
|
280
|
+
screen.getByRole( 'button', { name: 'Remove item' } )
|
|
281
|
+
).toBeInTheDocument();
|
|
282
282
|
|
|
283
283
|
// Click the "X" button for the "bergamot" token (the only one)
|
|
284
284
|
await user.click(
|
|
@@ -827,10 +827,10 @@ describe( 'FormTokenField', () => {
|
|
|
827
827
|
|
|
828
828
|
// Currently, none of the suggestions are selected
|
|
829
829
|
expect(
|
|
830
|
-
within( suggestionList ).
|
|
830
|
+
within( suggestionList ).queryByRole( 'option', {
|
|
831
831
|
selected: true,
|
|
832
832
|
} )
|
|
833
|
-
).
|
|
833
|
+
).not.toBeInTheDocument();
|
|
834
834
|
|
|
835
835
|
// Pressing the down arrow will select "Salmon"
|
|
836
836
|
await user.keyboard( '[ArrowDown]' );
|
|
@@ -900,10 +900,10 @@ describe( 'FormTokenField', () => {
|
|
|
900
900
|
|
|
901
901
|
// Currently, none of the suggestions are selected
|
|
902
902
|
expect(
|
|
903
|
-
within( suggestionList ).
|
|
903
|
+
within( suggestionList ).queryByRole( 'option', {
|
|
904
904
|
selected: true,
|
|
905
905
|
} )
|
|
906
|
-
).
|
|
906
|
+
).not.toBeInTheDocument();
|
|
907
907
|
|
|
908
908
|
const tigerOption = within( suggestionList ).getByRole( 'option', {
|
|
909
909
|
name: 'Tiger',
|
|
@@ -3,30 +3,82 @@
|
|
|
3
3
|
position: relative;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
-
.is-focusing-regions
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
6
|
+
.is-focusing-regions {
|
|
7
|
+
[role="region"]:focus {
|
|
8
|
+
outline: 4px solid $components-color-accent;
|
|
9
|
+
outline-offset: -4px;
|
|
10
|
+
|
|
11
|
+
.interface-navigable-region__stacker {
|
|
12
|
+
position: relative;
|
|
13
|
+
z-index: z-index(".is-focusing-regions [role='region']:focus .interface-navigable-region__stacker");
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Fixes for edge cases.
|
|
18
|
+
// Some of the regions are currently used for layout purposes as 'interface skeleton'
|
|
19
|
+
// items. When they're absolutely positioned or when they contain absolutely
|
|
20
|
+
// positioned elements, they may have no size therefore the focus style is not
|
|
21
|
+
// visible. For the future, it's important to take into consideration that
|
|
22
|
+
// the navigable regions should always have a computed size. For now, we can
|
|
23
|
+
// fix some edge cases but these CSS rules should be later removed in favor of
|
|
24
|
+
// a more abstracted approach to make the navigabel regions focus style work
|
|
25
|
+
// regardles of the CSS used on other components.
|
|
26
|
+
|
|
27
|
+
// Header top bar when Distraction free mode is on.
|
|
28
|
+
&.is-distraction-free .interface-interface-skeleton__header {
|
|
29
|
+
.interface-navigable-region__stacker,
|
|
30
|
+
.edit-post-header {
|
|
31
|
+
outline: inherit;
|
|
32
|
+
outline-offset: inherit;
|
|
33
|
+
}
|
|
18
34
|
}
|
|
19
35
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
36
|
+
// Sidebar toggle button shown when navigating regions.
|
|
37
|
+
.interface-interface-skeleton__sidebar {
|
|
38
|
+
.interface-navigable-region__stacker,
|
|
39
|
+
.edit-post-layout__toggle-sidebar-panel {
|
|
40
|
+
outline: inherit;
|
|
41
|
+
outline-offset: inherit;
|
|
23
42
|
}
|
|
43
|
+
}
|
|
24
44
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
outline
|
|
45
|
+
// Publish sidebar toggle button shown when navigating regions.
|
|
46
|
+
.interface-interface-skeleton__actions {
|
|
47
|
+
.interface-navigable-region__stacker,
|
|
48
|
+
.edit-post-layout__toggle-publish-panel {
|
|
49
|
+
outline: inherit;
|
|
50
|
+
outline-offset: inherit;
|
|
30
51
|
}
|
|
31
52
|
}
|
|
53
|
+
|
|
54
|
+
// Publish sidebar.
|
|
55
|
+
[role="region"].interface-interface-skeleton__actions:focus .editor-post-publish-panel {
|
|
56
|
+
outline: 4px solid $components-color-accent;
|
|
57
|
+
outline-offset: -4px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Edit site Navigation Drawer.
|
|
61
|
+
.interface-interface-skeleton__drawer {
|
|
62
|
+
z-index: z-index(".edit-site-navigation-toggle");
|
|
63
|
+
|
|
64
|
+
.interface-navigable-region__stacker,
|
|
65
|
+
.edit-site-navigation-toggle {
|
|
66
|
+
outline: inherit;
|
|
67
|
+
outline-offset: inherit;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.edit-site-navigation-toggle.is-open {
|
|
71
|
+
outline: none;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.edit-site-navigation-toggle__button {
|
|
75
|
+
z-index: -1;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Fixes for edge cases.
|
|
81
|
+
// Edit site Drawer.
|
|
82
|
+
.interface-interface-skeleton__drawer .interface-navigable-region__stacker {
|
|
83
|
+
height: 100%;
|
|
32
84
|
}
|
package/src/icon/index.tsx
CHANGED
|
@@ -33,7 +33,7 @@ interface BaseProps< P > {
|
|
|
33
33
|
/**
|
|
34
34
|
* The size (width and height) of the icon.
|
|
35
35
|
*
|
|
36
|
-
* @default 24
|
|
36
|
+
* @default `20` when a Dashicon is rendered, `24` for all other icons.
|
|
37
37
|
*/
|
|
38
38
|
size?: number;
|
|
39
39
|
}
|
|
@@ -48,13 +48,14 @@ export type Props< P > = BaseProps< P > & AdditionalProps< IconType< P > >;
|
|
|
48
48
|
|
|
49
49
|
function Icon< P >( {
|
|
50
50
|
icon = null,
|
|
51
|
-
size = 24,
|
|
51
|
+
size = 'string' === typeof icon ? 20 : 24,
|
|
52
52
|
...additionalProps
|
|
53
53
|
}: Props< P > ) {
|
|
54
54
|
if ( 'string' === typeof icon ) {
|
|
55
55
|
return (
|
|
56
56
|
<Dashicon
|
|
57
57
|
icon={ icon }
|
|
58
|
+
size={ size }
|
|
58
59
|
{ ...( additionalProps as HTMLProps< HTMLSpanElement > ) }
|
|
59
60
|
/>
|
|
60
61
|
);
|
package/src/icon/test/index.js
CHANGED
|
@@ -32,6 +32,16 @@ describe( 'Icon', () => {
|
|
|
32
32
|
);
|
|
33
33
|
} );
|
|
34
34
|
|
|
35
|
+
it( 'renders a dashicon with custom size', () => {
|
|
36
|
+
render(
|
|
37
|
+
<Icon data-testid={ testId } icon="format-image" size={ 10 } />
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
expect( screen.getByTestId( testId ) ).toHaveStyle( 'width:10px' );
|
|
41
|
+
expect( screen.getByTestId( testId ) ).toHaveStyle( 'height:10px' );
|
|
42
|
+
expect( screen.getByTestId( testId ) ).toHaveStyle( 'font-size:10px' );
|
|
43
|
+
} );
|
|
44
|
+
|
|
35
45
|
it( 'renders a function', () => {
|
|
36
46
|
render( <Icon icon={ () => <span data-testid={ testId } /> } /> );
|
|
37
47
|
|
package/src/index.js
CHANGED
|
@@ -126,6 +126,7 @@ export { default as PanelHeader } from './panel/header';
|
|
|
126
126
|
export { default as PanelRow } from './panel/row';
|
|
127
127
|
export { default as Placeholder } from './placeholder';
|
|
128
128
|
export { default as Popover } from './popover';
|
|
129
|
+
export { positionToPlacement as __experimentalPopoverPositionToPlacement } from './popover/utils';
|
|
129
130
|
export { default as QueryControls } from './query-controls';
|
|
130
131
|
export { default as __experimentalRadio } from './radio-group/radio';
|
|
131
132
|
export { default as __experimentalRadioGroup } from './radio-group';
|
|
@@ -150,7 +150,7 @@ const ItemWithChevron = ( {
|
|
|
150
150
|
|
|
151
151
|
const itemClassName = useMemo(
|
|
152
152
|
() => cx( ! alwaysVisible && appearingChevron, className ),
|
|
153
|
-
[ alwaysVisible, className, cx ]
|
|
153
|
+
[ alwaysVisible, className, cx, appearingChevron ]
|
|
154
154
|
);
|
|
155
155
|
|
|
156
156
|
const chevronIconClassName = useMemo(
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @ts-nocheck
|
|
2
1
|
/**
|
|
3
2
|
* External dependencies
|
|
4
3
|
*/
|
|
@@ -10,7 +9,27 @@ import classnames from 'classnames';
|
|
|
10
9
|
import { Children } from '@wordpress/element';
|
|
11
10
|
import { useInstanceId } from '@wordpress/compose';
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Internal dependencies
|
|
14
|
+
*/
|
|
15
|
+
import type { MenuGroupProps } from './types';
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* `MenuGroup` wraps a series of related `MenuItem` components into a common
|
|
19
|
+
* section.
|
|
20
|
+
*
|
|
21
|
+
* ```jsx
|
|
22
|
+
* import { MenuGroup, MenuItem } from '@wordpress/components';
|
|
23
|
+
*
|
|
24
|
+
* const MyMenuGroup = () => (
|
|
25
|
+
* <MenuGroup label="Settings">
|
|
26
|
+
* <MenuItem>Setting 1</MenuItem>
|
|
27
|
+
* <MenuItem>Setting 2</MenuItem>
|
|
28
|
+
* </MenuGroup>
|
|
29
|
+
* );
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export function MenuGroup( props: MenuGroupProps ) {
|
|
14
33
|
const { children, className = '', label, hideSeparator } = props;
|
|
15
34
|
const instanceId = useInstanceId( MenuGroup );
|
|
16
35
|
|
|
@@ -34,7 +53,7 @@ export function MenuGroup( props ) {
|
|
|
34
53
|
{ label }
|
|
35
54
|
</div>
|
|
36
55
|
) }
|
|
37
|
-
<div role="group" aria-labelledby={ label ? labelId :
|
|
56
|
+
<div role="group" aria-labelledby={ label ? labelId : undefined }>
|
|
38
57
|
{ children }
|
|
39
58
|
</div>
|
|
40
59
|
</div>
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import type { ReactNode } from 'react';
|
|
5
|
+
|
|
6
|
+
export type MenuGroupProps = {
|
|
7
|
+
/**
|
|
8
|
+
* A CSS `class` to give to the container element.
|
|
9
|
+
*/
|
|
10
|
+
className?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Hide the top border on the container.
|
|
13
|
+
*/
|
|
14
|
+
hideSeparator?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Text to be displayed as the menu group header.
|
|
17
|
+
*/
|
|
18
|
+
label?: string;
|
|
19
|
+
/**
|
|
20
|
+
* The children elements.
|
|
21
|
+
*/
|
|
22
|
+
children?: ReactNode;
|
|
23
|
+
};
|
package/src/menu-item/style.scss
CHANGED
|
@@ -33,7 +33,7 @@ afterAll( () => {
|
|
|
33
33
|
|
|
34
34
|
it( 'allows modifying units via a11y actions', async () => {
|
|
35
35
|
const mockOpenUnitPicker = jest.fn();
|
|
36
|
-
const {
|
|
36
|
+
const { getByLabelText } = render(
|
|
37
37
|
<RangeCell
|
|
38
38
|
label="Opacity"
|
|
39
39
|
minimumValue={ 0 }
|
|
@@ -44,7 +44,7 @@ it( 'allows modifying units via a11y actions', async () => {
|
|
|
44
44
|
/>
|
|
45
45
|
);
|
|
46
46
|
|
|
47
|
-
const opacityControl =
|
|
47
|
+
const opacityControl = getByLabelText( /Opacity/ );
|
|
48
48
|
fireEvent( opacityControl, 'accessibilityAction', {
|
|
49
49
|
nativeEvent: { actionName: 'activate' },
|
|
50
50
|
} );
|
|
@@ -54,7 +54,7 @@ it( 'allows modifying units via a11y actions', async () => {
|
|
|
54
54
|
|
|
55
55
|
describe( 'when range lacks an adjustable unit', () => {
|
|
56
56
|
it( 'disallows modifying units via a11y actions', async () => {
|
|
57
|
-
const {
|
|
57
|
+
const { getByLabelText } = render(
|
|
58
58
|
<RangeCell
|
|
59
59
|
label="Opacity"
|
|
60
60
|
minimumValue={ 0 }
|
|
@@ -64,7 +64,7 @@ describe( 'when range lacks an adjustable unit', () => {
|
|
|
64
64
|
/>
|
|
65
65
|
);
|
|
66
66
|
|
|
67
|
-
const opacityControl =
|
|
67
|
+
const opacityControl = getByLabelText( /Opacity/ );
|
|
68
68
|
const { onAccessibilityAction } = opacityControl.props;
|
|
69
69
|
expect( () =>
|
|
70
70
|
onAccessibilityAction( { nativeEvent: { actionName: 'activate' } } )
|
|
@@ -10,12 +10,12 @@ import { HTMLTextInput } from '..';
|
|
|
10
10
|
|
|
11
11
|
// Finds the Content TextInput in our HTMLInputView.
|
|
12
12
|
const findContentTextInput = ( screen ) => {
|
|
13
|
-
return screen.
|
|
13
|
+
return screen.getByLabelText( 'html-view-content' );
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
// Finds the Title TextInput in our HTMLInputView.
|
|
17
17
|
const findTitleTextInput = ( screen ) => {
|
|
18
|
-
return screen.
|
|
18
|
+
return screen.getByLabelText( 'html-view-title' );
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
const getStylesFromColorScheme = () => {
|