@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
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
|
|
10
|
+
var _i18n = require("@wordpress/i18n");
|
|
11
|
+
|
|
12
|
+
var _toggleGroupControl = require("../toggle-group-control");
|
|
13
|
+
|
|
14
|
+
var _constants = require("./constants");
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* WordPress dependencies
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Internal dependencies
|
|
22
|
+
*/
|
|
23
|
+
const FontSizePickerToggleGroup = props => {
|
|
24
|
+
const {
|
|
25
|
+
fontSizes,
|
|
26
|
+
value,
|
|
27
|
+
__nextHasNoMarginBottom,
|
|
28
|
+
size,
|
|
29
|
+
onChange
|
|
30
|
+
} = props;
|
|
31
|
+
return (0, _element.createElement)(_toggleGroupControl.ToggleGroupControl, {
|
|
32
|
+
__nextHasNoMarginBottom: __nextHasNoMarginBottom,
|
|
33
|
+
label: (0, _i18n.__)('Font size'),
|
|
34
|
+
hideLabelFromVision: true,
|
|
35
|
+
value: value,
|
|
36
|
+
onChange: onChange,
|
|
37
|
+
isBlock: true,
|
|
38
|
+
size: size
|
|
39
|
+
}, fontSizes.map((fontSize, index) => (0, _element.createElement)(_toggleGroupControl.ToggleGroupControlOption, {
|
|
40
|
+
key: fontSize.slug,
|
|
41
|
+
value: fontSize.size,
|
|
42
|
+
label: _constants.T_SHIRT_ABBREVIATIONS[index],
|
|
43
|
+
"aria-label": fontSize.name || _constants.T_SHIRT_NAMES[index],
|
|
44
|
+
showTooltip: true
|
|
45
|
+
})));
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
var _default = FontSizePickerToggleGroup;
|
|
49
|
+
exports.default = _default;
|
|
50
|
+
//# sourceMappingURL=font-size-picker-toggle-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/font-size-picker/font-size-picker-toggle-group.tsx"],"names":["FontSizePickerToggleGroup","props","fontSizes","value","__nextHasNoMarginBottom","size","onChange","map","fontSize","index","slug","T_SHIRT_ABBREVIATIONS","name","T_SHIRT_NAMES"],"mappings":";;;;;;;;;AAGA;;AAKA;;AAIA;;AAZA;AACA;AACA;;AAGA;AACA;AACA;AAQA,MAAMA,yBAAyB,GAAKC,KAAF,IAA6C;AAC9E,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,KAAb;AAAoBC,IAAAA,uBAApB;AAA6CC,IAAAA,IAA7C;AAAmDC,IAAAA;AAAnD,MAAgEL,KAAtE;AACA,SACC,4BAAC,sCAAD;AACC,IAAA,uBAAuB,EAAGG,uBAD3B;AAEC,IAAA,KAAK,EAAG,cAAI,WAAJ,CAFT;AAGC,IAAA,mBAAmB,MAHpB;AAIC,IAAA,KAAK,EAAGD,KAJT;AAKC,IAAA,QAAQ,EAAGG,QALZ;AAMC,IAAA,OAAO,MANR;AAOC,IAAA,IAAI,EAAGD;AAPR,KASGH,SAAS,CAACK,GAAV,CAAe,CAAEC,QAAF,EAAYC,KAAZ,KAChB,4BAAC,4CAAD;AACC,IAAA,GAAG,EAAGD,QAAQ,CAACE,IADhB;AAEC,IAAA,KAAK,EAAGF,QAAQ,CAACH,IAFlB;AAGC,IAAA,KAAK,EAAGM,iCAAuBF,KAAvB,CAHT;AAIC,kBAAaD,QAAQ,CAACI,IAAT,IAAiBC,yBAAeJ,KAAf,CAJ/B;AAKC,IAAA,WAAW;AALZ,IADC,CATH,CADD;AAqBA,CAvBD;;eAyBeT,yB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tToggleGroupControl,\n\tToggleGroupControlOption,\n} from '../toggle-group-control';\nimport { T_SHIRT_ABBREVIATIONS, T_SHIRT_NAMES } from './constants';\nimport type { FontSizePickerToggleGroupProps } from './types';\n\nconst FontSizePickerToggleGroup = ( props: FontSizePickerToggleGroupProps ) => {\n\tconst { fontSizes, value, __nextHasNoMarginBottom, size, onChange } = props;\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\tlabel={ __( 'Font size' ) }\n\t\t\thideLabelFromVision\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t\tisBlock\n\t\t\tsize={ size }\n\t\t>\n\t\t\t{ fontSizes.map( ( fontSize, index ) => (\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ fontSize.slug }\n\t\t\t\t\tvalue={ fontSize.size }\n\t\t\t\t\tlabel={ T_SHIRT_ABBREVIATIONS[ index ] }\n\t\t\t\t\taria-label={ fontSize.name || T_SHIRT_NAMES[ index ] }\n\t\t\t\t\tshowTooltip\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</ToggleGroupControl>\n\t);\n};\n\nexport default FontSizePickerToggleGroup;\n"]}
|
|
@@ -23,12 +23,8 @@ var _flex = require("../flex");
|
|
|
23
23
|
|
|
24
24
|
var _unitControl = _interopRequireWildcard(require("../unit-control"));
|
|
25
25
|
|
|
26
|
-
var _customSelectControl = _interopRequireDefault(require("../custom-select-control"));
|
|
27
|
-
|
|
28
26
|
var _visuallyHidden = require("../visually-hidden");
|
|
29
27
|
|
|
30
|
-
var _toggleGroupControl = require("../toggle-group-control");
|
|
31
|
-
|
|
32
28
|
var _utils = require("./utils");
|
|
33
29
|
|
|
34
30
|
var _hStack = require("../h-stack");
|
|
@@ -37,6 +33,12 @@ var _styles = require("./styles");
|
|
|
37
33
|
|
|
38
34
|
var _spacer = require("../spacer");
|
|
39
35
|
|
|
36
|
+
var _fontSizePickerSelect = _interopRequireDefault(require("./font-size-picker-select"));
|
|
37
|
+
|
|
38
|
+
var _fontSizePickerToggleGroup = _interopRequireDefault(require("./font-size-picker-toggle-group"));
|
|
39
|
+
|
|
40
|
+
var _constants = require("./constants");
|
|
41
|
+
|
|
40
42
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
43
|
|
|
42
44
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -79,59 +81,39 @@ const UnforwardedFontSizePicker = (props, ref) => {
|
|
|
79
81
|
const units = (0, _unitControl.useCustomUnits)({
|
|
80
82
|
availableUnits: ['px', 'em', 'rem']
|
|
81
83
|
});
|
|
82
|
-
/**
|
|
83
|
-
* The main font size UI displays a toggle group when the presets are less
|
|
84
|
-
* than six and a select control when they are more.
|
|
85
|
-
*/
|
|
86
|
-
|
|
87
|
-
const fontSizesContainComplexValues = fontSizes.some(_ref => {
|
|
88
|
-
let {
|
|
89
|
-
size: sizeArg
|
|
90
|
-
} = _ref;
|
|
91
|
-
return !(0, _utils.isSimpleCssValue)(sizeArg);
|
|
92
|
-
});
|
|
93
84
|
const shouldUseSelectControl = fontSizes.length > 5;
|
|
94
|
-
const
|
|
95
|
-
const
|
|
96
|
-
const isCustomValue = selectedOption.slug === _utils.CUSTOM_FONT_SIZE;
|
|
85
|
+
const selectedFontSize = fontSizes.find(fontSize => fontSize.size === value);
|
|
86
|
+
const isCustomValue = !!value && !selectedFontSize;
|
|
97
87
|
const [showCustomValueControl, setShowCustomValueControl] = (0, _element.useState)(!disableCustomFontSizes && isCustomValue);
|
|
98
88
|
const headerHint = (0, _element.useMemo)(() => {
|
|
99
89
|
if (showCustomValueControl) {
|
|
100
|
-
return
|
|
101
|
-
} // If we have a custom value that is not available in the font sizes,
|
|
102
|
-
// show it as a hint as long as it's a simple CSS value.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
if (isCustomValue) {
|
|
106
|
-
return value !== undefined && (0, _utils.isSimpleCssValue)(value) && `(${value})`;
|
|
90
|
+
return (0, _i18n.__)('Custom');
|
|
107
91
|
}
|
|
108
92
|
|
|
109
|
-
if (shouldUseSelectControl) {
|
|
110
|
-
|
|
111
|
-
|
|
93
|
+
if (!shouldUseSelectControl) {
|
|
94
|
+
if (selectedFontSize) {
|
|
95
|
+
return selectedFontSize.name || _constants.T_SHIRT_NAMES[fontSizes.indexOf(selectedFontSize)];
|
|
96
|
+
}
|
|
112
97
|
|
|
98
|
+
return '';
|
|
99
|
+
}
|
|
113
100
|
|
|
114
|
-
|
|
101
|
+
const commonUnit = (0, _utils.getCommonSizeUnit)(fontSizes);
|
|
115
102
|
|
|
116
|
-
if (
|
|
117
|
-
|
|
118
|
-
hint += `(${unit})`;
|
|
103
|
+
if (commonUnit) {
|
|
104
|
+
return `(${commonUnit})`;
|
|
119
105
|
}
|
|
120
106
|
|
|
121
|
-
return
|
|
122
|
-
}, [showCustomValueControl,
|
|
107
|
+
return '';
|
|
108
|
+
}, [showCustomValueControl, shouldUseSelectControl, selectedFontSize, fontSizes]);
|
|
123
109
|
|
|
124
|
-
if (
|
|
110
|
+
if (fontSizes.length === 0 && disableCustomFontSizes) {
|
|
125
111
|
return null;
|
|
126
|
-
} //
|
|
127
|
-
// for ToggleGroupControl.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const currentFontSizeSR = (0, _i18n.sprintf)( // translators: %s: Currently selected font size.
|
|
131
|
-
(0, _i18n.__)('Currently selected font size: %s'), selectedOption.name); // If neither the value or first font size is a string, then FontSizePicker
|
|
112
|
+
} // If neither the value or first font size is a string, then FontSizePicker
|
|
132
113
|
// operates in a legacy "unitless" mode where UnitControl can only be used
|
|
133
114
|
// to select px values and onChange() is always called with number values.
|
|
134
115
|
|
|
116
|
+
|
|
135
117
|
const hasUnits = typeof value === 'string' || typeof ((_fontSizes$ = fontSizes[0]) === null || _fontSizes$ === void 0 ? void 0 : _fontSizes$.size) === 'string';
|
|
136
118
|
const [valueQuantity, valueUnit] = (0, _unitControl.parseQuantityAndUnitFromRawValue)(value, units);
|
|
137
119
|
const isValueUnitRelative = !!valueUnit && ['em', 'rem'].includes(valueUnit);
|
|
@@ -157,51 +139,32 @@ const UnforwardedFontSizePicker = (props, ref) => {
|
|
|
157
139
|
}))), (0, _element.createElement)(_styles.Controls, {
|
|
158
140
|
className: "components-font-size-picker__controls",
|
|
159
141
|
__nextHasNoMarginBottom: __nextHasNoMarginBottom
|
|
160
|
-
}, !!fontSizes.length && shouldUseSelectControl && !showCustomValueControl && (0, _element.createElement)(
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
value: options.find(option => option.key === selectedOption.slug),
|
|
168
|
-
onChange: _ref2 => {
|
|
169
|
-
let {
|
|
170
|
-
selectedItem
|
|
171
|
-
} = _ref2;
|
|
172
|
-
|
|
173
|
-
if (selectedItem.size === undefined) {
|
|
142
|
+
}, !!fontSizes.length && shouldUseSelectControl && !showCustomValueControl && (0, _element.createElement)(_fontSizePickerSelect.default, {
|
|
143
|
+
fontSizes: fontSizes,
|
|
144
|
+
value: value,
|
|
145
|
+
disableCustomFontSizes: disableCustomFontSizes,
|
|
146
|
+
size: size,
|
|
147
|
+
onChange: newValue => {
|
|
148
|
+
if (newValue === undefined) {
|
|
174
149
|
onChange === null || onChange === void 0 ? void 0 : onChange(undefined);
|
|
175
150
|
} else {
|
|
176
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(hasUnits ?
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
if (selectedItem.key === _utils.CUSTOM_FONT_SIZE) {
|
|
180
|
-
setShowCustomValueControl(true);
|
|
151
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(hasUnits ? newValue : Number(newValue), fontSizes.find(fontSize => fontSize.size === newValue));
|
|
181
152
|
}
|
|
182
153
|
},
|
|
183
|
-
|
|
184
|
-
}), !shouldUseSelectControl && !showCustomValueControl && (0, _element.createElement)(
|
|
185
|
-
|
|
186
|
-
label: (0, _i18n.__)('Font size'),
|
|
187
|
-
hideLabelFromVision: true,
|
|
154
|
+
onSelectCustom: () => setShowCustomValueControl(true)
|
|
155
|
+
}), !shouldUseSelectControl && !showCustomValueControl && (0, _element.createElement)(_fontSizePickerToggleGroup.default, {
|
|
156
|
+
fontSizes: fontSizes,
|
|
188
157
|
value: value,
|
|
158
|
+
__nextHasNoMarginBottom: __nextHasNoMarginBottom,
|
|
159
|
+
size: size,
|
|
189
160
|
onChange: newValue => {
|
|
190
161
|
if (newValue === undefined) {
|
|
191
162
|
onChange === null || onChange === void 0 ? void 0 : onChange(undefined);
|
|
192
163
|
} else {
|
|
193
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(hasUnits ? newValue : Number(newValue));
|
|
164
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(hasUnits ? newValue : Number(newValue), fontSizes.find(fontSize => fontSize.size === newValue));
|
|
194
165
|
}
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
size: size
|
|
198
|
-
}, options.map(option => (0, _element.createElement)(_toggleGroupControl.ToggleGroupControlOption, {
|
|
199
|
-
key: option.key,
|
|
200
|
-
value: option.value,
|
|
201
|
-
label: option.label,
|
|
202
|
-
"aria-label": option.name,
|
|
203
|
-
showTooltip: true
|
|
204
|
-
}))), !disableCustomFontSizes && showCustomValueControl && (0, _element.createElement)(_flex.Flex, {
|
|
166
|
+
}
|
|
167
|
+
}), !disableCustomFontSizes && showCustomValueControl && (0, _element.createElement)(_flex.Flex, {
|
|
205
168
|
className: "components-font-size-picker__custom-size-control"
|
|
206
169
|
}, (0, _element.createElement)(_flex.FlexItem, {
|
|
207
170
|
isBlock: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/font-size-picker/index.tsx"],"names":["UnforwardedFontSizePicker","props","ref","__nextHasNoMarginBottom","fallbackFontSize","fontSizes","disableCustomFontSizes","onChange","size","value","withSlider","withReset","since","version","hint","units","availableUnits","fontSizesContainComplexValues","some","sizeArg","shouldUseSelectControl","length","options","selectedOption","isCustomValue","slug","CUSTOM_FONT_SIZE","showCustomValueControl","setShowCustomValueControl","headerHint","undefined","name","unit","currentFontSizeSR","hasUnits","valueQuantity","valueUnit","isValueUnitRelative","includes","settings","find","option","key","selectedItem","Number","newValue","map","label","parseInt","FontSizePicker"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\nimport { useState, useMemo, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport RangeControl from '../range-control';\nimport { Flex, FlexItem } from '../flex';\nimport {\n\tdefault as UnitControl,\n\tparseQuantityAndUnitFromRawValue,\n\tuseCustomUnits,\n} from '../unit-control';\nimport CustomSelectControl from '../custom-select-control';\nimport { VisuallyHidden } from '../visually-hidden';\nimport {\n\tToggleGroupControl,\n\tToggleGroupControlOption,\n} from '../toggle-group-control';\nimport {\n\tgetFontSizeOptions,\n\tgetSelectedOption,\n\tisSimpleCssValue,\n\tCUSTOM_FONT_SIZE,\n} from './utils';\nimport { HStack } from '../h-stack';\nimport type {\n\tFontSizePickerProps,\n\tFontSizeSelectOption,\n\tFontSizeToggleGroupOption,\n} from './types';\nimport {\n\tContainer,\n\tHeaderHint,\n\tHeaderLabel,\n\tControls,\n\tResetButton,\n} from './styles';\nimport { Spacer } from '../spacer';\n\nconst UnforwardedFontSizePicker = (\n\tprops: FontSizePickerProps,\n\tref: ForwardedRef< any >\n) => {\n\tconst {\n\t\t/** Start opting into the new margin-free styles that will become the default in a future version. */\n\t\t__nextHasNoMarginBottom = false,\n\t\tfallbackFontSize,\n\t\tfontSizes = [],\n\t\tdisableCustomFontSizes = false,\n\t\tonChange,\n\t\tsize = 'default',\n\t\tvalue,\n\t\twithSlider = false,\n\t\twithReset = true,\n\t} = props;\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\tdeprecated( 'Bottom margin styles for wp.components.FontSizePicker', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.4',\n\t\t\thint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.',\n\t\t} );\n\t}\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ 'px', 'em', 'rem' ],\n\t} );\n\n\t/**\n\t * The main font size UI displays a toggle group when the presets are less\n\t * than six and a select control when they are more.\n\t */\n\tconst fontSizesContainComplexValues = fontSizes.some(\n\t\t( { size: sizeArg } ) => ! isSimpleCssValue( sizeArg )\n\t);\n\tconst shouldUseSelectControl = fontSizes.length > 5;\n\tconst options = useMemo(\n\t\t() =>\n\t\t\tgetFontSizeOptions(\n\t\t\t\tshouldUseSelectControl,\n\t\t\t\tfontSizes,\n\t\t\t\tdisableCustomFontSizes\n\t\t\t),\n\t\t[ shouldUseSelectControl, fontSizes, disableCustomFontSizes ]\n\t);\n\tconst selectedOption = getSelectedOption( fontSizes, value );\n\tconst isCustomValue = selectedOption.slug === CUSTOM_FONT_SIZE;\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomFontSizes && isCustomValue\n\t);\n\tconst headerHint = useMemo( () => {\n\t\tif ( showCustomValueControl ) {\n\t\t\treturn `(${ __( 'Custom' ) })`;\n\t\t}\n\n\t\t// If we have a custom value that is not available in the font sizes,\n\t\t// show it as a hint as long as it's a simple CSS value.\n\t\tif ( isCustomValue ) {\n\t\t\treturn (\n\t\t\t\tvalue !== undefined &&\n\t\t\t\tisSimpleCssValue( value ) &&\n\t\t\t\t`(${ value })`\n\t\t\t);\n\t\t}\n\t\tif ( shouldUseSelectControl ) {\n\t\t\treturn (\n\t\t\t\tselectedOption?.size !== undefined &&\n\t\t\t\tisSimpleCssValue( selectedOption?.size ) &&\n\t\t\t\t`(${ selectedOption?.size })`\n\t\t\t);\n\t\t}\n\n\t\t// Calculate the `hint` for toggle group control.\n\t\tlet hint = selectedOption?.name || selectedOption.slug;\n\t\tif (\n\t\t\t! fontSizesContainComplexValues &&\n\t\t\ttypeof selectedOption.size === 'string'\n\t\t) {\n\t\t\tconst [ , unit ] = parseQuantityAndUnitFromRawValue(\n\t\t\t\tselectedOption.size,\n\t\t\t\tunits\n\t\t\t);\n\t\t\thint += `(${ unit })`;\n\t\t}\n\t\treturn hint;\n\t}, [\n\t\tshowCustomValueControl,\n\t\tselectedOption?.name,\n\t\tselectedOption?.size,\n\t\tvalue,\n\t\tisCustomValue,\n\t\tshouldUseSelectControl,\n\t\tfontSizesContainComplexValues,\n\t] );\n\n\tif ( ! options ) {\n\t\treturn null;\n\t}\n\n\t// This is used for select control only. We need to add support\n\t// for ToggleGroupControl.\n\tconst currentFontSizeSR = sprintf(\n\t\t// translators: %s: Currently selected font size.\n\t\t__( 'Currently selected font size: %s' ),\n\t\tselectedOption.name\n\t);\n\n\t// If neither the value or first font size is a string, then FontSizePicker\n\t// operates in a legacy \"unitless\" mode where UnitControl can only be used\n\t// to select px values and onChange() is always called with number values.\n\tconst hasUnits =\n\t\ttypeof value === 'string' || typeof fontSizes[ 0 ]?.size === 'string';\n\n\tconst [ valueQuantity, valueUnit ] = parseQuantityAndUnitFromRawValue(\n\t\tvalue,\n\t\tunits\n\t);\n\tconst isValueUnitRelative =\n\t\t!! valueUnit && [ 'em', 'rem' ].includes( valueUnit );\n\n\treturn (\n\t\t<Container ref={ ref } className=\"components-font-size-picker\">\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Font size' ) }</VisuallyHidden>\n\t\t\t<Spacer>\n\t\t\t\t<HStack className=\"components-font-size-picker__header\">\n\t\t\t\t\t<HeaderLabel\n\t\t\t\t\t\taria-label={ `${ __( 'Size' ) } ${ headerHint || '' }` }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Size' ) }\n\t\t\t\t\t\t{ headerHint && (\n\t\t\t\t\t\t\t<HeaderHint className=\"components-font-size-picker__header__hint\">\n\t\t\t\t\t\t\t\t{ headerHint }\n\t\t\t\t\t\t\t</HeaderHint>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</HeaderLabel>\n\t\t\t\t\t{ ! disableCustomFontSizes && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={ settings }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowCustomValueControl(\n\t\t\t\t\t\t\t\t\t! showCustomValueControl\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</Spacer>\n\t\t\t<Controls\n\t\t\t\tclassName=\"components-font-size-picker__controls\"\n\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t>\n\t\t\t\t{ !! fontSizes.length &&\n\t\t\t\t\tshouldUseSelectControl &&\n\t\t\t\t\t! showCustomValueControl && (\n\t\t\t\t\t\t<CustomSelectControl\n\t\t\t\t\t\t\t__nextUnconstrainedWidth\n\t\t\t\t\t\t\tclassName=\"components-font-size-picker__select\"\n\t\t\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\tdescribedBy={ currentFontSizeSR }\n\t\t\t\t\t\t\toptions={ options as FontSizeSelectOption[] }\n\t\t\t\t\t\t\tvalue={ ( options as FontSizeSelectOption[] ).find(\n\t\t\t\t\t\t\t\t( option ) => option.key === selectedOption.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChange={ ( {\n\t\t\t\t\t\t\t\tselectedItem,\n\t\t\t\t\t\t\t}: {\n\t\t\t\t\t\t\t\tselectedItem: FontSizeSelectOption;\n\t\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\t\tif ( selectedItem.size === undefined ) {\n\t\t\t\t\t\t\t\t\tonChange?.( undefined );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tonChange?.(\n\t\t\t\t\t\t\t\t\t\thasUnits\n\t\t\t\t\t\t\t\t\t\t\t? selectedItem.size\n\t\t\t\t\t\t\t\t\t\t\t: Number( selectedItem.size )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( selectedItem.key === CUSTOM_FONT_SIZE ) {\n\t\t\t\t\t\t\t\t\tsetShowCustomValueControl( true );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tsize={ size }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t{ ! shouldUseSelectControl && ! showCustomValueControl && (\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t\t\t\tlabel={ __( 'Font size' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tif ( newValue === undefined ) {\n\t\t\t\t\t\t\t\tonChange?.( undefined );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tonChange?.(\n\t\t\t\t\t\t\t\t\thasUnits ? newValue : Number( newValue )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\tsize={ size }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( options as FontSizeToggleGroupOption[] ).map(\n\t\t\t\t\t\t\t( option ) => (\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tkey={ option.key }\n\t\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\t\tlabel={ option.label }\n\t\t\t\t\t\t\t\t\taria-label={ option.name }\n\t\t\t\t\t\t\t\t\tshowTooltip={ true }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t) }\n\t\t\t\t{ ! disableCustomFontSizes && showCustomValueControl && (\n\t\t\t\t\t<Flex className=\"components-font-size-picker__custom-size-control\">\n\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Custom' ) }\n\t\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\t\tif ( newValue === undefined ) {\n\t\t\t\t\t\t\t\t\t\tonChange?.( undefined );\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tonChange?.(\n\t\t\t\t\t\t\t\t\t\t\thasUnits\n\t\t\t\t\t\t\t\t\t\t\t\t? newValue\n\t\t\t\t\t\t\t\t\t\t\t\t: parseInt( newValue, 10 )\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tsize={ size }\n\t\t\t\t\t\t\t\tunits={ hasUnits ? units : [] }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t{ withSlider && (\n\t\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t\t<Spacer marginX={ 2 } marginBottom={ 0 }>\n\t\t\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom={\n\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tclassName=\"components-font-size-picker__custom-input\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Custom Size' ) }\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\t\tvalue={ valueQuantity }\n\t\t\t\t\t\t\t\t\t\tinitialPosition={ fallbackFontSize }\n\t\t\t\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\t\t\t\tif ( newValue === undefined ) {\n\t\t\t\t\t\t\t\t\t\t\t\tonChange?.( undefined );\n\t\t\t\t\t\t\t\t\t\t\t} else if ( hasUnits ) {\n\t\t\t\t\t\t\t\t\t\t\t\tonChange?.(\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewValue +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t( valueUnit ?? 'px' )\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tonChange?.( newValue );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\t\t\tmax={ isValueUnitRelative ? 10 : 100 }\n\t\t\t\t\t\t\t\t\t\tstep={ isValueUnitRelative ? 0.1 : 1 }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ withReset && (\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<ResetButton\n\t\t\t\t\t\t\t\t\tdisabled={ value === undefined }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tonChange?.( undefined );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\tsize={ size }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t\t\t</ResetButton>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t) }\n\t\t\t</Controls>\n\t\t</Container>\n\t);\n};\n\nexport const FontSizePicker = forwardRef( UnforwardedFontSizePicker );\n\nexport default FontSizePicker;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/font-size-picker/index.tsx"],"names":["UnforwardedFontSizePicker","props","ref","__nextHasNoMarginBottom","fallbackFontSize","fontSizes","disableCustomFontSizes","onChange","size","value","withSlider","withReset","since","version","hint","units","availableUnits","shouldUseSelectControl","length","selectedFontSize","find","fontSize","isCustomValue","showCustomValueControl","setShowCustomValueControl","headerHint","name","T_SHIRT_NAMES","indexOf","commonUnit","hasUnits","valueQuantity","valueUnit","isValueUnitRelative","includes","settings","newValue","undefined","Number","parseInt","FontSizePicker"],"mappings":";;;;;;;;;AAWA;;AAHA;;AACA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AAEA;;AAOA;;AACA;;AACA;;AACA;;;;;;AAtCA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;AAyBA,MAAMA,yBAAyB,GAAG,CACjCC,KADiC,EAEjCC,GAFiC,KAG7B;AAAA;;AACJ,QAAM;AACL;AACAC,IAAAA,uBAAuB,GAAG,KAFrB;AAGLC,IAAAA,gBAHK;AAILC,IAAAA,SAAS,GAAG,EAJP;AAKLC,IAAAA,sBAAsB,GAAG,KALpB;AAMLC,IAAAA,QANK;AAOLC,IAAAA,IAAI,GAAG,SAPF;AAQLC,IAAAA,KARK;AASLC,IAAAA,UAAU,GAAG,KATR;AAULC,IAAAA,SAAS,GAAG;AAVP,MAWFV,KAXJ;;AAaA,MAAK,CAAEE,uBAAP,EAAiC;AAChC,6BAAY,uDAAZ,EAAqE;AACpES,MAAAA,KAAK,EAAE,KAD6D;AAEpEC,MAAAA,OAAO,EAAE,KAF2D;AAGpEC,MAAAA,IAAI,EAAE;AAH8D,KAArE;AAKA;;AAED,QAAMC,KAAK,GAAG,iCAAgB;AAC7BC,IAAAA,cAAc,EAAE,CAAE,IAAF,EAAQ,IAAR,EAAc,KAAd;AADa,GAAhB,CAAd;AAIA,QAAMC,sBAAsB,GAAGZ,SAAS,CAACa,MAAV,GAAmB,CAAlD;AACA,QAAMC,gBAAgB,GAAGd,SAAS,CAACe,IAAV,CACtBC,QAAF,IAAgBA,QAAQ,CAACb,IAAT,KAAkBC,KADV,CAAzB;AAGA,QAAMa,aAAa,GAAG,CAAC,CAAEb,KAAH,IAAY,CAAEU,gBAApC;AAEA,QAAM,CAAEI,sBAAF,EAA0BC,yBAA1B,IAAwD,uBAC7D,CAAElB,sBAAF,IAA4BgB,aADiC,CAA9D;AAIA,QAAMG,UAAU,GAAG,sBAAS,MAAM;AACjC,QAAKF,sBAAL,EAA8B;AAC7B,aAAO,cAAI,QAAJ,CAAP;AACA;;AAED,QAAK,CAAEN,sBAAP,EAAgC;AAC/B,UAAKE,gBAAL,EAAwB;AACvB,eACCA,gBAAgB,CAACO,IAAjB,IACAC,yBAAetB,SAAS,CAACuB,OAAV,CAAmBT,gBAAnB,CAAf,CAFD;AAIA;;AACD,aAAO,EAAP;AACA;;AAED,UAAMU,UAAU,GAAG,8BAAmBxB,SAAnB,CAAnB;;AACA,QAAKwB,UAAL,EAAkB;AACjB,aAAQ,IAAIA,UAAY,GAAxB;AACA;;AAED,WAAO,EAAP;AACA,GArBkB,EAqBhB,CACFN,sBADE,EAEFN,sBAFE,EAGFE,gBAHE,EAIFd,SAJE,CArBgB,CAAnB;;AA4BA,MAAKA,SAAS,CAACa,MAAV,KAAqB,CAArB,IAA0BZ,sBAA/B,EAAwD;AACvD,WAAO,IAAP;AACA,GAlEG,CAoEJ;AACA;AACA;;;AACA,QAAMwB,QAAQ,GACb,OAAOrB,KAAP,KAAiB,QAAjB,IAA6B,uBAAOJ,SAAS,CAAE,CAAF,CAAhB,gDAAO,YAAgBG,IAAvB,MAAgC,QAD9D;AAGA,QAAM,CAAEuB,aAAF,EAAiBC,SAAjB,IAA+B,mDACpCvB,KADoC,EAEpCM,KAFoC,CAArC;AAIA,QAAMkB,mBAAmB,GACxB,CAAC,CAAED,SAAH,IAAgB,CAAE,IAAF,EAAQ,KAAR,EAAgBE,QAAhB,CAA0BF,SAA1B,CADjB;AAGA,SACC,4BAAC,iBAAD;AAAW,IAAA,GAAG,EAAG9B,GAAjB;AAAuB,IAAA,SAAS,EAAC;AAAjC,KACC,4BAAC,8BAAD;AAAgB,IAAA,EAAE,EAAC;AAAnB,KAA8B,cAAI,WAAJ,CAA9B,CADD,EAEC,4BAAC,cAAD,QACC,4BAAC,cAAD;AAAQ,IAAA,SAAS,EAAC;AAAlB,KACC,4BAAC,mBAAD;AACC,kBAAc,GAAG,cAAI,MAAJ,CAAc,IAAIuB,UAAU,IAAI,EAAI;AADtD,KAGG,cAAI,MAAJ,CAHH,EAIGA,UAAU,IACX,4BAAC,kBAAD;AAAY,IAAA,SAAS,EAAC;AAAtB,KACGA,UADH,CALF,CADD,EAWG,CAAEnB,sBAAF,IACD,4BAAC,eAAD;AACC,IAAA,KAAK,EACJiB,sBAAsB,GACnB,cAAI,iBAAJ,CADmB,GAEnB,cAAI,iBAAJ,CAJL;AAMC,IAAA,IAAI,EAAGY,eANR;AAOC,IAAA,OAAO,EAAG,MAAM;AACfX,MAAAA,yBAAyB,CACxB,CAAED,sBADsB,CAAzB;AAGA,KAXF;AAYC,IAAA,SAAS,EAAGA,sBAZb;AAaC,IAAA,OAAO;AAbR,IAZF,CADD,CAFD,EAiCC,4BAAC,gBAAD;AACC,IAAA,SAAS,EAAC,uCADX;AAEC,IAAA,uBAAuB,EAAGpB;AAF3B,KAIG,CAAC,CAAEE,SAAS,CAACa,MAAb,IACDD,sBADC,IAED,CAAEM,sBAFD,IAGA,4BAAC,6BAAD;AACC,IAAA,SAAS,EAAGlB,SADb;AAEC,IAAA,KAAK,EAAGI,KAFT;AAGC,IAAA,sBAAsB,EAAGH,sBAH1B;AAIC,IAAA,IAAI,EAAGE,IAJR;AAKC,IAAA,QAAQ,EAAK4B,QAAF,IAAgB;AAC1B,UAAKA,QAAQ,KAAKC,SAAlB,EAA8B;AAC7B9B,QAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAI8B,SAAJ,CAAR;AACA,OAFD,MAEO;AACN9B,QAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CACPuB,QAAQ,GACLM,QADK,GAELE,MAAM,CAAEF,QAAF,CAHF,EAIP/B,SAAS,CAACe,IAAV,CACGC,QAAF,IACCA,QAAQ,CAACb,IAAT,KAAkB4B,QAFpB,CAJO,CAAR;AASA;AACD,KAnBF;AAoBC,IAAA,cAAc,EAAG,MAChBZ,yBAAyB,CAAE,IAAF;AArB3B,IAPH,EAgCG,CAAEP,sBAAF,IAA4B,CAAEM,sBAA9B,IACD,4BAAC,kCAAD;AACC,IAAA,SAAS,EAAGlB,SADb;AAEC,IAAA,KAAK,EAAGI,KAFT;AAGC,IAAA,uBAAuB,EAAGN,uBAH3B;AAIC,IAAA,IAAI,EAAGK,IAJR;AAKC,IAAA,QAAQ,EAAK4B,QAAF,IAAgB;AAC1B,UAAKA,QAAQ,KAAKC,SAAlB,EAA8B;AAC7B9B,QAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAI8B,SAAJ,CAAR;AACA,OAFD,MAEO;AACN9B,QAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CACPuB,QAAQ,GAAGM,QAAH,GAAcE,MAAM,CAAEF,QAAF,CADrB,EAEP/B,SAAS,CAACe,IAAV,CACGC,QAAF,IACCA,QAAQ,CAACb,IAAT,KAAkB4B,QAFpB,CAFO,CAAR;AAOA;AACD;AAjBF,IAjCF,EAqDG,CAAE9B,sBAAF,IAA4BiB,sBAA5B,IACD,4BAAC,UAAD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC,4BAAC,cAAD;AAAU,IAAA,OAAO;AAAjB,KACC,4BAAC,oBAAD;AACC,IAAA,KAAK,EAAG,cAAI,QAAJ,CADT;AAEC,IAAA,aAAa,EAAC,KAFf;AAGC,IAAA,mBAAmB,MAHpB;AAIC,IAAA,KAAK,EAAGd,KAJT;AAKC,IAAA,QAAQ,EAAK2B,QAAF,IAAgB;AAC1B,UAAKA,QAAQ,KAAKC,SAAlB,EAA8B;AAC7B9B,QAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAI8B,SAAJ,CAAR;AACA,OAFD,MAEO;AACN9B,QAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CACPuB,QAAQ,GACLM,QADK,GAELG,QAAQ,CAAEH,QAAF,EAAY,EAAZ,CAHJ,CAAR;AAKA;AACD,KAfF;AAgBC,IAAA,IAAI,EAAG5B,IAhBR;AAiBC,IAAA,KAAK,EAAGsB,QAAQ,GAAGf,KAAH,GAAW,EAjB5B;AAkBC,IAAA,GAAG,EAAG;AAlBP,IADD,CADD,EAuBGL,UAAU,IACX,4BAAC,cAAD;AAAU,IAAA,OAAO;AAAjB,KACC,4BAAC,cAAD;AAAQ,IAAA,OAAO,EAAG,CAAlB;AAAsB,IAAA,YAAY,EAAG;AAArC,KACC,4BAAC,qBAAD;AACC,IAAA,uBAAuB,EACtBP,uBAFF;AAIC,IAAA,SAAS,EAAC,2CAJX;AAKC,IAAA,KAAK,EAAG,cAAI,aAAJ,CALT;AAMC,IAAA,mBAAmB,MANpB;AAOC,IAAA,KAAK,EAAG4B,aAPT;AAQC,IAAA,eAAe,EAAG3B,gBARnB;AASC,IAAA,cAAc,EAAG,KATlB;AAUC,IAAA,QAAQ,EAAKgC,QAAF,IAAgB;AAC1B,UAAKA,QAAQ,KAAKC,SAAlB,EAA8B;AAC7B9B,QAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAI8B,SAAJ,CAAR;AACA,OAFD,MAEO,IAAKP,QAAL,EAAgB;AACtBvB,QAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CACP6B,QAAQ,IACLJ,SADK,aACLA,SADK,cACLA,SADK,GACQ,IADR,CADD,CAAR;AAIA,OALM,MAKA;AACNzB,QAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAI6B,QAAJ,CAAR;AACA;AACD,KArBF;AAsBC,IAAA,GAAG,EAAG,CAtBP;AAuBC,IAAA,GAAG,EAAGH,mBAAmB,GAAG,EAAH,GAAQ,GAvBlC;AAwBC,IAAA,IAAI,EAAGA,mBAAmB,GAAG,GAAH,GAAS;AAxBpC,IADD,CADD,CAxBF,EAuDGtB,SAAS,IACV,4BAAC,cAAD,QACC,4BAAC,mBAAD;AACC,IAAA,QAAQ,EAAGF,KAAK,KAAK4B,SADtB;AAEC,IAAA,OAAO,EAAG,MAAM;AACf9B,MAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAI8B,SAAJ,CAAR;AACA,KAJF;AAKC,IAAA,OAAO,MALR;AAMC,IAAA,OAAO,EAAC,WANT;AAOC,IAAA,IAAI,EAAG7B;AAPR,KASG,cAAI,OAAJ,CATH,CADD,CAxDF,CAtDF,CAjCD,CADD;AAmKA,CAvPD;;AAyPO,MAAMgC,cAAc,GAAG,yBAAYxC,yBAAZ,CAAvB;;eAEQwC,c","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { __ } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\nimport { useState, useMemo, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport RangeControl from '../range-control';\nimport { Flex, FlexItem } from '../flex';\nimport {\n\tdefault as UnitControl,\n\tparseQuantityAndUnitFromRawValue,\n\tuseCustomUnits,\n} from '../unit-control';\nimport { VisuallyHidden } from '../visually-hidden';\nimport { getCommonSizeUnit } from './utils';\nimport { HStack } from '../h-stack';\nimport type { FontSizePickerProps } from './types';\nimport {\n\tContainer,\n\tHeaderHint,\n\tHeaderLabel,\n\tControls,\n\tResetButton,\n} from './styles';\nimport { Spacer } from '../spacer';\nimport FontSizePickerSelect from './font-size-picker-select';\nimport FontSizePickerToggleGroup from './font-size-picker-toggle-group';\nimport { T_SHIRT_NAMES } from './constants';\n\nconst UnforwardedFontSizePicker = (\n\tprops: FontSizePickerProps,\n\tref: ForwardedRef< any >\n) => {\n\tconst {\n\t\t/** Start opting into the new margin-free styles that will become the default in a future version. */\n\t\t__nextHasNoMarginBottom = false,\n\t\tfallbackFontSize,\n\t\tfontSizes = [],\n\t\tdisableCustomFontSizes = false,\n\t\tonChange,\n\t\tsize = 'default',\n\t\tvalue,\n\t\twithSlider = false,\n\t\twithReset = true,\n\t} = props;\n\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\tdeprecated( 'Bottom margin styles for wp.components.FontSizePicker', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.4',\n\t\t\thint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.',\n\t\t} );\n\t}\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ 'px', 'em', 'rem' ],\n\t} );\n\n\tconst shouldUseSelectControl = fontSizes.length > 5;\n\tconst selectedFontSize = fontSizes.find(\n\t\t( fontSize ) => fontSize.size === value\n\t);\n\tconst isCustomValue = !! value && ! selectedFontSize;\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomFontSizes && isCustomValue\n\t);\n\n\tconst headerHint = useMemo( () => {\n\t\tif ( showCustomValueControl ) {\n\t\t\treturn __( 'Custom' );\n\t\t}\n\n\t\tif ( ! shouldUseSelectControl ) {\n\t\t\tif ( selectedFontSize ) {\n\t\t\t\treturn (\n\t\t\t\t\tselectedFontSize.name ||\n\t\t\t\t\tT_SHIRT_NAMES[ fontSizes.indexOf( selectedFontSize ) ]\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\n\t\tconst commonUnit = getCommonSizeUnit( fontSizes );\n\t\tif ( commonUnit ) {\n\t\t\treturn `(${ commonUnit })`;\n\t\t}\n\n\t\treturn '';\n\t}, [\n\t\tshowCustomValueControl,\n\t\tshouldUseSelectControl,\n\t\tselectedFontSize,\n\t\tfontSizes,\n\t] );\n\n\tif ( fontSizes.length === 0 && disableCustomFontSizes ) {\n\t\treturn null;\n\t}\n\n\t// If neither the value or first font size is a string, then FontSizePicker\n\t// operates in a legacy \"unitless\" mode where UnitControl can only be used\n\t// to select px values and onChange() is always called with number values.\n\tconst hasUnits =\n\t\ttypeof value === 'string' || typeof fontSizes[ 0 ]?.size === 'string';\n\n\tconst [ valueQuantity, valueUnit ] = parseQuantityAndUnitFromRawValue(\n\t\tvalue,\n\t\tunits\n\t);\n\tconst isValueUnitRelative =\n\t\t!! valueUnit && [ 'em', 'rem' ].includes( valueUnit );\n\n\treturn (\n\t\t<Container ref={ ref } className=\"components-font-size-picker\">\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Font size' ) }</VisuallyHidden>\n\t\t\t<Spacer>\n\t\t\t\t<HStack className=\"components-font-size-picker__header\">\n\t\t\t\t\t<HeaderLabel\n\t\t\t\t\t\taria-label={ `${ __( 'Size' ) } ${ headerHint || '' }` }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Size' ) }\n\t\t\t\t\t\t{ headerHint && (\n\t\t\t\t\t\t\t<HeaderHint className=\"components-font-size-picker__header__hint\">\n\t\t\t\t\t\t\t\t{ headerHint }\n\t\t\t\t\t\t\t</HeaderHint>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</HeaderLabel>\n\t\t\t\t\t{ ! disableCustomFontSizes && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={ settings }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetShowCustomValueControl(\n\t\t\t\t\t\t\t\t\t! showCustomValueControl\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t</Spacer>\n\t\t\t<Controls\n\t\t\t\tclassName=\"components-font-size-picker__controls\"\n\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t>\n\t\t\t\t{ !! fontSizes.length &&\n\t\t\t\t\tshouldUseSelectControl &&\n\t\t\t\t\t! showCustomValueControl && (\n\t\t\t\t\t\t<FontSizePickerSelect\n\t\t\t\t\t\t\tfontSizes={ fontSizes }\n\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\tdisableCustomFontSizes={ disableCustomFontSizes }\n\t\t\t\t\t\t\tsize={ size }\n\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\tif ( newValue === undefined ) {\n\t\t\t\t\t\t\t\t\tonChange?.( undefined );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tonChange?.(\n\t\t\t\t\t\t\t\t\t\thasUnits\n\t\t\t\t\t\t\t\t\t\t\t? newValue\n\t\t\t\t\t\t\t\t\t\t\t: Number( newValue ),\n\t\t\t\t\t\t\t\t\t\tfontSizes.find(\n\t\t\t\t\t\t\t\t\t\t\t( fontSize ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tfontSize.size === newValue\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectCustom={ () =>\n\t\t\t\t\t\t\t\tsetShowCustomValueControl( true )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t{ ! shouldUseSelectControl && ! showCustomValueControl && (\n\t\t\t\t\t<FontSizePickerToggleGroup\n\t\t\t\t\t\tfontSizes={ fontSizes }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t\t\t\tsize={ size }\n\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\tif ( newValue === undefined ) {\n\t\t\t\t\t\t\t\tonChange?.( undefined );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tonChange?.(\n\t\t\t\t\t\t\t\t\thasUnits ? newValue : Number( newValue ),\n\t\t\t\t\t\t\t\t\tfontSizes.find(\n\t\t\t\t\t\t\t\t\t\t( fontSize ) =>\n\t\t\t\t\t\t\t\t\t\t\tfontSize.size === newValue\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! disableCustomFontSizes && showCustomValueControl && (\n\t\t\t\t\t<Flex className=\"components-font-size-picker__custom-size-control\">\n\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Custom' ) }\n\t\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\t\tif ( newValue === undefined ) {\n\t\t\t\t\t\t\t\t\t\tonChange?.( undefined );\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tonChange?.(\n\t\t\t\t\t\t\t\t\t\t\thasUnits\n\t\t\t\t\t\t\t\t\t\t\t\t? newValue\n\t\t\t\t\t\t\t\t\t\t\t\t: parseInt( newValue, 10 )\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tsize={ size }\n\t\t\t\t\t\t\t\tunits={ hasUnits ? units : [] }\n\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t{ withSlider && (\n\t\t\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t\t\t<Spacer marginX={ 2 } marginBottom={ 0 }>\n\t\t\t\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom={\n\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tclassName=\"components-font-size-picker__custom-input\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Custom Size' ) }\n\t\t\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t\t\t\tvalue={ valueQuantity }\n\t\t\t\t\t\t\t\t\t\tinitialPosition={ fallbackFontSize }\n\t\t\t\t\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\t\t\t\t\t\tif ( newValue === undefined ) {\n\t\t\t\t\t\t\t\t\t\t\t\tonChange?.( undefined );\n\t\t\t\t\t\t\t\t\t\t\t} else if ( hasUnits ) {\n\t\t\t\t\t\t\t\t\t\t\t\tonChange?.(\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewValue +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t( valueUnit ?? 'px' )\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tonChange?.( newValue );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\t\t\t\t\tmax={ isValueUnitRelative ? 10 : 100 }\n\t\t\t\t\t\t\t\t\t\tstep={ isValueUnitRelative ? 0.1 : 1 }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ withReset && (\n\t\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t\t<ResetButton\n\t\t\t\t\t\t\t\t\tdisabled={ value === undefined }\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\tonChange?.( undefined );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\tsize={ size }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t\t\t</ResetButton>\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t) }\n\t\t\t</Controls>\n\t\t</Container>\n\t);\n};\n\nexport const FontSizePicker = forwardRef( UnforwardedFontSizePicker );\n\nexport default FontSizePicker;\n"]}
|
|
@@ -3,45 +3,19 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.getFontSizeOptions = getFontSizeOptions;
|
|
8
|
-
exports.getSelectedOption = getSelectedOption;
|
|
9
|
-
exports.getToggleGroupOptions = getToggleGroupOptions;
|
|
6
|
+
exports.getCommonSizeUnit = getCommonSizeUnit;
|
|
10
7
|
exports.isSimpleCssValue = isSimpleCssValue;
|
|
11
8
|
|
|
12
|
-
var
|
|
9
|
+
var _unitControl = require("../unit-control");
|
|
13
10
|
|
|
14
11
|
/**
|
|
15
12
|
* WordPress dependencies
|
|
16
13
|
*/
|
|
17
|
-
|
|
18
|
-
const DEFAULT_FONT_SIZE_OPTION = {
|
|
19
|
-
slug: DEFAULT_FONT_SIZE,
|
|
20
|
-
name: (0, _i18n.__)('Default')
|
|
21
|
-
};
|
|
22
|
-
const CUSTOM_FONT_SIZE = 'custom';
|
|
23
|
-
exports.CUSTOM_FONT_SIZE = CUSTOM_FONT_SIZE;
|
|
24
|
-
const CUSTOM_FONT_SIZE_OPTION = {
|
|
25
|
-
slug: CUSTOM_FONT_SIZE,
|
|
26
|
-
name: (0, _i18n.__)('Custom')
|
|
27
|
-
};
|
|
14
|
+
|
|
28
15
|
/**
|
|
29
|
-
*
|
|
30
|
-
* alias as a label of the font size. The label assumes that the font sizes
|
|
31
|
-
* are ordered accordingly - from smallest to largest.
|
|
16
|
+
* Internal dependencies
|
|
32
17
|
*/
|
|
33
18
|
|
|
34
|
-
const FONT_SIZES_ALIASES = [
|
|
35
|
-
/* translators: S stands for 'small' and is a size label. */
|
|
36
|
-
(0, _i18n.__)('S'),
|
|
37
|
-
/* translators: M stands for 'medium' and is a size label. */
|
|
38
|
-
(0, _i18n.__)('M'),
|
|
39
|
-
/* translators: L stands for 'large' and is a size label. */
|
|
40
|
-
(0, _i18n.__)('L'),
|
|
41
|
-
/* translators: XL stands for 'extra large' and is a size label. */
|
|
42
|
-
(0, _i18n.__)('XL'),
|
|
43
|
-
/* translators: XXL stands for 'extra extra large' and is a size label. */
|
|
44
|
-
(0, _i18n.__)('XXL')];
|
|
45
19
|
/**
|
|
46
20
|
* Some themes use css vars for their font sizes, so until we
|
|
47
21
|
* have the way of calculating them don't display them.
|
|
@@ -49,77 +23,31 @@ const FONT_SIZES_ALIASES = [
|
|
|
49
23
|
* @param value The value that is checked.
|
|
50
24
|
* @return Whether the value is a simple css value.
|
|
51
25
|
*/
|
|
52
|
-
|
|
53
26
|
function isSimpleCssValue(value) {
|
|
54
27
|
const sizeRegex = /^[\d\.]+(px|em|rem|vw|vh|%)?$/i;
|
|
55
28
|
return sizeRegex.test(String(value));
|
|
56
29
|
}
|
|
57
30
|
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
31
|
+
* If all of the given font sizes have the same unit (e.g. 'px'), return that
|
|
32
|
+
* unit. Otherwise return null.
|
|
60
33
|
*
|
|
61
|
-
* @param
|
|
62
|
-
* @
|
|
63
|
-
* @param disableCustomFontSizes Flag that indicates if custom font sizes are disabled.
|
|
64
|
-
* @return Array of font sizes in proper format for the used control.
|
|
34
|
+
* @param fontSizes List of font sizes.
|
|
35
|
+
* @return The common unit, or null.
|
|
65
36
|
*/
|
|
66
37
|
|
|
67
38
|
|
|
68
|
-
function
|
|
69
|
-
|
|
39
|
+
function getCommonSizeUnit(fontSizes) {
|
|
40
|
+
const [firstFontSize, ...otherFontSizes] = fontSizes;
|
|
41
|
+
|
|
42
|
+
if (!firstFontSize) {
|
|
70
43
|
return null;
|
|
71
44
|
}
|
|
72
45
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const options = [DEFAULT_FONT_SIZE_OPTION, ...optionsArray, ...(disableCustomFontSizes ? [] : [CUSTOM_FONT_SIZE_OPTION])];
|
|
78
|
-
return options.map(_ref => {
|
|
79
|
-
let {
|
|
80
|
-
slug,
|
|
81
|
-
name,
|
|
82
|
-
size
|
|
83
|
-
} = _ref;
|
|
84
|
-
return {
|
|
85
|
-
key: slug,
|
|
86
|
-
name: name || slug,
|
|
87
|
-
size,
|
|
88
|
-
__experimentalHint: size && isSimpleCssValue(size) && parseFloat(String(size))
|
|
89
|
-
};
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Build options for the toggle group options.
|
|
94
|
-
*
|
|
95
|
-
* @param optionsArray An array of font size options.
|
|
96
|
-
* @param labelAliases An array of alternative labels.
|
|
97
|
-
* @return Remapped optionsArray.
|
|
98
|
-
*/
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
function getToggleGroupOptions(optionsArray) {
|
|
102
|
-
let labelAliases = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : FONT_SIZES_ALIASES;
|
|
103
|
-
return optionsArray.map((_ref2, index) => {
|
|
104
|
-
let {
|
|
105
|
-
slug,
|
|
106
|
-
size,
|
|
107
|
-
name
|
|
108
|
-
} = _ref2;
|
|
109
|
-
return {
|
|
110
|
-
key: slug,
|
|
111
|
-
value: size,
|
|
112
|
-
label: labelAliases[index],
|
|
113
|
-
name: name || labelAliases[index]
|
|
114
|
-
};
|
|
46
|
+
const [, firstUnit] = (0, _unitControl.parseQuantityAndUnitFromRawValue)(firstFontSize.size);
|
|
47
|
+
const areAllSizesSameUnit = otherFontSizes.every(fontSize => {
|
|
48
|
+
const [, unit] = (0, _unitControl.parseQuantityAndUnitFromRawValue)(fontSize.size);
|
|
49
|
+
return unit === firstUnit;
|
|
115
50
|
});
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
function getSelectedOption(fontSizes, value) {
|
|
119
|
-
if (!value) {
|
|
120
|
-
return DEFAULT_FONT_SIZE_OPTION;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
return fontSizes.find(font => font.size === value) || CUSTOM_FONT_SIZE_OPTION;
|
|
51
|
+
return areAllSizesSameUnit ? firstUnit : null;
|
|
124
52
|
}
|
|
125
53
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/font-size-picker/utils.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/font-size-picker/utils.ts"],"names":["isSimpleCssValue","value","sizeRegex","test","String","getCommonSizeUnit","fontSizes","firstFontSize","otherFontSizes","firstUnit","size","areAllSizesSameUnit","every","fontSize","unit"],"mappings":";;;;;;;;AASA;;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,gBAAT,CACNC,KADM,EAEL;AACD,QAAMC,SAAS,GAAG,gCAAlB;AACA,SAAOA,SAAS,CAACC,IAAV,CAAgBC,MAAM,CAAEH,KAAF,CAAtB,CAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASI,iBAAT,CAA4BC,SAA5B,EAAoD;AAC1D,QAAM,CAAEC,aAAF,EAAiB,GAAGC,cAApB,IAAuCF,SAA7C;;AACA,MAAK,CAAEC,aAAP,EAAuB;AACtB,WAAO,IAAP;AACA;;AACD,QAAM,GAAIE,SAAJ,IAAkB,mDACvBF,aAAa,CAACG,IADS,CAAxB;AAGA,QAAMC,mBAAmB,GAAGH,cAAc,CAACI,KAAf,CAAwBC,QAAF,IAAgB;AACjE,UAAM,GAAIC,IAAJ,IAAa,mDAAkCD,QAAQ,CAACH,IAA3C,CAAnB;AACA,WAAOI,IAAI,KAAKL,SAAhB;AACA,GAH2B,CAA5B;AAIA,SAAOE,mBAAmB,GAAGF,SAAH,GAAe,IAAzC;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { FontSizePickerProps, FontSize } from './types';\nimport { parseQuantityAndUnitFromRawValue } from '../unit-control';\n\n/**\n * Some themes use css vars for their font sizes, so until we\n * have the way of calculating them don't display them.\n *\n * @param value The value that is checked.\n * @return Whether the value is a simple css value.\n */\nexport function isSimpleCssValue(\n\tvalue: NonNullable< FontSizePickerProps[ 'value' ] >\n) {\n\tconst sizeRegex = /^[\\d\\.]+(px|em|rem|vw|vh|%)?$/i;\n\treturn sizeRegex.test( String( value ) );\n}\n\n/**\n * If all of the given font sizes have the same unit (e.g. 'px'), return that\n * unit. Otherwise return null.\n *\n * @param fontSizes List of font sizes.\n * @return The common unit, or null.\n */\nexport function getCommonSizeUnit( fontSizes: FontSize[] ) {\n\tconst [ firstFontSize, ...otherFontSizes ] = fontSizes;\n\tif ( ! firstFontSize ) {\n\t\treturn null;\n\t}\n\tconst [ , firstUnit ] = parseQuantityAndUnitFromRawValue(\n\t\tfirstFontSize.size\n\t);\n\tconst areAllSizesSameUnit = otherFontSizes.every( ( fontSize ) => {\n\t\tconst [ , unit ] = parseQuantityAndUnitFromRawValue( fontSize.size );\n\t\treturn unit === firstUnit;\n\t} );\n\treturn areAllSizesSameUnit ? firstUnit : null;\n}\n"]}
|
|
@@ -178,11 +178,15 @@ function FormTokenField(props) {
|
|
|
178
178
|
function onKeyDown(event) {
|
|
179
179
|
let preventDefault = false;
|
|
180
180
|
|
|
181
|
-
if (event.defaultPrevented
|
|
181
|
+
if (event.defaultPrevented || // Ignore keydowns from IMEs
|
|
182
|
+
event.nativeEvent.isComposing || // Workaround for Mac Safari where the final Enter/Backspace of an IME composition
|
|
183
|
+
// is `isComposing=false`, even though it's technically still part of the composition.
|
|
184
|
+
// These can only be detected by keyCode.
|
|
185
|
+
event.keyCode === 229) {
|
|
182
186
|
return;
|
|
183
187
|
}
|
|
184
188
|
|
|
185
|
-
switch (event.
|
|
189
|
+
switch (event.key) {
|
|
186
190
|
case 'Backspace':
|
|
187
191
|
preventDefault = handleDeleteKey(deleteTokenBeforeInput);
|
|
188
192
|
break;
|
|
@@ -232,11 +236,10 @@ function FormTokenField(props) {
|
|
|
232
236
|
}
|
|
233
237
|
|
|
234
238
|
function onKeyPress(event) {
|
|
235
|
-
let preventDefault = false;
|
|
239
|
+
let preventDefault = false;
|
|
236
240
|
|
|
237
|
-
switch (event.
|
|
238
|
-
case
|
|
239
|
-
// Comma.
|
|
241
|
+
switch (event.key) {
|
|
242
|
+
case ',':
|
|
240
243
|
preventDefault = handleCommaKey();
|
|
241
244
|
break;
|
|
242
245
|
|