@wordpress/components 35.0.0 → 35.1.1-next.v.202606191442.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 +47 -1
- package/build/alignment-matrix-control/cell.cjs +1 -1
- package/build/alignment-matrix-control/cell.cjs.map +2 -2
- package/build/alignment-matrix-control/index.cjs +1 -1
- package/build/alignment-matrix-control/index.cjs.map +2 -2
- package/build/angle-picker-control/angle-circle.cjs +1 -1
- package/build/angle-picker-control/angle-circle.cjs.map +2 -2
- package/build/angle-picker-control/index.cjs +2 -2
- package/build/autocomplete/get-autocomplete-match.cjs.map +1 -1
- package/build/autocomplete/index.cjs.map +1 -1
- package/build/base-control/styles/base-control-styles.cjs +6 -6
- package/build/base-control/styles/base-control-styles.cjs.map +2 -2
- package/build/border-control/styles.cjs +17 -14
- package/build/border-control/styles.cjs.map +2 -2
- package/build/button/index.cjs +3 -7
- package/build/button/index.cjs.map +2 -2
- package/build/card/card-divider/hook.cjs.map +2 -2
- package/build/color-palette/index.cjs +3 -0
- package/build/color-palette/index.cjs.map +2 -2
- package/build/color-picker/component.cjs.map +1 -1
- package/build/custom-gradient-picker/gradient-bar/index.cjs.map +2 -2
- package/build/date-time/utils.cjs.map +1 -1
- package/build/draggable/index.cjs +1 -1
- package/build/draggable/index.cjs.map +2 -2
- package/build/external-link/index.cjs +1 -1
- package/build/external-link/index.cjs.map +1 -1
- package/build/menu/popover.cjs.map +1 -1
- package/build/menu/styles.cjs +17 -17
- package/build/menu/styles.cjs.map +2 -2
- package/build/modal/index.cjs.map +1 -1
- package/build/modal/use-modal-exit-animation.cjs +37 -52
- package/build/modal/use-modal-exit-animation.cjs.map +2 -2
- package/build/navigable-container/container.cjs +15 -21
- package/build/navigable-container/container.cjs.map +2 -2
- package/build/palette-edit/index.cjs +1 -1
- package/build/progress-bar/index.cjs +1 -1
- package/build/progress-bar/index.cjs.map +2 -2
- package/build/query-controls/index.cjs +2 -2
- package/build/query-controls/index.cjs.map +2 -2
- package/build/range-control/index.cjs.map +1 -1
- package/build/sandbox/index.cjs +7 -1
- package/build/sandbox/index.cjs.map +2 -2
- package/build/snackbar/index.cjs +1 -1
- package/build/spinner/styles.cjs +4 -4
- package/build/spinner/styles.cjs.map +2 -2
- package/build/tabs/index.cjs +0 -18
- package/build/tabs/index.cjs.map +2 -2
- package/build/tabs/tablist.cjs +5 -15
- package/build/tabs/tablist.cjs.map +2 -2
- package/build/tools-panel/styles.cjs +13 -13
- package/build/tools-panel/styles.cjs.map +2 -2
- package/build/tools-panel/tools-panel/hook.cjs.map +1 -1
- package/build/tree-select/index.cjs +1 -1
- package/build/tree-select/index.cjs.map +1 -1
- package/build/truncate/utils.cjs +1 -1
- package/build/truncate/utils.cjs.map +1 -1
- package/build/unit-control/utils.cjs +33 -35
- package/build/unit-control/utils.cjs.map +2 -2
- package/build/utils/colors-values.cjs +12 -12
- package/build/utils/colors-values.cjs.map +2 -2
- package/build/utils/config-values.cjs +2 -2
- package/build/utils/config-values.cjs.map +2 -2
- package/build/utils/dropdown-motion.cjs.map +2 -2
- package/build/utils/strings.cjs.map +1 -1
- package/build-module/alignment-matrix-control/cell.mjs +1 -1
- package/build-module/alignment-matrix-control/cell.mjs.map +2 -2
- package/build-module/alignment-matrix-control/index.mjs +1 -1
- package/build-module/alignment-matrix-control/index.mjs.map +2 -2
- package/build-module/angle-picker-control/angle-circle.mjs +1 -1
- package/build-module/angle-picker-control/angle-circle.mjs.map +2 -2
- package/build-module/angle-picker-control/index.mjs +2 -2
- package/build-module/autocomplete/get-autocomplete-match.mjs.map +1 -1
- package/build-module/autocomplete/index.mjs.map +1 -1
- package/build-module/base-control/styles/base-control-styles.mjs +6 -6
- package/build-module/base-control/styles/base-control-styles.mjs.map +2 -2
- package/build-module/border-control/styles.mjs +17 -14
- package/build-module/border-control/styles.mjs.map +2 -2
- package/build-module/button/index.mjs +2 -5
- package/build-module/button/index.mjs.map +2 -2
- package/build-module/card/card-divider/hook.mjs.map +2 -2
- package/build-module/color-palette/index.mjs +3 -0
- package/build-module/color-palette/index.mjs.map +2 -2
- package/build-module/color-picker/component.mjs.map +1 -1
- package/build-module/custom-gradient-picker/gradient-bar/index.mjs.map +2 -2
- package/build-module/date-time/utils.mjs.map +1 -1
- package/build-module/draggable/index.mjs +1 -1
- package/build-module/draggable/index.mjs.map +2 -2
- package/build-module/external-link/index.mjs +1 -1
- package/build-module/external-link/index.mjs.map +1 -1
- package/build-module/menu/popover.mjs.map +1 -1
- package/build-module/menu/styles.mjs +17 -17
- package/build-module/menu/styles.mjs.map +2 -2
- package/build-module/modal/index.mjs.map +1 -1
- package/build-module/modal/use-modal-exit-animation.mjs +37 -52
- package/build-module/modal/use-modal-exit-animation.mjs.map +2 -2
- package/build-module/navigable-container/container.mjs +16 -22
- package/build-module/navigable-container/container.mjs.map +2 -2
- package/build-module/palette-edit/index.mjs +1 -1
- package/build-module/progress-bar/index.mjs +1 -1
- package/build-module/progress-bar/index.mjs.map +2 -2
- package/build-module/query-controls/index.mjs +2 -2
- package/build-module/query-controls/index.mjs.map +2 -2
- package/build-module/range-control/index.mjs.map +1 -1
- package/build-module/sandbox/index.mjs +3 -1
- package/build-module/sandbox/index.mjs.map +2 -2
- package/build-module/snackbar/index.mjs +1 -1
- package/build-module/spinner/styles.mjs +4 -4
- package/build-module/spinner/styles.mjs.map +2 -2
- package/build-module/tabs/index.mjs +1 -19
- package/build-module/tabs/index.mjs.map +2 -2
- package/build-module/tabs/tablist.mjs +5 -15
- package/build-module/tabs/tablist.mjs.map +2 -2
- package/build-module/tools-panel/styles.mjs +13 -13
- package/build-module/tools-panel/styles.mjs.map +2 -2
- package/build-module/tools-panel/tools-panel/hook.mjs.map +1 -1
- package/build-module/tree-select/index.mjs +1 -1
- package/build-module/tree-select/index.mjs.map +1 -1
- package/build-module/truncate/utils.mjs +1 -1
- package/build-module/truncate/utils.mjs.map +1 -1
- package/build-module/unit-control/utils.mjs +33 -35
- package/build-module/unit-control/utils.mjs.map +2 -2
- package/build-module/utils/colors-values.mjs +12 -12
- package/build-module/utils/colors-values.mjs.map +2 -2
- package/build-module/utils/config-values.mjs +2 -2
- package/build-module/utils/config-values.mjs.map +2 -2
- package/build-module/utils/dropdown-motion.mjs.map +2 -2
- package/build-module/utils/strings.mjs.map +1 -1
- package/build-style/style-rtl.css +122 -91
- package/build-style/style.css +122 -91
- package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
- package/build-types/border-control/styles.d.ts.map +1 -1
- package/build-types/button/index.d.ts +0 -2
- package/build-types/button/index.d.ts.map +1 -1
- package/build-types/card/card-divider/hook.d.ts +1 -274
- package/build-types/card/card-divider/hook.d.ts.map +1 -1
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/composite/stories/index.story.d.ts.map +1 -1
- package/build-types/confirm-dialog/stories/index.story.d.ts.map +1 -1
- package/build-types/custom-gradient-picker/gradient-bar/index.d.ts.map +1 -1
- package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
- package/build-types/menu/styles.d.ts.map +1 -1
- package/build-types/menu/types.d.ts +2 -2
- package/build-types/navigable-container/container.d.ts.map +1 -1
- package/build-types/sandbox/index.d.ts +15 -0
- package/build-types/sandbox/index.d.ts.map +1 -1
- package/build-types/spinner/styles.d.ts.map +1 -1
- package/build-types/tabs/index.d.ts.map +1 -1
- package/build-types/tabs/tablist.d.ts.map +1 -1
- package/build-types/tools-panel/styles.d.ts.map +1 -1
- package/build-types/unit-control/utils.d.ts.map +1 -1
- package/build-types/utils/colors-values.d.ts.map +1 -1
- package/build-types/utils/dropdown-motion.d.ts.map +1 -1
- package/build-types/validated-form-controls/components/combobox-control.d.ts +1 -1
- package/package.json +44 -36
- package/src/angle-picker-control/angle-circle.tsx +3 -3
- package/src/base-control/README.md +2 -2
- package/src/base-control/styles/base-control-styles.ts +1 -0
- package/src/border-control/styles.ts +1 -0
- package/src/button/index.tsx +2 -4
- package/src/button/style.scss +3 -3
- package/src/card/card/README.md +4 -4
- package/src/card/card-divider/hook.ts +5 -1
- package/src/card/test/__snapshots__/index.tsx.snap +3 -3
- package/src/checkbox-control/README.md +1 -1
- package/src/clipboard-button/README.md +4 -4
- package/src/color-palette/index.tsx +5 -0
- package/src/color-palette/test/index.tsx +30 -0
- package/src/combobox-control/README.md +1 -1
- package/src/composite/stories/index.story.tsx +5 -0
- package/src/confirm-dialog/README.md +1 -1
- package/src/confirm-dialog/stories/index.story.tsx +1 -0
- package/src/custom-gradient-picker/gradient-bar/index.tsx +1 -1
- package/src/dropdown/stories/index.story.tsx +5 -0
- package/src/dropdown-menu/style.scss +1 -1
- package/src/external-link/style.scss +4 -4
- package/src/flex/flex/README.md +1 -1
- package/src/form-toggle/style.scss +1 -1
- package/src/heading/test/__snapshots__/index.tsx.snap +4 -4
- package/src/menu/README.md +2 -2
- package/src/menu/styles.ts +2 -0
- package/src/menu/test/index.tsx +120 -87
- package/src/menu/types.ts +2 -2
- package/src/modal/style.scss +1 -1
- package/src/modal/use-modal-exit-animation.ts +2 -2
- package/src/navigable-container/container.tsx +22 -30
- package/src/notice/style.scss +11 -13
- package/src/panel/README.md +2 -0
- package/src/panel/stories/index.story.tsx +2 -2
- package/src/panel/style.scss +1 -1
- package/src/popover/README.md +1 -1
- package/src/radio-control/style.scss +1 -1
- package/src/sandbox/index.tsx +18 -1
- package/src/sandbox/test/index.tsx +44 -1
- package/src/scrollable/README.md +1 -1
- package/src/spinner/styles.ts +1 -0
- package/src/tab-panel/style.scss +6 -6
- package/src/tabs/index.tsx +1 -26
- package/src/tabs/tablist.tsx +5 -21
- package/src/tabs/test/index.tsx +16 -27
- package/src/text/test/__snapshots__/index.tsx.snap +3 -3
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +34 -26
- package/src/toolbar/toolbar-group/style.scss +2 -2
- package/src/tools-panel/styles.ts +1 -1
- package/src/tooltip/stories/index.story.tsx +2 -2
- package/src/tooltip/style.scss +1 -1
- package/src/unit-control/utils.ts +33 -52
- package/src/utils/colors-values.js +36 -16
- package/src/utils/config-values.js +2 -2
- package/src/utils/dropdown-motion.ts +6 -4
- package/src/utils/theme-variables.scss +18 -13
- package/build/mobile/image/constants.cjs +0 -34
- package/build/mobile/image/constants.cjs.map +0 -7
- package/build-module/mobile/image/constants.mjs +0 -9
- package/build-module/mobile/image/constants.mjs.map +0 -7
- package/build-types/mobile/image/constants.d.ts +0 -5
- package/build-types/mobile/image/constants.d.ts.map +0 -1
- package/src/autocomplete/autocompleter-ui.native.js +0 -211
- package/src/autocomplete/background-view.android.js +0 -25
- package/src/autocomplete/background-view.ios.js +0 -23
- package/src/autocomplete/style.android.scss +0 -7
- package/src/autocomplete/style.native.scss +0 -74
- package/src/base-control/index.native.js +0 -14
- package/src/button/index.native.js +0 -236
- package/src/button/style.native.scss +0 -9
- package/src/color-control/index.native.js +0 -24
- package/src/color-indicator/index.native.js +0 -80
- package/src/color-indicator/style.native.scss +0 -51
- package/src/color-palette/index.native.js +0 -360
- package/src/color-palette/style.native.scss +0 -49
- package/src/color-picker/hsv-color-picker.native.js +0 -88
- package/src/color-picker/hue-picker.native.js +0 -198
- package/src/color-picker/index.native.js +0 -215
- package/src/color-picker/saturation-picker.native.js +0 -167
- package/src/color-picker/style.native.scss +0 -87
- package/src/custom-gradient-picker/index.native.js +0 -110
- package/src/custom-gradient-picker/style.native.scss +0 -3
- package/src/dashicon/index.native.js +0 -18
- package/src/disabled/index.native.js +0 -10
- package/src/draggable/index.native.js +0 -234
- package/src/draggable/style.native.scss +0 -3
- package/src/draggable/test/index.native.js +0 -138
- package/src/dropdown/index.native.js +0 -59
- package/src/dropdown-menu/index.native.js +0 -152
- package/src/external-link/index.native.js +0 -25
- package/src/focal-point-picker/focal-point.native.js +0 -30
- package/src/focal-point-picker/index.native.js +0 -281
- package/src/focal-point-picker/tooltip/index.native.js +0 -144
- package/src/focal-point-picker/tooltip/style.native.scss +0 -42
- package/src/font-size-picker/index.native.js +0 -190
- package/src/font-size-picker/style.native.scss +0 -6
- package/src/footer-message-control/index.native.js +0 -14
- package/src/higher-order/with-focus-outside/index.native.js +0 -38
- package/src/index.native.js +0 -134
- package/src/keyboard-shortcuts/index.native.js +0 -2
- package/src/mobile/README.md +0 -3
- package/src/mobile/autocompletion-items.native.js +0 -11
- package/src/mobile/badge/README.md +0 -31
- package/src/mobile/badge/index.native.js +0 -27
- package/src/mobile/badge/style.scss +0 -18
- package/src/mobile/bottom-sheet/borderStyles.android.scss +0 -8
- package/src/mobile/bottom-sheet/borderStyles.ios.scss +0 -9
- package/src/mobile/bottom-sheet/bottom-sheet-context.native.js +0 -40
- package/src/mobile/bottom-sheet/bottom-sheet-navigation/README.md +0 -101
- package/src/mobile/bottom-sheet/bottom-sheet-navigation/bottom-sheet-navigation-context.native.js +0 -16
- package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-container.native.js +0 -193
- package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +0 -146
- package/src/mobile/bottom-sheet/bottom-sheet-navigation/styles.native.scss +0 -11
- package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +0 -197
- package/src/mobile/bottom-sheet/button.native.js +0 -19
- package/src/mobile/bottom-sheet/cell.native.js +0 -464
- package/src/mobile/bottom-sheet/cellStyles.android.scss +0 -15
- package/src/mobile/bottom-sheet/cellStyles.ios.scss +0 -19
- package/src/mobile/bottom-sheet/chevron-back.native.js +0 -18
- package/src/mobile/bottom-sheet/color-cell.native.js +0 -35
- package/src/mobile/bottom-sheet/cycle-picker-cell.native.js +0 -31
- package/src/mobile/bottom-sheet/footer-message-cell.native.js +0 -23
- package/src/mobile/bottom-sheet/footer-message-link/README.md +0 -37
- package/src/mobile/bottom-sheet/footer-message-link/footer-message-link.native.js +0 -26
- package/src/mobile/bottom-sheet/footer-message-link/styles.native.scss +0 -7
- package/src/mobile/bottom-sheet/index.native.js +0 -646
- package/src/mobile/bottom-sheet/keyboard-avoiding-view.native.js +0 -125
- package/src/mobile/bottom-sheet/link-cell.native.js +0 -35
- package/src/mobile/bottom-sheet/link-suggestion-item-cell.native.js +0 -92
- package/src/mobile/bottom-sheet/link-suggestion-styles.native.scss +0 -27
- package/src/mobile/bottom-sheet/lock-icon/index.native.js +0 -19
- package/src/mobile/bottom-sheet/lock-icon/styles.native.scss +0 -8
- package/src/mobile/bottom-sheet/nav-bar/README.md +0 -63
- package/src/mobile/bottom-sheet/nav-bar/action-button.native.js +0 -30
- package/src/mobile/bottom-sheet/nav-bar/apply-button.native.js +0 -53
- package/src/mobile/bottom-sheet/nav-bar/back-button.native.js +0 -94
- package/src/mobile/bottom-sheet/nav-bar/heading.native.js +0 -33
- package/src/mobile/bottom-sheet/nav-bar/index.native.js +0 -23
- package/src/mobile/bottom-sheet/nav-bar/styles.native.scss +0 -69
- package/src/mobile/bottom-sheet/picker-cell.native.js +0 -40
- package/src/mobile/bottom-sheet/radio-cell.native.js +0 -39
- package/src/mobile/bottom-sheet/range-cell.native.js +0 -274
- package/src/mobile/bottom-sheet/range-cell.native.scss +0 -40
- package/src/mobile/bottom-sheet/range-text-input.native.js +0 -248
- package/src/mobile/bottom-sheet/ripple.native.js +0 -83
- package/src/mobile/bottom-sheet/ripple.native.scss +0 -11
- package/src/mobile/bottom-sheet/stepper-cell/index.native.js +0 -264
- package/src/mobile/bottom-sheet/stepper-cell/stepper.android.js +0 -78
- package/src/mobile/bottom-sheet/stepper-cell/stepper.ios.js +0 -64
- package/src/mobile/bottom-sheet/stepper-cell/style.native.scss +0 -89
- package/src/mobile/bottom-sheet/styles.native.scss +0 -333
- package/src/mobile/bottom-sheet/sub-sheet/README.md +0 -90
- package/src/mobile/bottom-sheet/sub-sheet/index.native.js +0 -49
- package/src/mobile/bottom-sheet/switch-cell.native.js +0 -75
- package/src/mobile/bottom-sheet/test/index.native.js +0 -24
- package/src/mobile/bottom-sheet/test/range-cell.native.js +0 -73
- package/src/mobile/bottom-sheet-select-control/README.md +0 -97
- package/src/mobile/bottom-sheet-select-control/index.native.js +0 -124
- package/src/mobile/bottom-sheet-select-control/style.native.scss +0 -3
- package/src/mobile/bottom-sheet-text-control/README.md +0 -98
- package/src/mobile/bottom-sheet-text-control/index.native.js +0 -104
- package/src/mobile/bottom-sheet-text-control/styles.scss +0 -25
- package/src/mobile/clipboard/index.native.js +0 -18
- package/src/mobile/color-settings/gradient-picker-screen.native.js +0 -37
- package/src/mobile/color-settings/index.native.js +0 -88
- package/src/mobile/color-settings/palette.screen.native.js +0 -232
- package/src/mobile/color-settings/picker-screen.native.js +0 -60
- package/src/mobile/color-settings/style.native.scss +0 -62
- package/src/mobile/color-settings/utils.native.js +0 -36
- package/src/mobile/cycle-select-control/README.md +0 -3
- package/src/mobile/cycle-select-control/index.native.js +0 -39
- package/src/mobile/dashicons/index.native.js +0 -22
- package/src/mobile/focal-point-settings-panel/index.native.js +0 -84
- package/src/mobile/focal-point-settings-panel/styles.native.scss +0 -3
- package/src/mobile/gradient/index.native.js +0 -188
- package/src/mobile/gradient/style.native.scss +0 -8
- package/src/mobile/gradient/test/index.native.js +0 -114
- package/src/mobile/gridicons/index.native.js +0 -39
- package/src/mobile/html-text-input/index.native.js +0 -169
- package/src/mobile/html-text-input/style.android.scss +0 -8
- package/src/mobile/html-text-input/style.ios.scss +0 -10
- package/src/mobile/html-text-input/style.scss +0 -45
- package/src/mobile/html-text-input/test/__snapshots__/index.native.js.snap +0 -48
- package/src/mobile/html-text-input/test/index.native.js +0 -118
- package/src/mobile/image/constants.js +0 -1
- package/src/mobile/image/icon-customize.native.js +0 -10
- package/src/mobile/image/icon-retry.native.js +0 -11
- package/src/mobile/image/image-editing-button.native.js +0 -63
- package/src/mobile/image/index.native.js +0 -401
- package/src/mobile/image/style.native.scss +0 -179
- package/src/mobile/image/utils/index.native.js +0 -58
- package/src/mobile/keyboard-avoiding-view/index.android.js +0 -8
- package/src/mobile/keyboard-avoiding-view/index.ios.js +0 -143
- package/src/mobile/keyboard-avoiding-view/styles.native.scss +0 -9
- package/src/mobile/keyboard-aware-flat-list/index.android.js +0 -81
- package/src/mobile/keyboard-aware-flat-list/index.ios.js +0 -147
- package/src/mobile/keyboard-aware-flat-list/shared.native.js +0 -26
- package/src/mobile/keyboard-aware-flat-list/styles.native.scss +0 -8
- package/src/mobile/keyboard-aware-flat-list/test/use-keyboard-offset.native.js +0 -203
- package/src/mobile/keyboard-aware-flat-list/test/use-scroll-to-section.native.js +0 -142
- package/src/mobile/keyboard-aware-flat-list/test/use-scroll.native.js +0 -71
- package/src/mobile/keyboard-aware-flat-list/test/use-text-input-caret-position.native.js +0 -82
- package/src/mobile/keyboard-aware-flat-list/test/use-text-input-offset.native.js +0 -147
- package/src/mobile/keyboard-aware-flat-list/use-keyboard-offset.native.js +0 -87
- package/src/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +0 -41
- package/src/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js +0 -100
- package/src/mobile/keyboard-aware-flat-list/use-scroll.native.js +0 -100
- package/src/mobile/keyboard-aware-flat-list/use-text-input-caret-position.native.js +0 -36
- package/src/mobile/keyboard-aware-flat-list/use-text-input-offset.native.js +0 -54
- package/src/mobile/layout-animation/index.native.js +0 -16
- package/src/mobile/link-picker/index.native.js +0 -160
- package/src/mobile/link-picker/link-picker-results.native.js +0 -129
- package/src/mobile/link-picker/link-picker-screen.native.js +0 -60
- package/src/mobile/link-picker/styles.native.scss +0 -45
- package/src/mobile/link-picker/test/performance/index.native.js +0 -35
- package/src/mobile/link-settings/index.native.js +0 -332
- package/src/mobile/link-settings/link-rel.native.js +0 -10
- package/src/mobile/link-settings/link-settings-navigation.native.js +0 -50
- package/src/mobile/link-settings/link-settings-screen.native.js +0 -44
- package/src/mobile/link-settings/style.native.scss +0 -4
- package/src/mobile/link-settings/test/edit.native.js +0 -325
- package/src/mobile/link-settings/test/link-settings-navigation.native.js +0 -94
- package/src/mobile/media-edit/index.native.js +0 -125
- package/src/mobile/picker/index.android.js +0 -104
- package/src/mobile/picker/index.ios.js +0 -96
- package/src/mobile/picker/styles.native.scss +0 -29
- package/src/mobile/segmented-control/index.native.js +0 -186
- package/src/mobile/segmented-control/style.native.scss +0 -99
- package/src/mobile/utils/alignments.native.js +0 -78
- package/src/mobile/utils/get-px-from-css-unit.native.js +0 -329
- package/src/mobile/utils/index.native.js +0 -12
- package/src/mobile/utils/test/get-px-from-css-unit.native.js +0 -172
- package/src/mobile/utils/test/index.native.js +0 -134
- package/src/mobile/utils/use-is-floating-keyboard.native.js +0 -31
- package/src/mobile/utils/use-unit-converter-to-mobile.native.js +0 -90
- package/src/notice/index.native.js +0 -123
- package/src/notice/list.native.js +0 -55
- package/src/notice/style.native.scss +0 -60
- package/src/panel/actions.native.js +0 -46
- package/src/panel/actions.native.scss +0 -12
- package/src/panel/body.native.js +0 -29
- package/src/panel/body.native.scss +0 -11
- package/src/panel/bottom-separator-cover.native.js +0 -27
- package/src/panel/bottom-separator-cover.native.scss +0 -9
- package/src/private-apis.native.js +0 -13
- package/src/query-controls/index.native.js +0 -103
- package/src/radio-control/index.native.js +0 -24
- package/src/range-control/index.native.js +0 -73
- package/src/resizable-box/index.native.js +0 -32
- package/src/resizable-box/style.native.scss +0 -14
- package/src/sandbox/index.native.js +0 -392
- package/src/sandbox/style.native.scss +0 -7
- package/src/search-control/index.native.js +0 -274
- package/src/search-control/platform-style.android.scss +0 -57
- package/src/search-control/platform-style.ios.scss +0 -43
- package/src/search-control/style.native.scss +0 -63
- package/src/select-control/index.native.js +0 -41
- package/src/slot-fill/index.native.js +0 -25
- package/src/spinner/index.native.js +0 -22
- package/src/spinner/style.native.scss +0 -4
- package/src/style-provider/index.native.js +0 -3
- package/src/text/index.native.js +0 -13
- package/src/text/styles/emotion-css.native.js +0 -6
- package/src/text/styles/font-family.native.js +0 -1
- package/src/text/styles/text-mixins.native.js +0 -163
- package/src/text-control/index.native.js +0 -41
- package/src/textarea-control/index.native.js +0 -26
- package/src/toggle-control/index.native.js +0 -31
- package/src/toolbar/toolbar/style.native.scss +0 -11
- package/src/toolbar/toolbar/toolbar-container.native.js +0 -8
- package/src/toolbar/toolbar-button/toolbar-button-container.native.js +0 -8
- package/src/toolbar/toolbar-group/style.native.scss +0 -10
- package/src/toolbar/toolbar-group/toolbar-group-collapsed.native.js +0 -36
- package/src/toolbar/toolbar-group/toolbar-group-container.native.js +0 -26
- package/src/toolbar/toolbar-item/index.native.js +0 -17
- package/src/tooltip/index.native.js +0 -292
- package/src/tooltip/style.native.scss +0 -39
- package/src/tooltip/test/index.native.js +0 -98
- package/src/unit-control/index.native.js +0 -202
- package/src/unit-control/style.native.scss +0 -19
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { Animated, PanResponder, StyleSheet, View } from 'react-native';
|
|
5
|
-
import Video from 'react-native-video';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* WordPress dependencies
|
|
9
|
-
*/
|
|
10
|
-
import {
|
|
11
|
-
requestFocalPointPickerTooltipShown,
|
|
12
|
-
setFocalPointPickerTooltipShown,
|
|
13
|
-
} from '@wordpress/react-native-bridge';
|
|
14
|
-
import { __ } from '@wordpress/i18n';
|
|
15
|
-
import { useRef, useState, useMemo, useEffect } from '@wordpress/element';
|
|
16
|
-
import { usePreferredColorSchemeStyle } from '@wordpress/compose';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Internal dependencies
|
|
20
|
-
*/
|
|
21
|
-
import FocalPoint from './focal-point';
|
|
22
|
-
import Tooltip from './tooltip';
|
|
23
|
-
import styles from './style.scss';
|
|
24
|
-
import { isVideoType } from './utils';
|
|
25
|
-
import { clamp } from '../utils/math';
|
|
26
|
-
import Image from '../mobile/image';
|
|
27
|
-
import UnitControl from '../unit-control';
|
|
28
|
-
|
|
29
|
-
const MIN_POSITION_VALUE = 0;
|
|
30
|
-
const MAX_POSITION_VALUE = 100;
|
|
31
|
-
const FOCAL_POINT_UNITS = [ { default: 50, label: '%', value: '%' } ];
|
|
32
|
-
|
|
33
|
-
function FocalPointPicker( props ) {
|
|
34
|
-
const { focalPoint, onChange, shouldEnableBottomSheetScroll, url } = props;
|
|
35
|
-
|
|
36
|
-
const isVideo = isVideoType( url );
|
|
37
|
-
|
|
38
|
-
const [ containerSize, setContainerSize ] = useState( null );
|
|
39
|
-
const [ sliderKey, setSliderKey ] = useState( 0 );
|
|
40
|
-
const [ displayPlaceholder, setDisplayPlaceholder ] = useState( true );
|
|
41
|
-
const [ videoNaturalSize, setVideoNaturalSize ] = useState( null );
|
|
42
|
-
const [ tooltipVisible, setTooltipVisible ] = useState( false );
|
|
43
|
-
|
|
44
|
-
const locationPageOffsetX = useRef();
|
|
45
|
-
const locationPageOffsetY = useRef();
|
|
46
|
-
const videoRef = useRef( null );
|
|
47
|
-
|
|
48
|
-
useEffect( () => {
|
|
49
|
-
requestFocalPointPickerTooltipShown( ( tooltipShown ) => {
|
|
50
|
-
if ( ! tooltipShown ) {
|
|
51
|
-
setTooltipVisible( true );
|
|
52
|
-
setFocalPointPickerTooltipShown( true );
|
|
53
|
-
}
|
|
54
|
-
} );
|
|
55
|
-
}, [] );
|
|
56
|
-
|
|
57
|
-
// Animated coordinates for drag handle.
|
|
58
|
-
const pan = useRef( new Animated.ValueXY() ).current;
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Set drag handle position anytime focal point coordinates change.
|
|
62
|
-
* E.g. initial render, dragging range sliders.
|
|
63
|
-
*/
|
|
64
|
-
useEffect( () => {
|
|
65
|
-
if ( containerSize ) {
|
|
66
|
-
pan.setValue( {
|
|
67
|
-
x: focalPoint.x * containerSize.width,
|
|
68
|
-
y: focalPoint.y * containerSize.height,
|
|
69
|
-
} );
|
|
70
|
-
}
|
|
71
|
-
}, [ focalPoint, containerSize, pan ] );
|
|
72
|
-
|
|
73
|
-
// Pan responder to manage drag handle interactivity.
|
|
74
|
-
const panResponder = useMemo(
|
|
75
|
-
() =>
|
|
76
|
-
PanResponder.create( {
|
|
77
|
-
onStartShouldSetPanResponder: () => true,
|
|
78
|
-
onStartShouldSetPanResponderCapture: () => true,
|
|
79
|
-
onMoveShouldSetPanResponder: () => true,
|
|
80
|
-
onMoveShouldSetPanResponderCapture: () => true,
|
|
81
|
-
|
|
82
|
-
onPanResponderGrant: ( event ) => {
|
|
83
|
-
shouldEnableBottomSheetScroll( false );
|
|
84
|
-
const {
|
|
85
|
-
locationX: x,
|
|
86
|
-
locationY: y,
|
|
87
|
-
pageX,
|
|
88
|
-
pageY,
|
|
89
|
-
} = event.nativeEvent;
|
|
90
|
-
locationPageOffsetX.current = pageX - x;
|
|
91
|
-
locationPageOffsetY.current = pageY - y;
|
|
92
|
-
pan.setValue( { x, y } ); // Set cursor to tap location.
|
|
93
|
-
pan.extractOffset(); // Set offset to current value.
|
|
94
|
-
},
|
|
95
|
-
// Move cursor to match delta drag.
|
|
96
|
-
onPanResponderMove: Animated.event(
|
|
97
|
-
[ null, { dx: pan.x, dy: pan.y } ],
|
|
98
|
-
{ useNativeDriver: false }
|
|
99
|
-
),
|
|
100
|
-
onPanResponderRelease: ( event ) => {
|
|
101
|
-
shouldEnableBottomSheetScroll( true );
|
|
102
|
-
pan.flattenOffset(); // Flatten offset into value.
|
|
103
|
-
const { pageX, pageY } = event.nativeEvent;
|
|
104
|
-
// Ideally, x and y below are merely locationX and locationY from the
|
|
105
|
-
// nativeEvent. However, we are required to compute these relative
|
|
106
|
-
// coordinates to workaround a bug affecting Android's PanResponder.
|
|
107
|
-
// Specifically, dragging the handle outside the bounds of the image
|
|
108
|
-
// results in inaccurate locationX and locationY coordinates to be
|
|
109
|
-
// reported. https://github.com/facebook/react-native/issues/15290#issuecomment-435494944
|
|
110
|
-
const x = pageX - locationPageOffsetX.current;
|
|
111
|
-
const y = pageY - locationPageOffsetY.current;
|
|
112
|
-
onChange( {
|
|
113
|
-
x: clamp( x / containerSize?.width, 0, 1 ).toFixed( 2 ),
|
|
114
|
-
y: clamp( y / containerSize?.height, 0, 1 ).toFixed(
|
|
115
|
-
2
|
|
116
|
-
),
|
|
117
|
-
} );
|
|
118
|
-
// Slider (child of RangeCell) is uncontrolled, so we must increment a
|
|
119
|
-
// key to re-mount and sync the pan gesture values to the sliders
|
|
120
|
-
// https://github.com/callstack/react-native-slider/tree/v3.0.3#value
|
|
121
|
-
setSliderKey( ( prevState ) => prevState + 1 );
|
|
122
|
-
},
|
|
123
|
-
} ),
|
|
124
|
-
[ containerSize, pan, onChange, shouldEnableBottomSheetScroll ]
|
|
125
|
-
);
|
|
126
|
-
|
|
127
|
-
const mediaBackground = usePreferredColorSchemeStyle(
|
|
128
|
-
styles.mediaBackground,
|
|
129
|
-
styles.mediaBackgroundDark
|
|
130
|
-
);
|
|
131
|
-
const imagePreviewStyles = [
|
|
132
|
-
displayPlaceholder && styles.mediaPlaceholder,
|
|
133
|
-
styles.image,
|
|
134
|
-
];
|
|
135
|
-
const videoPreviewStyles = [
|
|
136
|
-
{
|
|
137
|
-
aspectRatio:
|
|
138
|
-
videoNaturalSize &&
|
|
139
|
-
videoNaturalSize.width / videoNaturalSize.height,
|
|
140
|
-
// Hide Video component since it has black background while loading the source
|
|
141
|
-
opacity: displayPlaceholder ? 0 : 1,
|
|
142
|
-
},
|
|
143
|
-
styles.video,
|
|
144
|
-
displayPlaceholder && styles.mediaPlaceholder,
|
|
145
|
-
];
|
|
146
|
-
const focalPointGroupStyles = [
|
|
147
|
-
styles.focalPointGroup,
|
|
148
|
-
{
|
|
149
|
-
transform: [
|
|
150
|
-
{
|
|
151
|
-
translateX: pan.x.interpolate( {
|
|
152
|
-
inputRange: [ 0, containerSize?.width || 0 ],
|
|
153
|
-
outputRange: [ 0, containerSize?.width || 0 ],
|
|
154
|
-
extrapolate: 'clamp',
|
|
155
|
-
} ),
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
translateY: pan.y.interpolate( {
|
|
159
|
-
inputRange: [ 0, containerSize?.height || 0 ],
|
|
160
|
-
outputRange: [ 0, containerSize?.height || 0 ],
|
|
161
|
-
extrapolate: 'clamp',
|
|
162
|
-
} ),
|
|
163
|
-
},
|
|
164
|
-
],
|
|
165
|
-
},
|
|
166
|
-
];
|
|
167
|
-
const FOCAL_POINT_SIZE = 50;
|
|
168
|
-
const focalPointStyles = StyleSheet.flatten( [
|
|
169
|
-
styles.focalPoint,
|
|
170
|
-
{
|
|
171
|
-
height: FOCAL_POINT_SIZE,
|
|
172
|
-
marginLeft: -( FOCAL_POINT_SIZE / 2 ),
|
|
173
|
-
marginTop: -( FOCAL_POINT_SIZE / 2 ),
|
|
174
|
-
width: FOCAL_POINT_SIZE,
|
|
175
|
-
},
|
|
176
|
-
] );
|
|
177
|
-
|
|
178
|
-
const onTooltipPress = () => setTooltipVisible( false );
|
|
179
|
-
const onMediaLayout = ( event ) => {
|
|
180
|
-
const { height, width } = event.nativeEvent.layout;
|
|
181
|
-
|
|
182
|
-
if (
|
|
183
|
-
width !== 0 &&
|
|
184
|
-
height !== 0 &&
|
|
185
|
-
( containerSize?.width !== width ||
|
|
186
|
-
containerSize?.height !== height )
|
|
187
|
-
) {
|
|
188
|
-
setContainerSize( { width, height } );
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
const onImageDataLoad = () => setDisplayPlaceholder( false );
|
|
192
|
-
const onVideoLoad = ( event ) => {
|
|
193
|
-
const { height, width } = event.naturalSize;
|
|
194
|
-
setVideoNaturalSize( { height, width } );
|
|
195
|
-
setDisplayPlaceholder( false );
|
|
196
|
-
// Avoid invisible, paused video on Android, presumably related to
|
|
197
|
-
// https://github.com/react-native-video/react-native-video/issues/1979
|
|
198
|
-
videoRef?.current.seek( 0 );
|
|
199
|
-
};
|
|
200
|
-
const onXCoordinateChange = ( x ) =>
|
|
201
|
-
onChange( { x: ( x / 100 ).toFixed( 2 ) } );
|
|
202
|
-
const onYCoordinateChange = ( y ) =>
|
|
203
|
-
onChange( { y: ( y / 100 ).toFixed( 2 ) } );
|
|
204
|
-
|
|
205
|
-
return (
|
|
206
|
-
<View style={ styles.container }>
|
|
207
|
-
<Tooltip onPress={ onTooltipPress } visible={ tooltipVisible }>
|
|
208
|
-
<View style={ [ styles.media, mediaBackground ] }>
|
|
209
|
-
<View
|
|
210
|
-
{ ...panResponder.panHandlers }
|
|
211
|
-
onLayout={ onMediaLayout }
|
|
212
|
-
style={ styles.mediaContainer }
|
|
213
|
-
>
|
|
214
|
-
{ ! isVideo && (
|
|
215
|
-
<Image
|
|
216
|
-
editButton={ false }
|
|
217
|
-
highlightSelected={ false }
|
|
218
|
-
isSelected={ ! displayPlaceholder }
|
|
219
|
-
height="100%"
|
|
220
|
-
url={ url }
|
|
221
|
-
style={ imagePreviewStyles }
|
|
222
|
-
onImageDataLoad={ onImageDataLoad }
|
|
223
|
-
/>
|
|
224
|
-
) }
|
|
225
|
-
{ isVideo && (
|
|
226
|
-
<Video
|
|
227
|
-
muted
|
|
228
|
-
paused
|
|
229
|
-
disableFocus
|
|
230
|
-
onLoad={ onVideoLoad }
|
|
231
|
-
ref={ videoRef }
|
|
232
|
-
resizeMode="contain"
|
|
233
|
-
source={ { uri: url } }
|
|
234
|
-
style={ videoPreviewStyles }
|
|
235
|
-
/>
|
|
236
|
-
) }
|
|
237
|
-
{ ! displayPlaceholder && (
|
|
238
|
-
<Animated.View
|
|
239
|
-
pointerEvents="none"
|
|
240
|
-
style={ focalPointGroupStyles }
|
|
241
|
-
>
|
|
242
|
-
<Tooltip.Label
|
|
243
|
-
text={ __( 'Drag to adjust focal point' ) }
|
|
244
|
-
yOffset={ -( FOCAL_POINT_SIZE / 2 ) }
|
|
245
|
-
/>
|
|
246
|
-
<FocalPoint
|
|
247
|
-
height={ focalPointStyles.height }
|
|
248
|
-
style={ focalPointStyles }
|
|
249
|
-
testID="focal-point-picker-handle"
|
|
250
|
-
width={ focalPointStyles.width }
|
|
251
|
-
/>
|
|
252
|
-
</Animated.View>
|
|
253
|
-
) }
|
|
254
|
-
</View>
|
|
255
|
-
</View>
|
|
256
|
-
<UnitControl
|
|
257
|
-
key={ `xAxis-${ sliderKey }` }
|
|
258
|
-
label={ __( 'X-Axis Position' ) }
|
|
259
|
-
max={ MAX_POSITION_VALUE }
|
|
260
|
-
min={ MIN_POSITION_VALUE }
|
|
261
|
-
onChange={ onXCoordinateChange }
|
|
262
|
-
unit="%"
|
|
263
|
-
units={ FOCAL_POINT_UNITS }
|
|
264
|
-
value={ Math.round( focalPoint.x * 100 ) }
|
|
265
|
-
/>
|
|
266
|
-
<UnitControl
|
|
267
|
-
key={ `yAxis-${ sliderKey }` }
|
|
268
|
-
label={ __( 'Y-Axis Position' ) }
|
|
269
|
-
max={ MAX_POSITION_VALUE }
|
|
270
|
-
min={ MIN_POSITION_VALUE }
|
|
271
|
-
onChange={ onYCoordinateChange }
|
|
272
|
-
unit="%"
|
|
273
|
-
units={ FOCAL_POINT_UNITS }
|
|
274
|
-
value={ Math.round( focalPoint.y * 100 ) }
|
|
275
|
-
/>
|
|
276
|
-
</Tooltip>
|
|
277
|
-
</View>
|
|
278
|
-
);
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
export default FocalPointPicker;
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { Animated, Easing, PanResponder, Text, View } from 'react-native';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* WordPress dependencies
|
|
8
|
-
*/
|
|
9
|
-
import {
|
|
10
|
-
createContext,
|
|
11
|
-
useEffect,
|
|
12
|
-
useRef,
|
|
13
|
-
useState,
|
|
14
|
-
useContext,
|
|
15
|
-
} from '@wordpress/element';
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Internal dependencies
|
|
19
|
-
*/
|
|
20
|
-
import styles from './style.scss';
|
|
21
|
-
|
|
22
|
-
const TooltipContext = createContext();
|
|
23
|
-
|
|
24
|
-
function Tooltip( { children, onPress, style, visible } ) {
|
|
25
|
-
const panResponder = useRef(
|
|
26
|
-
PanResponder.create( {
|
|
27
|
-
/**
|
|
28
|
-
* To allow dimissing the tooltip on press while also avoiding blocking
|
|
29
|
-
* interactivity within the child context, we place this `onPress` side
|
|
30
|
-
* effect within the `onStartShouldSetPanResponderCapture` callback.
|
|
31
|
-
*
|
|
32
|
-
* This is a bit unorthodox, but may be the simplest approach to achieving
|
|
33
|
-
* this outcome. This is effectively a gesture responder that never
|
|
34
|
-
* becomes the controlling responder. https://bit.ly/2J3ugKF
|
|
35
|
-
*/
|
|
36
|
-
onStartShouldSetPanResponderCapture: () => {
|
|
37
|
-
if ( onPress ) {
|
|
38
|
-
onPress();
|
|
39
|
-
}
|
|
40
|
-
return false;
|
|
41
|
-
},
|
|
42
|
-
} )
|
|
43
|
-
).current;
|
|
44
|
-
|
|
45
|
-
return (
|
|
46
|
-
<TooltipContext.Provider value={ visible }>
|
|
47
|
-
<View
|
|
48
|
-
{ ...( visible ? panResponder.panHandlers : {} ) }
|
|
49
|
-
style={ style }
|
|
50
|
-
>
|
|
51
|
-
{ children }
|
|
52
|
-
</View>
|
|
53
|
-
</TooltipContext.Provider>
|
|
54
|
-
);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function Label( { align = 'center', text, xOffset = 0, yOffset = 0 } ) {
|
|
58
|
-
const animationValue = useRef( new Animated.Value( 0 ) ).current;
|
|
59
|
-
const [ dimensions, setDimensions ] = useState( null );
|
|
60
|
-
const visible = useContext( TooltipContext );
|
|
61
|
-
|
|
62
|
-
if ( typeof visible === 'undefined' ) {
|
|
63
|
-
throw new Error(
|
|
64
|
-
'Tooltip.Label cannot be rendered outside of the Tooltip component'
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
useEffect( () => {
|
|
69
|
-
const startAnimation = () => {
|
|
70
|
-
Animated.timing( animationValue, {
|
|
71
|
-
toValue: visible ? 1 : 0,
|
|
72
|
-
duration: visible ? 300 : 150,
|
|
73
|
-
useNativeDriver: true,
|
|
74
|
-
delay: visible ? 500 : 0,
|
|
75
|
-
easing: Easing.out( Easing.quad ),
|
|
76
|
-
} ).start();
|
|
77
|
-
};
|
|
78
|
-
startAnimation();
|
|
79
|
-
}, [ animationValue, visible ] );
|
|
80
|
-
|
|
81
|
-
// Transforms rely upon onLayout to enable custom offsets additions.
|
|
82
|
-
let tooltipTransforms;
|
|
83
|
-
if ( dimensions ) {
|
|
84
|
-
tooltipTransforms = [
|
|
85
|
-
{
|
|
86
|
-
translateX:
|
|
87
|
-
( align === 'center' ? -dimensions.width / 2 : 0 ) +
|
|
88
|
-
xOffset,
|
|
89
|
-
},
|
|
90
|
-
{ translateY: -dimensions.height + yOffset },
|
|
91
|
-
];
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
const tooltipStyles = [
|
|
95
|
-
styles.tooltip,
|
|
96
|
-
{
|
|
97
|
-
shadowColor: styles.tooltipShadow?.color,
|
|
98
|
-
shadowOffset: {
|
|
99
|
-
width: 0,
|
|
100
|
-
height: 2,
|
|
101
|
-
},
|
|
102
|
-
shadowOpacity: 0.25,
|
|
103
|
-
shadowRadius: 2,
|
|
104
|
-
elevation: 2,
|
|
105
|
-
transform: tooltipTransforms,
|
|
106
|
-
},
|
|
107
|
-
align === 'left' && styles.tooltipLeftAlign,
|
|
108
|
-
];
|
|
109
|
-
const arrowStyles = [
|
|
110
|
-
styles.arrow,
|
|
111
|
-
align === 'left' && styles.arrowLeftAlign,
|
|
112
|
-
];
|
|
113
|
-
|
|
114
|
-
return (
|
|
115
|
-
<Animated.View
|
|
116
|
-
style={ {
|
|
117
|
-
opacity: animationValue,
|
|
118
|
-
transform: [
|
|
119
|
-
{
|
|
120
|
-
translateY: animationValue.interpolate( {
|
|
121
|
-
inputRange: [ 0, 1 ],
|
|
122
|
-
outputRange: [ visible ? 4 : -8, -8 ],
|
|
123
|
-
} ),
|
|
124
|
-
},
|
|
125
|
-
],
|
|
126
|
-
} }
|
|
127
|
-
>
|
|
128
|
-
<View
|
|
129
|
-
onLayout={ ( { nativeEvent } ) => {
|
|
130
|
-
const { height, width } = nativeEvent.layout;
|
|
131
|
-
setDimensions( { height, width } );
|
|
132
|
-
} }
|
|
133
|
-
style={ tooltipStyles }
|
|
134
|
-
>
|
|
135
|
-
<Text style={ styles.text }>{ text }</Text>
|
|
136
|
-
<View style={ arrowStyles } />
|
|
137
|
-
</View>
|
|
138
|
-
</Animated.View>
|
|
139
|
-
);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
Tooltip.Label = Label;
|
|
143
|
-
|
|
144
|
-
export default Tooltip;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
$tooltipColor: #121212;
|
|
2
|
-
$tooltipArrowSize: 6px;
|
|
3
|
-
$tooltipArrowOffset: -($tooltipArrowSize - 1);
|
|
4
|
-
|
|
5
|
-
.tooltip {
|
|
6
|
-
background-color: $tooltipColor;
|
|
7
|
-
border-radius: 4px;
|
|
8
|
-
left: 50%;
|
|
9
|
-
position: absolute;
|
|
10
|
-
top: $tooltipArrowOffset;
|
|
11
|
-
z-index: 1;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.tooltipLeftAlign {
|
|
15
|
-
left: 0;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.tooltipShadow {
|
|
19
|
-
color: $black;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.text {
|
|
23
|
-
color: $white;
|
|
24
|
-
padding: 12px 16px;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.arrow {
|
|
28
|
-
border-color: $tooltipColor transparent transparent transparent;
|
|
29
|
-
border-style: solid;
|
|
30
|
-
border-width: $tooltipArrowSize $tooltipArrowSize 0 $tooltipArrowSize;
|
|
31
|
-
bottom: $tooltipArrowOffset;
|
|
32
|
-
height: 0;
|
|
33
|
-
left: 50%;
|
|
34
|
-
margin-left: -$tooltipArrowSize;
|
|
35
|
-
position: absolute;
|
|
36
|
-
top: 100%;
|
|
37
|
-
width: 0;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.arrowLeftAlign {
|
|
41
|
-
left: 16px;
|
|
42
|
-
}
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { View, useWindowDimensions } from 'react-native';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* WordPress dependencies
|
|
8
|
-
*/
|
|
9
|
-
import { useNavigation } from '@react-navigation/native';
|
|
10
|
-
import { useState } from '@wordpress/element';
|
|
11
|
-
import { Icon, chevronRight, check } from '@wordpress/icons';
|
|
12
|
-
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Internal dependencies
|
|
16
|
-
*/
|
|
17
|
-
import { default as getPxFromCssUnit } from '../mobile/utils/get-px-from-css-unit';
|
|
18
|
-
import { default as UnitControl, useCustomUnits } from '../unit-control';
|
|
19
|
-
import styles from './style.scss';
|
|
20
|
-
import BottomSheet from '../mobile/bottom-sheet';
|
|
21
|
-
|
|
22
|
-
const DEFAULT_FONT_SIZE = 16;
|
|
23
|
-
|
|
24
|
-
function FontSizePicker( {
|
|
25
|
-
fontSizes = [],
|
|
26
|
-
disableCustomFontSizes = false,
|
|
27
|
-
onChange,
|
|
28
|
-
value: selectedValue,
|
|
29
|
-
} ) {
|
|
30
|
-
const [ showSubSheet, setShowSubSheet ] = useState( false );
|
|
31
|
-
const navigation = useNavigation();
|
|
32
|
-
|
|
33
|
-
const { height, width } = useWindowDimensions();
|
|
34
|
-
const cssUnitOptions = { height, width, fontSize: DEFAULT_FONT_SIZE };
|
|
35
|
-
// We need to always convert to px units because the selected value
|
|
36
|
-
// could be coming from the web where it could be stored as a different unit.
|
|
37
|
-
const selectedPxValue = getPxFromCssUnit( selectedValue, cssUnitOptions );
|
|
38
|
-
|
|
39
|
-
const onChangeValue = ( value ) => {
|
|
40
|
-
return () => {
|
|
41
|
-
goBack();
|
|
42
|
-
onChange( value );
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const selectedOption = fontSizes.find(
|
|
47
|
-
( option ) => option.sizePx === selectedPxValue
|
|
48
|
-
) ?? { name: 'Custom' };
|
|
49
|
-
|
|
50
|
-
const goBack = () => {
|
|
51
|
-
setShowSubSheet( false );
|
|
52
|
-
navigation.goBack();
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
const openSubSheet = () => {
|
|
56
|
-
navigation.navigate( BottomSheet.SubSheet.screenName );
|
|
57
|
-
setShowSubSheet( true );
|
|
58
|
-
};
|
|
59
|
-
const label = __( 'Font Size' );
|
|
60
|
-
|
|
61
|
-
const units = useCustomUnits( {
|
|
62
|
-
availableUnits: [ 'px', 'em', 'rem', 'vw', 'vh' ],
|
|
63
|
-
} );
|
|
64
|
-
|
|
65
|
-
const accessibilityLabel = sprintf(
|
|
66
|
-
// translators: %s: Font size name e.g. Small
|
|
67
|
-
__( 'Font Size, %s' ),
|
|
68
|
-
selectedOption.name
|
|
69
|
-
);
|
|
70
|
-
|
|
71
|
-
return (
|
|
72
|
-
<BottomSheet.SubSheet
|
|
73
|
-
navigationButton={
|
|
74
|
-
<BottomSheet.Cell
|
|
75
|
-
label={ label }
|
|
76
|
-
separatorType="none"
|
|
77
|
-
value={
|
|
78
|
-
selectedValue
|
|
79
|
-
? sprintf(
|
|
80
|
-
// translators: 1: Select control font size name e.g. Small. 2: Select control font size e.g. 12px
|
|
81
|
-
_x( '%1$s (%2$s)', 'font size' ),
|
|
82
|
-
selectedOption.name,
|
|
83
|
-
selectedPxValue
|
|
84
|
-
)
|
|
85
|
-
: __( 'Default' )
|
|
86
|
-
}
|
|
87
|
-
onPress={ openSubSheet }
|
|
88
|
-
accessibilityRole="button"
|
|
89
|
-
accessibilityLabel={ accessibilityLabel }
|
|
90
|
-
accessibilityHint={ sprintf(
|
|
91
|
-
// translators: %s: Select control button label e.g. "Button width"
|
|
92
|
-
__( 'Navigates to select %s' ),
|
|
93
|
-
selectedOption.name
|
|
94
|
-
) }
|
|
95
|
-
>
|
|
96
|
-
<Icon icon={ chevronRight }></Icon>
|
|
97
|
-
</BottomSheet.Cell>
|
|
98
|
-
}
|
|
99
|
-
showSheet={ showSubSheet }
|
|
100
|
-
>
|
|
101
|
-
<>
|
|
102
|
-
<BottomSheet.NavBar>
|
|
103
|
-
<BottomSheet.NavBar.BackButton onPress={ goBack } />
|
|
104
|
-
<BottomSheet.NavBar.Heading>
|
|
105
|
-
{ label }
|
|
106
|
-
</BottomSheet.NavBar.Heading>
|
|
107
|
-
</BottomSheet.NavBar>
|
|
108
|
-
<View style={ styles[ 'components-font-size-picker' ] }>
|
|
109
|
-
<BottomSheet.Cell
|
|
110
|
-
customActionButton
|
|
111
|
-
separatorType="none"
|
|
112
|
-
label={ __( 'Default' ) }
|
|
113
|
-
onPress={ onChangeValue( undefined ) }
|
|
114
|
-
leftAlign
|
|
115
|
-
key="default"
|
|
116
|
-
accessibilityRole="button"
|
|
117
|
-
accessibilityLabel={ __( 'Selected: Default' ) }
|
|
118
|
-
accessibilityHint={ __(
|
|
119
|
-
'Double tap to select default font size'
|
|
120
|
-
) }
|
|
121
|
-
>
|
|
122
|
-
<View>
|
|
123
|
-
{ selectedValue === undefined && (
|
|
124
|
-
<Icon icon={ check }></Icon>
|
|
125
|
-
) }
|
|
126
|
-
</View>
|
|
127
|
-
</BottomSheet.Cell>
|
|
128
|
-
{ fontSizes.map( ( item, index ) => {
|
|
129
|
-
// Only display a choice that we can currently select.
|
|
130
|
-
if ( ! parseFloat( item.sizePx ) ) {
|
|
131
|
-
return null;
|
|
132
|
-
}
|
|
133
|
-
return (
|
|
134
|
-
<BottomSheet.Cell
|
|
135
|
-
customActionButton
|
|
136
|
-
separatorType="none"
|
|
137
|
-
label={ item.name }
|
|
138
|
-
subLabel={ item.sizePx }
|
|
139
|
-
onPress={ onChangeValue( item.sizePx ) }
|
|
140
|
-
leftAlign
|
|
141
|
-
key={ index }
|
|
142
|
-
accessibilityRole="button"
|
|
143
|
-
accessibilityLabel={
|
|
144
|
-
item.sizePx === selectedValue
|
|
145
|
-
? sprintf(
|
|
146
|
-
// translators: %s: The selected option.
|
|
147
|
-
__( 'Selected: %s' ),
|
|
148
|
-
item.name
|
|
149
|
-
)
|
|
150
|
-
: item.name
|
|
151
|
-
}
|
|
152
|
-
accessibilityHint={ __(
|
|
153
|
-
'Double tap to select font size'
|
|
154
|
-
) }
|
|
155
|
-
>
|
|
156
|
-
<View>
|
|
157
|
-
{ item.sizePx === selectedPxValue && (
|
|
158
|
-
<Icon icon={ check }></Icon>
|
|
159
|
-
) }
|
|
160
|
-
</View>
|
|
161
|
-
</BottomSheet.Cell>
|
|
162
|
-
);
|
|
163
|
-
} ) }
|
|
164
|
-
{ ! disableCustomFontSizes && (
|
|
165
|
-
<UnitControl
|
|
166
|
-
label={ __( 'Custom' ) }
|
|
167
|
-
min={ 0 }
|
|
168
|
-
max={ 200 }
|
|
169
|
-
step={ 1 }
|
|
170
|
-
value={ selectedValue }
|
|
171
|
-
onChange={ ( nextSize ) => {
|
|
172
|
-
if (
|
|
173
|
-
0 === parseFloat( nextSize ) ||
|
|
174
|
-
! nextSize
|
|
175
|
-
) {
|
|
176
|
-
onChange( undefined );
|
|
177
|
-
} else {
|
|
178
|
-
onChange( nextSize );
|
|
179
|
-
}
|
|
180
|
-
} }
|
|
181
|
-
units={ units }
|
|
182
|
-
/>
|
|
183
|
-
) }
|
|
184
|
-
</View>
|
|
185
|
-
</>
|
|
186
|
-
</BottomSheet.SubSheet>
|
|
187
|
-
);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
export default FontSizePicker;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { memo } from '@wordpress/element';
|
|
5
|
-
/**
|
|
6
|
-
* Internal dependencies
|
|
7
|
-
*/
|
|
8
|
-
import FooterMessageCell from '../mobile/bottom-sheet/footer-message-cell';
|
|
9
|
-
|
|
10
|
-
function FooterMessageControl( { ...props } ) {
|
|
11
|
-
return <FooterMessageCell { ...props } />;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export default memo( FooterMessageControl );
|