@wordpress/block-editor 11.3.6 → 11.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -1
- package/build/components/block-lock/modal.js +1 -0
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-popover/inbetween.js +10 -33
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +2 -2
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-styles/index.js +2 -1
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js +2 -0
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/child-layout-control/index.js +107 -0
- package/build/components/child-layout-control/index.js.map +1 -0
- package/build/components/colors-gradients/control.js +6 -3
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/date-format-picker/index.js +3 -3
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +0 -3
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +594 -0
- package/build/components/global-styles/dimensions-panel.js.map +1 -0
- package/build/components/global-styles/hooks.js +142 -45
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +38 -0
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +434 -0
- package/build/components/global-styles/typography-panel.js.map +1 -0
- package/build/components/global-styles/use-global-styles-output.js +7 -3
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +2 -0
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/iframe/index.js +17 -11
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js +2 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/image-size-control/index.js +6 -11
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.native.js +23 -0
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +9 -15
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js +4 -1
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +4 -1
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/search-results.native.js +4 -1
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls/fill.js +38 -9
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/link-control/index.js +55 -28
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +72 -30
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/link-control/settings.js +53 -0
- package/build/components/link-control/settings.js.map +1 -0
- package/build/components/list-view/block.js +4 -2
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/expander.js +2 -1
- package/build/components/list-view/expander.js.map +1 -1
- package/build/components/list-view/index.js +6 -1
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/off-canvas-editor/appender.js +5 -10
- package/build/components/off-canvas-editor/appender.js.map +1 -1
- package/build/components/off-canvas-editor/block-contents.js +3 -2
- package/build/components/off-canvas-editor/block-contents.js.map +1 -1
- package/build/components/off-canvas-editor/branch.js +1 -0
- package/build/components/off-canvas-editor/branch.js.map +1 -1
- package/build/components/off-canvas-editor/index.js +7 -3
- package/build/components/off-canvas-editor/index.js.map +1 -1
- package/build/components/off-canvas-editor/leaf-more-menu.js +24 -4
- package/build/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
- package/build/components/off-canvas-editor/link-ui.js +2 -0
- package/build/components/off-canvas-editor/link-ui.js.map +1 -1
- package/build/components/responsive-block-control/index.js +1 -0
- package/build/components/responsive-block-control/index.js.map +1 -1
- package/build/components/rich-text/index.js +9 -45
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/use-delete.js +73 -0
- package/build/components/rich-text/use-delete.js.map +1 -0
- package/build/components/rich-text/use-input-rules.js +14 -6
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/url-input/index.js +2 -2
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +4 -1
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/hooks/align.js +3 -1
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/dimensions.js +78 -190
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +94 -25
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-family.js +2 -76
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +3 -51
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +0 -201
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/index.js +2 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +14 -5
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/line-height.js +0 -42
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/margin.js +7 -163
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +7 -163
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/typography.js +98 -128
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/utils.js +75 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/flex.js +1 -0
- package/build/layouts/flex.js.map +1 -1
- package/build/store/actions.js +24 -12
- package/build/store/actions.js.map +1 -1
- package/build/store/reducer.js +53 -47
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +22 -1
- package/build/store/selectors.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +36 -3
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/components/block-lock/modal.js +1 -0
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +10 -33
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-styles/index.js +2 -1
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +2 -0
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/child-layout-control/index.js +98 -0
- package/build-module/components/child-layout-control/index.js.map +1 -0
- package/build-module/components/colors-gradients/control.js +6 -3
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +4 -4
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +2 -1
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +574 -0
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -0
- package/build-module/components/global-styles/hooks.js +138 -46
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +3 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +415 -0
- package/build-module/components/global-styles/typography-panel.js.map +1 -0
- package/build-module/components/global-styles/use-global-styles-output.js +7 -3
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +2 -0
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/iframe/index.js +17 -11
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js +2 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/image-size-control/index.js +7 -12
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.native.js +2 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +9 -15
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js +3 -1
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +3 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js +3 -1
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +39 -9
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/link-control/index.js +56 -28
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +68 -30
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/link-control/settings.js +44 -0
- package/build-module/components/link-control/settings.js.map +1 -0
- package/build-module/components/list-view/block.js +4 -2
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/expander.js +2 -1
- package/build-module/components/list-view/expander.js.map +1 -1
- package/build-module/components/list-view/index.js +6 -1
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/off-canvas-editor/appender.js +5 -10
- package/build-module/components/off-canvas-editor/appender.js.map +1 -1
- package/build-module/components/off-canvas-editor/block-contents.js +3 -2
- package/build-module/components/off-canvas-editor/block-contents.js.map +1 -1
- package/build-module/components/off-canvas-editor/branch.js +1 -0
- package/build-module/components/off-canvas-editor/branch.js.map +1 -1
- package/build-module/components/off-canvas-editor/index.js +7 -3
- package/build-module/components/off-canvas-editor/index.js.map +1 -1
- package/build-module/components/off-canvas-editor/leaf-more-menu.js +27 -7
- package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +1 -1
- package/build-module/components/off-canvas-editor/link-ui.js +2 -0
- package/build-module/components/off-canvas-editor/link-ui.js.map +1 -1
- package/build-module/components/responsive-block-control/index.js +1 -0
- package/build-module/components/responsive-block-control/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +9 -45
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/use-delete.js +62 -0
- package/build-module/components/rich-text/use-delete.js.map +1 -0
- package/build-module/components/rich-text/use-input-rules.js +14 -6
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/url-input/index.js +2 -2
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +4 -1
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/hooks/align.js +3 -1
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/dimensions.js +81 -187
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +86 -24
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-family.js +3 -69
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +6 -47
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +0 -182
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +14 -5
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/line-height.js +0 -38
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/margin.js +4 -143
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +4 -143
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/typography.js +97 -123
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/utils.js +70 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/flex.js +1 -0
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/store/actions.js +24 -12
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/reducer.js +53 -45
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +22 -1
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +36 -3
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-style/style-rtl.css +54 -64
- package/build-style/style.css +54 -64
- package/package.json +31 -31
- package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +24 -24
- package/src/components/block-lock/modal.js +1 -0
- package/src/components/block-lock/style.scss +0 -9
- package/src/components/block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap +20 -20
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +15 -15
- package/src/components/block-popover/inbetween.js +21 -53
- package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
- package/src/components/block-styles/index.js +5 -1
- package/src/components/block-types-list/index.native.js +2 -0
- package/src/components/child-layout-control/index.js +106 -0
- package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
- package/src/components/colors-gradients/control.js +3 -0
- package/src/components/date-format-picker/index.js +6 -8
- package/src/components/date-format-picker/style.scss +0 -5
- package/src/components/font-appearance-control/index.js +1 -1
- package/src/components/global-styles/dimensions-panel.js +627 -0
- package/src/components/global-styles/hooks.js +229 -66
- package/src/components/global-styles/index.js +9 -0
- package/src/components/global-styles/typography-panel.js +428 -0
- package/src/components/global-styles/use-global-styles-output.js +10 -5
- package/src/components/global-styles/utils.js +2 -0
- package/src/components/iframe/index.js +20 -18
- package/src/components/image-editor/aspect-ratio-dropdown.js +1 -0
- package/src/components/image-size-control/index.js +10 -12
- package/src/components/image-size-control/style.scss +3 -21
- package/src/components/index.native.js +5 -0
- package/src/components/inner-blocks/test/__snapshots__/index.js.snap +1 -1
- package/src/components/inserter/block-patterns-tab.js +9 -23
- package/src/components/inserter/block-types-tab.native.js +2 -0
- package/src/components/inserter/reusable-blocks-tab.native.js +2 -0
- package/src/components/inserter/search-results.native.js +2 -0
- package/src/components/inserter/test/__snapshots__/index.native.js.snap +15 -15
- package/src/components/inspector-controls/block-support-tools-panel.js +0 -1
- package/src/components/inspector-controls/fill.js +32 -8
- package/src/components/link-control/index.js +69 -34
- package/src/components/link-control/settings-drawer.js +85 -29
- package/src/components/link-control/settings.js +42 -0
- package/src/components/link-control/style.scss +63 -37
- package/src/components/link-control/test/index.js +347 -9
- package/src/components/list-view/block.js +7 -1
- package/src/components/list-view/expander.js +1 -0
- package/src/components/list-view/index.js +5 -0
- package/src/components/media-replace-flow/style.scss +7 -9
- package/src/components/media-replace-flow/test/index.js +1 -1
- package/src/components/off-canvas-editor/appender.js +13 -16
- package/src/components/off-canvas-editor/block-contents.js +2 -1
- package/src/components/off-canvas-editor/branch.js +1 -0
- package/src/components/off-canvas-editor/index.js +8 -2
- package/src/components/off-canvas-editor/leaf-more-menu.js +52 -15
- package/src/components/off-canvas-editor/link-ui.js +2 -0
- package/src/components/responsive-block-control/index.js +1 -0
- package/src/components/rich-text/index.js +8 -46
- package/src/components/rich-text/use-delete.js +59 -0
- package/src/components/rich-text/use-input-rules.js +13 -5
- package/src/components/url-input/index.js +3 -2
- package/src/components/url-popover/stories/index.js +1 -0
- package/src/components/writing-flow/use-selection-observer.js +5 -1
- package/src/hooks/align.js +1 -1
- package/src/hooks/dimensions.js +97 -269
- package/src/hooks/duotone.js +100 -30
- package/src/hooks/font-family.js +0 -58
- package/src/hooks/font-size.js +1 -36
- package/src/hooks/gap.js +0 -201
- package/src/hooks/index.js +1 -0
- package/src/hooks/layout.js +19 -6
- package/src/hooks/line-height.js +0 -33
- package/src/hooks/margin.js +1 -164
- package/src/hooks/padding.js +1 -163
- package/src/hooks/test/__snapshots__/align.native.js.snap +24 -24
- package/src/hooks/test/duotone.js +102 -0
- package/src/hooks/typography.js +112 -213
- package/src/hooks/utils.js +90 -0
- package/src/layouts/flex.js +1 -0
- package/src/store/actions.js +12 -4
- package/src/store/reducer.js +68 -43
- package/src/store/selectors.js +20 -1
- package/src/store/test/actions.js +4 -2
- package/src/utils/parse-css-unit-to-px.js +35 -5
- package/src/utils/test/parse-css-unit-to-px.js +12 -0
- package/build/hooks/child-layout.js +0 -213
- package/build/hooks/child-layout.js.map +0 -1
- package/build/hooks/font-appearance.js +0 -188
- package/build/hooks/font-appearance.js.map +0 -1
- package/build/hooks/letter-spacing.js +0 -129
- package/build/hooks/letter-spacing.js.map +0 -1
- package/build/hooks/min-height.js +0 -139
- package/build/hooks/min-height.js.map +0 -1
- package/build/hooks/text-decoration.js +0 -130
- package/build/hooks/text-decoration.js.map +0 -1
- package/build/hooks/text-transform.js +0 -130
- package/build/hooks/text-transform.js.map +0 -1
- package/build-module/hooks/child-layout.js +0 -193
- package/build-module/hooks/child-layout.js.map +0 -1
- package/build-module/hooks/font-appearance.js +0 -161
- package/build-module/hooks/font-appearance.js.map +0 -1
- package/build-module/hooks/letter-spacing.js +0 -107
- package/build-module/hooks/letter-spacing.js.map +0 -1
- package/build-module/hooks/min-height.js +0 -116
- package/build-module/hooks/min-height.js.map +0 -1
- package/build-module/hooks/text-decoration.js +0 -108
- package/build-module/hooks/text-decoration.js.map +0 -1
- package/build-module/hooks/text-transform.js +0 -108
- package/build-module/hooks/text-transform.js.map +0 -1
- package/src/hooks/child-layout.js +0 -195
- package/src/hooks/font-appearance.js +0 -146
- package/src/hooks/letter-spacing.js +0 -101
- package/src/hooks/min-height.js +0 -104
- package/src/hooks/text-decoration.js +0 -102
- package/src/hooks/text-transform.js +0 -101
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-types-list/index.native.js"],"names":["Dimensions","FlatList","SectionList","StyleSheet","Text","TouchableWithoutFeedback","View","useState","useEffect","BottomSheet","Gradient","InserterButton","usePreferredColorScheme","usePreferredColorSchemeStyle","styles","MIN_COL_NUM","BlockTypesList","name","sections","onSelect","listProps","initialNumToRender","numberOfColumns","setNumberOfColumns","itemWidth","setItemWidth","maxWidth","setMaxWidth","dimensionsChangeSubscription","addEventListener","onLayout","remove","calculateItemWidth","paddingLeft","itemPaddingLeft","paddingRight","itemPaddingRight","Styles","modalItem","width","modalIconWrapper","columnStyle","sumLeftRightPadding","bottomSheetWidth","getWidth","containerTotalWidth","itemTotalWidth","columnsFitToWidth","Math","floor","numColumns","max","updatedItemWidth","contentContainerStyle","flatten","renderSection","item","list","renderListItem","colorScheme","sectionHeaderGradientValue","sectionHeaderTitleStyles","renderSectionHeader","section","metadata","icon","title","paddingBottom","safeAreaBottomInset"],"mappings":";;;AAAA;AACA;AACA;AACA,SACCA,UADD,EAECC,QAFD,EAGCC,WAHD,EAICC,UAJD,EAKCC,IALD,EAMCC,wBAND,EAOCC,IAPD,QAQO,cARP;AAUA;AACA;AACA;;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,oBAApC;AACA,SAASC,WAAT,EAAsBC,QAAtB,EAAgCC,cAAhC,QAAsD,uBAAtD;AACA,SACCC,uBADD,EAECC,4BAFD,QAGO,oBAHP;AAKA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;AAEA,MAAMC,WAAW,GAAG,CAApB;AAEA,eAAe,SAASC,cAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-types-list/index.native.js"],"names":["Dimensions","FlatList","SectionList","StyleSheet","Text","TouchableWithoutFeedback","View","useState","useEffect","BottomSheet","Gradient","InserterButton","usePreferredColorScheme","usePreferredColorSchemeStyle","styles","MIN_COL_NUM","BlockTypesList","name","sections","onSelect","label","listProps","initialNumToRender","numberOfColumns","setNumberOfColumns","itemWidth","setItemWidth","maxWidth","setMaxWidth","dimensionsChangeSubscription","addEventListener","onLayout","remove","calculateItemWidth","paddingLeft","itemPaddingLeft","paddingRight","itemPaddingRight","Styles","modalItem","width","modalIconWrapper","columnStyle","sumLeftRightPadding","bottomSheetWidth","getWidth","containerTotalWidth","itemTotalWidth","columnsFitToWidth","Math","floor","numColumns","max","updatedItemWidth","contentContainerStyle","flatten","renderSection","item","list","renderListItem","colorScheme","sectionHeaderGradientValue","sectionHeaderTitleStyles","renderSectionHeader","section","metadata","icon","title","paddingBottom","safeAreaBottomInset"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tDimensions,\n\tFlatList,\n\tSectionList,\n\tStyleSheet,\n\tText,\n\tTouchableWithoutFeedback,\n\tView,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { BottomSheet, Gradient, InserterButton } from '@wordpress/components';\nimport {\n\tusePreferredColorScheme,\n\tusePreferredColorSchemeStyle,\n} from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst MIN_COL_NUM = 3;\n\nexport default function BlockTypesList( {\n\tname,\n\tsections,\n\tonSelect,\n\tlabel,\n\tlistProps,\n\tinitialNumToRender = 3,\n} ) {\n\tconst [ numberOfColumns, setNumberOfColumns ] = useState( MIN_COL_NUM );\n\tconst [ itemWidth, setItemWidth ] = useState();\n\tconst [ maxWidth, setMaxWidth ] = useState();\n\n\tuseEffect( () => {\n\t\tconst dimensionsChangeSubscription = Dimensions.addEventListener(\n\t\t\t'change',\n\t\t\tonLayout\n\t\t);\n\t\tonLayout();\n\t\treturn () => {\n\t\t\tdimensionsChangeSubscription.remove();\n\t\t};\n\t}, [] );\n\n\tfunction calculateItemWidth() {\n\t\tconst { paddingLeft: itemPaddingLeft, paddingRight: itemPaddingRight } =\n\t\t\tInserterButton.Styles.modalItem;\n\t\tconst { width } = InserterButton.Styles.modalIconWrapper;\n\t\treturn width + itemPaddingLeft + itemPaddingRight;\n\t}\n\n\tfunction onLayout() {\n\t\tconst columnStyle = styles[ 'block-types-list__column' ];\n\t\tconst sumLeftRightPadding =\n\t\t\tcolumnStyle.paddingLeft + columnStyle.paddingRight;\n\n\t\tconst bottomSheetWidth = BottomSheet.getWidth();\n\t\tconst containerTotalWidth = bottomSheetWidth - sumLeftRightPadding;\n\t\tconst itemTotalWidth = calculateItemWidth();\n\n\t\tconst columnsFitToWidth = Math.floor(\n\t\t\tcontainerTotalWidth / itemTotalWidth\n\t\t);\n\n\t\tconst numColumns = Math.max( MIN_COL_NUM, columnsFitToWidth );\n\n\t\tsetNumberOfColumns( numColumns );\n\t\tsetMaxWidth( containerTotalWidth / numColumns );\n\n\t\tif ( columnsFitToWidth < MIN_COL_NUM ) {\n\t\t\tconst updatedItemWidth =\n\t\t\t\t( bottomSheetWidth - 2 * sumLeftRightPadding ) / MIN_COL_NUM;\n\t\t\tsetItemWidth( updatedItemWidth );\n\t\t}\n\t}\n\n\tconst contentContainerStyle = StyleSheet.flatten(\n\t\tlistProps.contentContainerStyle\n\t);\n\n\tconst renderSection = ( { item } ) => {\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback accessible={ false }>\n\t\t\t\t<FlatList\n\t\t\t\t\tdata={ item.list }\n\t\t\t\t\tkey={ `InserterUI-${ name }-${ numberOfColumns }` } // Re-render when numberOfColumns changes.\n\t\t\t\t\tnumColumns={ numberOfColumns }\n\t\t\t\t\tItemSeparatorComponent={ () => (\n\t\t\t\t\t\t<TouchableWithoutFeedback accessible={ false }>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tstyles[ 'block-types-list__row-separator' ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t\t) }\n\t\t\t\t\tscrollEnabled={ false }\n\t\t\t\t\trenderItem={ renderListItem }\n\t\t\t\t/>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t};\n\n\tconst renderListItem = ( { item } ) => {\n\t\treturn (\n\t\t\t<InserterButton\n\t\t\t\titem={ item }\n\t\t\t\titemWidth={ itemWidth }\n\t\t\t\tmaxWidth={ maxWidth }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst colorScheme = usePreferredColorScheme();\n\tconst sectionHeaderGradientValue =\n\t\tcolorScheme === 'light'\n\t\t\t? 'linear-gradient(#fff 70%, rgba(255, 255, 255, 0))'\n\t\t\t: 'linear-gradient(#2e2e2e 70%, rgba(46, 46, 46, 0))';\n\tconst sectionHeaderTitleStyles = usePreferredColorSchemeStyle(\n\t\tstyles[ 'block-types-list__section-header-title' ],\n\t\tstyles[ 'block-types-list__section-header-title--dark' ]\n\t);\n\n\tconst renderSectionHeader = ( { section: { metadata } } ) => {\n\t\tif ( ! metadata?.icon || ! metadata?.title ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback accessible={ false }>\n\t\t\t\t<Gradient\n\t\t\t\t\tgradientValue={ sectionHeaderGradientValue }\n\t\t\t\t\tstyle={ styles[ 'block-types-list__section-header' ] }\n\t\t\t\t>\n\t\t\t\t\t{ metadata?.icon }\n\t\t\t\t\t<Text style={ sectionHeaderTitleStyles }>\n\t\t\t\t\t\t{ metadata?.title }\n\t\t\t\t\t</Text>\n\t\t\t\t</Gradient>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t};\n\n\treturn (\n\t\t<SectionList\n\t\t\tonLayout={ onLayout }\n\t\t\ttestID={ `InserterUI-${ name }` }\n\t\t\taccessibilityLabel={ label }\n\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\tsections={ sections }\n\t\t\tinitialNumToRender={ initialNumToRender }\n\t\t\trenderItem={ renderSection }\n\t\t\trenderSectionHeader={ renderSectionHeader }\n\t\t\t{ ...listProps }\n\t\t\tcontentContainerStyle={ {\n\t\t\t\t...contentContainerStyle,\n\t\t\t\tpaddingBottom: Math.max(\n\t\t\t\t\tlistProps.safeAreaBottomInset,\n\t\t\t\t\tcontentContainerStyle.paddingBottom\n\t\t\t\t),\n\t\t\t} }\n\t\t/>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { createElement, Fragment } from "@wordpress/element";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* WordPress dependencies
|
|
5
|
+
*/
|
|
6
|
+
import { __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalUnitControl as UnitControl } from '@wordpress/components';
|
|
7
|
+
import { __ } from '@wordpress/i18n';
|
|
8
|
+
import { useEffect } from '@wordpress/element';
|
|
9
|
+
|
|
10
|
+
function helpText(selfStretch, parentLayout) {
|
|
11
|
+
const {
|
|
12
|
+
orientation = 'horizontal'
|
|
13
|
+
} = parentLayout;
|
|
14
|
+
|
|
15
|
+
if (selfStretch === 'fill') {
|
|
16
|
+
return __('Stretch to fill available space.');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
if (selfStretch === 'fixed' && orientation === 'horizontal') {
|
|
20
|
+
return __('Specify a fixed width.');
|
|
21
|
+
} else if (selfStretch === 'fixed') {
|
|
22
|
+
return __('Specify a fixed height.');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return __('Fit contents.');
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Form to edit the child layout value.
|
|
29
|
+
*
|
|
30
|
+
* @param {Object} props Props.
|
|
31
|
+
* @param {Object} props.value The child layout value.
|
|
32
|
+
* @param {Function} props.onChange Function to update the child layout value.
|
|
33
|
+
* @param {Object} props.parentLayout The parent layout value.
|
|
34
|
+
*
|
|
35
|
+
* @return {WPElement} child layout edit element.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
export default function ChildLayoutControl(_ref) {
|
|
40
|
+
let {
|
|
41
|
+
value: childLayout = {},
|
|
42
|
+
onChange,
|
|
43
|
+
parentLayout
|
|
44
|
+
} = _ref;
|
|
45
|
+
const {
|
|
46
|
+
selfStretch,
|
|
47
|
+
flexSize
|
|
48
|
+
} = childLayout;
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
if (selfStretch === 'fixed' && !flexSize) {
|
|
51
|
+
onChange({ ...childLayout,
|
|
52
|
+
selfStretch: 'fit'
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}, []);
|
|
56
|
+
return createElement(Fragment, null, createElement(ToggleGroupControl, {
|
|
57
|
+
__nextHasNoMarginBottom: true,
|
|
58
|
+
size: '__unstable-large',
|
|
59
|
+
label: childLayoutOrientation(parentLayout),
|
|
60
|
+
value: selfStretch || 'fit',
|
|
61
|
+
help: helpText(selfStretch, parentLayout),
|
|
62
|
+
onChange: value => {
|
|
63
|
+
const newFlexSize = value !== 'fixed' ? null : flexSize;
|
|
64
|
+
onChange({ ...childLayout,
|
|
65
|
+
selfStretch: value,
|
|
66
|
+
flexSize: newFlexSize
|
|
67
|
+
});
|
|
68
|
+
},
|
|
69
|
+
isBlock: true
|
|
70
|
+
}, createElement(ToggleGroupControlOption, {
|
|
71
|
+
key: 'fit',
|
|
72
|
+
value: 'fit',
|
|
73
|
+
label: __('Fit')
|
|
74
|
+
}), createElement(ToggleGroupControlOption, {
|
|
75
|
+
key: 'fill',
|
|
76
|
+
value: 'fill',
|
|
77
|
+
label: __('Fill')
|
|
78
|
+
}), createElement(ToggleGroupControlOption, {
|
|
79
|
+
key: 'fixed',
|
|
80
|
+
value: 'fixed',
|
|
81
|
+
label: __('Fixed')
|
|
82
|
+
})), selfStretch === 'fixed' && createElement(UnitControl, {
|
|
83
|
+
size: '__unstable-large',
|
|
84
|
+
onChange: value => {
|
|
85
|
+
onChange({ ...childLayout,
|
|
86
|
+
flexSize: value
|
|
87
|
+
});
|
|
88
|
+
},
|
|
89
|
+
value: flexSize
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
export function childLayoutOrientation(parentLayout) {
|
|
93
|
+
const {
|
|
94
|
+
orientation = 'horizontal'
|
|
95
|
+
} = parentLayout;
|
|
96
|
+
return orientation === 'horizontal' ? __('Width') : __('Height');
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/child-layout-control/index.js"],"names":["__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalUnitControl","UnitControl","__","useEffect","helpText","selfStretch","parentLayout","orientation","ChildLayoutControl","value","childLayout","onChange","flexSize","childLayoutOrientation","newFlexSize"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\n\nfunction helpText( selfStretch, parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\tif ( selfStretch === 'fill' ) {\n\t\treturn __( 'Stretch to fill available space.' );\n\t}\n\tif ( selfStretch === 'fixed' && orientation === 'horizontal' ) {\n\t\treturn __( 'Specify a fixed width.' );\n\t} else if ( selfStretch === 'fixed' ) {\n\t\treturn __( 'Specify a fixed height.' );\n\t}\n\treturn __( 'Fit contents.' );\n}\n\n/**\n * Form to edit the child layout value.\n *\n * @param {Object} props Props.\n * @param {Object} props.value The child layout value.\n * @param {Function} props.onChange Function to update the child layout value.\n * @param {Object} props.parentLayout The parent layout value.\n *\n * @return {WPElement} child layout edit element.\n */\nexport default function ChildLayoutControl( {\n\tvalue: childLayout = {},\n\tonChange,\n\tparentLayout,\n} ) {\n\tconst { selfStretch, flexSize } = childLayout;\n\n\tuseEffect( () => {\n\t\tif ( selfStretch === 'fixed' && ! flexSize ) {\n\t\t\tonChange( {\n\t\t\t\t...childLayout,\n\t\t\t\tselfStretch: 'fit',\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\tlabel={ childLayoutOrientation( parentLayout ) }\n\t\t\t\tvalue={ selfStretch || 'fit' }\n\t\t\t\thelp={ helpText( selfStretch, parentLayout ) }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst newFlexSize = value !== 'fixed' ? null : flexSize;\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\t...childLayout,\n\t\t\t\t\t\tselfStretch: value,\n\t\t\t\t\t\tflexSize: newFlexSize,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tisBlock={ true }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'fit' }\n\t\t\t\t\tvalue={ 'fit' }\n\t\t\t\t\tlabel={ __( 'Fit' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'fill' }\n\t\t\t\t\tvalue={ 'fill' }\n\t\t\t\t\tlabel={ __( 'Fill' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey={ 'fixed' }\n\t\t\t\t\tvalue={ 'fixed' }\n\t\t\t\t\tlabel={ __( 'Fixed' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ selfStretch === 'fixed' && (\n\t\t\t\t<UnitControl\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t...childLayout,\n\t\t\t\t\t\t\tflexSize: value,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ flexSize }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport function childLayoutOrientation( parentLayout ) {\n\tconst { orientation = 'horizontal' } = parentLayout;\n\n\treturn orientation === 'horizontal' ? __( 'Width' ) : __( 'Height' );\n}\n"]}
|
|
@@ -44,7 +44,8 @@ function ColorGradientControlInner(_ref) {
|
|
|
44
44
|
gradientValue,
|
|
45
45
|
clearable,
|
|
46
46
|
showTitle = true,
|
|
47
|
-
enableAlpha
|
|
47
|
+
enableAlpha,
|
|
48
|
+
headingLevel
|
|
48
49
|
} = _ref;
|
|
49
50
|
const canChooseAColor = onColorChange && (!isEmpty(colors) || !disableCustomColors);
|
|
50
51
|
const canChooseAGradient = onGradientChange && (!isEmpty(gradients) || !disableCustomGradients);
|
|
@@ -64,7 +65,8 @@ function ColorGradientControlInner(_ref) {
|
|
|
64
65
|
disableCustomColors,
|
|
65
66
|
__experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
|
|
66
67
|
clearable: clearable,
|
|
67
|
-
enableAlpha: enableAlpha
|
|
68
|
+
enableAlpha: enableAlpha,
|
|
69
|
+
headingLevel: headingLevel
|
|
68
70
|
}),
|
|
69
71
|
[TAB_GRADIENT.value]: createElement(GradientPicker, {
|
|
70
72
|
__nextHasNoMargin: true,
|
|
@@ -76,7 +78,8 @@ function ColorGradientControlInner(_ref) {
|
|
|
76
78
|
gradients,
|
|
77
79
|
disableCustomGradients,
|
|
78
80
|
__experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
|
|
79
|
-
clearable: clearable
|
|
81
|
+
clearable: clearable,
|
|
82
|
+
headingLevel: headingLevel
|
|
80
83
|
})
|
|
81
84
|
};
|
|
82
85
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/control.js"],"names":["classnames","isEmpty","BaseControl","__experimentalVStack","VStack","TabPanel","ColorPalette","GradientPicker","useSetting","colorsAndGradientKeys","TAB_COLOR","name","title","value","TAB_GRADIENT","TABS_SETTINGS","ColorGradientControlInner","colors","gradients","disableCustomColors","disableCustomGradients","__experimentalIsRenderedInSidebar","className","label","onColorChange","onGradientChange","colorValue","gradientValue","clearable","showTitle","enableAlpha","canChooseAColor","canChooseAGradient","tabPanels","newColor","newGradient","renderPanelType","type","tab","ColorGradientControlSelect","props","colorGradientSettings","ColorGradientControl","every","key","hasOwnProperty"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AACA,SAASC,OAAT,QAAwB,QAAxB;AAEA;AACA;AACA;;AACA,SACCC,WADD,EAECC,oBAAoB,IAAIC,MAFzB,EAGCC,QAHD,EAICC,YAJD,EAKCC,cALD,QAMO,uBANP;AAQA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,gBAAvB;AAEA,MAAMC,qBAAqB,GAAG,CAC7B,QAD6B,EAE7B,qBAF6B,EAG7B,WAH6B,EAI7B,wBAJ6B,CAA9B;AAOA,MAAMC,SAAS,GAAG;AACjBC,EAAAA,IAAI,EAAE,OADW;AAEjBC,EAAAA,KAAK,EAAE,OAFU;AAGjBC,EAAAA,KAAK,EAAE;AAHU,CAAlB;AAKA,MAAMC,YAAY,GAAG;AACpBH,EAAAA,IAAI,EAAE,UADc;AAEpBC,EAAAA,KAAK,EAAE,UAFa;AAGpBC,EAAAA,KAAK,EAAE;AAHa,CAArB;AAMA,MAAME,aAAa,GAAG,CAAEL,SAAF,EAAaI,YAAb,CAAtB;;AAEA,SAASE,yBAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/colors-gradients/control.js"],"names":["classnames","isEmpty","BaseControl","__experimentalVStack","VStack","TabPanel","ColorPalette","GradientPicker","useSetting","colorsAndGradientKeys","TAB_COLOR","name","title","value","TAB_GRADIENT","TABS_SETTINGS","ColorGradientControlInner","colors","gradients","disableCustomColors","disableCustomGradients","__experimentalIsRenderedInSidebar","className","label","onColorChange","onGradientChange","colorValue","gradientValue","clearable","showTitle","enableAlpha","headingLevel","canChooseAColor","canChooseAGradient","tabPanels","newColor","newGradient","renderPanelType","type","tab","ColorGradientControlSelect","props","colorGradientSettings","ColorGradientControl","every","key","hasOwnProperty"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\t__experimentalVStack as VStack,\n\tTabPanel,\n\tColorPalette,\n\tGradientPicker,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../use-setting';\n\nconst colorsAndGradientKeys = [\n\t'colors',\n\t'disableCustomColors',\n\t'gradients',\n\t'disableCustomGradients',\n];\n\nconst TAB_COLOR = {\n\tname: 'color',\n\ttitle: 'Solid',\n\tvalue: 'color',\n};\nconst TAB_GRADIENT = {\n\tname: 'gradient',\n\ttitle: 'Gradient',\n\tvalue: 'gradient',\n};\n\nconst TABS_SETTINGS = [ TAB_COLOR, TAB_GRADIENT ];\n\nfunction ColorGradientControlInner( {\n\tcolors,\n\tgradients,\n\tdisableCustomColors,\n\tdisableCustomGradients,\n\t__experimentalIsRenderedInSidebar,\n\tclassName,\n\tlabel,\n\tonColorChange,\n\tonGradientChange,\n\tcolorValue,\n\tgradientValue,\n\tclearable,\n\tshowTitle = true,\n\tenableAlpha,\n\theadingLevel,\n} ) {\n\tconst canChooseAColor =\n\t\tonColorChange && ( ! isEmpty( colors ) || ! disableCustomColors );\n\tconst canChooseAGradient =\n\t\tonGradientChange &&\n\t\t( ! isEmpty( gradients ) || ! disableCustomGradients );\n\n\tif ( ! canChooseAColor && ! canChooseAGradient ) {\n\t\treturn null;\n\t}\n\n\tconst tabPanels = {\n\t\t[ TAB_COLOR.value ]: (\n\t\t\t<ColorPalette\n\t\t\t\tvalue={ colorValue }\n\t\t\t\tonChange={\n\t\t\t\t\tcanChooseAGradient\n\t\t\t\t\t\t? ( newColor ) => {\n\t\t\t\t\t\t\t\tonColorChange( newColor );\n\t\t\t\t\t\t\t\tonGradientChange();\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: onColorChange\n\t\t\t\t}\n\t\t\t\t{ ...{ colors, disableCustomColors } }\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tclearable={ clearable }\n\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t\theadingLevel={ headingLevel }\n\t\t\t/>\n\t\t),\n\t\t[ TAB_GRADIENT.value ]: (\n\t\t\t<GradientPicker\n\t\t\t\t__nextHasNoMargin\n\t\t\t\tvalue={ gradientValue }\n\t\t\t\tonChange={\n\t\t\t\t\tcanChooseAColor\n\t\t\t\t\t\t? ( newGradient ) => {\n\t\t\t\t\t\t\t\tonGradientChange( newGradient );\n\t\t\t\t\t\t\t\tonColorChange();\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: onGradientChange\n\t\t\t\t}\n\t\t\t\t{ ...{ gradients, disableCustomGradients } }\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tclearable={ clearable }\n\t\t\t\theadingLevel={ headingLevel }\n\t\t\t/>\n\t\t),\n\t};\n\n\tconst renderPanelType = ( type ) => (\n\t\t<div className=\"block-editor-color-gradient-control__panel\">\n\t\t\t{ tabPanels[ type ] }\n\t\t</div>\n\t);\n\n\treturn (\n\t\t<BaseControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-color-gradient-control',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<fieldset className=\"block-editor-color-gradient-control__fieldset\">\n\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t{ showTitle && (\n\t\t\t\t\t\t<legend>\n\t\t\t\t\t\t\t<div className=\"block-editor-color-gradient-control__color-indicator\">\n\t\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</legend>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canChooseAColor && canChooseAGradient && (\n\t\t\t\t\t\t<TabPanel\n\t\t\t\t\t\t\tclassName=\"block-editor-color-gradient-control__tabs\"\n\t\t\t\t\t\t\ttabs={ TABS_SETTINGS }\n\t\t\t\t\t\t\tinitialTabName={\n\t\t\t\t\t\t\t\tgradientValue\n\t\t\t\t\t\t\t\t\t? TAB_GRADIENT.value\n\t\t\t\t\t\t\t\t\t: !! canChooseAColor && TAB_COLOR.value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ( tab ) => renderPanelType( tab.value ) }\n\t\t\t\t\t\t</TabPanel>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canChooseAGradient &&\n\t\t\t\t\t\trenderPanelType( TAB_COLOR.value ) }\n\t\t\t\t\t{ ! canChooseAColor &&\n\t\t\t\t\t\trenderPanelType( TAB_GRADIENT.value ) }\n\t\t\t\t</VStack>\n\t\t\t</fieldset>\n\t\t</BaseControl>\n\t);\n}\n\nfunction ColorGradientControlSelect( props ) {\n\tconst colorGradientSettings = {};\n\tcolorGradientSettings.colors = useSetting( 'color.palette' );\n\tcolorGradientSettings.gradients = useSetting( 'color.gradients' );\n\tcolorGradientSettings.disableCustomColors = ! useSetting( 'color.custom' );\n\tcolorGradientSettings.disableCustomGradients = ! useSetting(\n\t\t'color.customGradient'\n\t);\n\n\treturn (\n\t\t<ColorGradientControlInner\n\t\t\t{ ...{ ...colorGradientSettings, ...props } }\n\t\t/>\n\t);\n}\n\nfunction ColorGradientControl( props ) {\n\tif (\n\t\tcolorsAndGradientKeys.every( ( key ) => props.hasOwnProperty( key ) )\n\t) {\n\t\treturn <ColorGradientControlInner { ...props } />;\n\t}\n\treturn <ColorGradientControlSelect { ...props } />;\n}\n\nexport default ColorGradientControl;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createElement
|
|
1
|
+
import { createElement } from "@wordpress/element";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* WordPress dependencies
|
|
@@ -46,9 +46,9 @@ export default function DateFormatPicker(_ref) {
|
|
|
46
46
|
}, createElement(VisuallyHidden, {
|
|
47
47
|
as: "legend"
|
|
48
48
|
}, __('Date format')), createElement(ToggleControl, {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
49
|
+
__nextHasNoMarginBottom: true,
|
|
50
|
+
label: __('Default format'),
|
|
51
|
+
help: `${__('Example:')} ${dateI18n(defaultFormat, EXAMPLE_DATE)}`,
|
|
52
52
|
checked: !format,
|
|
53
53
|
onChange: checked => onChange(checked ? null : defaultFormat)
|
|
54
54
|
}), format && createElement(NonDefaultControls, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"names":["_x","__","dateI18n","useState","createInterpolateElement","TextControl","ExternalLink","VisuallyHidden","CustomSelectControl","ToggleControl","__experimentalVStack","VStack","EXAMPLE_DATE","Date","DateFormatPicker","format","defaultFormat","onChange","checked","NonDefaultControls","suggestedFormats","Set","suggestedOptions","map","suggestedFormat","index","key","name","customOption","className","__experimentalHint","isCustom","setIsCustom","includes","find","option","selectedItem","Link","value"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,EAAb,QAAuB,iBAAvB;AACA,SAASC,QAAT,QAAyB,iBAAzB;AACA,SAASC,QAAT,EAAmBC,wBAAnB,QAAmD,oBAAnD;AACA,SACCC,WADD,EAECC,YAFD,EAGCC,cAHD,EAICC,mBAJD,EAKCC,aALD,EAMCC,oBAAoB,IAAIC,MANzB,QAOO,uBAPP,C,CASA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,IAAIC,IAAJ,CAAU,IAAV,EAAgB,CAAhB,EAAmB,EAAnB,CAArB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,gBAAT,OAIX;AAAA,MAJsC;AACzCC,IAAAA,MADyC;AAEzCC,IAAAA,aAFyC;AAGzCC,IAAAA;AAHyC,GAItC;AACH,SACC;AAAU,IAAA,SAAS,EAAC;AAApB,KACC,cAAC,cAAD;AAAgB,IAAA,EAAE,EAAC;AAAnB,KAA8BhB,EAAE,CAAE,aAAF,CAAhC,CADD,EAEC,cAAC,aAAD;AACC,IAAA,KAAK,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/date-format-picker/index.js"],"names":["_x","__","dateI18n","useState","createInterpolateElement","TextControl","ExternalLink","VisuallyHidden","CustomSelectControl","ToggleControl","__experimentalVStack","VStack","EXAMPLE_DATE","Date","DateFormatPicker","format","defaultFormat","onChange","checked","NonDefaultControls","suggestedFormats","Set","suggestedOptions","map","suggestedFormat","index","key","name","customOption","className","__experimentalHint","isCustom","setIsCustom","includes","find","option","selectedItem","Link","value"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _x, __ } from '@wordpress/i18n';\nimport { dateI18n } from '@wordpress/date';\nimport { useState, createInterpolateElement } from '@wordpress/element';\nimport {\n\tTextControl,\n\tExternalLink,\n\tVisuallyHidden,\n\tCustomSelectControl,\n\tToggleControl,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\n\n// So that we can illustrate the different formats in the dropdown properly,\n// show a date that has a day greater than 12 and a month with more than three\n// letters. Here we're using 2022-01-25 which is when WordPress 5.9 was\n// released.\nconst EXAMPLE_DATE = new Date( 2022, 0, 25 );\n\n/**\n * The `DateFormatPicker` component renders controls that let the user choose a\n * _date format_. That is, how they want their dates to be formatted.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/date-format-picker/README.md\n *\n * @param {Object} props\n * @param {string|null} props.format The selected date\n * format. If\n * `null`,\n * _Default_ is\n * selected.\n * @param {string} props.defaultFormat The date format that\n * will be used if the\n * user selects\n * 'Default'.\n * @param {( format: string|null ) => void} props.onChange Called when a\n * selection is\n * made. If `null`,\n * _Default_ is\n * selected.\n */\nexport default function DateFormatPicker( {\n\tformat,\n\tdefaultFormat,\n\tonChange,\n} ) {\n\treturn (\n\t\t<fieldset className=\"block-editor-date-format-picker\">\n\t\t\t<VisuallyHidden as=\"legend\">{ __( 'Date format' ) }</VisuallyHidden>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Default format' ) }\n\t\t\t\thelp={ `${ __( 'Example:' ) } ${ dateI18n(\n\t\t\t\t\tdefaultFormat,\n\t\t\t\t\tEXAMPLE_DATE\n\t\t\t\t) }` }\n\t\t\t\tchecked={ ! format }\n\t\t\t\tonChange={ ( checked ) =>\n\t\t\t\t\tonChange( checked ? null : defaultFormat )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ format && (\n\t\t\t\t<NonDefaultControls format={ format } onChange={ onChange } />\n\t\t\t) }\n\t\t</fieldset>\n\t);\n}\n\nfunction NonDefaultControls( { format, onChange } ) {\n\t// Suggest a short format, medium format, long format, and a standardised\n\t// (YYYY-MM-DD) format. The short, medium, and long formats are localised as\n\t// different languages have different ways of writing these. For example, 'F\n\t// j, Y' (April 20, 2022) in American English (en_US) is 'j. F Y' (20. April\n\t// 2022) in German (de). The resultant array is de-duplicated as some\n\t// languages will use the same format string for short, medium, and long\n\t// formats.\n\tconst suggestedFormats = [\n\t\t...new Set( [\n\t\t\t'Y-m-d',\n\t\t\t_x( 'n/j/Y', 'short date format' ),\n\t\t\t_x( 'n/j/Y g:i A', 'short date format with time' ),\n\t\t\t_x( 'M j, Y', 'medium date format' ),\n\t\t\t_x( 'M j, Y g:i A', 'medium date format with time' ),\n\t\t\t_x( 'F j, Y', 'long date format' ),\n\t\t\t_x( 'M j', 'short date format without the year' ),\n\t\t] ),\n\t];\n\n\tconst suggestedOptions = suggestedFormats.map(\n\t\t( suggestedFormat, index ) => ( {\n\t\t\tkey: `suggested-${ index }`,\n\t\t\tname: dateI18n( suggestedFormat, EXAMPLE_DATE ),\n\t\t\tformat: suggestedFormat,\n\t\t} )\n\t);\n\tconst customOption = {\n\t\tkey: 'custom',\n\t\tname: __( 'Custom' ),\n\t\tclassName:\n\t\t\t'block-editor-date-format-picker__custom-format-select-control__custom-option',\n\t\t__experimentalHint: __( 'Enter your own date format' ),\n\t};\n\n\tconst [ isCustom, setIsCustom ] = useState(\n\t\t() => !! format && ! suggestedFormats.includes( format )\n\t);\n\n\treturn (\n\t\t<VStack>\n\t\t\t<CustomSelectControl\n\t\t\t\t__nextUnconstrainedWidth\n\t\t\t\tlabel={ __( 'Choose a format' ) }\n\t\t\t\toptions={ [ ...suggestedOptions, customOption ] }\n\t\t\t\tvalue={\n\t\t\t\t\tisCustom\n\t\t\t\t\t\t? customOption\n\t\t\t\t\t\t: suggestedOptions.find(\n\t\t\t\t\t\t\t\t( option ) => option.format === format\n\t\t\t\t\t\t ) ?? customOption\n\t\t\t\t}\n\t\t\t\tonChange={ ( { selectedItem } ) => {\n\t\t\t\t\tif ( selectedItem === customOption ) {\n\t\t\t\t\t\tsetIsCustom( true );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetIsCustom( false );\n\t\t\t\t\t\tonChange( selectedItem.format );\n\t\t\t\t\t}\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ isCustom && (\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Custom format' ) }\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\thelp={ createInterpolateElement(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Enter a date or time <Link>format string</Link>.'\n\t\t\t\t\t\t),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLink: (\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t\t'https://wordpress.org/support/article/formatting-date-and-time/'\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\tvalue={ format }\n\t\t\t\t\tonChange={ ( value ) => onChange( value ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n"]}
|
|
@@ -51,7 +51,7 @@ const FONT_WEIGHTS = [{
|
|
|
51
51
|
* @return {string} A label representing what font appearance is being edited.
|
|
52
52
|
*/
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
const getFontAppearanceLabel = (hasFontStyles, hasFontWeights) => {
|
|
55
55
|
if (!hasFontStyles) {
|
|
56
56
|
return __('Font weight');
|
|
57
57
|
}
|
|
@@ -70,6 +70,7 @@ export const getFontAppearanceLabel = (hasFontStyles, hasFontWeights) => {
|
|
|
70
70
|
* @return {WPElement} Font appearance control.
|
|
71
71
|
*/
|
|
72
72
|
|
|
73
|
+
|
|
73
74
|
export default function FontAppearanceControl(props) {
|
|
74
75
|
const {
|
|
75
76
|
onChange,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/font-appearance-control/index.js"],"names":["CustomSelectControl","useMemo","__","_x","sprintf","FONT_STYLES","name","value","FONT_WEIGHTS","getFontAppearanceLabel","hasFontStyles","hasFontWeights","FontAppearanceControl","props","onChange","fontStyle","fontWeight","otherProps","hasStylesOrWeights","label","defaultOption","key","style","undefined","combineOptions","combinedOptions","forEach","styleName","styleValue","weightName","weightValue","optionName","push","styleOptions","weightOptions","selectOptions","options","currentSelection","find","option","getDescribedBy","selectedItem"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { CustomSelectControl } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\nconst FONT_STYLES = [\n\t{\n\t\tname: _x( 'Regular', 'font style' ),\n\t\tvalue: 'normal',\n\t},\n\t{\n\t\tname: _x( 'Italic', 'font style' ),\n\t\tvalue: 'italic',\n\t},\n];\n\nconst FONT_WEIGHTS = [\n\t{\n\t\tname: _x( 'Thin', 'font weight' ),\n\t\tvalue: '100',\n\t},\n\t{\n\t\tname: _x( 'Extra Light', 'font weight' ),\n\t\tvalue: '200',\n\t},\n\t{\n\t\tname: _x( 'Light', 'font weight' ),\n\t\tvalue: '300',\n\t},\n\t{\n\t\tname: _x( 'Regular', 'font weight' ),\n\t\tvalue: '400',\n\t},\n\t{\n\t\tname: _x( 'Medium', 'font weight' ),\n\t\tvalue: '500',\n\t},\n\t{\n\t\tname: _x( 'Semi Bold', 'font weight' ),\n\t\tvalue: '600',\n\t},\n\t{\n\t\tname: _x( 'Bold', 'font weight' ),\n\t\tvalue: '700',\n\t},\n\t{\n\t\tname: _x( 'Extra Bold', 'font weight' ),\n\t\tvalue: '800',\n\t},\n\t{\n\t\tname: _x( 'Black', 'font weight' ),\n\t\tvalue: '900',\n\t},\n];\n\n/**\n * Adjusts font appearance field label in case either font styles or weights\n * are disabled.\n *\n * @param {boolean} hasFontStyles Whether font styles are enabled and present.\n * @param {boolean} hasFontWeights Whether font weights are enabled and present.\n * @return {string} A label representing what font appearance is being edited.\n */\nexport const getFontAppearanceLabel = ( hasFontStyles, hasFontWeights ) => {\n\tif ( ! hasFontStyles ) {\n\t\treturn __( 'Font weight' );\n\t}\n\n\tif ( ! hasFontWeights ) {\n\t\treturn __( 'Font style' );\n\t}\n\n\treturn __( 'Appearance' );\n};\n\n/**\n * Control to display unified font style and weight options.\n *\n * @param {Object} props Component props.\n *\n * @return {WPElement} Font appearance control.\n */\nexport default function FontAppearanceControl( props ) {\n\tconst {\n\t\tonChange,\n\t\thasFontStyles = true,\n\t\thasFontWeights = true,\n\t\tvalue: { fontStyle, fontWeight },\n\t\t...otherProps\n\t} = props;\n\tconst hasStylesOrWeights = hasFontStyles || hasFontWeights;\n\tconst label = getFontAppearanceLabel( hasFontStyles, hasFontWeights );\n\tconst defaultOption = {\n\t\tkey: 'default',\n\t\tname: __( 'Default' ),\n\t\tstyle: { fontStyle: undefined, fontWeight: undefined },\n\t};\n\n\t// Combines both font style and weight options into a single dropdown.\n\tconst combineOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\n\t\tFONT_STYLES.forEach( ( { name: styleName, value: styleValue } ) => {\n\t\t\tFONT_WEIGHTS.forEach(\n\t\t\t\t( { name: weightName, value: weightValue } ) => {\n\t\t\t\t\tconst optionName =\n\t\t\t\t\t\tstyleValue === 'normal'\n\t\t\t\t\t\t\t? weightName\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: 1: Font weight name. 2: Font style name. */\n\t\t\t\t\t\t\t\t\t__( '%1$s %2$s' ),\n\t\t\t\t\t\t\t\t\tweightName,\n\t\t\t\t\t\t\t\t\tstyleName\n\t\t\t\t\t\t\t );\n\n\t\t\t\t\tcombinedOptions.push( {\n\t\t\t\t\t\tkey: `${ styleValue }-${ weightValue }`,\n\t\t\t\t\t\tname: optionName,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tfontStyle: styleValue,\n\t\t\t\t\t\t\tfontWeight: weightValue,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t);\n\t\t} );\n\n\t\treturn combinedOptions;\n\t};\n\n\t// Generates select options for font styles only.\n\tconst styleOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tFONT_STYLES.forEach( ( { name, value } ) => {\n\t\t\tcombinedOptions.push( {\n\t\t\t\tkey: value,\n\t\t\t\tname,\n\t\t\t\tstyle: { fontStyle: value, fontWeight: undefined },\n\t\t\t} );\n\t\t} );\n\t\treturn combinedOptions;\n\t};\n\n\t// Generates select options for font weights only.\n\tconst weightOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tFONT_WEIGHTS.forEach( ( { name, value } ) => {\n\t\t\tcombinedOptions.push( {\n\t\t\t\tkey: value,\n\t\t\t\tname,\n\t\t\t\tstyle: { fontStyle: undefined, fontWeight: value },\n\t\t\t} );\n\t\t} );\n\t\treturn combinedOptions;\n\t};\n\n\t// Map font styles and weights to select options.\n\tconst selectOptions = useMemo( () => {\n\t\tif ( hasFontStyles && hasFontWeights ) {\n\t\t\treturn combineOptions();\n\t\t}\n\n\t\treturn hasFontStyles ? styleOptions() : weightOptions();\n\t}, [ props.options ] );\n\n\t// Find current selection by comparing font style & weight against options,\n\t// and fall back to the Default option if there is no matching option.\n\tconst currentSelection =\n\t\tselectOptions.find(\n\t\t\t( option ) =>\n\t\t\t\toption.style.fontStyle === fontStyle &&\n\t\t\t\toption.style.fontWeight === fontWeight\n\t\t) || selectOptions[ 0 ];\n\n\t// Adjusts screen reader description based on styles or weights.\n\tconst getDescribedBy = () => {\n\t\tif ( ! currentSelection ) {\n\t\t\treturn __( 'No selected font appearance' );\n\t\t}\n\n\t\tif ( ! hasFontStyles ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: %s: Currently selected font weight.\n\t\t\t\t__( 'Currently selected font weight: %s' ),\n\t\t\t\tcurrentSelection.name\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasFontWeights ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: %s: Currently selected font style.\n\t\t\t\t__( 'Currently selected font style: %s' ),\n\t\t\t\tcurrentSelection.name\n\t\t\t);\n\t\t}\n\n\t\treturn sprintf(\n\t\t\t// translators: %s: Currently selected font appearance.\n\t\t\t__( 'Currently selected font appearance: %s' ),\n\t\t\tcurrentSelection.name\n\t\t);\n\t};\n\n\treturn (\n\t\thasStylesOrWeights && (\n\t\t\t<CustomSelectControl\n\t\t\t\t{ ...otherProps }\n\t\t\t\tclassName=\"components-font-appearance-control\"\n\t\t\t\tlabel={ label }\n\t\t\t\tdescribedBy={ getDescribedBy() }\n\t\t\t\toptions={ selectOptions }\n\t\t\t\tvalue={ currentSelection }\n\t\t\t\tonChange={ ( { selectedItem } ) =>\n\t\t\t\t\tonChange( selectedItem.style )\n\t\t\t\t}\n\t\t\t\t__nextUnconstrainedWidth\n\t\t\t/>\n\t\t)\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/font-appearance-control/index.js"],"names":["CustomSelectControl","useMemo","__","_x","sprintf","FONT_STYLES","name","value","FONT_WEIGHTS","getFontAppearanceLabel","hasFontStyles","hasFontWeights","FontAppearanceControl","props","onChange","fontStyle","fontWeight","otherProps","hasStylesOrWeights","label","defaultOption","key","style","undefined","combineOptions","combinedOptions","forEach","styleName","styleValue","weightName","weightValue","optionName","push","styleOptions","weightOptions","selectOptions","options","currentSelection","find","option","getDescribedBy","selectedItem"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,mBAAT,QAAoC,uBAApC;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SAASC,EAAT,EAAaC,EAAb,EAAiBC,OAAjB,QAAgC,iBAAhC;AAEA,MAAMC,WAAW,GAAG,CACnB;AACCC,EAAAA,IAAI,EAAEH,EAAE,CAAE,SAAF,EAAa,YAAb,CADT;AAECI,EAAAA,KAAK,EAAE;AAFR,CADmB,EAKnB;AACCD,EAAAA,IAAI,EAAEH,EAAE,CAAE,QAAF,EAAY,YAAZ,CADT;AAECI,EAAAA,KAAK,EAAE;AAFR,CALmB,CAApB;AAWA,MAAMC,YAAY,GAAG,CACpB;AACCF,EAAAA,IAAI,EAAEH,EAAE,CAAE,MAAF,EAAU,aAAV,CADT;AAECI,EAAAA,KAAK,EAAE;AAFR,CADoB,EAKpB;AACCD,EAAAA,IAAI,EAAEH,EAAE,CAAE,aAAF,EAAiB,aAAjB,CADT;AAECI,EAAAA,KAAK,EAAE;AAFR,CALoB,EASpB;AACCD,EAAAA,IAAI,EAAEH,EAAE,CAAE,OAAF,EAAW,aAAX,CADT;AAECI,EAAAA,KAAK,EAAE;AAFR,CAToB,EAapB;AACCD,EAAAA,IAAI,EAAEH,EAAE,CAAE,SAAF,EAAa,aAAb,CADT;AAECI,EAAAA,KAAK,EAAE;AAFR,CAboB,EAiBpB;AACCD,EAAAA,IAAI,EAAEH,EAAE,CAAE,QAAF,EAAY,aAAZ,CADT;AAECI,EAAAA,KAAK,EAAE;AAFR,CAjBoB,EAqBpB;AACCD,EAAAA,IAAI,EAAEH,EAAE,CAAE,WAAF,EAAe,aAAf,CADT;AAECI,EAAAA,KAAK,EAAE;AAFR,CArBoB,EAyBpB;AACCD,EAAAA,IAAI,EAAEH,EAAE,CAAE,MAAF,EAAU,aAAV,CADT;AAECI,EAAAA,KAAK,EAAE;AAFR,CAzBoB,EA6BpB;AACCD,EAAAA,IAAI,EAAEH,EAAE,CAAE,YAAF,EAAgB,aAAhB,CADT;AAECI,EAAAA,KAAK,EAAE;AAFR,CA7BoB,EAiCpB;AACCD,EAAAA,IAAI,EAAEH,EAAE,CAAE,OAAF,EAAW,aAAX,CADT;AAECI,EAAAA,KAAK,EAAE;AAFR,CAjCoB,CAArB;AAuCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAME,sBAAsB,GAAG,CAAEC,aAAF,EAAiBC,cAAjB,KAAqC;AACnE,MAAK,CAAED,aAAP,EAAuB;AACtB,WAAOR,EAAE,CAAE,aAAF,CAAT;AACA;;AAED,MAAK,CAAES,cAAP,EAAwB;AACvB,WAAOT,EAAE,CAAE,YAAF,CAAT;AACA;;AAED,SAAOA,EAAE,CAAE,YAAF,CAAT;AACA,CAVD;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAe,SAASU,qBAAT,CAAgCC,KAAhC,EAAwC;AACtD,QAAM;AACLC,IAAAA,QADK;AAELJ,IAAAA,aAAa,GAAG,IAFX;AAGLC,IAAAA,cAAc,GAAG,IAHZ;AAILJ,IAAAA,KAAK,EAAE;AAAEQ,MAAAA,SAAF;AAAaC,MAAAA;AAAb,KAJF;AAKL,OAAGC;AALE,MAMFJ,KANJ;AAOA,QAAMK,kBAAkB,GAAGR,aAAa,IAAIC,cAA5C;AACA,QAAMQ,KAAK,GAAGV,sBAAsB,CAAEC,aAAF,EAAiBC,cAAjB,CAApC;AACA,QAAMS,aAAa,GAAG;AACrBC,IAAAA,GAAG,EAAE,SADgB;AAErBf,IAAAA,IAAI,EAAEJ,EAAE,CAAE,SAAF,CAFa;AAGrBoB,IAAAA,KAAK,EAAE;AAAEP,MAAAA,SAAS,EAAEQ,SAAb;AAAwBP,MAAAA,UAAU,EAAEO;AAApC;AAHc,GAAtB,CAVsD,CAgBtD;;AACA,QAAMC,cAAc,GAAG,MAAM;AAC5B,UAAMC,eAAe,GAAG,CAAEL,aAAF,CAAxB;AAEAf,IAAAA,WAAW,CAACqB,OAAZ,CAAqB,QAA8C;AAAA,UAA5C;AAAEpB,QAAAA,IAAI,EAAEqB,SAAR;AAAmBpB,QAAAA,KAAK,EAAEqB;AAA1B,OAA4C;AAClEpB,MAAAA,YAAY,CAACkB,OAAb,CACC,SAAgD;AAAA,YAA9C;AAAEpB,UAAAA,IAAI,EAAEuB,UAAR;AAAoBtB,UAAAA,KAAK,EAAEuB;AAA3B,SAA8C;AAC/C,cAAMC,UAAU,GACfH,UAAU,KAAK,QAAf,GACGC,UADH,GAEGzB,OAAO;AACP;AACAF,QAAAA,EAAE,CAAE,WAAF,CAFK,EAGP2B,UAHO,EAIPF,SAJO,CAHX;AAUAF,QAAAA,eAAe,CAACO,IAAhB,CAAsB;AACrBX,UAAAA,GAAG,EAAG,GAAGO,UAAY,IAAIE,WAAa,EADjB;AAErBxB,UAAAA,IAAI,EAAEyB,UAFe;AAGrBT,UAAAA,KAAK,EAAE;AACNP,YAAAA,SAAS,EAAEa,UADL;AAENZ,YAAAA,UAAU,EAAEc;AAFN;AAHc,SAAtB;AAQA,OApBF;AAsBA,KAvBD;AAyBA,WAAOL,eAAP;AACA,GA7BD,CAjBsD,CAgDtD;;;AACA,QAAMQ,YAAY,GAAG,MAAM;AAC1B,UAAMR,eAAe,GAAG,CAAEL,aAAF,CAAxB;AACAf,IAAAA,WAAW,CAACqB,OAAZ,CAAqB,SAAuB;AAAA,UAArB;AAAEpB,QAAAA,IAAF;AAAQC,QAAAA;AAAR,OAAqB;AAC3CkB,MAAAA,eAAe,CAACO,IAAhB,CAAsB;AACrBX,QAAAA,GAAG,EAAEd,KADgB;AAErBD,QAAAA,IAFqB;AAGrBgB,QAAAA,KAAK,EAAE;AAAEP,UAAAA,SAAS,EAAER,KAAb;AAAoBS,UAAAA,UAAU,EAAEO;AAAhC;AAHc,OAAtB;AAKA,KAND;AAOA,WAAOE,eAAP;AACA,GAVD,CAjDsD,CA6DtD;;;AACA,QAAMS,aAAa,GAAG,MAAM;AAC3B,UAAMT,eAAe,GAAG,CAAEL,aAAF,CAAxB;AACAZ,IAAAA,YAAY,CAACkB,OAAb,CAAsB,SAAuB;AAAA,UAArB;AAAEpB,QAAAA,IAAF;AAAQC,QAAAA;AAAR,OAAqB;AAC5CkB,MAAAA,eAAe,CAACO,IAAhB,CAAsB;AACrBX,QAAAA,GAAG,EAAEd,KADgB;AAErBD,QAAAA,IAFqB;AAGrBgB,QAAAA,KAAK,EAAE;AAAEP,UAAAA,SAAS,EAAEQ,SAAb;AAAwBP,UAAAA,UAAU,EAAET;AAApC;AAHc,OAAtB;AAKA,KAND;AAOA,WAAOkB,eAAP;AACA,GAVD,CA9DsD,CA0EtD;;;AACA,QAAMU,aAAa,GAAGlC,OAAO,CAAE,MAAM;AACpC,QAAKS,aAAa,IAAIC,cAAtB,EAAuC;AACtC,aAAOa,cAAc,EAArB;AACA;;AAED,WAAOd,aAAa,GAAGuB,YAAY,EAAf,GAAoBC,aAAa,EAArD;AACA,GAN4B,EAM1B,CAAErB,KAAK,CAACuB,OAAR,CAN0B,CAA7B,CA3EsD,CAmFtD;AACA;;AACA,QAAMC,gBAAgB,GACrBF,aAAa,CAACG,IAAd,CACGC,MAAF,IACCA,MAAM,CAACjB,KAAP,CAAaP,SAAb,KAA2BA,SAA3B,IACAwB,MAAM,CAACjB,KAAP,CAAaN,UAAb,KAA4BA,UAH9B,KAIKmB,aAAa,CAAE,CAAF,CALnB,CArFsD,CA4FtD;;AACA,QAAMK,cAAc,GAAG,MAAM;AAC5B,QAAK,CAAEH,gBAAP,EAA0B;AACzB,aAAOnC,EAAE,CAAE,6BAAF,CAAT;AACA;;AAED,QAAK,CAAEQ,aAAP,EAAuB;AACtB,aAAON,OAAO,EACb;AACAF,MAAAA,EAAE,CAAE,oCAAF,CAFW,EAGbmC,gBAAgB,CAAC/B,IAHJ,CAAd;AAKA;;AAED,QAAK,CAAEK,cAAP,EAAwB;AACvB,aAAOP,OAAO,EACb;AACAF,MAAAA,EAAE,CAAE,mCAAF,CAFW,EAGbmC,gBAAgB,CAAC/B,IAHJ,CAAd;AAKA;;AAED,WAAOF,OAAO,EACb;AACAF,IAAAA,EAAE,CAAE,wCAAF,CAFW,EAGbmC,gBAAgB,CAAC/B,IAHJ,CAAd;AAKA,GA1BD;;AA4BA,SACCY,kBAAkB,IACjB,cAAC,mBAAD,eACMD,UADN;AAEC,IAAA,SAAS,EAAC,oCAFX;AAGC,IAAA,KAAK,EAAGE,KAHT;AAIC,IAAA,WAAW,EAAGqB,cAAc,EAJ7B;AAKC,IAAA,OAAO,EAAGL,aALX;AAMC,IAAA,KAAK,EAAGE,gBANT;AAOC,IAAA,QAAQ,EAAG;AAAA,UAAE;AAAEI,QAAAA;AAAF,OAAF;AAAA,aACV3B,QAAQ,CAAE2B,YAAY,CAACnB,KAAf,CADE;AAAA,KAPZ;AAUC,IAAA,wBAAwB;AAVzB,KAFF;AAgBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { CustomSelectControl } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\nconst FONT_STYLES = [\n\t{\n\t\tname: _x( 'Regular', 'font style' ),\n\t\tvalue: 'normal',\n\t},\n\t{\n\t\tname: _x( 'Italic', 'font style' ),\n\t\tvalue: 'italic',\n\t},\n];\n\nconst FONT_WEIGHTS = [\n\t{\n\t\tname: _x( 'Thin', 'font weight' ),\n\t\tvalue: '100',\n\t},\n\t{\n\t\tname: _x( 'Extra Light', 'font weight' ),\n\t\tvalue: '200',\n\t},\n\t{\n\t\tname: _x( 'Light', 'font weight' ),\n\t\tvalue: '300',\n\t},\n\t{\n\t\tname: _x( 'Regular', 'font weight' ),\n\t\tvalue: '400',\n\t},\n\t{\n\t\tname: _x( 'Medium', 'font weight' ),\n\t\tvalue: '500',\n\t},\n\t{\n\t\tname: _x( 'Semi Bold', 'font weight' ),\n\t\tvalue: '600',\n\t},\n\t{\n\t\tname: _x( 'Bold', 'font weight' ),\n\t\tvalue: '700',\n\t},\n\t{\n\t\tname: _x( 'Extra Bold', 'font weight' ),\n\t\tvalue: '800',\n\t},\n\t{\n\t\tname: _x( 'Black', 'font weight' ),\n\t\tvalue: '900',\n\t},\n];\n\n/**\n * Adjusts font appearance field label in case either font styles or weights\n * are disabled.\n *\n * @param {boolean} hasFontStyles Whether font styles are enabled and present.\n * @param {boolean} hasFontWeights Whether font weights are enabled and present.\n * @return {string} A label representing what font appearance is being edited.\n */\nconst getFontAppearanceLabel = ( hasFontStyles, hasFontWeights ) => {\n\tif ( ! hasFontStyles ) {\n\t\treturn __( 'Font weight' );\n\t}\n\n\tif ( ! hasFontWeights ) {\n\t\treturn __( 'Font style' );\n\t}\n\n\treturn __( 'Appearance' );\n};\n\n/**\n * Control to display unified font style and weight options.\n *\n * @param {Object} props Component props.\n *\n * @return {WPElement} Font appearance control.\n */\nexport default function FontAppearanceControl( props ) {\n\tconst {\n\t\tonChange,\n\t\thasFontStyles = true,\n\t\thasFontWeights = true,\n\t\tvalue: { fontStyle, fontWeight },\n\t\t...otherProps\n\t} = props;\n\tconst hasStylesOrWeights = hasFontStyles || hasFontWeights;\n\tconst label = getFontAppearanceLabel( hasFontStyles, hasFontWeights );\n\tconst defaultOption = {\n\t\tkey: 'default',\n\t\tname: __( 'Default' ),\n\t\tstyle: { fontStyle: undefined, fontWeight: undefined },\n\t};\n\n\t// Combines both font style and weight options into a single dropdown.\n\tconst combineOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\n\t\tFONT_STYLES.forEach( ( { name: styleName, value: styleValue } ) => {\n\t\t\tFONT_WEIGHTS.forEach(\n\t\t\t\t( { name: weightName, value: weightValue } ) => {\n\t\t\t\t\tconst optionName =\n\t\t\t\t\t\tstyleValue === 'normal'\n\t\t\t\t\t\t\t? weightName\n\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: 1: Font weight name. 2: Font style name. */\n\t\t\t\t\t\t\t\t\t__( '%1$s %2$s' ),\n\t\t\t\t\t\t\t\t\tweightName,\n\t\t\t\t\t\t\t\t\tstyleName\n\t\t\t\t\t\t\t );\n\n\t\t\t\t\tcombinedOptions.push( {\n\t\t\t\t\t\tkey: `${ styleValue }-${ weightValue }`,\n\t\t\t\t\t\tname: optionName,\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tfontStyle: styleValue,\n\t\t\t\t\t\t\tfontWeight: weightValue,\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t);\n\t\t} );\n\n\t\treturn combinedOptions;\n\t};\n\n\t// Generates select options for font styles only.\n\tconst styleOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tFONT_STYLES.forEach( ( { name, value } ) => {\n\t\t\tcombinedOptions.push( {\n\t\t\t\tkey: value,\n\t\t\t\tname,\n\t\t\t\tstyle: { fontStyle: value, fontWeight: undefined },\n\t\t\t} );\n\t\t} );\n\t\treturn combinedOptions;\n\t};\n\n\t// Generates select options for font weights only.\n\tconst weightOptions = () => {\n\t\tconst combinedOptions = [ defaultOption ];\n\t\tFONT_WEIGHTS.forEach( ( { name, value } ) => {\n\t\t\tcombinedOptions.push( {\n\t\t\t\tkey: value,\n\t\t\t\tname,\n\t\t\t\tstyle: { fontStyle: undefined, fontWeight: value },\n\t\t\t} );\n\t\t} );\n\t\treturn combinedOptions;\n\t};\n\n\t// Map font styles and weights to select options.\n\tconst selectOptions = useMemo( () => {\n\t\tif ( hasFontStyles && hasFontWeights ) {\n\t\t\treturn combineOptions();\n\t\t}\n\n\t\treturn hasFontStyles ? styleOptions() : weightOptions();\n\t}, [ props.options ] );\n\n\t// Find current selection by comparing font style & weight against options,\n\t// and fall back to the Default option if there is no matching option.\n\tconst currentSelection =\n\t\tselectOptions.find(\n\t\t\t( option ) =>\n\t\t\t\toption.style.fontStyle === fontStyle &&\n\t\t\t\toption.style.fontWeight === fontWeight\n\t\t) || selectOptions[ 0 ];\n\n\t// Adjusts screen reader description based on styles or weights.\n\tconst getDescribedBy = () => {\n\t\tif ( ! currentSelection ) {\n\t\t\treturn __( 'No selected font appearance' );\n\t\t}\n\n\t\tif ( ! hasFontStyles ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: %s: Currently selected font weight.\n\t\t\t\t__( 'Currently selected font weight: %s' ),\n\t\t\t\tcurrentSelection.name\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasFontWeights ) {\n\t\t\treturn sprintf(\n\t\t\t\t// translators: %s: Currently selected font style.\n\t\t\t\t__( 'Currently selected font style: %s' ),\n\t\t\t\tcurrentSelection.name\n\t\t\t);\n\t\t}\n\n\t\treturn sprintf(\n\t\t\t// translators: %s: Currently selected font appearance.\n\t\t\t__( 'Currently selected font appearance: %s' ),\n\t\t\tcurrentSelection.name\n\t\t);\n\t};\n\n\treturn (\n\t\thasStylesOrWeights && (\n\t\t\t<CustomSelectControl\n\t\t\t\t{ ...otherProps }\n\t\t\t\tclassName=\"components-font-appearance-control\"\n\t\t\t\tlabel={ label }\n\t\t\t\tdescribedBy={ getDescribedBy() }\n\t\t\t\toptions={ selectOptions }\n\t\t\t\tvalue={ currentSelection }\n\t\t\t\tonChange={ ( { selectedItem } ) =>\n\t\t\t\t\tonChange( selectedItem.style )\n\t\t\t\t}\n\t\t\t\t__nextUnconstrainedWidth\n\t\t\t/>\n\t\t)\n\t);\n}\n"]}
|