@wordpress/components 34.0.0 → 35.0.1
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 +25 -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/border-control/border-control-dropdown/component.cjs +33 -33
- package/build/border-control/border-control-dropdown/component.cjs.map +3 -3
- package/build/color-palette/index.cjs +3 -0
- package/build/color-palette/index.cjs.map +2 -2
- package/build/custom-gradient-picker/gradient-bar/index.cjs.map +2 -2
- package/build/disabled/index.cjs +1 -1
- package/build/disabled/index.cjs.map +2 -2
- package/build/draggable/index.cjs +1 -1
- package/build/draggable/index.cjs.map +2 -2
- package/build/higher-order/with-notices/index.cjs +15 -3
- package/build/higher-order/with-notices/index.cjs.map +2 -2
- package/build/input-control/input-base.cjs +34 -31
- package/build/input-control/input-base.cjs.map +2 -2
- package/build/navigable-container/container.cjs +15 -21
- package/build/navigable-container/container.cjs.map +2 -2
- package/build/responsive-wrapper/index.cjs +3 -4
- package/build/responsive-wrapper/index.cjs.map +2 -2
- package/build/tooltip/index.cjs +1 -2
- package/build/tooltip/index.cjs.map +2 -2
- package/build/unit-control/utils.cjs +33 -35
- package/build/unit-control/utils.cjs.map +2 -2
- 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/border-control/border-control-dropdown/component.mjs +34 -34
- package/build-module/border-control/border-control-dropdown/component.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/custom-gradient-picker/gradient-bar/index.mjs.map +2 -2
- package/build-module/disabled/index.mjs +1 -1
- package/build-module/disabled/index.mjs.map +2 -2
- package/build-module/draggable/index.mjs +1 -1
- package/build-module/draggable/index.mjs.map +2 -2
- package/build-module/higher-order/with-notices/index.mjs +16 -4
- package/build-module/higher-order/with-notices/index.mjs.map +2 -2
- package/build-module/input-control/input-base.mjs +34 -31
- package/build-module/input-control/input-base.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/responsive-wrapper/index.mjs +3 -4
- package/build-module/responsive-wrapper/index.mjs.map +2 -2
- package/build-module/tooltip/index.mjs +1 -2
- package/build-module/tooltip/index.mjs.map +2 -2
- package/build-module/unit-control/utils.mjs +33 -35
- package/build-module/unit-control/utils.mjs.map +2 -2
- package/build-style/style-rtl.css +41 -10
- package/build-style/style.css +41 -10
- package/build-types/border-box-control/border-box-control/hook.d.ts +10 -24
- package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +12 -26
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +10 -24
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +11 -25
- package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control/hook.d.ts +10 -24
- package/build-types/border-control/border-control/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/hook.d.ts +9 -23
- package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
- package/build-types/box-control/styles/box-control-styles.d.ts +2 -2
- package/build-types/card/card/hook.d.ts +11 -25
- package/build-types/card/card/hook.d.ts.map +1 -1
- package/build-types/card/card-body/hook.d.ts +11 -25
- package/build-types/card/card-body/hook.d.ts.map +1 -1
- package/build-types/card/card-divider/hook.d.ts +12 -26
- package/build-types/card/card-divider/hook.d.ts.map +1 -1
- package/build-types/card/card-footer/hook.d.ts +11 -25
- package/build-types/card/card-footer/hook.d.ts.map +1 -1
- package/build-types/card/card-header/hook.d.ts +11 -25
- package/build-types/card/card-header/hook.d.ts.map +1 -1
- package/build-types/card/card-media/hook.d.ts +11 -25
- package/build-types/card/card-media/hook.d.ts.map +1 -1
- package/build-types/card/context.d.ts +3 -0
- package/build-types/card/context.d.ts.map +1 -0
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +2 -2
- package/build-types/composite/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/custom-select-control-v2/styles.d.ts +12 -4
- package/build-types/custom-select-control-v2/styles.d.ts.map +1 -1
- package/build-types/date-time/date/index.d.ts +23 -0
- package/build-types/date-time/date/index.d.ts.map +1 -0
- package/build-types/date-time/date/styles.d.ts +45 -0
- package/build-types/date-time/date/styles.d.ts.map +1 -0
- package/build-types/date-time/date/test/index.d.ts +2 -0
- package/build-types/date-time/date/test/index.d.ts.map +1 -0
- package/build-types/date-time/date/test/use-lilius.d.ts +2 -0
- package/build-types/date-time/date/test/use-lilius.d.ts.map +1 -0
- package/build-types/date-time/date/use-lilius/index.d.ts +169 -0
- package/build-types/date-time/date/use-lilius/index.d.ts.map +1 -0
- package/build-types/date-time/time/index.d.ts +27 -0
- package/build-types/date-time/time/index.d.ts.map +1 -0
- package/build-types/date-time/time/styles.d.ts +93 -0
- package/build-types/date-time/time/styles.d.ts.map +1 -0
- package/build-types/date-time/time/test/index.d.ts +2 -0
- package/build-types/date-time/time/test/index.d.ts.map +1 -0
- package/build-types/date-time/time/time-input/index.d.ts +4 -0
- package/build-types/date-time/time/time-input/index.d.ts.map +1 -0
- package/build-types/date-time/time/time-input/test/index.d.ts +2 -0
- package/build-types/date-time/time/time-input/test/index.d.ts.map +1 -0
- package/build-types/date-time/time/timezone.d.ts +7 -0
- package/build-types/date-time/time/timezone.d.ts.map +1 -0
- package/build-types/date-time/time-picker/styles.d.ts +4 -4
- package/build-types/elevation/hook.d.ts +11 -25
- package/build-types/elevation/hook.d.ts.map +1 -1
- package/build-types/flex/flex/hook.d.ts +11 -25
- package/build-types/flex/flex/hook.d.ts.map +1 -1
- package/build-types/flex/flex-block/hook.d.ts +11 -25
- package/build-types/flex/flex-block/hook.d.ts.map +1 -1
- package/build-types/flex/flex-item/hook.d.ts +11 -25
- package/build-types/flex/flex-item/hook.d.ts.map +1 -1
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
- package/build-types/grid/hook.d.ts +11 -25
- package/build-types/grid/hook.d.ts.map +1 -1
- package/build-types/h-stack/hook.d.ts +11 -25
- package/build-types/h-stack/hook.d.ts.map +1 -1
- package/build-types/heading/hook.d.ts +11 -25
- package/build-types/heading/hook.d.ts.map +1 -1
- package/build-types/higher-order/with-fallback-styles/index.d.ts +3 -1
- package/build-types/higher-order/with-filters/index.d.ts +6 -1
- package/build-types/higher-order/with-filters/index.d.ts.map +1 -1
- package/build-types/higher-order/with-notices/index.d.ts +4 -2
- package/build-types/higher-order/with-notices/index.d.ts.map +1 -1
- package/build-types/input-control/reducer/reducer.d.ts +1 -1
- package/build-types/item-group/item/hook.d.ts +11 -25
- package/build-types/item-group/item/hook.d.ts.map +1 -1
- package/build-types/item-group/item-group/hook.d.ts +11 -25
- package/build-types/item-group/item-group/hook.d.ts.map +1 -1
- package/build-types/menu/stories/index.story.d.ts.map +1 -1
- package/build-types/menu/styles.d.ts +21 -7
- package/build-types/menu/styles.d.ts.map +1 -1
- package/build-types/modal/use-modal-exit-animation.d.ts +1 -1
- package/build-types/navigable-container/container.d.ts.map +1 -1
- package/build-types/navigation/back-button/index.d.ts +7 -0
- package/build-types/navigation/back-button/index.d.ts.map +1 -0
- package/build-types/navigation/constants.d.ts +3 -0
- package/build-types/navigation/constants.d.ts.map +1 -0
- package/build-types/navigation/context.d.ts +4 -0
- package/build-types/navigation/context.d.ts.map +1 -0
- package/build-types/navigation/group/context.d.ts +7 -0
- package/build-types/navigation/group/context.d.ts.map +1 -0
- package/build-types/navigation/group/index.d.ts +7 -0
- package/build-types/navigation/group/index.d.ts.map +1 -0
- package/build-types/navigation/index.d.ts +46 -0
- package/build-types/navigation/index.d.ts.map +1 -0
- package/build-types/navigation/item/base-content.d.ts +3 -0
- package/build-types/navigation/item/base-content.d.ts.map +1 -0
- package/build-types/navigation/item/base.d.ts +3 -0
- package/build-types/navigation/item/base.d.ts.map +1 -0
- package/build-types/navigation/item/index.d.ts +7 -0
- package/build-types/navigation/item/index.d.ts.map +1 -0
- package/build-types/navigation/item/use-navigation-tree-item.d.ts +3 -0
- package/build-types/navigation/item/use-navigation-tree-item.d.ts.map +1 -0
- package/build-types/navigation/menu/context.d.ts +7 -0
- package/build-types/navigation/menu/context.d.ts.map +1 -0
- package/build-types/navigation/menu/index.d.ts +7 -0
- package/build-types/navigation/menu/index.d.ts.map +1 -0
- package/build-types/navigation/menu/menu-title-search.d.ts +3 -0
- package/build-types/navigation/menu/menu-title-search.d.ts.map +1 -0
- package/build-types/navigation/menu/menu-title.d.ts +3 -0
- package/build-types/navigation/menu/menu-title.d.ts.map +1 -0
- package/build-types/navigation/menu/search-no-results-found.d.ts +3 -0
- package/build-types/navigation/menu/search-no-results-found.d.ts.map +1 -0
- package/build-types/navigation/menu/use-navigation-tree-menu.d.ts +3 -0
- package/build-types/navigation/menu/use-navigation-tree-menu.d.ts.map +1 -0
- package/build-types/navigation/stories/index.story.d.ts +23 -0
- package/build-types/navigation/stories/index.story.d.ts.map +1 -0
- package/build-types/navigation/stories/utils/controlled-state.d.ts +7 -0
- package/build-types/navigation/stories/utils/controlled-state.d.ts.map +1 -0
- package/build-types/navigation/stories/utils/default.d.ts +10 -0
- package/build-types/navigation/stories/utils/default.d.ts.map +1 -0
- package/build-types/navigation/stories/utils/group.d.ts +10 -0
- package/build-types/navigation/stories/utils/group.d.ts.map +1 -0
- package/build-types/navigation/stories/utils/hide-if-empty.d.ts +10 -0
- package/build-types/navigation/stories/utils/hide-if-empty.d.ts.map +1 -0
- package/build-types/navigation/stories/utils/more-examples.d.ts +10 -0
- package/build-types/navigation/stories/utils/more-examples.d.ts.map +1 -0
- package/build-types/navigation/stories/utils/search.d.ts +10 -0
- package/build-types/navigation/stories/utils/search.d.ts.map +1 -0
- package/build-types/navigation/styles/navigation-styles.d.ts +55 -0
- package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -0
- package/build-types/navigation/test/index.d.ts +2 -0
- package/build-types/navigation/test/index.d.ts.map +1 -0
- package/build-types/navigation/types.d.ts +266 -0
- package/build-types/navigation/types.d.ts.map +1 -0
- package/build-types/navigation/use-create-navigation-tree.d.ts +15 -0
- package/build-types/navigation/use-create-navigation-tree.d.ts.map +1 -0
- package/build-types/navigation/use-navigation-tree-nodes.d.ts +10 -0
- package/build-types/navigation/use-navigation-tree-nodes.d.ts.map +1 -0
- package/build-types/navigation/utils.d.ts +3 -0
- package/build-types/navigation/utils.d.ts.map +1 -0
- package/build-types/navigator/navigator-back-button/hook.d.ts +12 -26
- package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
- package/build-types/navigator/navigator-button/hook.d.ts +12 -26
- package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
- package/build-types/number-control/index.d.ts +1 -1
- package/build-types/number-control/index.d.ts.map +1 -1
- package/build-types/number-control/stories/index.story.d.ts +1 -1
- package/build-types/number-control/stories/index.story.d.ts.map +1 -1
- package/build-types/popover/types.d.ts +2 -2
- package/build-types/popover/types.d.ts.map +1 -1
- package/build-types/range-control/index.d.ts +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
- package/build-types/range-control/types.d.ts +1 -1
- package/build-types/range-control/types.d.ts.map +1 -1
- package/build-types/responsive-wrapper/index.d.ts.map +1 -1
- package/build-types/scrollable/hook.d.ts +11 -25
- package/build-types/scrollable/hook.d.ts.map +1 -1
- package/build-types/snackbar/index.d.ts +2 -2
- package/build-types/snackbar/types.d.ts +2 -2
- package/build-types/snackbar/types.d.ts.map +1 -1
- package/build-types/spacer/hook.d.ts +11 -25
- package/build-types/spacer/hook.d.ts.map +1 -1
- package/build-types/surface/hook.d.ts +11 -25
- package/build-types/surface/hook.d.ts.map +1 -1
- package/build-types/tabs/stories/index.story.d.ts.map +1 -1
- package/build-types/tabs/styles.d.ts +9 -3
- package/build-types/tabs/styles.d.ts.map +1 -1
- package/build-types/text/hook.d.ts +11 -25
- package/build-types/text/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel/hook.d.ts +11 -25
- package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/hook.d.ts +11 -25
- package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-item/hook.d.ts +11 -25
- package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/build-types/truncate/hook.d.ts +11 -25
- package/build-types/truncate/hook.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
- package/build-types/unit-control/utils.d.ts.map +1 -1
- package/build-types/utils/get-node-text.d.ts.map +1 -1
- package/build-types/v-stack/hook.d.ts +11 -25
- package/build-types/v-stack/hook.d.ts.map +1 -1
- package/build-types/validated-form-controls/components/combobox-control.d.ts +2 -2
- package/build-types/validated-form-controls/components/number-control.d.ts +1 -1
- package/build-types/validated-form-controls/components/number-control.d.ts.map +1 -1
- package/build-types/validated-form-controls/components/range-control.d.ts +1 -1
- package/build-types/validated-form-controls/control-with-error.d.ts +1 -4
- package/build-types/validated-form-controls/control-with-error.d.ts.map +1 -1
- package/build-types/visually-hidden/test/index.d.ts +2 -0
- package/build-types/visually-hidden/test/index.d.ts.map +1 -0
- package/package.json +37 -35
- package/src/autocomplete/README.md +1 -1
- package/src/border-control/border-control-dropdown/component.tsx +37 -36
- package/src/card/card/README.md +4 -4
- 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 +1 -0
- package/src/confirm-dialog/README.md +1 -1
- package/src/custom-gradient-picker/gradient-bar/index.tsx +1 -1
- package/src/disabled/index.tsx +1 -1
- package/src/flex/flex/README.md +1 -1
- package/src/form-file-upload/README.md +1 -1
- package/src/h-stack/hook.tsx +1 -1
- package/src/higher-order/with-notices/index.tsx +21 -4
- package/src/higher-order/with-notices/test/index.tsx +18 -0
- package/src/input-control/input-base.tsx +2 -2
- package/src/menu/README.md +7 -7
- package/src/menu/stories/index.story.tsx +1 -0
- package/src/navigable-container/container.tsx +22 -30
- package/src/popover/README.md +1 -1
- package/src/popover/index.tsx +1 -1
- package/src/popover/types.ts +4 -2
- package/src/range-control/types.ts +1 -1
- package/src/responsive-wrapper/index.tsx +3 -7
- package/src/scrollable/README.md +1 -1
- package/src/snackbar/README.md +1 -1
- package/src/snackbar/types.ts +2 -2
- package/src/tabs/README.md +1 -1
- package/src/tabs/stories/index.story.tsx +1 -0
- package/src/tabs/tablist.tsx +1 -1
- package/src/tooltip/index.tsx +1 -7
- package/src/tooltip/style.scss +1 -1
- package/src/tree-grid/test/cell.tsx +1 -0
- package/src/tree-grid/test/roving-tab-index-item.tsx +1 -0
- package/src/tree-select/README.md +1 -1
- package/src/unit-control/utils.ts +33 -52
- package/src/utils/get-node-text.ts +1 -7
- package/src/validated-form-controls/control-with-error.tsx +1 -6
- 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/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,152 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import clsx from 'clsx';
|
|
5
|
-
import { Platform } from 'react-native';
|
|
6
|
-
/**
|
|
7
|
-
* WordPress dependencies
|
|
8
|
-
*/
|
|
9
|
-
import { withPreferredColorScheme } from '@wordpress/compose';
|
|
10
|
-
import { menu } from '@wordpress/icons';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Internal dependencies
|
|
14
|
-
*/
|
|
15
|
-
import Button from '../button';
|
|
16
|
-
import Dropdown from '../dropdown';
|
|
17
|
-
import BottomSheet from '../mobile/bottom-sheet';
|
|
18
|
-
import PanelBody from '../panel/body';
|
|
19
|
-
|
|
20
|
-
function mergeProps( defaultProps = {}, props = {} ) {
|
|
21
|
-
const mergedProps = {
|
|
22
|
-
...defaultProps,
|
|
23
|
-
...props,
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
if ( props.className && defaultProps.className ) {
|
|
27
|
-
mergedProps.className = clsx( props.className, defaultProps.className );
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return mergedProps;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Whether the argument is a function.
|
|
35
|
-
*
|
|
36
|
-
* @param {*} maybeFunc The argument to check.
|
|
37
|
-
* @return {boolean} True if the argument is a function, false otherwise.
|
|
38
|
-
*/
|
|
39
|
-
function isFunction( maybeFunc ) {
|
|
40
|
-
return typeof maybeFunc === 'function';
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function DropdownMenu( {
|
|
44
|
-
children,
|
|
45
|
-
className,
|
|
46
|
-
controls,
|
|
47
|
-
icon = menu,
|
|
48
|
-
label,
|
|
49
|
-
popoverProps,
|
|
50
|
-
toggleProps,
|
|
51
|
-
} ) {
|
|
52
|
-
if ( ! controls?.length && ! isFunction( children ) ) {
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Normalize controls to nested array of objects (sets of controls)
|
|
57
|
-
let controlSets;
|
|
58
|
-
if ( controls?.length ) {
|
|
59
|
-
controlSets = controls;
|
|
60
|
-
if ( ! Array.isArray( controlSets[ 0 ] ) ) {
|
|
61
|
-
controlSets = [ controlSets ];
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
const mergedPopoverProps = mergeProps(
|
|
65
|
-
{
|
|
66
|
-
className: 'components-dropdown-menu__popover',
|
|
67
|
-
},
|
|
68
|
-
popoverProps
|
|
69
|
-
);
|
|
70
|
-
|
|
71
|
-
return (
|
|
72
|
-
<Dropdown
|
|
73
|
-
className={ clsx( 'components-dropdown-menu', className ) }
|
|
74
|
-
popoverProps={ mergedPopoverProps }
|
|
75
|
-
renderToggle={ ( { isOpen, onToggle } ) => {
|
|
76
|
-
const mergedToggleProps = mergeProps(
|
|
77
|
-
{
|
|
78
|
-
className: clsx( 'components-dropdown-menu__toggle', {
|
|
79
|
-
'is-opened': isOpen,
|
|
80
|
-
} ),
|
|
81
|
-
},
|
|
82
|
-
toggleProps
|
|
83
|
-
);
|
|
84
|
-
|
|
85
|
-
return (
|
|
86
|
-
<Button
|
|
87
|
-
{ ...mergedToggleProps }
|
|
88
|
-
icon={ icon }
|
|
89
|
-
onClick={ ( event ) => {
|
|
90
|
-
onToggle( event );
|
|
91
|
-
if ( mergedToggleProps.onClick ) {
|
|
92
|
-
mergedToggleProps.onClick( event );
|
|
93
|
-
}
|
|
94
|
-
} }
|
|
95
|
-
aria-haspopup="true"
|
|
96
|
-
aria-expanded={ isOpen }
|
|
97
|
-
label={ label }
|
|
98
|
-
>
|
|
99
|
-
{ mergedToggleProps.children }
|
|
100
|
-
</Button>
|
|
101
|
-
);
|
|
102
|
-
} }
|
|
103
|
-
renderContent={ ( { isOpen, onClose, ...props } ) => {
|
|
104
|
-
return (
|
|
105
|
-
<BottomSheet
|
|
106
|
-
hideHeader
|
|
107
|
-
isVisible={ isOpen }
|
|
108
|
-
onClose={ onClose }
|
|
109
|
-
>
|
|
110
|
-
{ isFunction( children ) ? children( props ) : null }
|
|
111
|
-
<PanelBody
|
|
112
|
-
title={ label }
|
|
113
|
-
style={ { paddingLeft: 0, paddingRight: 0 } }
|
|
114
|
-
>
|
|
115
|
-
{ controlSets?.flatMap(
|
|
116
|
-
( controlSet, indexOfSet ) =>
|
|
117
|
-
controlSet.map(
|
|
118
|
-
( control, indexOfControl ) => (
|
|
119
|
-
<BottomSheet.Cell
|
|
120
|
-
key={ [
|
|
121
|
-
indexOfSet,
|
|
122
|
-
indexOfControl,
|
|
123
|
-
].join() }
|
|
124
|
-
label={ control.title }
|
|
125
|
-
onPress={ () => {
|
|
126
|
-
onClose();
|
|
127
|
-
if ( control.onClick ) {
|
|
128
|
-
control.onClick();
|
|
129
|
-
}
|
|
130
|
-
} }
|
|
131
|
-
editable={ false }
|
|
132
|
-
icon={ control.icon }
|
|
133
|
-
leftAlign
|
|
134
|
-
isSelected={ control.isActive }
|
|
135
|
-
separatorType={
|
|
136
|
-
Platform.OS === 'android'
|
|
137
|
-
? 'none'
|
|
138
|
-
: 'leftMargin'
|
|
139
|
-
}
|
|
140
|
-
/>
|
|
141
|
-
)
|
|
142
|
-
)
|
|
143
|
-
) }
|
|
144
|
-
</PanelBody>
|
|
145
|
-
</BottomSheet>
|
|
146
|
-
);
|
|
147
|
-
} }
|
|
148
|
-
/>
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
export default withPreferredColorScheme( DropdownMenu );
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { TouchableOpacity, Text, Linking } from 'react-native';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* WordPress dependencies
|
|
9
|
-
*/
|
|
10
|
-
import { __ } from '@wordpress/i18n';
|
|
11
|
-
import { external, Icon } from '@wordpress/icons';
|
|
12
|
-
|
|
13
|
-
export function ExternalLink( { href, children } ) {
|
|
14
|
-
return (
|
|
15
|
-
<TouchableOpacity
|
|
16
|
-
onPress={ () => Linking.openURL( href ) }
|
|
17
|
-
accessibilityLabel={ __( 'Open link in a browser' ) }
|
|
18
|
-
>
|
|
19
|
-
<Text>{ children }</Text>
|
|
20
|
-
<Icon icon={ external } />
|
|
21
|
-
</TouchableOpacity>
|
|
22
|
-
);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export default ExternalLink;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { Path, SVG } from '@wordpress/primitives';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Internal dependencies
|
|
8
|
-
*/
|
|
9
|
-
import styles from './style.scss';
|
|
10
|
-
|
|
11
|
-
export default function FocalPoint( { height, style, width } ) {
|
|
12
|
-
return (
|
|
13
|
-
<SVG
|
|
14
|
-
height={ height }
|
|
15
|
-
style={ style }
|
|
16
|
-
viewBox="0 0 30 30"
|
|
17
|
-
width={ width }
|
|
18
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
19
|
-
>
|
|
20
|
-
<Path
|
|
21
|
-
style={ styles.focalPointIconPathOutline }
|
|
22
|
-
d="M15 1C7.3 1 1 7.3 1 15s6.3 14 14 14 14-6.3 14-14S22.7 1 15 1zm0 22c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8z"
|
|
23
|
-
/>
|
|
24
|
-
<Path
|
|
25
|
-
style={ styles.focalPointIconPathFill }
|
|
26
|
-
d="M15 3C8.4 3 3 8.4 3 15s5.4 12 12 12 12-5.4 12-12S21.6 3 15 3zm0 22C9.5 25 5 20.5 5 15S9.5 5 15 5s10 4.5 10 10-4.5 10-10 10z"
|
|
27
|
-
/>
|
|
28
|
-
</SVG>
|
|
29
|
-
);
|
|
30
|
-
}
|
|
@@ -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
|
-
}
|