@wordpress/components 25.9.1 → 25.11.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 +48 -0
- package/build/alignment-matrix-control/cell.js +8 -5
- package/build/alignment-matrix-control/cell.js.map +1 -1
- package/build/alignment-matrix-control/index.js +27 -43
- package/build/alignment-matrix-control/index.js.map +1 -1
- package/build/alignment-matrix-control/utils.js +29 -9
- package/build/alignment-matrix-control/utils.js.map +1 -1
- package/build/autocomplete/index.js +104 -52
- package/build/autocomplete/index.js.map +1 -1
- package/build/circular-option-picker/circular-option-picker-option.js +20 -39
- package/build/circular-option-picker/circular-option-picker-option.js.map +1 -1
- package/build/circular-option-picker/circular-option-picker.js +11 -32
- package/build/circular-option-picker/circular-option-picker.js.map +1 -1
- package/build/circular-option-picker/types.js.map +1 -1
- package/build/color-palette/index.js +7 -2
- package/build/color-palette/index.js.map +1 -1
- package/build/color-picker/component.js +12 -2
- package/build/color-picker/component.js.map +1 -1
- package/build/color-picker/picker.js +77 -1
- package/build/color-picker/picker.js.map +1 -1
- package/build/color-picker/styles.js +8 -8
- package/build/color-picker/styles.js.map +1 -1
- package/build/color-picker/types.js.map +1 -1
- package/build/composite/v2.js +43 -0
- package/build/composite/v2.js.map +1 -0
- package/build/confirm-dialog/component.js +74 -8
- package/build/confirm-dialog/component.js.map +1 -1
- package/build/confirm-dialog/types.js.map +1 -1
- package/build/custom-gradient-picker/gradient-bar/control-points.js +13 -4
- package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build/dropdown-menu-v2-ariakit/index.js +217 -0
- package/build/dropdown-menu-v2-ariakit/index.js.map +1 -0
- package/build/dropdown-menu-v2-ariakit/styles.js +157 -0
- package/build/dropdown-menu-v2-ariakit/styles.js.map +1 -0
- package/build/dropdown-menu-v2-ariakit/types.js +6 -0
- package/build/dropdown-menu-v2-ariakit/types.js.map +1 -0
- package/build/font-size-picker/utils.js +1 -1
- package/build/font-size-picker/utils.js.map +1 -1
- package/build/input-control/styles/input-control-styles.js +23 -23
- package/build/input-control/styles/input-control-styles.js.map +1 -1
- package/build/mobile/global-styles-context/utils.native.js +1 -1
- package/build/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build/modal/index.js +45 -16
- package/build/modal/index.js.map +1 -1
- package/build/palette-edit/index.js +4 -0
- package/build/palette-edit/index.js.map +1 -1
- package/build/popover/index.js +34 -6
- package/build/popover/index.js.map +1 -1
- package/build/private-apis.js +18 -2
- package/build/private-apis.js.map +1 -1
- package/build/progress-bar/styles.js +5 -5
- package/build/progress-bar/styles.js.map +1 -1
- package/build/sandbox/index.js +1 -1
- package/build/sandbox/index.js.map +1 -1
- package/build/sandbox/index.native.js +1 -1
- package/build/sandbox/index.native.js.map +1 -1
- package/build/select-control/styles/select-control-styles.js +8 -8
- package/build/select-control/styles/select-control-styles.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/slot-fill-provider.js +1 -1
- package/build/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
- package/build/tabs/context.js +16 -0
- package/build/tabs/context.js.map +1 -0
- package/build/tabs/index.js +147 -0
- package/build/tabs/index.js.map +1 -0
- package/build/tabs/styles.js +38 -0
- package/build/tabs/styles.js.map +1 -0
- package/build/tabs/tab.js +46 -0
- package/build/tabs/tab.js.map +1 -0
- package/build/tabs/tablist.js +47 -0
- package/build/tabs/tablist.js.map +1 -0
- package/build/tabs/tabpanel.js +48 -0
- package/build/tabs/tabpanel.js.map +1 -0
- package/build/tabs/types.js +6 -0
- package/build/tabs/types.js.map +1 -0
- package/build/text/component.js +7 -6
- package/build/text/component.js.map +1 -1
- package/build/text/hook.js +6 -15
- package/build/text/hook.js.map +1 -1
- package/build/text/index.js.map +1 -1
- package/build/text/styles.js +7 -7
- package/build/text/styles.js.map +1 -1
- package/build/text/types.js.map +1 -1
- package/build/text/utils.js +17 -33
- package/build/text/utils.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control-option-base/component.js +1 -0
- package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
- package/build/toolbar/toolbar/index.js +17 -10
- package/build/toolbar/toolbar/index.js.map +1 -1
- package/build/toolbar/toolbar/types.js.map +1 -1
- package/build/tools-panel/tools-panel-item/hook.js +2 -2
- package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build/tools-panel/types.js.map +1 -1
- package/build/tooltip/index.js +2 -2
- package/build/tooltip/index.js.map +1 -1
- package/build/unit-control/utils.js +108 -0
- package/build/unit-control/utils.js.map +1 -1
- package/build/utils/unit-values.js +1 -1
- package/build/utils/unit-values.js.map +1 -1
- package/build-module/alignment-matrix-control/cell.js +7 -4
- package/build-module/alignment-matrix-control/cell.js.map +1 -1
- package/build-module/alignment-matrix-control/index.js +27 -43
- package/build-module/alignment-matrix-control/index.js.map +1 -1
- package/build-module/alignment-matrix-control/utils.js +29 -8
- package/build-module/alignment-matrix-control/utils.js.map +1 -1
- package/build-module/autocomplete/index.js +104 -52
- package/build-module/autocomplete/index.js.map +1 -1
- package/build-module/circular-option-picker/circular-option-picker-option.js +20 -39
- package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
- package/build-module/circular-option-picker/circular-option-picker.js +10 -31
- package/build-module/circular-option-picker/circular-option-picker.js.map +1 -1
- package/build-module/circular-option-picker/types.js.map +1 -1
- package/build-module/color-palette/index.js +7 -2
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/color-picker/component.js +13 -3
- package/build-module/color-picker/component.js.map +1 -1
- package/build-module/color-picker/picker.js +78 -2
- package/build-module/color-picker/picker.js.map +1 -1
- package/build-module/color-picker/styles.js +8 -8
- package/build-module/color-picker/styles.js.map +1 -1
- package/build-module/color-picker/types.js.map +1 -1
- package/build-module/composite/v2.js +15 -0
- package/build-module/composite/v2.js.map +1 -0
- package/build-module/confirm-dialog/component.js +72 -7
- package/build-module/confirm-dialog/component.js.map +1 -1
- package/build-module/confirm-dialog/types.js.map +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js +13 -4
- package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
- package/build-module/dropdown-menu-v2-ariakit/index.js +199 -0
- package/build-module/dropdown-menu-v2-ariakit/index.js.map +1 -0
- package/build-module/dropdown-menu-v2-ariakit/styles.js +136 -0
- package/build-module/dropdown-menu-v2-ariakit/styles.js.map +1 -0
- package/build-module/dropdown-menu-v2-ariakit/types.js +2 -0
- package/build-module/dropdown-menu-v2-ariakit/types.js.map +1 -0
- package/build-module/font-size-picker/utils.js +1 -1
- package/build-module/font-size-picker/utils.js.map +1 -1
- package/build-module/input-control/styles/input-control-styles.js +23 -23
- package/build-module/input-control/styles/input-control-styles.js.map +1 -1
- package/build-module/mobile/global-styles-context/utils.native.js +2 -2
- package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
- package/build-module/modal/index.js +47 -18
- package/build-module/modal/index.js.map +1 -1
- package/build-module/palette-edit/index.js +4 -0
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/popover/index.js +34 -6
- package/build-module/popover/index.js.map +1 -1
- package/build-module/private-apis.js +18 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/progress-bar/styles.js +5 -5
- package/build-module/progress-bar/styles.js.map +1 -1
- package/build-module/sandbox/index.js +1 -1
- package/build-module/sandbox/index.js.map +1 -1
- package/build-module/sandbox/index.native.js +1 -1
- package/build-module/sandbox/index.native.js.map +1 -1
- package/build-module/select-control/styles/select-control-styles.js +8 -8
- package/build-module/select-control/styles/select-control-styles.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js +1 -1
- package/build-module/slot-fill/bubbles-virtually/slot-fill-provider.js.map +1 -1
- package/build-module/tabs/context.js +12 -0
- package/build-module/tabs/context.js.map +1 -0
- package/build-module/tabs/index.js +142 -0
- package/build-module/tabs/index.js.map +1 -0
- package/build-module/tabs/styles.js +36 -0
- package/build-module/tabs/styles.js.map +1 -0
- package/build-module/tabs/tab.js +43 -0
- package/build-module/tabs/tab.js.map +1 -0
- package/build-module/tabs/tablist.js +41 -0
- package/build-module/tabs/tablist.js.map +1 -0
- package/build-module/tabs/tabpanel.js +43 -0
- package/build-module/tabs/tabpanel.js.map +1 -0
- package/build-module/tabs/types.js +2 -0
- package/build-module/tabs/types.js.map +1 -0
- package/build-module/text/component.js +6 -6
- package/build-module/text/component.js.map +1 -1
- package/build-module/text/hook.js +11 -19
- package/build-module/text/hook.js.map +1 -1
- package/build-module/text/index.js.map +1 -1
- package/build-module/text/styles.js +7 -7
- package/build-module/text/styles.js.map +1 -1
- package/build-module/text/types.js.map +1 -1
- package/build-module/text/utils.js +17 -10
- package/build-module/text/utils.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +1 -0
- package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
- package/build-module/toolbar/toolbar/index.js +18 -11
- package/build-module/toolbar/toolbar/index.js.map +1 -1
- package/build-module/toolbar/toolbar/types.js.map +1 -1
- package/build-module/tools-panel/tools-panel-item/hook.js +2 -2
- package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
- package/build-module/tools-panel/types.js.map +1 -1
- package/build-module/tooltip/index.js +2 -2
- package/build-module/tooltip/index.js.map +1 -1
- package/build-module/unit-control/utils.js +108 -0
- package/build-module/unit-control/utils.js.map +1 -1
- package/build-module/utils/unit-values.js +1 -1
- package/build-module/utils/unit-values.js.map +1 -1
- package/build-style/style-rtl.css +17 -5
- package/build-style/style.css +17 -5
- package/build-types/alignment-matrix-control/cell.d.ts +1 -1
- package/build-types/alignment-matrix-control/cell.d.ts.map +1 -1
- package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
- package/build-types/alignment-matrix-control/stories/index.story.d.ts.map +1 -1
- package/build-types/alignment-matrix-control/utils.d.ts +9 -9
- package/build-types/alignment-matrix-control/utils.d.ts.map +1 -1
- package/build-types/autocomplete/index.d.ts.map +1 -1
- package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -1
- package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -1
- package/build-types/circular-option-picker/types.d.ts +4 -6
- package/build-types/circular-option-picker/types.d.ts.map +1 -1
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-picker/component.d.ts.map +1 -1
- package/build-types/color-picker/picker.d.ts +1 -1
- package/build-types/color-picker/picker.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/color-picker/types.d.ts +3 -0
- package/build-types/color-picker/types.d.ts.map +1 -1
- package/build-types/composite/v2.d.ts +12 -0
- package/build-types/composite/v2.d.ts.map +1 -0
- package/build-types/confirm-dialog/component.d.ts +70 -29
- package/build-types/confirm-dialog/component.d.ts.map +1 -1
- package/build-types/confirm-dialog/stories/index.story.d.ts +11 -0
- package/build-types/confirm-dialog/stories/index.story.d.ts.map +1 -0
- package/build-types/confirm-dialog/test/index.d.ts +2 -0
- package/build-types/confirm-dialog/test/index.d.ts.map +1 -0
- package/build-types/confirm-dialog/types.d.ts +32 -10
- package/build-types/confirm-dialog/types.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2-ariakit/index.d.ts +11 -0
- package/build-types/dropdown-menu-v2-ariakit/index.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts +16 -0
- package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2-ariakit/styles.d.ts +88 -0
- package/build-types/dropdown-menu-v2-ariakit/styles.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2-ariakit/test/index.d.ts +2 -0
- package/build-types/dropdown-menu-v2-ariakit/test/index.d.ts.map +1 -0
- package/build-types/dropdown-menu-v2-ariakit/types.d.ts +174 -0
- package/build-types/dropdown-menu-v2-ariakit/types.d.ts.map +1 -0
- package/build-types/font-size-picker/utils.d.ts.map +1 -1
- package/build-types/heading/stories/index.story.d.ts.map +1 -1
- package/build-types/modal/index.d.ts.map +1 -1
- package/build-types/palette-edit/index.d.ts.map +1 -1
- package/build-types/popover/index.d.ts +1 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/build-types/progress-bar/styles.d.ts.map +1 -1
- package/build-types/sandbox/index.d.ts.map +1 -1
- package/build-types/tabs/context.d.ts +8 -0
- package/build-types/tabs/context.d.ts.map +1 -0
- package/build-types/tabs/index.d.ts +13 -0
- package/build-types/tabs/index.d.ts.map +1 -0
- package/build-types/tabs/stories/index.story.d.ts +20 -0
- package/build-types/tabs/stories/index.story.d.ts.map +1 -0
- package/build-types/tabs/styles.d.ts +17 -0
- package/build-types/tabs/styles.d.ts.map +1 -0
- package/build-types/tabs/tab.d.ts +10 -0
- package/build-types/tabs/tab.d.ts.map +1 -0
- package/build-types/tabs/tablist.d.ts +7 -0
- package/build-types/tabs/tablist.d.ts.map +1 -0
- package/build-types/tabs/tabpanel.d.ts +7 -0
- package/build-types/tabs/tabpanel.d.ts.map +1 -0
- package/build-types/tabs/test/index.d.ts +2 -0
- package/build-types/tabs/test/index.d.ts.map +1 -0
- package/build-types/tabs/types.d.ts +134 -0
- package/build-types/tabs/types.d.ts.map +1 -0
- package/build-types/text/component.d.ts +4 -2
- package/build-types/text/component.d.ts.map +1 -1
- package/build-types/text/hook.d.ts +171 -165
- package/build-types/text/hook.d.ts.map +1 -1
- package/build-types/text/index.d.ts +2 -2
- package/build-types/text/index.d.ts.map +1 -1
- package/build-types/text/stories/index.story.d.ts +21 -0
- package/build-types/text/stories/index.story.d.ts.map +1 -0
- package/build-types/text/styles.d.ts +7 -7
- package/build-types/text/styles.d.ts.map +1 -1
- package/build-types/text/types.d.ts +1 -1
- package/build-types/text/types.d.ts.map +1 -1
- package/build-types/text/utils.d.ts +56 -61
- package/build-types/text/utils.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
- package/build-types/toolbar/stories/index.story.d.ts +5 -0
- package/build-types/toolbar/stories/index.story.d.ts.map +1 -1
- package/build-types/toolbar/toolbar/index.d.ts.map +1 -1
- package/build-types/toolbar/toolbar/types.d.ts +10 -0
- package/build-types/toolbar/toolbar/types.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
- package/build-types/tools-panel/types.d.ts +2 -0
- package/build-types/tools-panel/types.d.ts.map +1 -1
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/build-types/unit-control/utils.d.ts.map +1 -1
- package/package.json +21 -20
- package/src/alignment-matrix-control/cell.tsx +6 -2
- package/src/alignment-matrix-control/index.tsx +31 -54
- package/src/alignment-matrix-control/stories/index.story.tsx +3 -7
- package/src/alignment-matrix-control/test/index.tsx +117 -18
- package/src/alignment-matrix-control/utils.tsx +33 -9
- package/src/autocomplete/index.tsx +136 -77
- package/src/button/style.scss +1 -2
- package/src/circular-option-picker/circular-option-picker-option.tsx +24 -38
- package/src/circular-option-picker/circular-option-picker.tsx +11 -28
- package/src/circular-option-picker/types.ts +6 -5
- package/src/color-palette/index.tsx +6 -1
- package/src/color-picker/component.tsx +25 -3
- package/src/color-picker/picker.tsx +96 -2
- package/src/color-picker/styles.ts +0 -1
- package/src/color-picker/types.ts +3 -0
- package/src/composite/v2.ts +22 -0
- package/src/confirm-dialog/README.md +1 -1
- package/src/confirm-dialog/component.tsx +79 -13
- package/src/confirm-dialog/stories/{index.story.js → index.story.tsx} +26 -24
- package/src/confirm-dialog/test/{index.js → index.tsx} +3 -3
- package/src/confirm-dialog/types.ts +32 -12
- package/src/custom-gradient-picker/gradient-bar/control-points.tsx +32 -25
- package/src/dimension-control/test/__snapshots__/index.test.js.snap +8 -8
- package/src/dropdown-menu-v2-ariakit/README.md +324 -0
- package/src/dropdown-menu-v2-ariakit/index.tsx +318 -0
- package/src/dropdown-menu-v2-ariakit/stories/index.story.tsx +506 -0
- package/src/dropdown-menu-v2-ariakit/styles.ts +297 -0
- package/src/dropdown-menu-v2-ariakit/test/index.tsx +1139 -0
- package/src/dropdown-menu-v2-ariakit/types.ts +186 -0
- package/src/font-size-picker/utils.ts +2 -1
- package/src/heading/stories/index.story.tsx +2 -4
- package/src/input-control/styles/input-control-styles.tsx +2 -2
- package/src/mobile/global-styles-context/utils.native.js +2 -2
- package/src/modal/index.tsx +58 -22
- package/src/modal/test/index.tsx +29 -0
- package/src/notice/style.scss +0 -1
- package/src/palette-edit/index.tsx +4 -0
- package/src/popover/index.tsx +99 -57
- package/src/popover/style.scss +9 -0
- package/src/private-apis.ts +31 -1
- package/src/progress-bar/styles.ts +19 -4
- package/src/sandbox/index.native.js +1 -1
- package/src/sandbox/index.tsx +3 -1
- package/src/select-control/styles/select-control-styles.ts +2 -2
- package/src/slot-fill/bubbles-virtually/slot-fill-provider.tsx +1 -1
- package/src/tabs/README.md +242 -0
- package/src/tabs/context.ts +13 -0
- package/src/tabs/index.tsx +167 -0
- package/src/tabs/stories/index.story.tsx +352 -0
- package/src/tabs/styles.ts +103 -0
- package/src/tabs/tab.tsx +39 -0
- package/src/tabs/tablist.tsx +40 -0
- package/src/tabs/tabpanel.tsx +42 -0
- package/src/tabs/test/index.tsx +1133 -0
- package/src/tabs/types.ts +142 -0
- package/src/text/README.md +2 -2
- package/src/text/{component.js → component.tsx} +10 -6
- package/src/text/{hook.js → hook.ts} +12 -15
- package/src/text/stories/index.story.tsx +80 -0
- package/src/text/types.ts +1 -6
- package/src/text/{utils.js → utils.ts} +40 -14
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +16 -0
- package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +1 -0
- package/src/toolbar/stories/index.story.tsx +15 -0
- package/src/toolbar/test/index.tsx +8 -0
- package/src/toolbar/toolbar/README.md +9 -0
- package/src/toolbar/toolbar/index.tsx +21 -12
- package/src/toolbar/toolbar/style.scss +9 -0
- package/src/toolbar/toolbar/types.ts +10 -0
- package/src/tools-panel/tools-panel/README.md +3 -0
- package/src/tools-panel/tools-panel-item/hook.ts +4 -6
- package/src/tools-panel/types.ts +2 -0
- package/src/tooltip/index.tsx +2 -3
- package/src/unit-control/utils.ts +124 -0
- package/src/utils/unit-values.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/src/text/stories/index.story.js +0 -53
- /package/src/text/{index.js → index.ts} +0 -0
- /package/src/text/{styles.js → styles.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react2","require","_flex","_text","_utils","_space","_EMOTION_STRINGIFIED_CSS_ERROR__","_ref2","process","env","NODE_ENV","name","styles","map","toString","rootFocusedStyles","isFocused","Root","_base","default","Flex","target","label","exports","containerDisabledStyles","disabled","backgroundColor","COLORS","ui","backgroundDisabled","background","css","_ref","containerWidthStyles","__unstableInputWidth","labelPosition","flex","width","Container","disabledStyles","color","textDisabled","fontSizeStyles","inputSize","size","sizes","small","fontSize","fontSizeMobile","getSizeConfig","__next40pxDefaultSize","height","lineHeight","minHeight","paddingLeft","space","paddingRight","sizeStyles","props","customPaddings","paddingInlineStart","paddingInlineEnd","dragStyles","isDragging","dragCursor","defaultArrowStyles","activeDragCursorStyles","Input","gray","BaseLabel","Text","baseLabelTypography","Label","_react","createElement","as","LabelWrapper","FlexItem","backdropFocusedStyles","borderColor","borderFocus","border","boxShadow","outline","outlineOffset","CONFIG","controlBoxShadowFocus","borderDisabled","borderStyle","borderWidth","BackdropUI","rtl","Prefix","Suffix"],"sources":["@wordpress/components/src/input-control/styles/input-control-styles.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport type { CSSProperties, ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../context';\nimport { Flex, FlexItem } from '../../flex';\nimport { Text } from '../../text';\nimport { baseLabelTypography, COLORS, CONFIG, rtl } from '../../utils';\nimport type { LabelPosition, Size } from '../types';\nimport { space } from '../../utils/space';\n\ntype ContainerProps = {\n\tdisabled?: boolean;\n\thideLabel?: boolean;\n\t__unstableInputWidth?: CSSProperties[ 'width' ];\n\tlabelPosition?: LabelPosition;\n};\n\ntype RootProps = {\n\tisFocused?: boolean;\n\tlabelPosition?: LabelPosition;\n};\n\nconst rootFocusedStyles = ( { isFocused }: RootProps ) => {\n\tif ( ! isFocused ) return '';\n\n\treturn css( { zIndex: 1 } );\n};\n\nexport const Root = styled( Flex )< RootProps >`\n\tbox-sizing: border-box;\n\tposition: relative;\n\tborder-radius: 2px;\n\tpadding-top: 0;\n\t${ rootFocusedStyles }\n`;\n\nconst containerDisabledStyles = ( { disabled }: ContainerProps ) => {\n\tconst backgroundColor = disabled\n\t\t? COLORS.ui.backgroundDisabled\n\t\t: COLORS.ui.background;\n\n\treturn css( { backgroundColor } );\n};\n\nconst containerWidthStyles = ( {\n\t__unstableInputWidth,\n\tlabelPosition,\n}: ContainerProps ) => {\n\tif ( ! __unstableInputWidth ) return css( { width: '100%' } );\n\n\tif ( labelPosition === 'side' ) return '';\n\n\tif ( labelPosition === 'edge' ) {\n\t\treturn css( {\n\t\t\tflex: `0 0 ${ __unstableInputWidth }`,\n\t\t} );\n\t}\n\n\treturn css( { width: __unstableInputWidth } );\n};\n\nexport const Container = styled.div< ContainerProps >`\n\talign-items: center;\n\tbox-sizing: border-box;\n\tborder-radius: inherit;\n\tdisplay: flex;\n\tflex: 1;\n\tposition: relative;\n\n\t${ containerDisabledStyles }\n\t${ containerWidthStyles }\n`;\n\ntype InputProps = {\n\t__next40pxDefaultSize?: boolean;\n\tdisabled?: boolean;\n\tinputSize?: Size;\n\tisDragging?: boolean;\n\tdragCursor?: CSSProperties[ 'cursor' ];\n\tpaddingInlineStart?: CSSProperties[ 'paddingInlineStart' ];\n\tpaddingInlineEnd?: CSSProperties[ 'paddingInlineEnd' ];\n};\n\nconst disabledStyles = ( { disabled }: InputProps ) => {\n\tif ( ! disabled ) return '';\n\n\treturn css( {\n\t\tcolor: COLORS.ui.textDisabled,\n\t} );\n};\n\nconst fontSizeStyles = ( { inputSize: size }: InputProps ) => {\n\tconst sizes = {\n\t\tdefault: '13px',\n\t\tsmall: '11px',\n\t\t'__unstable-large': '13px',\n\t};\n\n\tconst fontSize = sizes[ size as Size ] || sizes.default;\n\tconst fontSizeMobile = '16px';\n\n\tif ( ! fontSize ) return '';\n\n\treturn css`\n\t\tfont-size: ${ fontSizeMobile };\n\n\t\t@media ( min-width: 600px ) {\n\t\t\tfont-size: ${ fontSize };\n\t\t}\n\t`;\n};\n\nexport const getSizeConfig = ( {\n\tinputSize: size,\n\t__next40pxDefaultSize,\n}: InputProps ) => {\n\t// Paddings may be overridden by the custom paddings props.\n\tconst sizes = {\n\t\tdefault: {\n\t\t\theight: 40,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 40,\n\t\t\tpaddingLeft: space( 4 ),\n\t\t\tpaddingRight: space( 4 ),\n\t\t},\n\t\tsmall: {\n\t\t\theight: 24,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 24,\n\t\t\tpaddingLeft: space( 2 ),\n\t\t\tpaddingRight: space( 2 ),\n\t\t},\n\t\t'__unstable-large': {\n\t\t\theight: 40,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 40,\n\t\t\tpaddingLeft: space( 4 ),\n\t\t\tpaddingRight: space( 4 ),\n\t\t},\n\t};\n\n\tif ( ! __next40pxDefaultSize ) {\n\t\tsizes.default = {\n\t\t\theight: 30,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 30,\n\t\t\tpaddingLeft: space( 2 ),\n\t\t\tpaddingRight: space( 2 ),\n\t\t};\n\t}\n\n\treturn sizes[ size as Size ] || sizes.default;\n};\n\nconst sizeStyles = ( props: InputProps ) => {\n\treturn css( getSizeConfig( props ) );\n};\n\nconst customPaddings = ( {\n\tpaddingInlineStart,\n\tpaddingInlineEnd,\n}: InputProps ) => {\n\treturn css( { paddingInlineStart, paddingInlineEnd } );\n};\n\nconst dragStyles = ( { isDragging, dragCursor }: InputProps ) => {\n\tlet defaultArrowStyles: SerializedStyles | undefined;\n\tlet activeDragCursorStyles: SerializedStyles | undefined;\n\n\tif ( isDragging ) {\n\t\tdefaultArrowStyles = css`\n\t\t\tcursor: ${ dragCursor };\n\t\t\tuser-select: none;\n\n\t\t\t&::-webkit-outer-spin-button,\n\t\t\t&::-webkit-inner-spin-button {\n\t\t\t\t-webkit-appearance: none !important;\n\t\t\t\tmargin: 0 !important;\n\t\t\t}\n\t\t`;\n\t}\n\n\tif ( isDragging && dragCursor ) {\n\t\tactiveDragCursorStyles = css`\n\t\t\t&:active {\n\t\t\t\tcursor: ${ dragCursor };\n\t\t\t}\n\t\t`;\n\t}\n\n\treturn css`\n\t\t${ defaultArrowStyles }\n\t\t${ activeDragCursorStyles }\n\t`;\n};\n\n// TODO: Resolve need to use &&& to increase specificity\n// https://github.com/WordPress/gutenberg/issues/18483\n\nexport const Input = styled.input< InputProps >`\n\t&&& {\n\t\tbackground-color: transparent;\n\t\tbox-sizing: border-box;\n\t\tborder: none;\n\t\tbox-shadow: none !important;\n\t\tcolor: ${ COLORS.gray[ 900 ] };\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\tmargin: 0;\n\t\toutline: none;\n\t\twidth: 100%;\n\n\t\t${ dragStyles }\n\t\t${ disabledStyles }\n\t\t${ fontSizeStyles }\n\t\t${ sizeStyles }\n\t\t${ customPaddings }\n\n\t\t&::-webkit-input-placeholder {\n\t\t\tline-height: normal;\n\t\t}\n\t}\n`;\n\nconst BaseLabel = styled( Text )< { labelPosition?: LabelPosition } >`\n\t&&& {\n\t\t${ baseLabelTypography };\n\n\t\tbox-sizing: border-box;\n\t\tdisplay: block;\n\t\tpadding-top: 0;\n\t\tpadding-bottom: 0;\n\t\tmax-width: 100%;\n\t\tz-index: 1;\n\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n`;\n\nexport const Label = (\n\tprops: WordPressComponentProps<\n\t\t{ labelPosition?: LabelPosition; children: ReactNode },\n\t\t'label',\n\t\tfalse\n\t>\n) => <BaseLabel { ...props } as=\"label\" />;\n\nexport const LabelWrapper = styled( FlexItem )`\n\tmax-width: calc( 100% - 10px );\n`;\n\ntype BackdropProps = {\n\tdisabled?: boolean;\n\tisFocused?: boolean;\n};\n\nconst backdropFocusedStyles = ( {\n\tdisabled,\n\tisFocused,\n}: BackdropProps ): SerializedStyles => {\n\tlet borderColor = isFocused ? COLORS.ui.borderFocus : COLORS.ui.border;\n\n\tlet boxShadow;\n\tlet outline;\n\tlet outlineOffset;\n\n\tif ( isFocused ) {\n\t\tboxShadow = CONFIG.controlBoxShadowFocus;\n\t\t// Windows High Contrast mode will show this outline, but not the box-shadow.\n\t\toutline = `2px solid transparent`;\n\t\toutlineOffset = `-2px`;\n\t}\n\n\tif ( disabled ) {\n\t\tborderColor = COLORS.ui.borderDisabled;\n\t}\n\n\treturn css( {\n\t\tboxShadow,\n\t\tborderColor,\n\t\tborderStyle: 'solid',\n\t\tborderWidth: 1,\n\t\toutline,\n\t\toutlineOffset,\n\t} );\n};\n\nexport const BackdropUI = styled.div< BackdropProps >`\n\t&&& {\n\t\tbox-sizing: border-box;\n\t\tborder-radius: inherit;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpointer-events: none;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\n\t\t${ backdropFocusedStyles }\n\t\t${ rtl( { paddingLeft: 2 } ) }\n\t}\n`;\n\nexport const Prefix = styled.span`\n\tbox-sizing: border-box;\n\tdisplay: block;\n`;\n\nexport const Suffix = styled.span`\n\talign-items: center;\n\talign-self: stretch;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n`;\n"],"mappings":";;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAQA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,MAAA,GAAAJ,OAAA;AAA0C,SAAAK,iCAAA;AAAA,IAAAC,KAAA,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAR;AAAA;AAc1C,MAAMS,iBAAiB,GAAGA,CAAE;EAAEC;AAAqB,CAAC,KAAM;EACzD,IAAK,CAAEA,SAAS,EAAG,OAAO,EAAE;EAE5B,OAAAT,KAAA;AACD,CAAC;AAEM,MAAMU,IAAI,GAAG,kBAAAC,KAAA,CAAAC,OAAA,EAAQC,UAAI,EAAAZ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAW,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,CAAC,CAAC,6EAK9BP,iBAAiB,SAAAP,OAAA,CAAAC,GAAA,CAAAC,QAAA,wgUACpB;AAACa,OAAA,CAAAN,IAAA,GAAAA,IAAA;AAEF,MAAMO,uBAAuB,GAAGA,CAAE;EAAEC;AAAyB,CAAC,KAAM;EACnE,MAAMC,eAAe,GAAGD,QAAQ,GAC7BE,aAAM,CAACC,EAAE,CAACC,kBAAkB,GAC5BF,aAAM,CAACC,EAAE,CAACE,UAAU;EAEvB,oBAAO,IAAAC,WAAG,EAAE;IAAEL;EAAgB,CAAC,EAAAlB,OAAA,CAAAC,GAAA,CAAAC,QAAA,4DAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,sgUAAC,CAAC;AAClC,CAAC;AAAC,IAAAsB,IAAA,GAAAxB,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAR;AAAA;AAEF,MAAM2B,oBAAoB,GAAGA,CAAE;EAC9BC,oBAAoB;EACpBC;AACe,CAAC,KAAM;EACtB,IAAK,CAAED,oBAAoB,EAAG,OAAAF,IAAA;EAE9B,IAAKG,aAAa,KAAK,MAAM,EAAG,OAAO,EAAE;EAEzC,IAAKA,aAAa,KAAK,MAAM,EAAG;IAC/B,oBAAO,IAAAJ,WAAG,EAAE;MACXK,IAAI,EAAG,OAAOF,oBAAsB;IACrC,CAAC,EAAA1B,OAAA,CAAAC,GAAA,CAAAC,QAAA,yDAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,sgUAAC,CAAC;EACJ;EAEA,oBAAO,IAAAqB,WAAG,EAAE;IAAEM,KAAK,EAAEH;EAAqB,CAAC,EAAA1B,OAAA,CAAAC,GAAA,CAAAC,QAAA,yDAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,sgUAAC,CAAC;AAC9C,CAAC;AAEM,MAAM4B,SAAS,OAAApB,KAAA,CAAAC,OAAA,SAAAX,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAW,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,4GAQlBE,uBAAuB,OACvBS,oBAAoB,SAAAzB,OAAA,CAAAC,GAAA,CAAAC,QAAA,wgUACvB;AAACa,OAAA,CAAAe,SAAA,GAAAA,SAAA;AAYF,MAAMC,cAAc,GAAGA,CAAE;EAAEd;AAAqB,CAAC,KAAM;EACtD,IAAK,CAAEA,QAAQ,EAAG,OAAO,EAAE;EAE3B,oBAAO,IAAAM,WAAG,EAAE;IACXS,KAAK,EAAEb,aAAM,CAACC,EAAE,CAACa;EAClB,CAAC,EAAAjC,OAAA,CAAAC,GAAA,CAAAC,QAAA,mDAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,sgUAAC,CAAC;AACJ,CAAC;AAED,MAAMgC,cAAc,GAAGA,CAAE;EAAEC,SAAS,EAAEC;AAAiB,CAAC,KAAM;EAC7D,MAAMC,KAAK,GAAG;IACb1B,OAAO,EAAE,MAAM;IACf2B,KAAK,EAAE,MAAM;IACb,kBAAkB,EAAE;EACrB,CAAC;EAED,MAAMC,QAAQ,GAAGF,KAAK,CAAED,IAAI,CAAU,IAAIC,KAAK,CAAC1B,OAAO;EACvD,MAAM6B,cAAc,GAAG,MAAM;EAE7B,IAAK,CAAED,QAAQ,EAAG,OAAO,EAAE;EAE3B,wBAAOhB,WAAG,gBACKiB,cAAc,6CAGbD,QAAQ,UAAAvC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oDAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA;AAGzB,CAAC;AAEM,MAAMuC,aAAa,GAAGA,CAAE;EAC9BN,SAAS,EAAEC,IAAI;EACfM;AACW,CAAC,KAAM;EAClB;EACA,MAAML,KAAK,GAAG;IACb1B,OAAO,EAAE;MACRgC,MAAM,EAAE,EAAE;MACVC,UAAU,EAAE,CAAC;MACbC,SAAS,EAAE,EAAE;MACbC,WAAW,EAAE,IAAAC,YAAK,EAAE,CAAE,CAAC;MACvBC,YAAY,EAAE,IAAAD,YAAK,EAAE,CAAE;IACxB,CAAC;IACDT,KAAK,EAAE;MACNK,MAAM,EAAE,EAAE;MACVC,UAAU,EAAE,CAAC;MACbC,SAAS,EAAE,EAAE;MACbC,WAAW,EAAE,IAAAC,YAAK,EAAE,CAAE,CAAC;MACvBC,YAAY,EAAE,IAAAD,YAAK,EAAE,CAAE;IACxB,CAAC;IACD,kBAAkB,EAAE;MACnBJ,MAAM,EAAE,EAAE;MACVC,UAAU,EAAE,CAAC;MACbC,SAAS,EAAE,EAAE;MACbC,WAAW,EAAE,IAAAC,YAAK,EAAE,CAAE,CAAC;MACvBC,YAAY,EAAE,IAAAD,YAAK,EAAE,CAAE;IACxB;EACD,CAAC;EAED,IAAK,CAAEL,qBAAqB,EAAG;IAC9BL,KAAK,CAAC1B,OAAO,GAAG;MACfgC,MAAM,EAAE,EAAE;MACVC,UAAU,EAAE,CAAC;MACbC,SAAS,EAAE,EAAE;MACbC,WAAW,EAAE,IAAAC,YAAK,EAAE,CAAE,CAAC;MACvBC,YAAY,EAAE,IAAAD,YAAK,EAAE,CAAE;IACxB,CAAC;EACF;EAEA,OAAOV,KAAK,CAAED,IAAI,CAAU,IAAIC,KAAK,CAAC1B,OAAO;AAC9C,CAAC;AAACI,OAAA,CAAA0B,aAAA,GAAAA,aAAA;AAEF,MAAMQ,UAAU,GAAKC,KAAiB,IAAM;EAC3C,oBAAO,IAAA3B,WAAG,EAAEkB,aAAa,CAAES,KAAM,CAAC,EAAAlD,OAAA,CAAAC,GAAA,CAAAC,QAAA,+CAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,sgUAAC,CAAC;AACrC,CAAC;AAED,MAAMiD,cAAc,GAAGA,CAAE;EACxBC,kBAAkB;EAClBC;AACW,CAAC,KAAM;EAClB,oBAAO,IAAA9B,WAAG,EAAE;IAAE6B,kBAAkB;IAAEC;EAAiB,CAAC,EAAArD,OAAA,CAAAC,GAAA,CAAAC,QAAA,mDAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,sgUAAC,CAAC;AACvD,CAAC;AAED,MAAMoD,UAAU,GAAGA,CAAE;EAAEC,UAAU;EAAEC;AAAuB,CAAC,KAAM;EAChE,IAAIC,kBAAgD;EACpD,IAAIC,sBAAoD;EAExD,IAAKH,UAAU,EAAG;IACjBE,kBAAkB,oBAAGlC,WAAG,aACZiC,UAAU,0IAAAxD,OAAA,CAAAC,GAAA,CAAAC,QAAA,wDAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,ugUAQrB;EACF;EAEA,IAAKqD,UAAU,IAAIC,UAAU,EAAG;IAC/BE,sBAAsB,oBAAGnC,WAAG,sBAEfiC,UAAU,UAAAxD,OAAA,CAAAC,GAAA,CAAAC,QAAA,4DAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,ugUAEtB;EACF;EAEA,wBAAOqB,WAAG,EACNkC,kBAAkB,OAClBC,sBAAsB,SAAA1D,OAAA,CAAAC,GAAA,CAAAC,QAAA,gDAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA;AAE3B,CAAC;;AAED;AACA;;AAEO,MAAMyD,KAAK,OAAAjD,KAAA,CAAAC,OAAA,WAAAX,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAW,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,0GAMNK,aAAM,CAACyC,IAAI,CAAE,GAAG,CAAE,0EAOzBN,UAAU,OACVvB,cAAc,OACdG,cAAc,OACde,UAAU,OACVE,cAAc,2DAAAnD,OAAA,CAAAC,GAAA,CAAAC,QAAA,wgUAMlB;AAACa,OAAA,CAAA4C,KAAA,GAAAA,KAAA;AAEF,MAAME,SAAS,GAAG,kBAAAnD,KAAA,CAAAC,OAAA,EAAQmD,UAAI,EAAA9D,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAW,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,CAAC,CAAC,SAE3BiD,0BAAmB,gKAAA/D,OAAA,CAAAC,GAAA,CAAAC,QAAA,wgUAavB;AAEM,MAAM8D,KAAK,GACjBd,KAIC,IACG,IAAAe,MAAA,CAAAC,aAAA,EAACL,SAAS;EAAA,GAAMX,KAAK;EAAGiB,EAAE,EAAC;AAAO,CAAE,CAAC;AAACpD,OAAA,CAAAiD,KAAA,GAAAA,KAAA;AAEpC,MAAMI,YAAY,GAAG,kBAAA1D,KAAA,CAAAC,OAAA,EAAQ0D,cAAQ,EAAArE,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAW,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,CAAC,CAAC,CAAAd,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAR;AAAA,EAE7C;AAACiB,OAAA,CAAAqD,YAAA,GAAAA,YAAA;AAOF,MAAME,qBAAqB,GAAGA,CAAE;EAC/BrD,QAAQ;EACRT;AACc,CAAC,KAAwB;EACvC,IAAI+D,WAAW,GAAG/D,SAAS,GAAGW,aAAM,CAACC,EAAE,CAACoD,WAAW,GAAGrD,aAAM,CAACC,EAAE,CAACqD,MAAM;EAEtE,IAAIC,SAAS;EACb,IAAIC,OAAO;EACX,IAAIC,aAAa;EAEjB,IAAKpE,SAAS,EAAG;IAChBkE,SAAS,GAAGG,aAAM,CAACC,qBAAqB;IACxC;IACAH,OAAO,GAAI,uBAAsB;IACjCC,aAAa,GAAI,MAAK;EACvB;EAEA,IAAK3D,QAAQ,EAAG;IACfsD,WAAW,GAAGpD,aAAM,CAACC,EAAE,CAAC2D,cAAc;EACvC;EAEA,oBAAO,IAAAxD,WAAG,EAAE;IACXmD,SAAS;IACTH,WAAW;IACXS,WAAW,EAAE,OAAO;IACpBC,WAAW,EAAE,CAAC;IACdN,OAAO;IACPC;EACD,CAAC,EAAA5E,OAAA,CAAAC,GAAA,CAAAC,QAAA,0DAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,sgUAAC,CAAC;AACJ,CAAC;AAEM,MAAMgF,UAAU,OAAAxE,KAAA,CAAAC,OAAA,SAAAX,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAW,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,8IAalBwD,qBAAqB,OACrB,IAAAa,UAAG,EAAE;EAAErC,WAAW,EAAE;AAAE,CAAE,CAAC,UAAA9C,OAAA,CAAAC,GAAA,CAAAC,QAAA,wgUAE7B;AAACa,OAAA,CAAAmE,UAAA,GAAAA,UAAA;AAEK,MAAME,MAAM,OAAA1E,KAAA,CAAAC,OAAA,UAAAX,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAW,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAd,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAR;AAAA,EAGlB;AAACiB,OAAA,CAAAqE,MAAA,GAAAA,MAAA;AAEK,MAAMC,MAAM,OAAA3E,KAAA,CAAAC,OAAA,UAAAX,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAW,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAd,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAR;AAAA,EAKlB;AAACiB,OAAA,CAAAsE,MAAA,GAAAA,MAAA"}
|
|
1
|
+
{"version":3,"names":["_react2","require","_flex","_text","_utils","_space","_EMOTION_STRINGIFIED_CSS_ERROR__","_ref2","process","env","NODE_ENV","name","styles","map","toString","rootFocusedStyles","isFocused","Root","_base","default","Flex","target","label","exports","containerDisabledStyles","disabled","backgroundColor","COLORS","ui","backgroundDisabled","background","css","_ref","containerWidthStyles","__unstableInputWidth","labelPosition","flex","width","Container","disabledStyles","color","textDisabled","fontSizeStyles","inputSize","size","sizes","small","fontSize","fontSizeMobile","getSizeConfig","__next40pxDefaultSize","height","lineHeight","minHeight","paddingLeft","space","paddingRight","sizeStyles","props","customPaddings","paddingInlineStart","paddingInlineEnd","dragStyles","isDragging","dragCursor","defaultArrowStyles","activeDragCursorStyles","Input","gray","BaseLabel","Text","baseLabelTypography","Label","_react","createElement","as","LabelWrapper","FlexItem","backdropFocusedStyles","borderColor","borderFocus","border","boxShadow","outline","outlineOffset","CONFIG","controlBoxShadowFocus","borderDisabled","borderStyle","borderWidth","BackdropUI","rtl","Prefix","Suffix"],"sources":["@wordpress/components/src/input-control/styles/input-control-styles.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { SerializedStyles } from '@emotion/react';\nimport { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport type { CSSProperties, ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../context';\nimport { Flex, FlexItem } from '../../flex';\nimport { Text } from '../../text';\nimport { baseLabelTypography, COLORS, CONFIG, rtl } from '../../utils';\nimport type { LabelPosition, Size } from '../types';\nimport { space } from '../../utils/space';\n\ntype ContainerProps = {\n\tdisabled?: boolean;\n\thideLabel?: boolean;\n\t__unstableInputWidth?: CSSProperties[ 'width' ];\n\tlabelPosition?: LabelPosition;\n};\n\ntype RootProps = {\n\tisFocused?: boolean;\n\tlabelPosition?: LabelPosition;\n};\n\nconst rootFocusedStyles = ( { isFocused }: RootProps ) => {\n\tif ( ! isFocused ) return '';\n\n\treturn css( { zIndex: 1 } );\n};\n\nexport const Root = styled( Flex )< RootProps >`\n\tbox-sizing: border-box;\n\tposition: relative;\n\tborder-radius: 2px;\n\tpadding-top: 0;\n\t${ rootFocusedStyles }\n`;\n\nconst containerDisabledStyles = ( { disabled }: ContainerProps ) => {\n\tconst backgroundColor = disabled\n\t\t? COLORS.ui.backgroundDisabled\n\t\t: COLORS.ui.background;\n\n\treturn css( { backgroundColor } );\n};\n\nconst containerWidthStyles = ( {\n\t__unstableInputWidth,\n\tlabelPosition,\n}: ContainerProps ) => {\n\tif ( ! __unstableInputWidth ) return css( { width: '100%' } );\n\n\tif ( labelPosition === 'side' ) return '';\n\n\tif ( labelPosition === 'edge' ) {\n\t\treturn css( {\n\t\t\tflex: `0 0 ${ __unstableInputWidth }`,\n\t\t} );\n\t}\n\n\treturn css( { width: __unstableInputWidth } );\n};\n\nexport const Container = styled.div< ContainerProps >`\n\talign-items: center;\n\tbox-sizing: border-box;\n\tborder-radius: inherit;\n\tdisplay: flex;\n\tflex: 1;\n\tposition: relative;\n\n\t${ containerDisabledStyles }\n\t${ containerWidthStyles }\n`;\n\ntype InputProps = {\n\t__next40pxDefaultSize?: boolean;\n\tdisabled?: boolean;\n\tinputSize?: Size;\n\tisDragging?: boolean;\n\tdragCursor?: CSSProperties[ 'cursor' ];\n\tpaddingInlineStart?: CSSProperties[ 'paddingInlineStart' ];\n\tpaddingInlineEnd?: CSSProperties[ 'paddingInlineEnd' ];\n};\n\nconst disabledStyles = ( { disabled }: InputProps ) => {\n\tif ( ! disabled ) return '';\n\n\treturn css( {\n\t\tcolor: COLORS.ui.textDisabled,\n\t} );\n};\n\nconst fontSizeStyles = ( { inputSize: size }: InputProps ) => {\n\tconst sizes = {\n\t\tdefault: '13px',\n\t\tsmall: '11px',\n\t\t'__unstable-large': '13px',\n\t};\n\n\tconst fontSize = sizes[ size as Size ] || sizes.default;\n\tconst fontSizeMobile = '16px';\n\n\tif ( ! fontSize ) return '';\n\n\treturn css`\n\t\tfont-size: ${ fontSizeMobile };\n\n\t\t@media ( min-width: 600px ) {\n\t\t\tfont-size: ${ fontSize };\n\t\t}\n\t`;\n};\n\nexport const getSizeConfig = ( {\n\tinputSize: size,\n\t__next40pxDefaultSize,\n}: InputProps ) => {\n\t// Paddings may be overridden by the custom paddings props.\n\tconst sizes = {\n\t\tdefault: {\n\t\t\theight: 40,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 40,\n\t\t\tpaddingLeft: space( 4 ),\n\t\t\tpaddingRight: space( 4 ),\n\t\t},\n\t\tsmall: {\n\t\t\theight: 24,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 24,\n\t\t\tpaddingLeft: space( 2 ),\n\t\t\tpaddingRight: space( 2 ),\n\t\t},\n\t\t'__unstable-large': {\n\t\t\theight: 40,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 40,\n\t\t\tpaddingLeft: space( 4 ),\n\t\t\tpaddingRight: space( 4 ),\n\t\t},\n\t};\n\n\tif ( ! __next40pxDefaultSize ) {\n\t\tsizes.default = {\n\t\t\theight: 32,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 32,\n\t\t\tpaddingLeft: space( 2 ),\n\t\t\tpaddingRight: space( 2 ),\n\t\t};\n\t}\n\n\treturn sizes[ size as Size ] || sizes.default;\n};\n\nconst sizeStyles = ( props: InputProps ) => {\n\treturn css( getSizeConfig( props ) );\n};\n\nconst customPaddings = ( {\n\tpaddingInlineStart,\n\tpaddingInlineEnd,\n}: InputProps ) => {\n\treturn css( { paddingInlineStart, paddingInlineEnd } );\n};\n\nconst dragStyles = ( { isDragging, dragCursor }: InputProps ) => {\n\tlet defaultArrowStyles: SerializedStyles | undefined;\n\tlet activeDragCursorStyles: SerializedStyles | undefined;\n\n\tif ( isDragging ) {\n\t\tdefaultArrowStyles = css`\n\t\t\tcursor: ${ dragCursor };\n\t\t\tuser-select: none;\n\n\t\t\t&::-webkit-outer-spin-button,\n\t\t\t&::-webkit-inner-spin-button {\n\t\t\t\t-webkit-appearance: none !important;\n\t\t\t\tmargin: 0 !important;\n\t\t\t}\n\t\t`;\n\t}\n\n\tif ( isDragging && dragCursor ) {\n\t\tactiveDragCursorStyles = css`\n\t\t\t&:active {\n\t\t\t\tcursor: ${ dragCursor };\n\t\t\t}\n\t\t`;\n\t}\n\n\treturn css`\n\t\t${ defaultArrowStyles }\n\t\t${ activeDragCursorStyles }\n\t`;\n};\n\n// TODO: Resolve need to use &&& to increase specificity\n// https://github.com/WordPress/gutenberg/issues/18483\n\nexport const Input = styled.input< InputProps >`\n\t&&& {\n\t\tbackground-color: transparent;\n\t\tbox-sizing: border-box;\n\t\tborder: none;\n\t\tbox-shadow: none !important;\n\t\tcolor: ${ COLORS.gray[ 900 ] };\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\tmargin: 0;\n\t\toutline: none;\n\t\twidth: 100%;\n\n\t\t${ dragStyles }\n\t\t${ disabledStyles }\n\t\t${ fontSizeStyles }\n\t\t${ sizeStyles }\n\t\t${ customPaddings }\n\n\t\t&::-webkit-input-placeholder {\n\t\t\tline-height: normal;\n\t\t}\n\t}\n`;\n\nconst BaseLabel = styled( Text )< { labelPosition?: LabelPosition } >`\n\t&&& {\n\t\t${ baseLabelTypography };\n\n\t\tbox-sizing: border-box;\n\t\tdisplay: block;\n\t\tpadding-top: 0;\n\t\tpadding-bottom: 0;\n\t\tmax-width: 100%;\n\t\tz-index: 1;\n\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n`;\n\nexport const Label = (\n\tprops: WordPressComponentProps<\n\t\t{ labelPosition?: LabelPosition; children: ReactNode },\n\t\t'label',\n\t\tfalse\n\t>\n) => <BaseLabel { ...props } as=\"label\" />;\n\nexport const LabelWrapper = styled( FlexItem )`\n\tmax-width: calc( 100% - 10px );\n`;\n\ntype BackdropProps = {\n\tdisabled?: boolean;\n\tisFocused?: boolean;\n};\n\nconst backdropFocusedStyles = ( {\n\tdisabled,\n\tisFocused,\n}: BackdropProps ): SerializedStyles => {\n\tlet borderColor = isFocused ? COLORS.ui.borderFocus : COLORS.ui.border;\n\n\tlet boxShadow;\n\tlet outline;\n\tlet outlineOffset;\n\n\tif ( isFocused ) {\n\t\tboxShadow = CONFIG.controlBoxShadowFocus;\n\t\t// Windows High Contrast mode will show this outline, but not the box-shadow.\n\t\toutline = `2px solid transparent`;\n\t\toutlineOffset = `-2px`;\n\t}\n\n\tif ( disabled ) {\n\t\tborderColor = COLORS.ui.borderDisabled;\n\t}\n\n\treturn css( {\n\t\tboxShadow,\n\t\tborderColor,\n\t\tborderStyle: 'solid',\n\t\tborderWidth: 1,\n\t\toutline,\n\t\toutlineOffset,\n\t} );\n};\n\nexport const BackdropUI = styled.div< BackdropProps >`\n\t&&& {\n\t\tbox-sizing: border-box;\n\t\tborder-radius: inherit;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpointer-events: none;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\n\t\t${ backdropFocusedStyles }\n\t\t${ rtl( { paddingLeft: 2 } ) }\n\t}\n`;\n\nexport const Prefix = styled.span`\n\tbox-sizing: border-box;\n\tdisplay: block;\n`;\n\nexport const Suffix = styled.span`\n\talign-items: center;\n\talign-self: stretch;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n`;\n"],"mappings":"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"}
|
|
@@ -283,7 +283,7 @@ function useMobileGlobalStylesColors(type = 'colors') {
|
|
|
283
283
|
const availableThemeColors = colorGradientSettings?.[type]?.reduce((colors, origin) => colors.concat(origin?.[type]), []);
|
|
284
284
|
// Default editor colors/gradients if it's not a block-based theme.
|
|
285
285
|
const colorPalette = type === 'colors' ? 'color.palette' : 'color.gradients';
|
|
286
|
-
const editorDefaultPalette = (0, _blockEditor.
|
|
286
|
+
const [editorDefaultPalette] = (0, _blockEditor.useSettings)(colorPalette);
|
|
287
287
|
return availableThemeColors.length >= 1 ? availableThemeColors : editorDefaultPalette;
|
|
288
288
|
}
|
|
289
289
|
function getColorsAndGradients(defaultEditorColors = [], defaultEditorGradients = [], rawFeatures) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_changeCase","require","_reactNative","_blockEditor","BLOCK_STYLE_ATTRIBUTES","exports","BLOCK_STYLE_ATTRIBUTES_MAPPING","textColor","text","background","link","placeholder","PADDING","UNKNOWN_VALUE","DEFAULT_FONT_SIZE","getBlockPaddings","mergedStyle","wrapperPropsStyle","blockStyleAttributes","blockColors","blockPaddings","padding","backgroundColor","undefined","getBlockColors","defaultColors","blockName","baseGlobalStyles","blockStyles","customBlockStyles","style","color","blockGlobalStyles","blocks","Object","entries","forEach","key","value","styleKey","_customBlockStyles$ke","styles","elements","linkColor","isCustomColor","startsWith","mappedColor","values","find","slug","getBlockTypography","fontSizes","typographyStyles","typography","parsedFontSizes","fontSize","lineHeight","parseInt","mappedFontSize","size","getValueFromObjectPath","object","path","fieldName","parseStylesVariables","mappedValues","customValues","stylesBase","variables","variable","regex","RegExp","varRegex","fontSizeRegex","replace","_$1","$2","split","mappedPresetValue","_mappedPresetValue$va","matchedValue","customValuesData","JSON","parse","reduce","prev","curr","slice","length","camelCase","width","height","Dimensions","get","parsedFontSize","getPxFromCssUnit","getMappedValues","features","palette","colors","theme","custom","default","normalizeFontSizes","normalizedFontSizes","dimensions","map","fontSizeObject","sizePx","useMobileGlobalStylesColors","type","colorGradientSettings","useMultipleOriginColorsAndGradients","availableThemeColors","origin","concat","colorPalette","editorDefaultPalette","useSetting","getColorsAndGradients","defaultEditorColors","defaultEditorGradients","rawFeatures","__experimentalGlobalStylesBaseStyles","__experimentalFeatures","gradients","defaultPalette","defaultGradients","getGlobalStyles","rawStyles","_features$color$text","_features$color$backg","_features$color$defau","_features$color$defau2","stringify","globalStyles","customLineHeight","spacing"],"sources":["@wordpress/components/src/mobile/global-styles-context/utils.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { camelCase } from 'change-case';\nimport { Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetPxFromCssUnit,\n\tuseSetting,\n\tuseMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\n\nexport const BLOCK_STYLE_ATTRIBUTES = [\n\t'textColor',\n\t'backgroundColor',\n\t'style',\n\t'color',\n\t'fontSize',\n];\n\n// Mapping style properties name to native.\nconst BLOCK_STYLE_ATTRIBUTES_MAPPING = {\n\ttextColor: 'color',\n\ttext: 'color',\n\tbackground: 'backgroundColor',\n\tlink: 'linkColor',\n\tplaceholder: 'placeholderColor',\n};\n\nconst PADDING = 12; // $solid-border-space\nconst UNKNOWN_VALUE = 'undefined';\nconst DEFAULT_FONT_SIZE = 16;\n\nexport function getBlockPaddings(\n\tmergedStyle,\n\twrapperPropsStyle,\n\tblockStyleAttributes,\n\tblockColors\n) {\n\tconst blockPaddings = {};\n\n\tif (\n\t\t! mergedStyle.padding &&\n\t\t( wrapperPropsStyle?.backgroundColor ||\n\t\t\tblockStyleAttributes?.backgroundColor ||\n\t\t\tblockColors?.backgroundColor )\n\t) {\n\t\tblockPaddings.padding = PADDING;\n\t\treturn blockPaddings;\n\t}\n\n\t// Prevent adding extra paddings to inner blocks without background colors.\n\tif (\n\t\tmergedStyle?.padding &&\n\t\t! wrapperPropsStyle?.backgroundColor &&\n\t\t! blockStyleAttributes?.backgroundColor &&\n\t\t! blockColors?.backgroundColor\n\t) {\n\t\tblockPaddings.padding = undefined;\n\t}\n\n\treturn blockPaddings;\n}\n\nexport function getBlockColors(\n\tblockStyleAttributes,\n\tdefaultColors,\n\tblockName,\n\tbaseGlobalStyles\n) {\n\tconst blockStyles = {};\n\tconst customBlockStyles = blockStyleAttributes?.style?.color || {};\n\tconst blockGlobalStyles = baseGlobalStyles?.blocks?.[ blockName ];\n\n\t// Global styles colors.\n\tif ( blockGlobalStyles?.color ) {\n\t\tObject.entries( blockGlobalStyles.color ).forEach(\n\t\t\t( [ key, value ] ) => {\n\t\t\t\tconst styleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING[ key ];\n\n\t\t\t\tif ( styleKey && value !== UNKNOWN_VALUE ) {\n\t\t\t\t\tconst color = customBlockStyles[ key ] ?? value;\n\t\t\t\t\tblockStyles[ styleKey ] = color;\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t} else if ( baseGlobalStyles?.styles?.color?.text ) {\n\t\tblockStyles[ BLOCK_STYLE_ATTRIBUTES_MAPPING.text ] =\n\t\t\tbaseGlobalStyles?.styles?.color?.text;\n\t}\n\n\t// Global styles elements.\n\tif ( blockGlobalStyles?.elements ) {\n\t\tconst linkColor = blockGlobalStyles.elements?.link?.color?.text;\n\t\tconst styleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING.link;\n\n\t\tif ( styleKey && linkColor && linkColor !== UNKNOWN_VALUE ) {\n\t\t\tblockStyles[ styleKey ] = linkColor;\n\t\t}\n\t}\n\n\t// Custom colors.\n\tObject.entries( blockStyleAttributes ).forEach( ( [ key, value ] ) => {\n\t\tconst isCustomColor = value?.startsWith?.( '#' );\n\t\tlet styleKey = key;\n\n\t\tif ( BLOCK_STYLE_ATTRIBUTES_MAPPING[ styleKey ] ) {\n\t\t\tstyleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING[ styleKey ];\n\t\t}\n\n\t\tif ( ! isCustomColor ) {\n\t\t\tconst mappedColor = Object.values( defaultColors ?? {} ).find(\n\t\t\t\t( { slug } ) => slug === value\n\t\t\t);\n\n\t\t\tif ( mappedColor ) {\n\t\t\t\tblockStyles[ styleKey ] = mappedColor.color;\n\t\t\t}\n\t\t} else {\n\t\t\tblockStyles[ styleKey ] = value;\n\t\t}\n\t} );\n\n\t// Color placeholder.\n\tif ( blockStyles?.color ) {\n\t\tblockStyles[ BLOCK_STYLE_ATTRIBUTES_MAPPING.placeholder ] =\n\t\t\tblockStyles.color;\n\t}\n\n\treturn blockStyles;\n}\n\nexport function getBlockTypography(\n\tblockStyleAttributes,\n\tfontSizes,\n\tblockName,\n\tbaseGlobalStyles\n) {\n\tconst typographyStyles = {};\n\tconst customBlockStyles = blockStyleAttributes?.style?.typography || {};\n\tconst blockGlobalStyles = baseGlobalStyles?.blocks?.[ blockName ];\n\tconst parsedFontSizes = Object.values( fontSizes ?? {} );\n\n\t// Global styles.\n\tif ( blockGlobalStyles?.typography ) {\n\t\tconst fontSize = blockGlobalStyles?.typography?.fontSize;\n\t\tconst lineHeight = blockGlobalStyles?.typography?.lineHeight;\n\n\t\tif ( fontSize ) {\n\t\t\tif ( parseInt( fontSize, 10 ) ) {\n\t\t\t\ttypographyStyles.fontSize = fontSize;\n\t\t\t} else {\n\t\t\t\tconst mappedFontSize = parsedFontSizes.find(\n\t\t\t\t\t( { slug } ) => slug === fontSize\n\t\t\t\t);\n\n\t\t\t\tif ( mappedFontSize ) {\n\t\t\t\t\ttypographyStyles.fontSize = mappedFontSize?.size;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( lineHeight ) {\n\t\t\ttypographyStyles.lineHeight = lineHeight;\n\t\t}\n\t}\n\n\tif ( blockStyleAttributes?.fontSize && baseGlobalStyles ) {\n\t\tconst mappedFontSize = parsedFontSizes.find(\n\t\t\t( { slug } ) => slug === blockStyleAttributes?.fontSize\n\t\t);\n\n\t\tif ( mappedFontSize ) {\n\t\t\ttypographyStyles.fontSize = mappedFontSize?.size;\n\t\t}\n\t}\n\n\t// Custom styles.\n\tif ( customBlockStyles?.fontSize ) {\n\t\ttypographyStyles.fontSize = customBlockStyles?.fontSize;\n\t}\n\n\tif ( customBlockStyles?.lineHeight ) {\n\t\ttypographyStyles.lineHeight = customBlockStyles?.lineHeight;\n\t}\n\n\treturn typographyStyles;\n}\n\n/**\n * Return a value from a certain path of the object.\n * Path is specified as an array of properties, like: [ 'parent', 'child' ].\n *\n * @param {Object} object Input object.\n * @param {Array} path Path to the object property.\n * @return {*} Value of the object property at the specified path.\n */\nconst getValueFromObjectPath = ( object, path ) => {\n\tlet value = object;\n\tpath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\nexport function parseStylesVariables( styles, mappedValues, customValues ) {\n\tlet stylesBase = styles;\n\tconst variables = [ 'preset', 'custom', 'var', 'fontSize' ];\n\n\tif ( ! stylesBase ) {\n\t\treturn styles;\n\t}\n\n\tvariables.forEach( ( variable ) => {\n\t\t// Examples\n\t\t// var(--wp--preset--color--gray)\n\t\t// var(--wp--custom--body--typography--font-family)\n\t\t// var:preset|color|custom-color-2\n\t\tconst regex = new RegExp( `var\\\\(--wp--${ variable }--(.*?)\\\\)`, 'g' );\n\t\tconst varRegex = /\\\"var:preset\\|color\\|(.*?)\\\"/gm;\n\t\tconst fontSizeRegex = /\"fontSize\":\"(.*?)\"/gm;\n\n\t\tif ( variable === 'preset' ) {\n\t\t\tstylesBase = stylesBase.replace( regex, ( _$1, $2 ) => {\n\t\t\t\tconst path = $2.split( '--' );\n\t\t\t\tconst mappedPresetValue = mappedValues[ path[ 0 ] ];\n\t\t\t\tif ( mappedPresetValue && mappedPresetValue.slug ) {\n\t\t\t\t\tconst matchedValue = Object.values(\n\t\t\t\t\t\tmappedPresetValue.values ?? {}\n\t\t\t\t\t).find( ( { slug } ) => slug === path[ 1 ] );\n\t\t\t\t\treturn matchedValue?.[ mappedPresetValue.slug ];\n\t\t\t\t}\n\t\t\t\treturn UNKNOWN_VALUE;\n\t\t\t} );\n\t\t}\n\t\tif ( variable === 'custom' ) {\n\t\t\tconst customValuesData = customValues ?? JSON.parse( stylesBase );\n\t\t\tstylesBase = stylesBase.replace( regex, ( _$1, $2 ) => {\n\t\t\t\tconst path = $2.split( '--' );\n\t\t\t\tif (\n\t\t\t\t\tpath.reduce(\n\t\t\t\t\t\t( prev, curr ) => prev && prev[ curr ],\n\t\t\t\t\t\tcustomValuesData\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn getValueFromObjectPath( customValuesData, path );\n\t\t\t\t}\n\n\t\t\t\t// Check for camelcase properties.\n\t\t\t\treturn getValueFromObjectPath( customValuesData, [\n\t\t\t\t\t...path.slice( 0, path.length - 1 ),\n\t\t\t\t\tcamelCase( path[ path.length - 1 ] ),\n\t\t\t\t] );\n\t\t\t} );\n\t\t}\n\n\t\tif ( variable === 'var' ) {\n\t\t\tstylesBase = stylesBase.replace( varRegex, ( _$1, $2 ) => {\n\t\t\t\tif ( mappedValues?.color ) {\n\t\t\t\t\tconst matchedValue = mappedValues.color?.values?.find(\n\t\t\t\t\t\t( { slug } ) => slug === $2\n\t\t\t\t\t);\n\t\t\t\t\treturn `\"${ matchedValue?.color }\"`;\n\t\t\t\t}\n\t\t\t\treturn UNKNOWN_VALUE;\n\t\t\t} );\n\t\t}\n\n\t\tif ( variable === 'fontSize' ) {\n\t\t\tconst { width, height } = Dimensions.get( 'window' );\n\n\t\t\tstylesBase = stylesBase.replace( fontSizeRegex, ( _$1, $2 ) => {\n\t\t\t\tconst parsedFontSize =\n\t\t\t\t\tgetPxFromCssUnit( $2, {\n\t\t\t\t\t\twidth,\n\t\t\t\t\t\theight,\n\t\t\t\t\t\tfontSize: DEFAULT_FONT_SIZE,\n\t\t\t\t\t} ) || `${ DEFAULT_FONT_SIZE }px`;\n\n\t\t\t\treturn `\"fontSize\":\"${ parsedFontSize }\"`;\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn JSON.parse( stylesBase );\n}\n\nexport function getMappedValues( features, palette ) {\n\tconst typography = features?.typography;\n\tconst colors = [\n\t\t...( palette?.theme || [] ),\n\t\t...( palette?.custom || [] ),\n\t\t...( palette?.default || [] ),\n\t];\n\n\tconst fontSizes = {\n\t\t...typography?.fontSizes?.theme,\n\t\t...typography?.fontSizes?.custom,\n\t};\n\tconst mappedValues = {\n\t\tcolor: {\n\t\t\tvalues: colors,\n\t\t\tslug: 'color',\n\t\t},\n\t\t'font-size': {\n\t\t\tvalues: fontSizes,\n\t\t\tslug: 'size',\n\t\t},\n\t};\n\treturn mappedValues;\n}\n\n/**\n * Returns the normalized fontSizes to include the sizePx value for each of the different sizes.\n *\n * @param {Object} fontSizes found in global styles.\n * @return {Object} normalized sizes.\n */\nfunction normalizeFontSizes( fontSizes ) {\n\t// Adds normalized PX values for each of the different keys.\n\tif ( ! fontSizes ) {\n\t\treturn fontSizes;\n\t}\n\tconst normalizedFontSizes = {};\n\tconst dimensions = Dimensions.get( 'window' );\n\n\t[ 'default', 'theme', 'custom' ].forEach( ( key ) => {\n\t\tif ( fontSizes[ key ] ) {\n\t\t\tnormalizedFontSizes[ key ] = fontSizes[ key ]?.map(\n\t\t\t\t( fontSizeObject ) => {\n\t\t\t\t\tfontSizeObject.sizePx = getPxFromCssUnit(\n\t\t\t\t\t\tfontSizeObject.size,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth: dimensions.width,\n\t\t\t\t\t\t\theight: dimensions.height,\n\t\t\t\t\t\t\tfontSize: DEFAULT_FONT_SIZE,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\treturn fontSizeObject;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t} );\n\n\treturn normalizedFontSizes;\n}\n\nexport function useMobileGlobalStylesColors( type = 'colors' ) {\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst availableThemeColors = colorGradientSettings?.[ type ]?.reduce(\n\t\t( colors, origin ) => colors.concat( origin?.[ type ] ),\n\t\t[]\n\t);\n\t// Default editor colors/gradients if it's not a block-based theme.\n\tconst colorPalette =\n\t\ttype === 'colors' ? 'color.palette' : 'color.gradients';\n\tconst editorDefaultPalette = useSetting( colorPalette );\n\n\treturn availableThemeColors.length >= 1\n\t\t? availableThemeColors\n\t\t: editorDefaultPalette;\n}\n\nexport function getColorsAndGradients(\n\tdefaultEditorColors = [],\n\tdefaultEditorGradients = [],\n\trawFeatures\n) {\n\tconst features = rawFeatures ? JSON.parse( rawFeatures ) : {};\n\n\treturn {\n\t\t__experimentalGlobalStylesBaseStyles: null,\n\t\t__experimentalFeatures: {\n\t\t\tcolor: {\n\t\t\t\t...( ! features?.color\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: true,\n\t\t\t\t\t\t\tbackground: true,\n\t\t\t\t\t\t\tpalette: {\n\t\t\t\t\t\t\t\tdefault: defaultEditorColors,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgradients: {\n\t\t\t\t\t\t\t\tdefault: defaultEditorGradients,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t }\n\t\t\t\t\t: features?.color ),\n\t\t\t\tdefaultPalette: defaultEditorColors?.length > 0,\n\t\t\t\tdefaultGradients: defaultEditorGradients?.length > 0,\n\t\t\t},\n\t\t},\n\t};\n}\n\nexport function getGlobalStyles( rawStyles, rawFeatures ) {\n\tconst features = rawFeatures ? JSON.parse( rawFeatures ) : {};\n\tconst mappedValues = getMappedValues( features, features?.color?.palette );\n\tconst colors = parseStylesVariables(\n\t\tJSON.stringify( features?.color ),\n\t\tmappedValues\n\t);\n\tconst gradients = parseStylesVariables(\n\t\tJSON.stringify( features?.color?.gradients ),\n\t\tmappedValues\n\t);\n\tconst customValues = parseStylesVariables(\n\t\tJSON.stringify( features?.custom ),\n\t\tmappedValues\n\t);\n\tconst globalStyles = parseStylesVariables(\n\t\trawStyles,\n\t\tmappedValues,\n\t\tcustomValues\n\t);\n\n\tconst fontSizes = normalizeFontSizes( features?.typography?.fontSizes );\n\n\treturn {\n\t\t__experimentalFeatures: {\n\t\t\tcolor: {\n\t\t\t\tpalette: colors?.palette,\n\t\t\t\tgradients,\n\t\t\t\ttext: features?.color?.text ?? true,\n\t\t\t\tbackground: features?.color?.background ?? true,\n\t\t\t\tdefaultPalette: features?.color?.defaultPalette ?? true,\n\t\t\t\tdefaultGradients: features?.color?.defaultGradients ?? true,\n\t\t\t},\n\t\t\ttypography: {\n\t\t\t\tfontSizes,\n\t\t\t\tcustomLineHeight: features?.custom?.[ 'line-height' ],\n\t\t\t},\n\t\t\tspacing: features?.spacing,\n\t\t},\n\t\t__experimentalGlobalStylesBaseStyles: globalStyles,\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAKA,IAAAE,YAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAOO,MAAMG,sBAAsB,GAAG,CACrC,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,UAAU,CACV;;AAED;AAAAC,OAAA,CAAAD,sBAAA,GAAAA,sBAAA;AACA,MAAME,8BAA8B,GAAG;EACtCC,SAAS,EAAE,OAAO;EAClBC,IAAI,EAAE,OAAO;EACbC,UAAU,EAAE,iBAAiB;EAC7BC,IAAI,EAAE,WAAW;EACjBC,WAAW,EAAE;AACd,CAAC;AAED,MAAMC,OAAO,GAAG,EAAE,CAAC,CAAC;AACpB,MAAMC,aAAa,GAAG,WAAW;AACjC,MAAMC,iBAAiB,GAAG,EAAE;AAErB,SAASC,gBAAgBA,CAC/BC,WAAW,EACXC,iBAAiB,EACjBC,oBAAoB,EACpBC,WAAW,EACV;EACD,MAAMC,aAAa,GAAG,CAAC,CAAC;EAExB,IACC,CAAEJ,WAAW,CAACK,OAAO,KACnBJ,iBAAiB,EAAEK,eAAe,IACnCJ,oBAAoB,EAAEI,eAAe,IACrCH,WAAW,EAAEG,eAAe,CAAE,EAC9B;IACDF,aAAa,CAACC,OAAO,GAAGT,OAAO;IAC/B,OAAOQ,aAAa;EACrB;;EAEA;EACA,IACCJ,WAAW,EAAEK,OAAO,IACpB,CAAEJ,iBAAiB,EAAEK,eAAe,IACpC,CAAEJ,oBAAoB,EAAEI,eAAe,IACvC,CAAEH,WAAW,EAAEG,eAAe,EAC7B;IACDF,aAAa,CAACC,OAAO,GAAGE,SAAS;EAClC;EAEA,OAAOH,aAAa;AACrB;AAEO,SAASI,cAAcA,CAC7BN,oBAAoB,EACpBO,aAAa,EACbC,SAAS,EACTC,gBAAgB,EACf;EACD,MAAMC,WAAW,GAAG,CAAC,CAAC;EACtB,MAAMC,iBAAiB,GAAGX,oBAAoB,EAAEY,KAAK,EAAEC,KAAK,IAAI,CAAC,CAAC;EAClE,MAAMC,iBAAiB,GAAGL,gBAAgB,EAAEM,MAAM,GAAIP,SAAS,CAAE;;EAEjE;EACA,IAAKM,iBAAiB,EAAED,KAAK,EAAG;IAC/BG,MAAM,CAACC,OAAO,CAAEH,iBAAiB,CAACD,KAAM,CAAC,CAACK,OAAO,CAChD,CAAE,CAAEC,GAAG,EAAEC,KAAK,CAAE,KAAM;MACrB,MAAMC,QAAQ,GAAGjC,8BAA8B,CAAE+B,GAAG,CAAE;MAEtD,IAAKE,QAAQ,IAAID,KAAK,KAAKzB,aAAa,EAAG;QAAA,IAAA2B,qBAAA;QAC1C,MAAMT,KAAK,IAAAS,qBAAA,GAAGX,iBAAiB,CAAEQ,GAAG,CAAE,cAAAG,qBAAA,cAAAA,qBAAA,GAAIF,KAAK;QAC/CV,WAAW,CAAEW,QAAQ,CAAE,GAAGR,KAAK;MAChC;IACD,CACD,CAAC;EACF,CAAC,MAAM,IAAKJ,gBAAgB,EAAEc,MAAM,EAAEV,KAAK,EAAEvB,IAAI,EAAG;IACnDoB,WAAW,CAAEtB,8BAA8B,CAACE,IAAI,CAAE,GACjDmB,gBAAgB,EAAEc,MAAM,EAAEV,KAAK,EAAEvB,IAAI;EACvC;;EAEA;EACA,IAAKwB,iBAAiB,EAAEU,QAAQ,EAAG;IAClC,MAAMC,SAAS,GAAGX,iBAAiB,CAACU,QAAQ,EAAEhC,IAAI,EAAEqB,KAAK,EAAEvB,IAAI;IAC/D,MAAM+B,QAAQ,GAAGjC,8BAA8B,CAACI,IAAI;IAEpD,IAAK6B,QAAQ,IAAII,SAAS,IAAIA,SAAS,KAAK9B,aAAa,EAAG;MAC3De,WAAW,CAAEW,QAAQ,CAAE,GAAGI,SAAS;IACpC;EACD;;EAEA;EACAT,MAAM,CAACC,OAAO,CAAEjB,oBAAqB,CAAC,CAACkB,OAAO,CAAE,CAAE,CAAEC,GAAG,EAAEC,KAAK,CAAE,KAAM;IACrE,MAAMM,aAAa,GAAGN,KAAK,EAAEO,UAAU,GAAI,GAAI,CAAC;IAChD,IAAIN,QAAQ,GAAGF,GAAG;IAElB,IAAK/B,8BAA8B,CAAEiC,QAAQ,CAAE,EAAG;MACjDA,QAAQ,GAAGjC,8BAA8B,CAAEiC,QAAQ,CAAE;IACtD;IAEA,IAAK,CAAEK,aAAa,EAAG;MACtB,MAAME,WAAW,GAAGZ,MAAM,CAACa,MAAM,CAAEtB,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,CAAC,CAAE,CAAC,CAACuB,IAAI,CAC5D,CAAE;QAAEC;MAAK,CAAC,KAAMA,IAAI,KAAKX,KAC1B,CAAC;MAED,IAAKQ,WAAW,EAAG;QAClBlB,WAAW,CAAEW,QAAQ,CAAE,GAAGO,WAAW,CAACf,KAAK;MAC5C;IACD,CAAC,MAAM;MACNH,WAAW,CAAEW,QAAQ,CAAE,GAAGD,KAAK;IAChC;EACD,CAAE,CAAC;;EAEH;EACA,IAAKV,WAAW,EAAEG,KAAK,EAAG;IACzBH,WAAW,CAAEtB,8BAA8B,CAACK,WAAW,CAAE,GACxDiB,WAAW,CAACG,KAAK;EACnB;EAEA,OAAOH,WAAW;AACnB;AAEO,SAASsB,kBAAkBA,CACjChC,oBAAoB,EACpBiC,SAAS,EACTzB,SAAS,EACTC,gBAAgB,EACf;EACD,MAAMyB,gBAAgB,GAAG,CAAC,CAAC;EAC3B,MAAMvB,iBAAiB,GAAGX,oBAAoB,EAAEY,KAAK,EAAEuB,UAAU,IAAI,CAAC,CAAC;EACvE,MAAMrB,iBAAiB,GAAGL,gBAAgB,EAAEM,MAAM,GAAIP,SAAS,CAAE;EACjE,MAAM4B,eAAe,GAAGpB,MAAM,CAACa,MAAM,CAAEI,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,CAAC,CAAE,CAAC;;EAExD;EACA,IAAKnB,iBAAiB,EAAEqB,UAAU,EAAG;IACpC,MAAME,QAAQ,GAAGvB,iBAAiB,EAAEqB,UAAU,EAAEE,QAAQ;IACxD,MAAMC,UAAU,GAAGxB,iBAAiB,EAAEqB,UAAU,EAAEG,UAAU;IAE5D,IAAKD,QAAQ,EAAG;MACf,IAAKE,QAAQ,CAAEF,QAAQ,EAAE,EAAG,CAAC,EAAG;QAC/BH,gBAAgB,CAACG,QAAQ,GAAGA,QAAQ;MACrC,CAAC,MAAM;QACN,MAAMG,cAAc,GAAGJ,eAAe,CAACN,IAAI,CAC1C,CAAE;UAAEC;QAAK,CAAC,KAAMA,IAAI,KAAKM,QAC1B,CAAC;QAED,IAAKG,cAAc,EAAG;UACrBN,gBAAgB,CAACG,QAAQ,GAAGG,cAAc,EAAEC,IAAI;QACjD;MACD;IACD;IAEA,IAAKH,UAAU,EAAG;MACjBJ,gBAAgB,CAACI,UAAU,GAAGA,UAAU;IACzC;EACD;EAEA,IAAKtC,oBAAoB,EAAEqC,QAAQ,IAAI5B,gBAAgB,EAAG;IACzD,MAAM+B,cAAc,GAAGJ,eAAe,CAACN,IAAI,CAC1C,CAAE;MAAEC;IAAK,CAAC,KAAMA,IAAI,KAAK/B,oBAAoB,EAAEqC,QAChD,CAAC;IAED,IAAKG,cAAc,EAAG;MACrBN,gBAAgB,CAACG,QAAQ,GAAGG,cAAc,EAAEC,IAAI;IACjD;EACD;;EAEA;EACA,IAAK9B,iBAAiB,EAAE0B,QAAQ,EAAG;IAClCH,gBAAgB,CAACG,QAAQ,GAAG1B,iBAAiB,EAAE0B,QAAQ;EACxD;EAEA,IAAK1B,iBAAiB,EAAE2B,UAAU,EAAG;IACpCJ,gBAAgB,CAACI,UAAU,GAAG3B,iBAAiB,EAAE2B,UAAU;EAC5D;EAEA,OAAOJ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMQ,sBAAsB,GAAGA,CAAEC,MAAM,EAAEC,IAAI,KAAM;EAClD,IAAIxB,KAAK,GAAGuB,MAAM;EAClBC,IAAI,CAAC1B,OAAO,CAAI2B,SAAS,IAAM;IAC9BzB,KAAK,GAAGA,KAAK,GAAIyB,SAAS,CAAE;EAC7B,CAAE,CAAC;EACH,OAAOzB,KAAK;AACb,CAAC;AAEM,SAAS0B,oBAAoBA,CAAEvB,MAAM,EAAEwB,YAAY,EAAEC,YAAY,EAAG;EAC1E,IAAIC,UAAU,GAAG1B,MAAM;EACvB,MAAM2B,SAAS,GAAG,CAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAE;EAE3D,IAAK,CAAED,UAAU,EAAG;IACnB,OAAO1B,MAAM;EACd;EAEA2B,SAAS,CAAChC,OAAO,CAAIiC,QAAQ,IAAM;IAClC;IACA;IACA;IACA;IACA,MAAMC,KAAK,GAAG,IAAIC,MAAM,CAAG,eAAeF,QAAU,YAAW,EAAE,GAAI,CAAC;IACtE,MAAMG,QAAQ,GAAG,gCAAgC;IACjD,MAAMC,aAAa,GAAG,sBAAsB;IAE5C,IAAKJ,QAAQ,KAAK,QAAQ,EAAG;MAC5BF,UAAU,GAAGA,UAAU,CAACO,OAAO,CAAEJ,KAAK,EAAE,CAAEK,GAAG,EAAEC,EAAE,KAAM;QACtD,MAAMd,IAAI,GAAGc,EAAE,CAACC,KAAK,CAAE,IAAK,CAAC;QAC7B,MAAMC,iBAAiB,GAAGb,YAAY,CAAEH,IAAI,CAAE,CAAC,CAAE,CAAE;QACnD,IAAKgB,iBAAiB,IAAIA,iBAAiB,CAAC7B,IAAI,EAAG;UAAA,IAAA8B,qBAAA;UAClD,MAAMC,YAAY,GAAG9C,MAAM,CAACa,MAAM,EAAAgC,qBAAA,GACjCD,iBAAiB,CAAC/B,MAAM,cAAAgC,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAC9B,CAAC,CAAC/B,IAAI,CAAE,CAAE;YAAEC;UAAK,CAAC,KAAMA,IAAI,KAAKa,IAAI,CAAE,CAAC,CAAG,CAAC;UAC5C,OAAOkB,YAAY,GAAIF,iBAAiB,CAAC7B,IAAI,CAAE;QAChD;QACA,OAAOpC,aAAa;MACrB,CAAE,CAAC;IACJ;IACA,IAAKwD,QAAQ,KAAK,QAAQ,EAAG;MAC5B,MAAMY,gBAAgB,GAAGf,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAIgB,IAAI,CAACC,KAAK,CAAEhB,UAAW,CAAC;MACjEA,UAAU,GAAGA,UAAU,CAACO,OAAO,CAAEJ,KAAK,EAAE,CAAEK,GAAG,EAAEC,EAAE,KAAM;QACtD,MAAMd,IAAI,GAAGc,EAAE,CAACC,KAAK,CAAE,IAAK,CAAC;QAC7B,IACCf,IAAI,CAACsB,MAAM,CACV,CAAEC,IAAI,EAAEC,IAAI,KAAMD,IAAI,IAAIA,IAAI,CAAEC,IAAI,CAAE,EACtCL,gBACD,CAAC,EACA;UACD,OAAOrB,sBAAsB,CAAEqB,gBAAgB,EAAEnB,IAAK,CAAC;QACxD;;QAEA;QACA,OAAOF,sBAAsB,CAAEqB,gBAAgB,EAAE,CAChD,GAAGnB,IAAI,CAACyB,KAAK,CAAE,CAAC,EAAEzB,IAAI,CAAC0B,MAAM,GAAG,CAAE,CAAC,EACnC,IAAAC,qBAAS,EAAE3B,IAAI,CAAEA,IAAI,CAAC0B,MAAM,GAAG,CAAC,CAAG,CAAC,CACnC,CAAC;MACJ,CAAE,CAAC;IACJ;IAEA,IAAKnB,QAAQ,KAAK,KAAK,EAAG;MACzBF,UAAU,GAAGA,UAAU,CAACO,OAAO,CAAEF,QAAQ,EAAE,CAAEG,GAAG,EAAEC,EAAE,KAAM;QACzD,IAAKX,YAAY,EAAElC,KAAK,EAAG;UAC1B,MAAMiD,YAAY,GAAGf,YAAY,CAAClC,KAAK,EAAEgB,MAAM,EAAEC,IAAI,CACpD,CAAE;YAAEC;UAAK,CAAC,KAAMA,IAAI,KAAK2B,EAC1B,CAAC;UACD,OAAQ,IAAII,YAAY,EAAEjD,KAAO,GAAE;QACpC;QACA,OAAOlB,aAAa;MACrB,CAAE,CAAC;IACJ;IAEA,IAAKwD,QAAQ,KAAK,UAAU,EAAG;MAC9B,MAAM;QAAEqB,KAAK;QAAEC;MAAO,CAAC,GAAGC,uBAAU,CAACC,GAAG,CAAE,QAAS,CAAC;MAEpD1B,UAAU,GAAGA,UAAU,CAACO,OAAO,CAAED,aAAa,EAAE,CAAEE,GAAG,EAAEC,EAAE,KAAM;QAC9D,MAAMkB,cAAc,GACnB,IAAAC,6BAAgB,EAAEnB,EAAE,EAAE;UACrBc,KAAK;UACLC,MAAM;UACNpC,QAAQ,EAAEzC;QACX,CAAE,CAAC,IAAK,GAAGA,iBAAmB,IAAG;QAElC,OAAQ,eAAegF,cAAgB,GAAE;MAC1C,CAAE,CAAC;IACJ;EACD,CAAE,CAAC;EAEH,OAAOZ,IAAI,CAACC,KAAK,CAAEhB,UAAW,CAAC;AAChC;AAEO,SAAS6B,eAAeA,CAAEC,QAAQ,EAAEC,OAAO,EAAG;EACpD,MAAM7C,UAAU,GAAG4C,QAAQ,EAAE5C,UAAU;EACvC,MAAM8C,MAAM,GAAG,CACd,IAAKD,OAAO,EAAEE,KAAK,IAAI,EAAE,CAAE,EAC3B,IAAKF,OAAO,EAAEG,MAAM,IAAI,EAAE,CAAE,EAC5B,IAAKH,OAAO,EAAEI,OAAO,IAAI,EAAE,CAAE,CAC7B;EAED,MAAMnD,SAAS,GAAG;IACjB,GAAGE,UAAU,EAAEF,SAAS,EAAEiD,KAAK;IAC/B,GAAG/C,UAAU,EAAEF,SAAS,EAAEkD;EAC3B,CAAC;EACD,MAAMpC,YAAY,GAAG;IACpBlC,KAAK,EAAE;MACNgB,MAAM,EAAEoD,MAAM;MACdlD,IAAI,EAAE;IACP,CAAC;IACD,WAAW,EAAE;MACZF,MAAM,EAAEI,SAAS;MACjBF,IAAI,EAAE;IACP;EACD,CAAC;EACD,OAAOgB,YAAY;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASsC,kBAAkBA,CAAEpD,SAAS,EAAG;EACxC;EACA,IAAK,CAAEA,SAAS,EAAG;IAClB,OAAOA,SAAS;EACjB;EACA,MAAMqD,mBAAmB,GAAG,CAAC,CAAC;EAC9B,MAAMC,UAAU,GAAGb,uBAAU,CAACC,GAAG,CAAE,QAAS,CAAC;EAE7C,CAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAE,CAACzD,OAAO,CAAIC,GAAG,IAAM;IACpD,IAAKc,SAAS,CAAEd,GAAG,CAAE,EAAG;MACvBmE,mBAAmB,CAAEnE,GAAG,CAAE,GAAGc,SAAS,CAAEd,GAAG,CAAE,EAAEqE,GAAG,CAC/CC,cAAc,IAAM;QACrBA,cAAc,CAACC,MAAM,GAAG,IAAAb,6BAAgB,EACvCY,cAAc,CAAChD,IAAI,EACnB;UACC+B,KAAK,EAAEe,UAAU,CAACf,KAAK;UACvBC,MAAM,EAAEc,UAAU,CAACd,MAAM;UACzBpC,QAAQ,EAAEzC;QACX,CACD,CAAC;QACD,OAAO6F,cAAc;MACtB,CACD,CAAC;IACF;EACD,CAAE,CAAC;EAEH,OAAOH,mBAAmB;AAC3B;AAEO,SAASK,2BAA2BA,CAAEC,IAAI,GAAG,QAAQ,EAAG;EAC9D,MAAMC,qBAAqB,GAAG,IAAAC,gDAAmC,EAAC,CAAC;EACnE,MAAMC,oBAAoB,GAAGF,qBAAqB,GAAID,IAAI,CAAE,EAAE1B,MAAM,CACnE,CAAEe,MAAM,EAAEe,MAAM,KAAMf,MAAM,CAACgB,MAAM,CAAED,MAAM,GAAIJ,IAAI,CAAG,CAAC,EACvD,EACD,CAAC;EACD;EACA,MAAMM,YAAY,GACjBN,IAAI,KAAK,QAAQ,GAAG,eAAe,GAAG,iBAAiB;EACxD,MAAMO,oBAAoB,GAAG,IAAAC,uBAAU,EAAEF,YAAa,CAAC;EAEvD,OAAOH,oBAAoB,CAACzB,MAAM,IAAI,CAAC,GACpCyB,oBAAoB,GACpBI,oBAAoB;AACxB;AAEO,SAASE,qBAAqBA,CACpCC,mBAAmB,GAAG,EAAE,EACxBC,sBAAsB,GAAG,EAAE,EAC3BC,WAAW,EACV;EACD,MAAMzB,QAAQ,GAAGyB,WAAW,GAAGxC,IAAI,CAACC,KAAK,CAAEuC,WAAY,CAAC,GAAG,CAAC,CAAC;EAE7D,OAAO;IACNC,oCAAoC,EAAE,IAAI;IAC1CC,sBAAsB,EAAE;MACvB7F,KAAK,EAAE;QACN,IAAK,CAAEkE,QAAQ,EAAElE,KAAK,GACnB;UACAvB,IAAI,EAAE,IAAI;UACVC,UAAU,EAAE,IAAI;UAChByF,OAAO,EAAE;YACRI,OAAO,EAAEkB;UACV,CAAC;UACDK,SAAS,EAAE;YACVvB,OAAO,EAAEmB;UACV;QACA,CAAC,GACDxB,QAAQ,EAAElE,KAAK,CAAE;QACpB+F,cAAc,EAAEN,mBAAmB,EAAEhC,MAAM,GAAG,CAAC;QAC/CuC,gBAAgB,EAAEN,sBAAsB,EAAEjC,MAAM,GAAG;MACpD;IACD;EACD,CAAC;AACF;AAEO,SAASwC,eAAeA,CAAEC,SAAS,EAAEP,WAAW,EAAG;EAAA,IAAAQ,oBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA;EACzD,MAAMpC,QAAQ,GAAGyB,WAAW,GAAGxC,IAAI,CAACC,KAAK,CAAEuC,WAAY,CAAC,GAAG,CAAC,CAAC;EAC7D,MAAMzD,YAAY,GAAG+B,eAAe,CAAEC,QAAQ,EAAEA,QAAQ,EAAElE,KAAK,EAAEmE,OAAQ,CAAC;EAC1E,MAAMC,MAAM,GAAGnC,oBAAoB,CAClCkB,IAAI,CAACoD,SAAS,CAAErC,QAAQ,EAAElE,KAAM,CAAC,EACjCkC,YACD,CAAC;EACD,MAAM4D,SAAS,GAAG7D,oBAAoB,CACrCkB,IAAI,CAACoD,SAAS,CAAErC,QAAQ,EAAElE,KAAK,EAAE8F,SAAU,CAAC,EAC5C5D,YACD,CAAC;EACD,MAAMC,YAAY,GAAGF,oBAAoB,CACxCkB,IAAI,CAACoD,SAAS,CAAErC,QAAQ,EAAEI,MAAO,CAAC,EAClCpC,YACD,CAAC;EACD,MAAMsE,YAAY,GAAGvE,oBAAoB,CACxCiE,SAAS,EACThE,YAAY,EACZC,YACD,CAAC;EAED,MAAMf,SAAS,GAAGoD,kBAAkB,CAAEN,QAAQ,EAAE5C,UAAU,EAAEF,SAAU,CAAC;EAEvE,OAAO;IACNyE,sBAAsB,EAAE;MACvB7F,KAAK,EAAE;QACNmE,OAAO,EAAEC,MAAM,EAAED,OAAO;QACxB2B,SAAS;QACTrH,IAAI,GAAA0H,oBAAA,GAAEjC,QAAQ,EAAElE,KAAK,EAAEvB,IAAI,cAAA0H,oBAAA,cAAAA,oBAAA,GAAI,IAAI;QACnCzH,UAAU,GAAA0H,qBAAA,GAAElC,QAAQ,EAAElE,KAAK,EAAEtB,UAAU,cAAA0H,qBAAA,cAAAA,qBAAA,GAAI,IAAI;QAC/CL,cAAc,GAAAM,qBAAA,GAAEnC,QAAQ,EAAElE,KAAK,EAAE+F,cAAc,cAAAM,qBAAA,cAAAA,qBAAA,GAAI,IAAI;QACvDL,gBAAgB,GAAAM,sBAAA,GAAEpC,QAAQ,EAAElE,KAAK,EAAEgG,gBAAgB,cAAAM,sBAAA,cAAAA,sBAAA,GAAI;MACxD,CAAC;MACDhF,UAAU,EAAE;QACXF,SAAS;QACTqF,gBAAgB,EAAEvC,QAAQ,EAAEI,MAAM,GAAI,aAAa;MACpD,CAAC;MACDoC,OAAO,EAAExC,QAAQ,EAAEwC;IACpB,CAAC;IACDd,oCAAoC,EAAEY;EACvC,CAAC;AACF"}
|
|
1
|
+
{"version":3,"names":["_changeCase","require","_reactNative","_blockEditor","BLOCK_STYLE_ATTRIBUTES","exports","BLOCK_STYLE_ATTRIBUTES_MAPPING","textColor","text","background","link","placeholder","PADDING","UNKNOWN_VALUE","DEFAULT_FONT_SIZE","getBlockPaddings","mergedStyle","wrapperPropsStyle","blockStyleAttributes","blockColors","blockPaddings","padding","backgroundColor","undefined","getBlockColors","defaultColors","blockName","baseGlobalStyles","blockStyles","customBlockStyles","style","color","blockGlobalStyles","blocks","Object","entries","forEach","key","value","styleKey","_customBlockStyles$ke","styles","elements","linkColor","isCustomColor","startsWith","mappedColor","values","find","slug","getBlockTypography","fontSizes","typographyStyles","typography","parsedFontSizes","fontSize","lineHeight","parseInt","mappedFontSize","size","getValueFromObjectPath","object","path","fieldName","parseStylesVariables","mappedValues","customValues","stylesBase","variables","variable","regex","RegExp","varRegex","fontSizeRegex","replace","_$1","$2","split","mappedPresetValue","_mappedPresetValue$va","matchedValue","customValuesData","JSON","parse","reduce","prev","curr","slice","length","camelCase","width","height","Dimensions","get","parsedFontSize","getPxFromCssUnit","getMappedValues","features","palette","colors","theme","custom","default","normalizeFontSizes","normalizedFontSizes","dimensions","map","fontSizeObject","sizePx","useMobileGlobalStylesColors","type","colorGradientSettings","useMultipleOriginColorsAndGradients","availableThemeColors","origin","concat","colorPalette","editorDefaultPalette","useSettings","getColorsAndGradients","defaultEditorColors","defaultEditorGradients","rawFeatures","__experimentalGlobalStylesBaseStyles","__experimentalFeatures","gradients","defaultPalette","defaultGradients","getGlobalStyles","rawStyles","_features$color$text","_features$color$backg","_features$color$defau","_features$color$defau2","stringify","globalStyles","customLineHeight","spacing"],"sources":["@wordpress/components/src/mobile/global-styles-context/utils.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { camelCase } from 'change-case';\nimport { Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetPxFromCssUnit,\n\tuseSettings,\n\tuseMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\n\nexport const BLOCK_STYLE_ATTRIBUTES = [\n\t'textColor',\n\t'backgroundColor',\n\t'style',\n\t'color',\n\t'fontSize',\n];\n\n// Mapping style properties name to native.\nconst BLOCK_STYLE_ATTRIBUTES_MAPPING = {\n\ttextColor: 'color',\n\ttext: 'color',\n\tbackground: 'backgroundColor',\n\tlink: 'linkColor',\n\tplaceholder: 'placeholderColor',\n};\n\nconst PADDING = 12; // $solid-border-space\nconst UNKNOWN_VALUE = 'undefined';\nconst DEFAULT_FONT_SIZE = 16;\n\nexport function getBlockPaddings(\n\tmergedStyle,\n\twrapperPropsStyle,\n\tblockStyleAttributes,\n\tblockColors\n) {\n\tconst blockPaddings = {};\n\n\tif (\n\t\t! mergedStyle.padding &&\n\t\t( wrapperPropsStyle?.backgroundColor ||\n\t\t\tblockStyleAttributes?.backgroundColor ||\n\t\t\tblockColors?.backgroundColor )\n\t) {\n\t\tblockPaddings.padding = PADDING;\n\t\treturn blockPaddings;\n\t}\n\n\t// Prevent adding extra paddings to inner blocks without background colors.\n\tif (\n\t\tmergedStyle?.padding &&\n\t\t! wrapperPropsStyle?.backgroundColor &&\n\t\t! blockStyleAttributes?.backgroundColor &&\n\t\t! blockColors?.backgroundColor\n\t) {\n\t\tblockPaddings.padding = undefined;\n\t}\n\n\treturn blockPaddings;\n}\n\nexport function getBlockColors(\n\tblockStyleAttributes,\n\tdefaultColors,\n\tblockName,\n\tbaseGlobalStyles\n) {\n\tconst blockStyles = {};\n\tconst customBlockStyles = blockStyleAttributes?.style?.color || {};\n\tconst blockGlobalStyles = baseGlobalStyles?.blocks?.[ blockName ];\n\n\t// Global styles colors.\n\tif ( blockGlobalStyles?.color ) {\n\t\tObject.entries( blockGlobalStyles.color ).forEach(\n\t\t\t( [ key, value ] ) => {\n\t\t\t\tconst styleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING[ key ];\n\n\t\t\t\tif ( styleKey && value !== UNKNOWN_VALUE ) {\n\t\t\t\t\tconst color = customBlockStyles[ key ] ?? value;\n\t\t\t\t\tblockStyles[ styleKey ] = color;\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t} else if ( baseGlobalStyles?.styles?.color?.text ) {\n\t\tblockStyles[ BLOCK_STYLE_ATTRIBUTES_MAPPING.text ] =\n\t\t\tbaseGlobalStyles?.styles?.color?.text;\n\t}\n\n\t// Global styles elements.\n\tif ( blockGlobalStyles?.elements ) {\n\t\tconst linkColor = blockGlobalStyles.elements?.link?.color?.text;\n\t\tconst styleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING.link;\n\n\t\tif ( styleKey && linkColor && linkColor !== UNKNOWN_VALUE ) {\n\t\t\tblockStyles[ styleKey ] = linkColor;\n\t\t}\n\t}\n\n\t// Custom colors.\n\tObject.entries( blockStyleAttributes ).forEach( ( [ key, value ] ) => {\n\t\tconst isCustomColor = value?.startsWith?.( '#' );\n\t\tlet styleKey = key;\n\n\t\tif ( BLOCK_STYLE_ATTRIBUTES_MAPPING[ styleKey ] ) {\n\t\t\tstyleKey = BLOCK_STYLE_ATTRIBUTES_MAPPING[ styleKey ];\n\t\t}\n\n\t\tif ( ! isCustomColor ) {\n\t\t\tconst mappedColor = Object.values( defaultColors ?? {} ).find(\n\t\t\t\t( { slug } ) => slug === value\n\t\t\t);\n\n\t\t\tif ( mappedColor ) {\n\t\t\t\tblockStyles[ styleKey ] = mappedColor.color;\n\t\t\t}\n\t\t} else {\n\t\t\tblockStyles[ styleKey ] = value;\n\t\t}\n\t} );\n\n\t// Color placeholder.\n\tif ( blockStyles?.color ) {\n\t\tblockStyles[ BLOCK_STYLE_ATTRIBUTES_MAPPING.placeholder ] =\n\t\t\tblockStyles.color;\n\t}\n\n\treturn blockStyles;\n}\n\nexport function getBlockTypography(\n\tblockStyleAttributes,\n\tfontSizes,\n\tblockName,\n\tbaseGlobalStyles\n) {\n\tconst typographyStyles = {};\n\tconst customBlockStyles = blockStyleAttributes?.style?.typography || {};\n\tconst blockGlobalStyles = baseGlobalStyles?.blocks?.[ blockName ];\n\tconst parsedFontSizes = Object.values( fontSizes ?? {} );\n\n\t// Global styles.\n\tif ( blockGlobalStyles?.typography ) {\n\t\tconst fontSize = blockGlobalStyles?.typography?.fontSize;\n\t\tconst lineHeight = blockGlobalStyles?.typography?.lineHeight;\n\n\t\tif ( fontSize ) {\n\t\t\tif ( parseInt( fontSize, 10 ) ) {\n\t\t\t\ttypographyStyles.fontSize = fontSize;\n\t\t\t} else {\n\t\t\t\tconst mappedFontSize = parsedFontSizes.find(\n\t\t\t\t\t( { slug } ) => slug === fontSize\n\t\t\t\t);\n\n\t\t\t\tif ( mappedFontSize ) {\n\t\t\t\t\ttypographyStyles.fontSize = mappedFontSize?.size;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( lineHeight ) {\n\t\t\ttypographyStyles.lineHeight = lineHeight;\n\t\t}\n\t}\n\n\tif ( blockStyleAttributes?.fontSize && baseGlobalStyles ) {\n\t\tconst mappedFontSize = parsedFontSizes.find(\n\t\t\t( { slug } ) => slug === blockStyleAttributes?.fontSize\n\t\t);\n\n\t\tif ( mappedFontSize ) {\n\t\t\ttypographyStyles.fontSize = mappedFontSize?.size;\n\t\t}\n\t}\n\n\t// Custom styles.\n\tif ( customBlockStyles?.fontSize ) {\n\t\ttypographyStyles.fontSize = customBlockStyles?.fontSize;\n\t}\n\n\tif ( customBlockStyles?.lineHeight ) {\n\t\ttypographyStyles.lineHeight = customBlockStyles?.lineHeight;\n\t}\n\n\treturn typographyStyles;\n}\n\n/**\n * Return a value from a certain path of the object.\n * Path is specified as an array of properties, like: [ 'parent', 'child' ].\n *\n * @param {Object} object Input object.\n * @param {Array} path Path to the object property.\n * @return {*} Value of the object property at the specified path.\n */\nconst getValueFromObjectPath = ( object, path ) => {\n\tlet value = object;\n\tpath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\nexport function parseStylesVariables( styles, mappedValues, customValues ) {\n\tlet stylesBase = styles;\n\tconst variables = [ 'preset', 'custom', 'var', 'fontSize' ];\n\n\tif ( ! stylesBase ) {\n\t\treturn styles;\n\t}\n\n\tvariables.forEach( ( variable ) => {\n\t\t// Examples\n\t\t// var(--wp--preset--color--gray)\n\t\t// var(--wp--custom--body--typography--font-family)\n\t\t// var:preset|color|custom-color-2\n\t\tconst regex = new RegExp( `var\\\\(--wp--${ variable }--(.*?)\\\\)`, 'g' );\n\t\tconst varRegex = /\\\"var:preset\\|color\\|(.*?)\\\"/gm;\n\t\tconst fontSizeRegex = /\"fontSize\":\"(.*?)\"/gm;\n\n\t\tif ( variable === 'preset' ) {\n\t\t\tstylesBase = stylesBase.replace( regex, ( _$1, $2 ) => {\n\t\t\t\tconst path = $2.split( '--' );\n\t\t\t\tconst mappedPresetValue = mappedValues[ path[ 0 ] ];\n\t\t\t\tif ( mappedPresetValue && mappedPresetValue.slug ) {\n\t\t\t\t\tconst matchedValue = Object.values(\n\t\t\t\t\t\tmappedPresetValue.values ?? {}\n\t\t\t\t\t).find( ( { slug } ) => slug === path[ 1 ] );\n\t\t\t\t\treturn matchedValue?.[ mappedPresetValue.slug ];\n\t\t\t\t}\n\t\t\t\treturn UNKNOWN_VALUE;\n\t\t\t} );\n\t\t}\n\t\tif ( variable === 'custom' ) {\n\t\t\tconst customValuesData = customValues ?? JSON.parse( stylesBase );\n\t\t\tstylesBase = stylesBase.replace( regex, ( _$1, $2 ) => {\n\t\t\t\tconst path = $2.split( '--' );\n\t\t\t\tif (\n\t\t\t\t\tpath.reduce(\n\t\t\t\t\t\t( prev, curr ) => prev && prev[ curr ],\n\t\t\t\t\t\tcustomValuesData\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\treturn getValueFromObjectPath( customValuesData, path );\n\t\t\t\t}\n\n\t\t\t\t// Check for camelcase properties.\n\t\t\t\treturn getValueFromObjectPath( customValuesData, [\n\t\t\t\t\t...path.slice( 0, path.length - 1 ),\n\t\t\t\t\tcamelCase( path[ path.length - 1 ] ),\n\t\t\t\t] );\n\t\t\t} );\n\t\t}\n\n\t\tif ( variable === 'var' ) {\n\t\t\tstylesBase = stylesBase.replace( varRegex, ( _$1, $2 ) => {\n\t\t\t\tif ( mappedValues?.color ) {\n\t\t\t\t\tconst matchedValue = mappedValues.color?.values?.find(\n\t\t\t\t\t\t( { slug } ) => slug === $2\n\t\t\t\t\t);\n\t\t\t\t\treturn `\"${ matchedValue?.color }\"`;\n\t\t\t\t}\n\t\t\t\treturn UNKNOWN_VALUE;\n\t\t\t} );\n\t\t}\n\n\t\tif ( variable === 'fontSize' ) {\n\t\t\tconst { width, height } = Dimensions.get( 'window' );\n\n\t\t\tstylesBase = stylesBase.replace( fontSizeRegex, ( _$1, $2 ) => {\n\t\t\t\tconst parsedFontSize =\n\t\t\t\t\tgetPxFromCssUnit( $2, {\n\t\t\t\t\t\twidth,\n\t\t\t\t\t\theight,\n\t\t\t\t\t\tfontSize: DEFAULT_FONT_SIZE,\n\t\t\t\t\t} ) || `${ DEFAULT_FONT_SIZE }px`;\n\n\t\t\t\treturn `\"fontSize\":\"${ parsedFontSize }\"`;\n\t\t\t} );\n\t\t}\n\t} );\n\n\treturn JSON.parse( stylesBase );\n}\n\nexport function getMappedValues( features, palette ) {\n\tconst typography = features?.typography;\n\tconst colors = [\n\t\t...( palette?.theme || [] ),\n\t\t...( palette?.custom || [] ),\n\t\t...( palette?.default || [] ),\n\t];\n\n\tconst fontSizes = {\n\t\t...typography?.fontSizes?.theme,\n\t\t...typography?.fontSizes?.custom,\n\t};\n\tconst mappedValues = {\n\t\tcolor: {\n\t\t\tvalues: colors,\n\t\t\tslug: 'color',\n\t\t},\n\t\t'font-size': {\n\t\t\tvalues: fontSizes,\n\t\t\tslug: 'size',\n\t\t},\n\t};\n\treturn mappedValues;\n}\n\n/**\n * Returns the normalized fontSizes to include the sizePx value for each of the different sizes.\n *\n * @param {Object} fontSizes found in global styles.\n * @return {Object} normalized sizes.\n */\nfunction normalizeFontSizes( fontSizes ) {\n\t// Adds normalized PX values for each of the different keys.\n\tif ( ! fontSizes ) {\n\t\treturn fontSizes;\n\t}\n\tconst normalizedFontSizes = {};\n\tconst dimensions = Dimensions.get( 'window' );\n\n\t[ 'default', 'theme', 'custom' ].forEach( ( key ) => {\n\t\tif ( fontSizes[ key ] ) {\n\t\t\tnormalizedFontSizes[ key ] = fontSizes[ key ]?.map(\n\t\t\t\t( fontSizeObject ) => {\n\t\t\t\t\tfontSizeObject.sizePx = getPxFromCssUnit(\n\t\t\t\t\t\tfontSizeObject.size,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\twidth: dimensions.width,\n\t\t\t\t\t\t\theight: dimensions.height,\n\t\t\t\t\t\t\tfontSize: DEFAULT_FONT_SIZE,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t\treturn fontSizeObject;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t} );\n\n\treturn normalizedFontSizes;\n}\n\nexport function useMobileGlobalStylesColors( type = 'colors' ) {\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst availableThemeColors = colorGradientSettings?.[ type ]?.reduce(\n\t\t( colors, origin ) => colors.concat( origin?.[ type ] ),\n\t\t[]\n\t);\n\t// Default editor colors/gradients if it's not a block-based theme.\n\tconst colorPalette =\n\t\ttype === 'colors' ? 'color.palette' : 'color.gradients';\n\tconst [ editorDefaultPalette ] = useSettings( colorPalette );\n\n\treturn availableThemeColors.length >= 1\n\t\t? availableThemeColors\n\t\t: editorDefaultPalette;\n}\n\nexport function getColorsAndGradients(\n\tdefaultEditorColors = [],\n\tdefaultEditorGradients = [],\n\trawFeatures\n) {\n\tconst features = rawFeatures ? JSON.parse( rawFeatures ) : {};\n\n\treturn {\n\t\t__experimentalGlobalStylesBaseStyles: null,\n\t\t__experimentalFeatures: {\n\t\t\tcolor: {\n\t\t\t\t...( ! features?.color\n\t\t\t\t\t? {\n\t\t\t\t\t\t\ttext: true,\n\t\t\t\t\t\t\tbackground: true,\n\t\t\t\t\t\t\tpalette: {\n\t\t\t\t\t\t\t\tdefault: defaultEditorColors,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgradients: {\n\t\t\t\t\t\t\t\tdefault: defaultEditorGradients,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t }\n\t\t\t\t\t: features?.color ),\n\t\t\t\tdefaultPalette: defaultEditorColors?.length > 0,\n\t\t\t\tdefaultGradients: defaultEditorGradients?.length > 0,\n\t\t\t},\n\t\t},\n\t};\n}\n\nexport function getGlobalStyles( rawStyles, rawFeatures ) {\n\tconst features = rawFeatures ? JSON.parse( rawFeatures ) : {};\n\tconst mappedValues = getMappedValues( features, features?.color?.palette );\n\tconst colors = parseStylesVariables(\n\t\tJSON.stringify( features?.color ),\n\t\tmappedValues\n\t);\n\tconst gradients = parseStylesVariables(\n\t\tJSON.stringify( features?.color?.gradients ),\n\t\tmappedValues\n\t);\n\tconst customValues = parseStylesVariables(\n\t\tJSON.stringify( features?.custom ),\n\t\tmappedValues\n\t);\n\tconst globalStyles = parseStylesVariables(\n\t\trawStyles,\n\t\tmappedValues,\n\t\tcustomValues\n\t);\n\n\tconst fontSizes = normalizeFontSizes( features?.typography?.fontSizes );\n\n\treturn {\n\t\t__experimentalFeatures: {\n\t\t\tcolor: {\n\t\t\t\tpalette: colors?.palette,\n\t\t\t\tgradients,\n\t\t\t\ttext: features?.color?.text ?? true,\n\t\t\t\tbackground: features?.color?.background ?? true,\n\t\t\t\tdefaultPalette: features?.color?.defaultPalette ?? true,\n\t\t\t\tdefaultGradients: features?.color?.defaultGradients ?? true,\n\t\t\t},\n\t\t\ttypography: {\n\t\t\t\tfontSizes,\n\t\t\t\tcustomLineHeight: features?.custom?.[ 'line-height' ],\n\t\t\t},\n\t\t\tspacing: features?.spacing,\n\t\t},\n\t\t__experimentalGlobalStylesBaseStyles: globalStyles,\n\t};\n}\n"],"mappings":"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"}
|
package/build/modal/index.js
CHANGED
|
@@ -29,8 +29,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
29
29
|
* Internal dependencies
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
|
-
// Used to
|
|
33
|
-
|
|
32
|
+
// Used to track and dismiss the prior modal when another opens unless nested.
|
|
33
|
+
const level0Dismissers = [];
|
|
34
|
+
const ModalContext = (0, _element.createContext)(level0Dismissers);
|
|
35
|
+
let isBodyOpenClassActive = false;
|
|
34
36
|
function UnforwardedModal(props, forwardedRef) {
|
|
35
37
|
const {
|
|
36
38
|
bodyOpenClassName = 'modal-open',
|
|
@@ -74,7 +76,6 @@ function UnforwardedModal(props, forwardedRef) {
|
|
|
74
76
|
const focusOnMountRef = (0, _compose.useFocusOnMount)(focusOnMount === 'firstContentElement' ? 'firstElement' : focusOnMount);
|
|
75
77
|
const constrainedTabbingRef = (0, _compose.useConstrainedTabbing)();
|
|
76
78
|
const focusReturnRef = (0, _compose.useFocusReturn)();
|
|
77
|
-
const focusOutsideProps = (0, _compose.__experimentalUseFocusOutside)(onRequestClose);
|
|
78
79
|
const contentRef = (0, _element.useRef)(null);
|
|
79
80
|
const childrenContainerRef = (0, _element.useRef)(null);
|
|
80
81
|
const [hasScrolledContent, setHasScrolledContent] = (0, _element.useState)(false);
|
|
@@ -98,22 +99,51 @@ function UnforwardedModal(props, forwardedRef) {
|
|
|
98
99
|
setHasScrollableContent(false);
|
|
99
100
|
}
|
|
100
101
|
}, [contentRef]);
|
|
102
|
+
|
|
103
|
+
// Accessibly isolates/unisolates the modal.
|
|
101
104
|
(0, _element.useEffect)(() => {
|
|
102
105
|
ariaHelper.modalize(ref.current);
|
|
103
106
|
return () => ariaHelper.unmodalize();
|
|
104
107
|
}, []);
|
|
108
|
+
|
|
109
|
+
// Keeps a fresh ref for the subsequent effect.
|
|
110
|
+
const refOnRequestClose = (0, _element.useRef)();
|
|
111
|
+
(0, _element.useEffect)(() => {
|
|
112
|
+
refOnRequestClose.current = onRequestClose;
|
|
113
|
+
}, [onRequestClose]);
|
|
114
|
+
|
|
115
|
+
// The list of `onRequestClose` callbacks of open (non-nested) Modals. Only
|
|
116
|
+
// one should remain open at a time and the list enables closing prior ones.
|
|
117
|
+
const dismissers = (0, _element.useContext)(ModalContext);
|
|
118
|
+
// Used for the tracking and dismissing any nested modals.
|
|
119
|
+
const nestedDismissers = (0, _element.useRef)([]);
|
|
120
|
+
|
|
121
|
+
// Updates the stack tracking open modals at this level and calls
|
|
122
|
+
// onRequestClose for any prior and/or nested modals as applicable.
|
|
123
|
+
(0, _element.useEffect)(() => {
|
|
124
|
+
dismissers.push(refOnRequestClose);
|
|
125
|
+
const [first, second] = dismissers;
|
|
126
|
+
if (second) first?.current?.();
|
|
127
|
+
const nested = nestedDismissers.current;
|
|
128
|
+
return () => {
|
|
129
|
+
nested[0]?.current?.();
|
|
130
|
+
dismissers.shift();
|
|
131
|
+
};
|
|
132
|
+
}, [dismissers]);
|
|
133
|
+
const isLevel0 = dismissers === level0Dismissers;
|
|
134
|
+
// Adds/removes the value of bodyOpenClassName to body element.
|
|
105
135
|
(0, _element.useEffect)(() => {
|
|
106
|
-
|
|
107
|
-
|
|
136
|
+
if (!isBodyOpenClassActive) {
|
|
137
|
+
isBodyOpenClassActive = true;
|
|
108
138
|
document.body.classList.add(bodyOpenClassName);
|
|
109
139
|
}
|
|
110
140
|
return () => {
|
|
111
|
-
|
|
112
|
-
if (openModalCount === 0) {
|
|
141
|
+
if (isLevel0 && dismissers.length === 0) {
|
|
113
142
|
document.body.classList.remove(bodyOpenClassName);
|
|
143
|
+
isBodyOpenClassActive = false;
|
|
114
144
|
}
|
|
115
145
|
};
|
|
116
|
-
}, [bodyOpenClassName]);
|
|
146
|
+
}, [bodyOpenClassName, dismissers, isLevel0]);
|
|
117
147
|
|
|
118
148
|
// Calls the isContentScrollable callback when the Modal children container resizes.
|
|
119
149
|
(0, _element.useLayoutEffect)(() => {
|
|
@@ -156,12 +186,9 @@ function UnforwardedModal(props, forwardedRef) {
|
|
|
156
186
|
let pressTarget = null;
|
|
157
187
|
const overlayPressHandlers = {
|
|
158
188
|
onPointerDown: event => {
|
|
159
|
-
if (event.
|
|
189
|
+
if (event.target === event.currentTarget) {
|
|
160
190
|
pressTarget = event.target;
|
|
161
|
-
// Avoids
|
|
162
|
-
// practically useless with its only potential trigger being
|
|
163
|
-
// programmatic focus movement. TODO opt for either removing
|
|
164
|
-
// the hook or enhancing it such that this isn't needed.
|
|
191
|
+
// Avoids focus changing so that focus return works as expected.
|
|
165
192
|
event.preventDefault();
|
|
166
193
|
}
|
|
167
194
|
},
|
|
@@ -180,7 +207,7 @@ function UnforwardedModal(props, forwardedRef) {
|
|
|
180
207
|
if (button === 0 && isSameTarget) onRequestClose();
|
|
181
208
|
}
|
|
182
209
|
};
|
|
183
|
-
|
|
210
|
+
const modal =
|
|
184
211
|
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
185
212
|
(0, _react.createElement)("div", {
|
|
186
213
|
ref: (0, _compose.useMergeRefs)([ref, forwardedRef]),
|
|
@@ -198,7 +225,6 @@ function UnforwardedModal(props, forwardedRef) {
|
|
|
198
225
|
"aria-labelledby": contentLabel ? undefined : headingId,
|
|
199
226
|
"aria-describedby": aria.describedby,
|
|
200
227
|
tabIndex: -1,
|
|
201
|
-
...(shouldCloseOnClickOutside ? focusOutsideProps : {}),
|
|
202
228
|
onKeyDown: onKeyDown
|
|
203
229
|
}, (0, _react.createElement)("div", {
|
|
204
230
|
className: (0, _classnames.default)('components-modal__content', {
|
|
@@ -227,7 +253,10 @@ function UnforwardedModal(props, forwardedRef) {
|
|
|
227
253
|
label: closeButtonLabel || (0, _i18n.__)('Close')
|
|
228
254
|
})), (0, _react.createElement)("div", {
|
|
229
255
|
ref: (0, _compose.useMergeRefs)([childrenContainerRef, focusOnMount === 'firstContentElement' ? focusOnMountRef : null])
|
|
230
|
-
}, children)))))
|
|
256
|
+
}, children)))));
|
|
257
|
+
return (0, _element.createPortal)((0, _react.createElement)(ModalContext.Provider, {
|
|
258
|
+
value: nestedDismissers.current
|
|
259
|
+
}, modal), document.body);
|
|
231
260
|
}
|
|
232
261
|
|
|
233
262
|
/**
|
package/build/modal/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_compose","_i18n","_icons","_dom","ariaHelper","_interopRequireWildcard","_button","_styleProvider","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","openModalCount","UnforwardedModal","props","forwardedRef","bodyOpenClassName","role","title","focusOnMount","shouldCloseOnEsc","shouldCloseOnClickOutside","isDismissible","aria","labelledby","undefined","describedby","onRequestClose","icon","closeButtonLabel","children","style","overlayClassName","className","contentLabel","onKeyDown","isFullScreen","size","headerActions","__experimentalHideHeader","ref","useRef","instanceId","useInstanceId","Modal","headingId","focusOnMountRef","useFocusOnMount","constrainedTabbingRef","useConstrainedTabbing","focusReturnRef","useFocusReturn","focusOutsideProps","useFocusOutside","contentRef","childrenContainerRef","hasScrolledContent","setHasScrolledContent","useState","hasScrollableContent","setHasScrollableContent","sizeClass","isContentScrollable","useCallback","current","closestScrollContainer","getScrollContainer","useEffect","modalize","unmodalize","document","body","classList","add","remove","useLayoutEffect","window","ResizeObserver","resizeObserver","observe","disconnect","handleEscapeKeyDown","event","nativeEvent","isComposing","keyCode","code","defaultPrevented","preventDefault","onContentContainerScroll","e","_e$currentTarget$scro","scrollY","currentTarget","scrollTop","pressTarget","overlayPressHandlers","onPointerDown","isPrimary","target","onPointerUp","button","isSameTarget","createPortal","_react","createElement","useMergeRefs","classnames","tabIndex","onScroll","__","id","onClick","close","label","forwardRef","exports","_default"],"sources":["@wordpress/components/src/modal/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport type { ForwardedRef, KeyboardEvent, UIEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreatePortal,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tforwardRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport {\n\tuseInstanceId,\n\tuseFocusReturn,\n\tuseFocusOnMount,\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseConstrainedTabbing,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { close } from '@wordpress/icons';\nimport { getScrollContainer } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport * as ariaHelper from './aria-helper';\nimport Button from '../button';\nimport StyleProvider from '../style-provider';\nimport type { ModalProps } from './types';\n\n// Used to count the number of open modals.\nlet openModalCount = 0;\n\nfunction UnforwardedModal(\n\tprops: ModalProps,\n\tforwardedRef: ForwardedRef< HTMLDivElement >\n) {\n\tconst {\n\t\tbodyOpenClassName = 'modal-open',\n\t\trole = 'dialog',\n\t\ttitle = null,\n\t\tfocusOnMount = true,\n\t\tshouldCloseOnEsc = true,\n\t\tshouldCloseOnClickOutside = true,\n\t\tisDismissible = true,\n\t\t/* Accessibility. */\n\t\taria = {\n\t\t\tlabelledby: undefined,\n\t\t\tdescribedby: undefined,\n\t\t},\n\t\tonRequestClose,\n\t\ticon,\n\t\tcloseButtonLabel,\n\t\tchildren,\n\t\tstyle,\n\t\toverlayClassName,\n\t\tclassName,\n\t\tcontentLabel,\n\t\tonKeyDown,\n\t\tisFullScreen = false,\n\t\tsize,\n\t\theaderActions = null,\n\t\t__experimentalHideHeader = false,\n\t} = props;\n\n\tconst ref = useRef< HTMLDivElement >();\n\n\tconst instanceId = useInstanceId( Modal );\n\tconst headingId = title\n\t\t? `components-modal-header-${ instanceId }`\n\t\t: aria.labelledby;\n\n\t// The focus hook does not support 'firstContentElement' but this is a valid\n\t// value for the Modal's focusOnMount prop. The following code ensures the focus\n\t// hook will focus the first focusable node within the element to which it is applied.\n\t// When `firstContentElement` is passed as the value of the focusOnMount prop,\n\t// the focus hook is applied to the Modal's content element.\n\t// Otherwise, the focus hook is applied to the Modal's ref. This ensures that the\n\t// focus hook will focus the first element in the Modal's **content** when\n\t// `firstContentElement` is passed.\n\tconst focusOnMountRef = useFocusOnMount(\n\t\tfocusOnMount === 'firstContentElement' ? 'firstElement' : focusOnMount\n\t);\n\tconst constrainedTabbingRef = useConstrainedTabbing();\n\tconst focusReturnRef = useFocusReturn();\n\tconst focusOutsideProps = useFocusOutside( onRequestClose );\n\tconst contentRef = useRef< HTMLDivElement >( null );\n\tconst childrenContainerRef = useRef< HTMLDivElement >( null );\n\n\tconst [ hasScrolledContent, setHasScrolledContent ] = useState( false );\n\tconst [ hasScrollableContent, setHasScrollableContent ] = useState( false );\n\n\tlet sizeClass;\n\tif ( isFullScreen || size === 'fill' ) {\n\t\tsizeClass = 'is-full-screen';\n\t} else if ( size ) {\n\t\tsizeClass = `has-size-${ size }`;\n\t}\n\n\t// Determines whether the Modal content is scrollable and updates the state.\n\tconst isContentScrollable = useCallback( () => {\n\t\tif ( ! contentRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst closestScrollContainer = getScrollContainer( contentRef.current );\n\n\t\tif ( contentRef.current === closestScrollContainer ) {\n\t\t\tsetHasScrollableContent( true );\n\t\t} else {\n\t\t\tsetHasScrollableContent( false );\n\t\t}\n\t}, [ contentRef ] );\n\n\tuseEffect( () => {\n\t\tariaHelper.modalize( ref.current );\n\t\treturn () => ariaHelper.unmodalize();\n\t}, [] );\n\n\tuseEffect( () => {\n\t\topenModalCount++;\n\n\t\tif ( openModalCount === 1 ) {\n\t\t\tdocument.body.classList.add( bodyOpenClassName );\n\t\t}\n\n\t\treturn () => {\n\t\t\topenModalCount--;\n\n\t\t\tif ( openModalCount === 0 ) {\n\t\t\t\tdocument.body.classList.remove( bodyOpenClassName );\n\t\t\t}\n\t\t};\n\t}, [ bodyOpenClassName ] );\n\n\t// Calls the isContentScrollable callback when the Modal children container resizes.\n\tuseLayoutEffect( () => {\n\t\tif ( ! window.ResizeObserver || ! childrenContainerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resizeObserver = new ResizeObserver( isContentScrollable );\n\t\tresizeObserver.observe( childrenContainerRef.current );\n\n\t\tisContentScrollable();\n\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [ isContentScrollable, childrenContainerRef ] );\n\n\tfunction handleEscapeKeyDown( event: KeyboardEvent< HTMLDivElement > ) {\n\t\tif (\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tshouldCloseOnEsc &&\n\t\t\tevent.code === 'Escape' &&\n\t\t\t! event.defaultPrevented\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tif ( onRequestClose ) {\n\t\t\t\tonRequestClose( event );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst onContentContainerScroll = useCallback(\n\t\t( e: UIEvent< HTMLDivElement > ) => {\n\t\t\tconst scrollY = e?.currentTarget?.scrollTop ?? -1;\n\n\t\t\tif ( ! hasScrolledContent && scrollY > 0 ) {\n\t\t\t\tsetHasScrolledContent( true );\n\t\t\t} else if ( hasScrolledContent && scrollY <= 0 ) {\n\t\t\t\tsetHasScrolledContent( false );\n\t\t\t}\n\t\t},\n\t\t[ hasScrolledContent ]\n\t);\n\n\tlet pressTarget: EventTarget | null = null;\n\tconst overlayPressHandlers: {\n\t\tonPointerDown: React.PointerEventHandler< HTMLDivElement >;\n\t\tonPointerUp: React.PointerEventHandler< HTMLDivElement >;\n\t} = {\n\t\tonPointerDown: ( event ) => {\n\t\t\tif ( event.isPrimary && event.target === event.currentTarget ) {\n\t\t\t\tpressTarget = event.target;\n\t\t\t\t// Avoids loss of focus yet also leaves `useFocusOutside`\n\t\t\t\t// practically useless with its only potential trigger being\n\t\t\t\t// programmatic focus movement. TODO opt for either removing\n\t\t\t\t// the hook or enhancing it such that this isn't needed.\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t// Closes the modal with two exceptions. 1. Opening the context menu on\n\t\t// the overlay. 2. Pressing on the overlay then dragging the pointer\n\t\t// over the modal and releasing. Due to the modal being a child of the\n\t\t// overlay, such a gesture is a `click` on the overlay and cannot be\n\t\t// excepted by a `click` handler. Thus the tactic of handling\n\t\t// `pointerup` and comparing its target to that of the `pointerdown`.\n\t\tonPointerUp: ( { target, button } ) => {\n\t\t\tconst isSameTarget = target === pressTarget;\n\t\t\tpressTarget = null;\n\t\t\tif ( button === 0 && isSameTarget ) onRequestClose();\n\t\t},\n\t};\n\n\treturn createPortal(\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-modal__screen-overlay',\n\t\t\t\toverlayClassName\n\t\t\t) }\n\t\t\tonKeyDown={ handleEscapeKeyDown }\n\t\t\t{ ...( shouldCloseOnClickOutside ? overlayPressHandlers : {} ) }\n\t\t>\n\t\t\t<StyleProvider document={ document }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'components-modal__frame',\n\t\t\t\t\t\tsizeClass,\n\t\t\t\t\t\tclassName\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\tconstrainedTabbingRef,\n\t\t\t\t\t\tfocusReturnRef,\n\t\t\t\t\t\tfocusOnMount !== 'firstContentElement'\n\t\t\t\t\t\t\t? focusOnMountRef\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t] ) }\n\t\t\t\t\trole={ role }\n\t\t\t\t\taria-label={ contentLabel }\n\t\t\t\t\taria-labelledby={ contentLabel ? undefined : headingId }\n\t\t\t\t\taria-describedby={ aria.describedby }\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\t{ ...( shouldCloseOnClickOutside\n\t\t\t\t\t\t? focusOutsideProps\n\t\t\t\t\t\t: {} ) }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames( 'components-modal__content', {\n\t\t\t\t\t\t\t'hide-header': __experimentalHideHeader,\n\t\t\t\t\t\t\t'is-scrollable': hasScrollableContent,\n\t\t\t\t\t\t\t'has-scrolled-content': hasScrolledContent,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\trole=\"document\"\n\t\t\t\t\t\tonScroll={ onContentContainerScroll }\n\t\t\t\t\t\tref={ contentRef }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\thasScrollableContent\n\t\t\t\t\t\t\t\t? __( 'Scrollable section' )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttabIndex={ hasScrollableContent ? 0 : undefined }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! __experimentalHideHeader && (\n\t\t\t\t\t\t\t<div className=\"components-modal__header\">\n\t\t\t\t\t\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__icon-container\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t\t\t<h1\n\t\t\t\t\t\t\t\t\t\t\tid={ headingId }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__header-heading\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{ headerActions }\n\t\t\t\t\t\t\t\t{ isDismissible && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\tcloseButtonLabel || __( 'Close' )\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</div>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\t\t\tchildrenContainerRef,\n\t\t\t\t\t\t\t\tfocusOnMount === 'firstContentElement'\n\t\t\t\t\t\t\t\t\t? focusOnMountRef\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t] ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n\n/**\n * Modals give users information and choices related to a task they’re trying to\n * accomplish. They can contain critical information, require decisions, or\n * involve multiple tasks.\n *\n * ```jsx\n * import { Button, Modal } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyModal = () => {\n * const [ isOpen, setOpen ] = useState( false );\n * const openModal = () => setOpen( true );\n * const closeModal = () => setOpen( false );\n *\n * return (\n * <>\n * <Button variant=\"secondary\" onClick={ openModal }>\n * Open Modal\n * </Button>\n * { isOpen && (\n * <Modal title=\"This is my modal\" onRequestClose={ closeModal }>\n * <Button variant=\"secondary\" onClick={ closeModal }>\n * My custom close button\n * </Button>\n * </Modal>\n * ) }\n * </>\n * );\n * };\n * ```\n */\nexport const Modal = forwardRef( UnforwardedModal );\n\nexport default Modal;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_compose","_i18n","_icons","_dom","ariaHelper","_interopRequireWildcard","_button","_styleProvider","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","level0Dismissers","ModalContext","createContext","isBodyOpenClassActive","UnforwardedModal","props","forwardedRef","bodyOpenClassName","role","title","focusOnMount","shouldCloseOnEsc","shouldCloseOnClickOutside","isDismissible","aria","labelledby","undefined","describedby","onRequestClose","icon","closeButtonLabel","children","style","overlayClassName","className","contentLabel","onKeyDown","isFullScreen","size","headerActions","__experimentalHideHeader","ref","useRef","instanceId","useInstanceId","Modal","headingId","focusOnMountRef","useFocusOnMount","constrainedTabbingRef","useConstrainedTabbing","focusReturnRef","useFocusReturn","contentRef","childrenContainerRef","hasScrolledContent","setHasScrolledContent","useState","hasScrollableContent","setHasScrollableContent","sizeClass","isContentScrollable","useCallback","current","closestScrollContainer","getScrollContainer","useEffect","modalize","unmodalize","refOnRequestClose","dismissers","useContext","nestedDismissers","push","first","second","nested","shift","isLevel0","document","body","classList","add","length","remove","useLayoutEffect","window","ResizeObserver","resizeObserver","observe","disconnect","handleEscapeKeyDown","event","nativeEvent","isComposing","keyCode","code","defaultPrevented","preventDefault","onContentContainerScroll","e","_e$currentTarget$scro","scrollY","currentTarget","scrollTop","pressTarget","overlayPressHandlers","onPointerDown","target","onPointerUp","button","isSameTarget","modal","_react","createElement","useMergeRefs","classnames","tabIndex","onScroll","__","id","onClick","close","label","createPortal","Provider","value","forwardRef","exports","_default"],"sources":["@wordpress/components/src/modal/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport type {\n\tForwardedRef,\n\tKeyboardEvent,\n\tMutableRefObject,\n\tUIEvent,\n} from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreatePortal,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n\tforwardRef,\n\tuseLayoutEffect,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport {\n\tuseInstanceId,\n\tuseFocusReturn,\n\tuseFocusOnMount,\n\tuseConstrainedTabbing,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { close } from '@wordpress/icons';\nimport { getScrollContainer } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport * as ariaHelper from './aria-helper';\nimport Button from '../button';\nimport StyleProvider from '../style-provider';\nimport type { ModalProps } from './types';\n\n// Used to track and dismiss the prior modal when another opens unless nested.\nconst level0Dismissers: MutableRefObject<\n\tModalProps[ 'onRequestClose' ] | undefined\n>[] = [];\nconst ModalContext = createContext( level0Dismissers );\n\nlet isBodyOpenClassActive = false;\n\nfunction UnforwardedModal(\n\tprops: ModalProps,\n\tforwardedRef: ForwardedRef< HTMLDivElement >\n) {\n\tconst {\n\t\tbodyOpenClassName = 'modal-open',\n\t\trole = 'dialog',\n\t\ttitle = null,\n\t\tfocusOnMount = true,\n\t\tshouldCloseOnEsc = true,\n\t\tshouldCloseOnClickOutside = true,\n\t\tisDismissible = true,\n\t\t/* Accessibility. */\n\t\taria = {\n\t\t\tlabelledby: undefined,\n\t\t\tdescribedby: undefined,\n\t\t},\n\t\tonRequestClose,\n\t\ticon,\n\t\tcloseButtonLabel,\n\t\tchildren,\n\t\tstyle,\n\t\toverlayClassName,\n\t\tclassName,\n\t\tcontentLabel,\n\t\tonKeyDown,\n\t\tisFullScreen = false,\n\t\tsize,\n\t\theaderActions = null,\n\t\t__experimentalHideHeader = false,\n\t} = props;\n\n\tconst ref = useRef< HTMLDivElement >();\n\n\tconst instanceId = useInstanceId( Modal );\n\tconst headingId = title\n\t\t? `components-modal-header-${ instanceId }`\n\t\t: aria.labelledby;\n\n\t// The focus hook does not support 'firstContentElement' but this is a valid\n\t// value for the Modal's focusOnMount prop. The following code ensures the focus\n\t// hook will focus the first focusable node within the element to which it is applied.\n\t// When `firstContentElement` is passed as the value of the focusOnMount prop,\n\t// the focus hook is applied to the Modal's content element.\n\t// Otherwise, the focus hook is applied to the Modal's ref. This ensures that the\n\t// focus hook will focus the first element in the Modal's **content** when\n\t// `firstContentElement` is passed.\n\tconst focusOnMountRef = useFocusOnMount(\n\t\tfocusOnMount === 'firstContentElement' ? 'firstElement' : focusOnMount\n\t);\n\tconst constrainedTabbingRef = useConstrainedTabbing();\n\tconst focusReturnRef = useFocusReturn();\n\tconst contentRef = useRef< HTMLDivElement >( null );\n\tconst childrenContainerRef = useRef< HTMLDivElement >( null );\n\n\tconst [ hasScrolledContent, setHasScrolledContent ] = useState( false );\n\tconst [ hasScrollableContent, setHasScrollableContent ] = useState( false );\n\n\tlet sizeClass;\n\tif ( isFullScreen || size === 'fill' ) {\n\t\tsizeClass = 'is-full-screen';\n\t} else if ( size ) {\n\t\tsizeClass = `has-size-${ size }`;\n\t}\n\n\t// Determines whether the Modal content is scrollable and updates the state.\n\tconst isContentScrollable = useCallback( () => {\n\t\tif ( ! contentRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst closestScrollContainer = getScrollContainer( contentRef.current );\n\n\t\tif ( contentRef.current === closestScrollContainer ) {\n\t\t\tsetHasScrollableContent( true );\n\t\t} else {\n\t\t\tsetHasScrollableContent( false );\n\t\t}\n\t}, [ contentRef ] );\n\n\t// Accessibly isolates/unisolates the modal.\n\tuseEffect( () => {\n\t\tariaHelper.modalize( ref.current );\n\t\treturn () => ariaHelper.unmodalize();\n\t}, [] );\n\n\t// Keeps a fresh ref for the subsequent effect.\n\tconst refOnRequestClose = useRef< ModalProps[ 'onRequestClose' ] >();\n\tuseEffect( () => {\n\t\trefOnRequestClose.current = onRequestClose;\n\t}, [ onRequestClose ] );\n\n\t// The list of `onRequestClose` callbacks of open (non-nested) Modals. Only\n\t// one should remain open at a time and the list enables closing prior ones.\n\tconst dismissers = useContext( ModalContext );\n\t// Used for the tracking and dismissing any nested modals.\n\tconst nestedDismissers = useRef< typeof level0Dismissers >( [] );\n\n\t// Updates the stack tracking open modals at this level and calls\n\t// onRequestClose for any prior and/or nested modals as applicable.\n\tuseEffect( () => {\n\t\tdismissers.push( refOnRequestClose );\n\t\tconst [ first, second ] = dismissers;\n\t\tif ( second ) first?.current?.();\n\n\t\tconst nested = nestedDismissers.current;\n\t\treturn () => {\n\t\t\tnested[ 0 ]?.current?.();\n\t\t\tdismissers.shift();\n\t\t};\n\t}, [ dismissers ] );\n\n\tconst isLevel0 = dismissers === level0Dismissers;\n\t// Adds/removes the value of bodyOpenClassName to body element.\n\tuseEffect( () => {\n\t\tif ( ! isBodyOpenClassActive ) {\n\t\t\tisBodyOpenClassActive = true;\n\t\t\tdocument.body.classList.add( bodyOpenClassName );\n\t\t}\n\t\treturn () => {\n\t\t\tif ( isLevel0 && dismissers.length === 0 ) {\n\t\t\t\tdocument.body.classList.remove( bodyOpenClassName );\n\t\t\t\tisBodyOpenClassActive = false;\n\t\t\t}\n\t\t};\n\t}, [ bodyOpenClassName, dismissers, isLevel0 ] );\n\n\t// Calls the isContentScrollable callback when the Modal children container resizes.\n\tuseLayoutEffect( () => {\n\t\tif ( ! window.ResizeObserver || ! childrenContainerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst resizeObserver = new ResizeObserver( isContentScrollable );\n\t\tresizeObserver.observe( childrenContainerRef.current );\n\n\t\tisContentScrollable();\n\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [ isContentScrollable, childrenContainerRef ] );\n\n\tfunction handleEscapeKeyDown( event: KeyboardEvent< HTMLDivElement > ) {\n\t\tif (\n\t\t\t// Ignore keydowns from IMEs\n\t\t\tevent.nativeEvent.isComposing ||\n\t\t\t// Workaround for Mac Safari where the final Enter/Backspace of an IME composition\n\t\t\t// is `isComposing=false`, even though it's technically still part of the composition.\n\t\t\t// These can only be detected by keyCode.\n\t\t\tevent.keyCode === 229\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tshouldCloseOnEsc &&\n\t\t\tevent.code === 'Escape' &&\n\t\t\t! event.defaultPrevented\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tif ( onRequestClose ) {\n\t\t\t\tonRequestClose( event );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst onContentContainerScroll = useCallback(\n\t\t( e: UIEvent< HTMLDivElement > ) => {\n\t\t\tconst scrollY = e?.currentTarget?.scrollTop ?? -1;\n\n\t\t\tif ( ! hasScrolledContent && scrollY > 0 ) {\n\t\t\t\tsetHasScrolledContent( true );\n\t\t\t} else if ( hasScrolledContent && scrollY <= 0 ) {\n\t\t\t\tsetHasScrolledContent( false );\n\t\t\t}\n\t\t},\n\t\t[ hasScrolledContent ]\n\t);\n\n\tlet pressTarget: EventTarget | null = null;\n\tconst overlayPressHandlers: {\n\t\tonPointerDown: React.PointerEventHandler< HTMLDivElement >;\n\t\tonPointerUp: React.PointerEventHandler< HTMLDivElement >;\n\t} = {\n\t\tonPointerDown: ( event ) => {\n\t\t\tif ( event.target === event.currentTarget ) {\n\t\t\t\tpressTarget = event.target;\n\t\t\t\t// Avoids focus changing so that focus return works as expected.\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t// Closes the modal with two exceptions. 1. Opening the context menu on\n\t\t// the overlay. 2. Pressing on the overlay then dragging the pointer\n\t\t// over the modal and releasing. Due to the modal being a child of the\n\t\t// overlay, such a gesture is a `click` on the overlay and cannot be\n\t\t// excepted by a `click` handler. Thus the tactic of handling\n\t\t// `pointerup` and comparing its target to that of the `pointerdown`.\n\t\tonPointerUp: ( { target, button } ) => {\n\t\t\tconst isSameTarget = target === pressTarget;\n\t\t\tpressTarget = null;\n\t\t\tif ( button === 0 && isSameTarget ) onRequestClose();\n\t\t},\n\t};\n\n\tconst modal = (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-modal__screen-overlay',\n\t\t\t\toverlayClassName\n\t\t\t) }\n\t\t\tonKeyDown={ handleEscapeKeyDown }\n\t\t\t{ ...( shouldCloseOnClickOutside ? overlayPressHandlers : {} ) }\n\t\t>\n\t\t\t<StyleProvider document={ document }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'components-modal__frame',\n\t\t\t\t\t\tsizeClass,\n\t\t\t\t\t\tclassName\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\tconstrainedTabbingRef,\n\t\t\t\t\t\tfocusReturnRef,\n\t\t\t\t\t\tfocusOnMount !== 'firstContentElement'\n\t\t\t\t\t\t\t? focusOnMountRef\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t] ) }\n\t\t\t\t\trole={ role }\n\t\t\t\t\taria-label={ contentLabel }\n\t\t\t\t\taria-labelledby={ contentLabel ? undefined : headingId }\n\t\t\t\t\taria-describedby={ aria.describedby }\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames( 'components-modal__content', {\n\t\t\t\t\t\t\t'hide-header': __experimentalHideHeader,\n\t\t\t\t\t\t\t'is-scrollable': hasScrollableContent,\n\t\t\t\t\t\t\t'has-scrolled-content': hasScrolledContent,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\trole=\"document\"\n\t\t\t\t\t\tonScroll={ onContentContainerScroll }\n\t\t\t\t\t\tref={ contentRef }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\thasScrollableContent\n\t\t\t\t\t\t\t\t? __( 'Scrollable section' )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttabIndex={ hasScrollableContent ? 0 : undefined }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! __experimentalHideHeader && (\n\t\t\t\t\t\t\t<div className=\"components-modal__header\">\n\t\t\t\t\t\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__icon-container\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t\t\t<h1\n\t\t\t\t\t\t\t\t\t\t\tid={ headingId }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__header-heading\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{ headerActions }\n\t\t\t\t\t\t\t\t{ isDismissible && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\tcloseButtonLabel || __( 'Close' )\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</div>\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\t\t\tchildrenContainerRef,\n\t\t\t\t\t\t\t\tfocusOnMount === 'firstContentElement'\n\t\t\t\t\t\t\t\t\t? focusOnMountRef\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t] ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t</div>\n\t);\n\n\treturn createPortal(\n\t\t<ModalContext.Provider value={ nestedDismissers.current }>\n\t\t\t{ modal }\n\t\t</ModalContext.Provider>,\n\t\tdocument.body\n\t);\n}\n\n/**\n * Modals give users information and choices related to a task they’re trying to\n * accomplish. They can contain critical information, require decisions, or\n * involve multiple tasks.\n *\n * ```jsx\n * import { Button, Modal } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyModal = () => {\n * const [ isOpen, setOpen ] = useState( false );\n * const openModal = () => setOpen( true );\n * const closeModal = () => setOpen( false );\n *\n * return (\n * <>\n * <Button variant=\"secondary\" onClick={ openModal }>\n * Open Modal\n * </Button>\n * { isOpen && (\n * <Modal title=\"This is my modal\" onRequestClose={ closeModal }>\n * <Button variant=\"secondary\" onClick={ closeModal }>\n * My custom close button\n * </Button>\n * </Modal>\n * ) }\n * </>\n * );\n * };\n * ```\n */\nexport const Modal = forwardRef( UnforwardedModal );\n\nexport default Modal;\n"],"mappings":"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"}
|
|
@@ -92,6 +92,10 @@ function ColorPickerPopover({
|
|
|
92
92
|
const popoverProps = (0, _element.useMemo)(() => ({
|
|
93
93
|
shift: true,
|
|
94
94
|
offset: 20,
|
|
95
|
+
// Disabling resize as it would otherwise cause the popover to show
|
|
96
|
+
// scrollbars while dragging the color picker's handle close to the
|
|
97
|
+
// popover edge.
|
|
98
|
+
resize: false,
|
|
95
99
|
placement: 'left-start',
|
|
96
100
|
...receivedPopoverProps,
|
|
97
101
|
className: (0, _classnames.default)('components-palette-edit__popover', receivedPopoverProps?.className)
|