@wordpress/components 19.11.0 → 19.12.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 +36 -0
- package/README.md +1 -1
- package/build/alignment-matrix-control/index.js +5 -2
- package/build/alignment-matrix-control/index.js.map +1 -1
- package/build/autocomplete/autocompleter-ui.js +1 -1
- package/build/autocomplete/autocompleter-ui.js.map +1 -1
- package/build/autocomplete/autocompleter-ui.native.js +2 -2
- package/build/autocomplete/autocompleter-ui.native.js.map +1 -1
- package/build/autocomplete/index.js +12 -10
- package/build/autocomplete/index.js.map +1 -1
- package/build/border-box-control/border-box-control/hook.js +2 -2
- package/build/border-box-control/border-box-control/hook.js.map +1 -1
- package/build/border-box-control/border-box-control-split-controls/component.js +2 -0
- package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build/border-box-control/border-box-control-split-controls/hook.js +13 -4
- package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
- package/build/border-box-control/border-box-control-visualizer/hook.js +6 -2
- package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
- package/build/border-box-control/styles.js +21 -11
- package/build/border-box-control/styles.js.map +1 -1
- package/build/border-control/border-control/hook.js +2 -2
- package/build/border-control/border-control/hook.js.map +1 -1
- package/build/color-palette/index.js +9 -2
- package/build/color-palette/index.js.map +1 -1
- package/build/color-palette/index.native.js +4 -1
- package/build/color-palette/index.native.js.map +1 -1
- package/build/color-picker/color-copy-button.js +87 -0
- package/build/color-picker/color-copy-button.js.map +1 -0
- package/build/color-picker/component.js +5 -15
- package/build/color-picker/component.js.map +1 -1
- package/build/color-picker/hex-input.js +18 -1
- package/build/color-picker/hex-input.js.map +1 -1
- package/build/color-picker/styles.js +11 -11
- package/build/color-picker/styles.js.map +1 -1
- package/build/custom-gradient-picker/utils.js +1 -1
- package/build/custom-gradient-picker/utils.js.map +1 -1
- package/build/date-time/{date.js → date/index.js} +51 -12
- package/build/date-time/date/index.js.map +1 -0
- package/build/date-time/date/styles.js +70 -0
- package/build/date-time/date/styles.js.map +1 -0
- package/build/date-time/{utils.js → date/utils.js} +0 -0
- package/build/date-time/date/utils.js.map +1 -0
- package/build/date-time/date-time/index.js +175 -0
- package/build/date-time/date-time/index.js.map +1 -0
- package/build/date-time/date-time/styles.js +32 -0
- package/build/date-time/date-time/styles.js.map +1 -0
- package/build/date-time/index.js +2 -109
- package/build/date-time/index.js.map +1 -1
- package/build/date-time/time/index.js +322 -0
- package/build/date-time/time/index.js.map +1 -0
- package/build/date-time/time/styles.js +139 -0
- package/build/date-time/time/styles.js.map +1 -0
- package/build/date-time/{timezone.js → time/timezone.js} +4 -2
- package/build/date-time/time/timezone.js.map +1 -0
- package/build/draggable/index.native.js +10 -5
- package/build/draggable/index.native.js.map +1 -1
- package/build/dropdown/index.js +4 -1
- package/build/dropdown/index.js.map +1 -1
- package/build/input-control/index.js +9 -4
- package/build/input-control/index.js.map +1 -1
- package/build/input-control/input-field.js +1 -26
- package/build/input-control/input-field.js.map +1 -1
- package/build/input-control/reducer/reducer.js +36 -24
- package/build/input-control/reducer/reducer.js.map +1 -1
- package/build/input-control/reducer/state.js +0 -1
- package/build/input-control/reducer/state.js.map +1 -1
- package/build/input-control/utils.js +45 -0
- package/build/input-control/utils.js.map +1 -1
- package/build/popover/index.js +40 -33
- package/build/popover/index.js.map +1 -1
- package/build/search-control/index.js +4 -6
- package/build/search-control/index.js.map +1 -1
- package/build/select-control/index.js +3 -1
- package/build/select-control/index.js.map +1 -1
- package/build/spacer/hook.js +11 -3
- package/build/spacer/hook.js.map +1 -1
- package/build/surface/component.js +7 -7
- package/build/surface/component.js.map +1 -1
- package/build/surface/hook.js +8 -11
- package/build/surface/hook.js.map +1 -1
- package/build/surface/index.js.map +1 -1
- package/build/surface/styles.js +8 -48
- package/build/surface/styles.js.map +1 -1
- package/build/textarea-control/index.js +40 -6
- package/build/textarea-control/index.js.map +1 -1
- package/build/textarea-control/styles/textarea-control-styles.js +3 -3
- package/build/textarea-control/styles/textarea-control-styles.js.map +1 -1
- package/build/textarea-control/types.js +6 -0
- package/build/textarea-control/types.js.map +1 -0
- package/build/utils/hooks/index.js +0 -8
- package/build/utils/hooks/index.js.map +1 -1
- package/build-module/alignment-matrix-control/index.js +5 -2
- package/build-module/alignment-matrix-control/index.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.js +1 -1
- package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
- package/build-module/autocomplete/autocompleter-ui.native.js +2 -2
- package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
- package/build-module/autocomplete/index.js +13 -11
- package/build-module/autocomplete/index.js.map +1 -1
- package/build-module/border-box-control/border-box-control/hook.js +2 -2
- package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
- package/build-module/border-box-control/border-box-control-split-controls/component.js +2 -0
- package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control-split-controls/hook.js +11 -4
- package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
- package/build-module/border-box-control/border-box-control-visualizer/hook.js +4 -2
- package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
- package/build-module/border-box-control/styles.js +13 -8
- package/build-module/border-box-control/styles.js.map +1 -1
- package/build-module/border-control/border-control/hook.js +2 -2
- package/build-module/border-control/border-control/hook.js.map +1 -1
- package/build-module/color-palette/index.js +7 -5
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/color-palette/index.native.js +4 -1
- package/build-module/color-palette/index.native.js.map +1 -1
- package/build-module/color-picker/color-copy-button.js +73 -0
- package/build-module/color-picker/color-copy-button.js.map +1 -0
- package/build-module/color-picker/component.js +6 -15
- package/build-module/color-picker/component.js.map +1 -1
- package/build-module/color-picker/hex-input.js +18 -1
- package/build-module/color-picker/hex-input.js.map +1 -1
- package/build-module/color-picker/styles.js +9 -9
- package/build-module/color-picker/styles.js.map +1 -1
- package/build-module/custom-gradient-picker/utils.js +1 -1
- package/build-module/custom-gradient-picker/utils.js.map +1 -1
- package/build-module/date-time/{date.js → date/index.js} +46 -14
- package/build-module/date-time/date/index.js.map +1 -0
- package/build-module/date-time/date/styles.js +61 -0
- package/build-module/date-time/date/styles.js.map +1 -0
- package/build-module/date-time/{utils.js → date/utils.js} +0 -0
- package/build-module/date-time/date/utils.js.map +1 -0
- package/build-module/date-time/date-time/index.js +144 -0
- package/build-module/date-time/date-time/index.js.map +1 -0
- package/build-module/date-time/date-time/styles.js +22 -0
- package/build-module/date-time/date-time/styles.js.map +1 -0
- package/build-module/date-time/index.js +1 -105
- package/build-module/date-time/index.js.map +1 -1
- package/build-module/date-time/time/index.js +302 -0
- package/build-module/date-time/time/index.js.map +1 -0
- package/build-module/date-time/time/styles.js +118 -0
- package/build-module/date-time/time/styles.js.map +1 -0
- package/build-module/date-time/{timezone.js → time/timezone.js} +3 -2
- package/build-module/date-time/time/timezone.js.map +1 -0
- package/build-module/draggable/index.native.js +10 -5
- package/build-module/draggable/index.native.js.map +1 -1
- package/build-module/dropdown/index.js +4 -1
- package/build-module/dropdown/index.js.map +1 -1
- package/build-module/input-control/index.js +8 -4
- package/build-module/input-control/index.js.map +1 -1
- package/build-module/input-control/input-field.js +1 -25
- package/build-module/input-control/input-field.js.map +1 -1
- package/build-module/input-control/reducer/reducer.js +38 -26
- package/build-module/input-control/reducer/reducer.js.map +1 -1
- package/build-module/input-control/reducer/state.js +0 -1
- package/build-module/input-control/reducer/state.js.map +1 -1
- package/build-module/input-control/utils.js +48 -2
- package/build-module/input-control/utils.js.map +1 -1
- package/build-module/popover/index.js +40 -33
- package/build-module/popover/index.js.map +1 -1
- package/build-module/search-control/index.js +6 -7
- package/build-module/search-control/index.js.map +1 -1
- package/build-module/select-control/index.js +3 -1
- package/build-module/select-control/index.js.map +1 -1
- package/build-module/spacer/hook.js +10 -2
- package/build-module/spacer/hook.js.map +1 -1
- package/build-module/surface/component.js +7 -7
- package/build-module/surface/component.js.map +1 -1
- package/build-module/surface/hook.js +8 -11
- package/build-module/surface/hook.js.map +1 -1
- package/build-module/surface/index.js.map +1 -1
- package/build-module/surface/styles.js +8 -48
- package/build-module/surface/styles.js.map +1 -1
- package/build-module/textarea-control/index.js +36 -5
- package/build-module/textarea-control/index.js.map +1 -1
- package/build-module/textarea-control/styles/textarea-control-styles.js +3 -3
- package/build-module/textarea-control/styles/textarea-control-styles.js.map +1 -1
- package/build-module/textarea-control/types.js +2 -0
- package/build-module/textarea-control/types.js.map +1 -0
- package/build-module/utils/hooks/index.js +0 -1
- package/build-module/utils/hooks/index.js.map +1 -1
- package/build-style/style-rtl.css +13 -188
- package/build-style/style.css +13 -191
- package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +1 -0
- 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.map +1 -1
- package/build-types/border-box-control/styles.d.ts +3 -2
- package/build-types/border-box-control/styles.d.ts.map +1 -1
- package/build-types/border-control/border-control/hook.d.ts.map +1 -1
- package/build-types/card/types.d.ts +1 -1
- package/build-types/card/types.d.ts.map +1 -1
- package/build-types/checkbox-control/test/index.d.ts +2 -0
- package/build-types/checkbox-control/test/index.d.ts.map +1 -0
- package/build-types/color-palette/index.d.ts +1 -0
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/{date-time → color-palette}/test/utils.d.ts +0 -0
- package/build-types/color-palette/test/utils.d.ts.map +1 -0
- package/build-types/color-picker/color-copy-button.d.ts +4 -0
- package/build-types/color-picker/color-copy-button.d.ts.map +1 -0
- package/build-types/color-picker/component.d.ts.map +1 -1
- package/build-types/color-picker/hex-input.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +1 -1
- package/build-types/color-picker/styles.d.ts.map +1 -1
- package/build-types/color-picker/types.d.ts +8 -0
- package/build-types/color-picker/types.d.ts.map +1 -1
- package/build-types/date-time/{date.d.ts → date/index.d.ts} +3 -2
- package/build-types/date-time/date/index.d.ts.map +1 -0
- package/build-types/date-time/date/styles.d.ts +23 -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/utils.d.ts +2 -0
- package/build-types/date-time/date/test/utils.d.ts.map +1 -0
- package/build-types/date-time/{utils.d.ts → date/utils.d.ts} +0 -0
- package/build-types/date-time/date/utils.d.ts.map +1 -0
- package/build-types/date-time/date-time/index.d.ts +33 -0
- package/build-types/date-time/date-time/index.d.ts.map +1 -0
- package/build-types/date-time/date-time/styles.d.ts +6 -0
- package/build-types/date-time/date-time/styles.d.ts.map +1 -0
- package/build-types/date-time/index.d.ts +2 -28
- package/build-types/date-time/index.d.ts.map +1 -1
- package/build-types/date-time/stories/{index.d.ts → date-time.d.ts} +2 -2
- package/build-types/date-time/stories/date-time.d.ts.map +1 -0
- package/build-types/date-time/{time.d.ts → time/index.d.ts} +2 -2
- package/build-types/date-time/time/index.d.ts.map +1 -0
- package/build-types/date-time/time/styles.d.ts +111 -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/{timezone.d.ts → time/timezone.d.ts} +0 -0
- package/build-types/date-time/time/timezone.d.ts.map +1 -0
- package/build-types/date-time/types.d.ts +14 -15
- package/build-types/date-time/types.d.ts.map +1 -1
- package/build-types/dropdown/index.d.ts.map +1 -1
- package/build-types/input-control/index.d.ts.map +1 -1
- package/build-types/input-control/input-field.d.ts.map +1 -1
- package/build-types/input-control/reducer/reducer.d.ts +5 -3
- package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
- package/build-types/input-control/reducer/state.d.ts +2 -2
- package/build-types/input-control/reducer/state.d.ts.map +1 -1
- package/build-types/input-control/utils.d.ts +17 -0
- package/build-types/input-control/utils.d.ts.map +1 -1
- package/build-types/popover/index.d.ts +1 -0
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/select-control/index.d.ts.map +1 -1
- package/build-types/select-control/types.d.ts +1 -1
- package/build-types/select-control/types.d.ts.map +1 -1
- package/build-types/surface/component.d.ts +3 -2
- package/build-types/surface/component.d.ts.map +1 -1
- package/build-types/surface/hook.d.ts +4 -4
- package/build-types/surface/hook.d.ts.map +1 -1
- package/build-types/surface/index.d.ts +2 -2
- package/build-types/surface/index.d.ts.map +1 -1
- package/build-types/surface/stories/index.d.ts +12 -0
- package/build-types/surface/stories/index.d.ts.map +1 -0
- package/build-types/surface/styles.d.ts +10 -21
- package/build-types/surface/styles.d.ts.map +1 -1
- package/build-types/surface/test/index.d.ts +2 -0
- package/build-types/surface/test/index.d.ts.map +1 -0
- package/build-types/surface/types.d.ts +1 -1
- package/build-types/surface/types.d.ts.map +1 -1
- package/build-types/textarea-control/index.d.ts +29 -0
- package/build-types/textarea-control/index.d.ts.map +1 -0
- package/build-types/textarea-control/stories/index.d.ts +12 -0
- package/build-types/textarea-control/stories/index.d.ts.map +1 -0
- package/build-types/textarea-control/styles/textarea-control-styles.d.ts +6 -0
- package/build-types/textarea-control/styles/textarea-control-styles.d.ts.map +1 -0
- package/build-types/textarea-control/types.d.ts +26 -0
- package/build-types/textarea-control/types.d.ts.map +1 -0
- package/build-types/utils/hooks/index.d.ts +0 -1
- package/package.json +18 -18
- package/src/alignment-matrix-control/index.js +4 -2
- package/src/autocomplete/autocompleter-ui.js +1 -1
- package/src/autocomplete/autocompleter-ui.native.js +2 -2
- package/src/autocomplete/index.js +21 -9
- package/src/border-box-control/border-box-control/hook.ts +2 -2
- package/src/border-box-control/border-box-control-split-controls/component.tsx +2 -0
- package/src/border-box-control/border-box-control-split-controls/hook.ts +18 -4
- package/src/border-box-control/border-box-control-visualizer/hook.ts +5 -2
- package/src/border-box-control/styles.ts +6 -2
- package/src/border-control/border-control/hook.ts +8 -2
- package/src/box-control/test/index.js +120 -109
- package/src/card/types.ts +1 -1
- package/src/checkbox-control/test/__snapshots__/index.tsx.snap +42 -0
- package/src/checkbox-control/test/index.tsx +109 -0
- package/src/color-palette/index.js +11 -4
- package/src/color-palette/index.native.js +3 -0
- package/src/color-palette/stories/index.js +25 -1
- package/src/color-palette/test/utils.ts +24 -0
- package/src/color-picker/color-copy-button.tsx +76 -0
- package/src/color-picker/component.tsx +18 -38
- package/src/color-picker/hex-input.tsx +16 -0
- package/src/color-picker/styles.ts +5 -1
- package/src/color-picker/types.ts +9 -0
- package/src/custom-gradient-picker/utils.js +1 -1
- package/src/date-time/README.md +16 -0
- package/src/date-time/{datepicker.scss → date/datepicker.scss} +0 -0
- package/src/date-time/{date.tsx → date/index.tsx} +38 -15
- package/src/date-time/date/style.scss +75 -0
- package/src/date-time/date/styles.ts +55 -0
- package/src/date-time/{test/date.tsx → date/test/index.tsx} +1 -1
- package/src/date-time/{test → date/test}/utils.ts +0 -0
- package/src/date-time/{utils.ts → date/utils.ts} +0 -0
- package/src/date-time/date-time/index.tsx +217 -0
- package/src/date-time/date-time/styles.ts +8 -0
- package/src/date-time/index.ts +9 -0
- package/src/date-time/stories/{index.tsx → date-time.tsx} +1 -1
- package/src/date-time/style.scss +1 -262
- package/src/date-time/time/index.tsx +356 -0
- package/src/date-time/time/styles.ts +119 -0
- package/src/date-time/{test/time.tsx → time/test/index.tsx} +85 -38
- package/src/date-time/{timezone.tsx → time/timezone.tsx} +5 -2
- package/src/date-time/types.ts +16 -18
- package/src/draggable/index.native.js +14 -3
- package/src/draggable/test/index.native.js +130 -0
- package/src/dropdown/index.js +5 -1
- package/src/input-control/index.tsx +8 -2
- package/src/input-control/input-field.tsx +10 -30
- package/src/input-control/reducer/reducer.ts +40 -26
- package/src/input-control/reducer/state.ts +2 -3
- package/src/input-control/utils.ts +55 -1
- package/src/popover/index.js +42 -27
- package/src/query-controls/README.md +1 -1
- package/src/search-control/index.js +6 -7
- package/src/select-control/README.md +11 -0
- package/src/select-control/index.tsx +6 -1
- package/src/select-control/types.ts +1 -1
- package/src/slot-fill/README.md +1 -1
- package/src/spacer/hook.ts +13 -13
- package/src/surface/README.md +15 -15
- package/src/surface/{component.js → component.tsx} +13 -7
- package/src/surface/{hook.js → hook.ts} +13 -12
- package/src/surface/{index.js → index.ts} +0 -0
- package/src/surface/stories/index.tsx +40 -0
- package/src/surface/{styles.js → styles.ts} +15 -44
- package/src/surface/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
- package/src/surface/test/{index.js → index.tsx} +2 -1
- package/src/surface/types.ts +1 -1
- package/src/textarea-control/README.md +14 -20
- package/src/textarea-control/index.tsx +86 -0
- package/src/textarea-control/stories/index.tsx +58 -0
- package/src/textarea-control/styles/{textarea-control-styles.js → textarea-control-styles.ts} +0 -0
- package/src/textarea-control/types.ts +30 -0
- package/src/utils/hooks/index.js +0 -1
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/color-picker/color-display.js +0 -184
- package/build/color-picker/color-display.js.map +0 -1
- package/build/date-time/date.js.map +0 -1
- package/build/date-time/time.js +0 -289
- package/build/date-time/time.js.map +0 -1
- package/build/date-time/timezone.js.map +0 -1
- package/build/date-time/utils.js.map +0 -1
- package/build/utils/hooks/use-combined-ref.js +0 -32
- package/build/utils/hooks/use-combined-ref.js.map +0 -1
- package/build-module/color-picker/color-display.js +0 -170
- package/build-module/color-picker/color-display.js.map +0 -1
- package/build-module/date-time/date.js.map +0 -1
- package/build-module/date-time/time.js +0 -271
- package/build-module/date-time/time.js.map +0 -1
- package/build-module/date-time/timezone.js.map +0 -1
- package/build-module/date-time/utils.js.map +0 -1
- package/build-module/utils/hooks/use-combined-ref.js +0 -28
- package/build-module/utils/hooks/use-combined-ref.js.map +0 -1
- package/build-types/color-picker/color-display.d.ts +0 -14
- package/build-types/color-picker/color-display.d.ts.map +0 -1
- package/build-types/date-time/date.d.ts.map +0 -1
- package/build-types/date-time/stories/index.d.ts.map +0 -1
- package/build-types/date-time/test/date.d.ts +0 -2
- package/build-types/date-time/test/date.d.ts.map +0 -1
- package/build-types/date-time/test/time.d.ts +0 -2
- package/build-types/date-time/test/time.d.ts.map +0 -1
- package/build-types/date-time/test/utils.d.ts.map +0 -1
- package/build-types/date-time/time.d.ts.map +0 -1
- package/build-types/date-time/timezone.d.ts.map +0 -1
- package/build-types/date-time/utils.d.ts.map +0 -1
- package/build-types/utils/hooks/use-combined-ref.d.ts +0 -8
- package/build-types/utils/hooks/use-combined-ref.d.ts.map +0 -1
- package/src/color-picker/color-display.tsx +0 -169
- package/src/date-time/index.tsx +0 -196
- package/src/date-time/time.tsx +0 -321
- package/src/surface/stories/index.js +0 -46
- package/src/textarea-control/index.js +0 -45
- package/src/textarea-control/stories/index.js +0 -48
- package/src/utils/hooks/use-combined-ref.ts +0 -28
package/build/popover/index.js
CHANGED
|
@@ -120,6 +120,7 @@ const Popover = (_ref, ref) => {
|
|
|
120
120
|
__unstableSlotName = SLOT_NAME,
|
|
121
121
|
__unstableObserveElement,
|
|
122
122
|
__unstableForcePosition,
|
|
123
|
+
__unstableShift = false,
|
|
123
124
|
...contentProps
|
|
124
125
|
} = _ref;
|
|
125
126
|
|
|
@@ -135,30 +136,31 @@ const Popover = (_ref, ref) => {
|
|
|
135
136
|
const isExpanded = expandOnMobile && isMobileViewport;
|
|
136
137
|
const hasArrow = !isExpanded && !noArrow;
|
|
137
138
|
const usedPlacement = position ? positionToPlacement(position) : placement;
|
|
138
|
-
|
|
139
|
-
* Offsets the the position of the popover when the anchor is inside an iframe.
|
|
140
|
-
*/
|
|
141
|
-
|
|
142
|
-
const frameOffset = (0, _element.useMemo)(() => {
|
|
143
|
-
let ownerDocument = document;
|
|
144
|
-
|
|
139
|
+
const ownerDocument = (0, _element.useMemo)(() => {
|
|
145
140
|
if (anchorRef !== null && anchorRef !== void 0 && anchorRef.top) {
|
|
146
|
-
|
|
141
|
+
return anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.top.ownerDocument;
|
|
147
142
|
} else if (anchorRef !== null && anchorRef !== void 0 && anchorRef.startContainer) {
|
|
148
|
-
|
|
143
|
+
return anchorRef.startContainer.ownerDocument;
|
|
149
144
|
} else if (anchorRef !== null && anchorRef !== void 0 && anchorRef.current) {
|
|
150
|
-
|
|
145
|
+
return anchorRef.current.ownerDocument;
|
|
151
146
|
} else if (anchorRef) {
|
|
152
147
|
// This one should be deprecated.
|
|
153
|
-
|
|
148
|
+
return anchorRef.ownerDocument;
|
|
154
149
|
} else if (anchorRect && anchorRect !== null && anchorRect !== void 0 && anchorRect.ownerDocument) {
|
|
155
|
-
|
|
150
|
+
return anchorRect.ownerDocument;
|
|
156
151
|
} else if (getAnchorRect) {
|
|
157
152
|
var _getAnchorRect$ownerD, _getAnchorRect;
|
|
158
153
|
|
|
159
|
-
|
|
154
|
+
return (_getAnchorRect$ownerD = (_getAnchorRect = getAnchorRect()) === null || _getAnchorRect === void 0 ? void 0 : _getAnchorRect.ownerDocument) !== null && _getAnchorRect$ownerD !== void 0 ? _getAnchorRect$ownerD : document;
|
|
160
155
|
}
|
|
161
156
|
|
|
157
|
+
return document;
|
|
158
|
+
}, [anchorRef, anchorRect, getAnchorRect]);
|
|
159
|
+
/**
|
|
160
|
+
* Offsets the the position of the popover when the anchor is inside an iframe.
|
|
161
|
+
*/
|
|
162
|
+
|
|
163
|
+
const frameOffset = (0, _element.useMemo)(() => {
|
|
162
164
|
const {
|
|
163
165
|
defaultView
|
|
164
166
|
} = ownerDocument;
|
|
@@ -186,25 +188,26 @@ const Popover = (_ref, ref) => {
|
|
|
186
188
|
}
|
|
187
189
|
|
|
188
190
|
};
|
|
189
|
-
}, [
|
|
191
|
+
}, [ownerDocument]);
|
|
190
192
|
const middlewares = [frameOffset, offset ? (0, _reactDom.offset)(offset) : undefined, __unstableForcePosition ? undefined : (0, _reactDom.flip)(), __unstableForcePosition ? undefined : (0, _reactDom.size)({
|
|
191
|
-
apply(
|
|
192
|
-
|
|
193
|
-
width,
|
|
193
|
+
apply(sizeProps) {
|
|
194
|
+
const {
|
|
194
195
|
height
|
|
195
|
-
} =
|
|
196
|
-
if (!refs.floating.current) return;
|
|
196
|
+
} = sizeProps;
|
|
197
|
+
if (!refs.floating.current) return; // Reduce the height of the popover to the available space.
|
|
198
|
+
|
|
197
199
|
Object.assign(refs.floating.current.firstChild.style, {
|
|
198
|
-
maxWidth: `${width}px`,
|
|
199
200
|
maxHeight: `${height}px`,
|
|
200
201
|
overflow: 'auto'
|
|
201
202
|
});
|
|
202
203
|
}
|
|
203
204
|
|
|
204
|
-
})
|
|
205
|
+
}), __unstableShift ? (0, _reactDom.shift)({
|
|
205
206
|
crossAxis: true,
|
|
206
|
-
limiter: (0, _reactDom.limitShift)()
|
|
207
|
-
|
|
207
|
+
limiter: (0, _reactDom.limitShift)(),
|
|
208
|
+
padding: 1 // Necessary to avoid flickering at the edge of the viewport.
|
|
209
|
+
|
|
210
|
+
}) : undefined, hasArrow ? (0, _reactDom.arrow)({
|
|
208
211
|
element: arrowRef
|
|
209
212
|
}) : undefined].filter(m => !!m);
|
|
210
213
|
const anchorRefFallback = (0, _element.useRef)(null);
|
|
@@ -279,15 +282,10 @@ const Popover = (_ref, ref) => {
|
|
|
279
282
|
} else if (getAnchorRect) {
|
|
280
283
|
usedRef = {
|
|
281
284
|
getBoundingClientRect() {
|
|
282
|
-
var _rect$x, _rect$y, _rect$
|
|
285
|
+
var _rect$x, _rect$y, _rect$width, _rect$height;
|
|
283
286
|
|
|
284
287
|
const rect = getAnchorRect();
|
|
285
|
-
return
|
|
286
|
-
x: (_rect$x = rect.x) !== null && _rect$x !== void 0 ? _rect$x : rect.left,
|
|
287
|
-
y: (_rect$y = rect.y) !== null && _rect$y !== void 0 ? _rect$y : rect.top,
|
|
288
|
-
height: (_rect$height = rect.height) !== null && _rect$height !== void 0 ? _rect$height : rect.bottom - rect.top,
|
|
289
|
-
width: (_rect$width = rect.width) !== null && _rect$width !== void 0 ? _rect$width : rect.right - rect.left
|
|
290
|
-
};
|
|
288
|
+
return new window.DOMRect((_rect$x = rect.x) !== null && _rect$x !== void 0 ? _rect$x : rect.left, (_rect$y = rect.y) !== null && _rect$y !== void 0 ? _rect$y : rect.top, (_rect$width = rect.width) !== null && _rect$width !== void 0 ? _rect$width : rect.right - rect.left, (_rect$height = rect.height) !== null && _rect$height !== void 0 ? _rect$height : rect.bottom - rect.top);
|
|
291
289
|
}
|
|
292
290
|
|
|
293
291
|
};
|
|
@@ -320,7 +318,16 @@ const Popover = (_ref, ref) => {
|
|
|
320
318
|
return () => {
|
|
321
319
|
observer.disconnect();
|
|
322
320
|
};
|
|
323
|
-
}, [__unstableObserveElement]);
|
|
321
|
+
}, [__unstableObserveElement]); // If we're using getAnchorRect, we need to update the position as we scroll the iframe.
|
|
322
|
+
|
|
323
|
+
(0, _element.useLayoutEffect)(() => {
|
|
324
|
+
if (ownerDocument === document) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
ownerDocument.addEventListener('scroll', update);
|
|
329
|
+
return () => ownerDocument.removeEventListener('scroll', update);
|
|
330
|
+
}, [ownerDocument]);
|
|
324
331
|
/** @type {false | string} */
|
|
325
332
|
|
|
326
333
|
const animateClassName = !!animate && (0, _animate.getAnimateClassName)({
|
|
@@ -384,10 +391,10 @@ const Popover = (_ref, ref) => {
|
|
|
384
391
|
|
|
385
392
|
const PopoverContainer = (0, _element.forwardRef)(Popover);
|
|
386
393
|
|
|
387
|
-
function PopoverSlot(
|
|
394
|
+
function PopoverSlot(_ref3, ref) {
|
|
388
395
|
let {
|
|
389
396
|
name = SLOT_NAME
|
|
390
|
-
} =
|
|
397
|
+
} = _ref3;
|
|
391
398
|
return (0, _element.createElement)(_slotFill.Slot, {
|
|
392
399
|
bubblesVirtually: true,
|
|
393
400
|
name: name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/popover/index.js"],"names":["SLOT_NAME","slotNameContext","positionToPlacement","position","x","y","z","split","includes","suffix","placementToAnimationOrigin","placement","a","b","Popover","ref","range","animate","headerTitle","onClose","children","className","noArrow","isAlternate","offset","focusOnMount","anchorRef","anchorRect","getAnchorRect","expandOnMobile","onFocusOutside","__unstableSlotName","__unstableObserveElement","__unstableForcePosition","contentProps","since","version","arrowRef","isMobileViewport","isExpanded","hasArrow","usedPlacement","frameOffset","ownerDocument","document","top","startContainer","current","defaultView","frameElement","undefined","iframeRect","getBoundingClientRect","name","fn","left","middlewares","apply","width","height","refs","floating","Object","assign","firstChild","style","maxWidth","maxHeight","overflow","crossAxis","limiter","element","filter","m","anchorRefFallback","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","reference","strategy","update","placementData","middlewareData","arrow","arrowData","middleware","staticSide","right","bottom","mergedRefs","usedRef","topRect","bottomRect","window","DOMRect","rect","observer","MutationObserver","observe","attributes","disconnect","animateClassName","origin","content","Number","isNaN","close","PopoverContainer","PopoverSlot","Slot","__unstableSlotNameProvider","Provider"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport {\n\tuseFloating,\n\tflip,\n\tshift,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tlimitShift,\n\tsize,\n} from '@floating-ui/react-dom';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport { getAnimateClassName } from '../animate';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nconst SLOT_NAME = 'Popover';\n\nconst slotNameContext = createContext();\n\nconst positionToPlacement = ( position ) => {\n\tconst [ x, y, z ] = position.split( ' ' );\n\n\tif ( [ 'top', 'bottom' ].includes( x ) ) {\n\t\tlet suffix = '';\n\t\tif ( ( !! z && z === 'left' ) || y === 'right' ) {\n\t\t\tsuffix = '-start';\n\t\t} else if ( ( !! z && z === 'right' ) || y === 'left' ) {\n\t\t\tsuffix = '-end';\n\t\t}\n\t\treturn x + suffix;\n\t}\n\n\treturn y;\n};\n\nconst placementToAnimationOrigin = ( placement ) => {\n\tconst [ a, b ] = placement.split( '-' );\n\n\tlet x, y;\n\tif ( a === 'top' || a === 'bottom' ) {\n\t\tx = a === 'top' ? 'bottom' : 'top';\n\t\ty = 'middle';\n\t\tif ( b === 'start' ) {\n\t\t\ty = 'left';\n\t\t} else if ( b === 'end' ) {\n\t\t\ty = 'right';\n\t\t}\n\t}\n\n\tif ( a === 'left' || a === 'right' ) {\n\t\tx = 'center';\n\t\ty = a === 'left' ? 'right' : 'left';\n\t\tif ( b === 'start' ) {\n\t\t\tx = 'top';\n\t\t} else if ( b === 'end' ) {\n\t\t\tx = 'bottom';\n\t\t}\n\t}\n\n\treturn x + ' ' + y;\n};\n\nconst Popover = (\n\t{\n\t\trange,\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tisAlternate,\n\t\tposition,\n\t\tplacement = 'bottom-start',\n\t\toffset,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\t__unstableObserveElement,\n\t\t__unstableForcePosition,\n\t\t...contentProps\n\t},\n\tref\n) => {\n\tif ( range ) {\n\t\tdeprecated( 'range prop in Popover component', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef( null );\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst hasArrow = ! isExpanded && ! noArrow;\n\tconst usedPlacement = position\n\t\t? positionToPlacement( position )\n\t\t: placement;\n\n\t/**\n\t * Offsets the the position of the popover when the anchor is inside an iframe.\n\t */\n\tconst frameOffset = useMemo( () => {\n\t\tlet ownerDocument = document;\n\t\tif ( anchorRef?.top ) {\n\t\t\townerDocument = anchorRef?.top.ownerDocument;\n\t\t} else if ( anchorRef?.startContainer ) {\n\t\t\townerDocument = anchorRef.startContainer.ownerDocument;\n\t\t} else if ( anchorRef?.current ) {\n\t\t\townerDocument = anchorRef.current.ownerDocument;\n\t\t} else if ( anchorRef ) {\n\t\t\t// This one should be deprecated.\n\t\t\townerDocument = anchorRef.ownerDocument;\n\t\t} else if ( anchorRect && anchorRect?.ownerDocument ) {\n\t\t\townerDocument = anchorRect.ownerDocument;\n\t\t} else if ( getAnchorRect ) {\n\t\t\townerDocument = getAnchorRect()?.ownerDocument ?? document;\n\t\t}\n\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst { frameElement } = defaultView;\n\n\t\tif ( ! frameElement || ownerDocument === document ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst iframeRect = frameElement.getBoundingClientRect();\n\t\treturn {\n\t\t\tname: 'iframeOffset',\n\t\t\tfn( { x, y } ) {\n\t\t\t\treturn {\n\t\t\t\t\tx: x + iframeRect.left,\n\t\t\t\t\ty: y + iframeRect.top,\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t}, [ anchorRef, anchorRect, getAnchorRect ] );\n\n\tconst middlewares = [\n\t\tframeOffset,\n\t\toffset ? offsetMiddleware( offset ) : undefined,\n\t\t__unstableForcePosition ? undefined : flip(),\n\t\t__unstableForcePosition\n\t\t\t? undefined\n\t\t\t: size( {\n\t\t\t\t\tapply( { width, height } ) {\n\t\t\t\t\t\tif ( ! refs.floating.current ) return;\n\n\t\t\t\t\t\tObject.assign( refs.floating.current.firstChild.style, {\n\t\t\t\t\t\t\tmaxWidth: `${ width }px`,\n\t\t\t\t\t\t\tmaxHeight: `${ height }px`,\n\t\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t\t} );\n\t\t\t\t\t},\n\t\t\t } ),\n\t\t,\n\t\tshift( {\n\t\t\tcrossAxis: true,\n\t\t\tlimiter: limitShift(),\n\t\t} ),\n\t\thasArrow ? arrow( { element: arrowRef } ) : undefined,\n\t].filter( ( m ) => !! m );\n\tconst anchorRefFallback = useRef( null );\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tconst onDialogClose = ( type, event ) => {\n\t\t// Ideally the popover should have just a single onClose prop and\n\t\t// not three props that potentially do the same thing.\n\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\tonFocusOutside( event );\n\t\t} else if ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\tx,\n\t\ty,\n\t\treference,\n\t\tfloating,\n\t\tstrategy,\n\t\trefs,\n\t\tupdate,\n\t\tplacement: placementData,\n\t\tmiddlewareData: { arrow: arrowData = {} },\n\t} = useFloating( {\n\t\tplacement: usedPlacement,\n\t\tmiddleware: middlewares,\n\t} );\n\tconst staticSide = {\n\t\ttop: 'bottom',\n\t\tright: 'left',\n\t\tbottom: 'top',\n\t\tleft: 'right',\n\t}[ placementData.split( '-' )[ 0 ] ];\n\tconst mergedRefs = useMergeRefs( [ floating, dialogRef, ref ] );\n\n\t// Updates references\n\tuseLayoutEffect( () => {\n\t\t// No ref or position have been passed\n\t\tlet usedRef;\n\t\tif ( anchorRef?.top ) {\n\t\t\tusedRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\tconst topRect = anchorRef.top.getBoundingClientRect();\n\t\t\t\t\tconst bottomRect = anchorRef.bottom.getBoundingClientRect();\n\t\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\t\ttopRect.x,\n\t\t\t\t\t\ttopRect.y,\n\t\t\t\t\t\ttopRect.width,\n\t\t\t\t\t\tbottomRect.bottom - topRect.top\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( anchorRef?.current ) {\n\t\t\tusedRef = anchorRef.current;\n\t\t} else if ( anchorRef ) {\n\t\t\tusedRef = anchorRef;\n\t\t} else if ( anchorRect ) {\n\t\t\tusedRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\treturn anchorRect;\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( getAnchorRect ) {\n\t\t\tusedRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\tconst rect = getAnchorRect();\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...rect,\n\t\t\t\t\t\tx: rect.x ?? rect.left,\n\t\t\t\t\t\ty: rect.y ?? rect.top,\n\t\t\t\t\t\theight: rect.height ?? rect.bottom - rect.top,\n\t\t\t\t\t\twidth: rect.width ?? rect.right - rect.left,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( anchorRefFallback.current ) {\n\t\t\tusedRef = anchorRefFallback.current;\n\t\t}\n\n\t\tif ( ! usedRef ) {\n\t\t\treturn;\n\t\t}\n\n\t\treference( usedRef );\n\n\t\tif ( ! refs.floating.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn autoUpdate( usedRef, refs.floating.current, update );\n\t}, [ anchorRef, anchorRect, getAnchorRect ] );\n\n\t// This is only needed for a smoth transition when moving blocks.\n\tuseLayoutEffect( () => {\n\t\tif ( ! __unstableObserveElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( update );\n\t\tobserver.observe( __unstableObserveElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ __unstableObserveElement ] );\n\n\t/** @type {false | string} */\n\tconst animateClassName =\n\t\t!! animate &&\n\t\tgetAnimateClassName( {\n\t\t\ttype: 'appear',\n\t\t\torigin: placementToAnimationOrigin( placementData ),\n\t\t} );\n\n\t// Disable reason: We care to capture the _bubbled_ events from inputs\n\t// within popover as inferring close intent.\n\n\tlet content = (\n\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-popover',\n\t\t\t\tclassName,\n\t\t\t\tanimateClassName,\n\t\t\t\t{\n\t\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t\t'is-alternate': isAlternate,\n\t\t\t\t}\n\t\t\t) }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedRefs }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex=\"-1\"\n\t\t\tstyle={\n\t\t\t\tisExpanded\n\t\t\t\t\t? undefined\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\t\tleft: Number.isNaN( x ) ? 0 : x,\n\t\t\t\t\t\t\ttop: Number.isNaN( y ) ? 0 : y,\n\t\t\t\t\t }\n\t\t\t}\n\t\t>\n\t\t\t{ isExpanded && <ScrollLock /> }\n\t\t\t{ isExpanded && (\n\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-popover__close\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-popover__content\">{ children }</div>\n\t\t\t{ hasArrow && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"components-popover__arrow\"\n\t\t\t\t\tref={ arrowRef }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\t! arrowData?.x || Number.isNaN( arrowData?.x )\n\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t: arrowData.x,\n\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\t! arrowData?.y || Number.isNaN( arrowData?.y )\n\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t: arrowData.y,\n\t\t\t\t\t\tright: undefined,\n\t\t\t\t\t\tbottom: undefined,\n\t\t\t\t\t\t[ staticSide ]: '-4px',\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n\n\tif ( slot.ref ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t}\n\n\tif ( anchorRef || anchorRect ) {\n\t\treturn content;\n\t}\n\n\treturn <span ref={ anchorRefFallback }>{ content }</span>;\n};\n\nconst PopoverContainer = forwardRef( Popover );\n\nfunction PopoverSlot( { name = SLOT_NAME }, ref ) {\n\treturn (\n\t\t<Slot\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nPopoverContainer.Slot = forwardRef( PopoverSlot );\nPopoverContainer.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default PopoverContainer;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/popover/index.js"],"names":["SLOT_NAME","slotNameContext","positionToPlacement","position","x","y","z","split","includes","suffix","placementToAnimationOrigin","placement","a","b","Popover","ref","range","animate","headerTitle","onClose","children","className","noArrow","isAlternate","offset","focusOnMount","anchorRef","anchorRect","getAnchorRect","expandOnMobile","onFocusOutside","__unstableSlotName","__unstableObserveElement","__unstableForcePosition","__unstableShift","contentProps","since","version","arrowRef","isMobileViewport","isExpanded","hasArrow","usedPlacement","ownerDocument","top","startContainer","current","document","frameOffset","defaultView","frameElement","undefined","iframeRect","getBoundingClientRect","name","fn","left","middlewares","apply","sizeProps","height","refs","floating","Object","assign","firstChild","style","maxHeight","overflow","crossAxis","limiter","padding","element","filter","m","anchorRefFallback","slotName","slot","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","reference","strategy","update","placementData","middlewareData","arrow","arrowData","middleware","staticSide","right","bottom","mergedRefs","usedRef","topRect","bottomRect","window","DOMRect","width","rect","observer","MutationObserver","observe","attributes","disconnect","addEventListener","removeEventListener","animateClassName","origin","content","Number","isNaN","close","PopoverContainer","PopoverSlot","Slot","__unstableSlotNameProvider","Provider"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport {\n\tuseFloating,\n\tflip,\n\tshift,\n\tautoUpdate,\n\tarrow,\n\toffset as offsetMiddleware,\n\tlimitShift,\n\tsize,\n} from '@floating-ui/react-dom';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport { getAnimateClassName } from '../animate';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nconst SLOT_NAME = 'Popover';\n\nconst slotNameContext = createContext();\n\nconst positionToPlacement = ( position ) => {\n\tconst [ x, y, z ] = position.split( ' ' );\n\n\tif ( [ 'top', 'bottom' ].includes( x ) ) {\n\t\tlet suffix = '';\n\t\tif ( ( !! z && z === 'left' ) || y === 'right' ) {\n\t\t\tsuffix = '-start';\n\t\t} else if ( ( !! z && z === 'right' ) || y === 'left' ) {\n\t\t\tsuffix = '-end';\n\t\t}\n\t\treturn x + suffix;\n\t}\n\n\treturn y;\n};\n\nconst placementToAnimationOrigin = ( placement ) => {\n\tconst [ a, b ] = placement.split( '-' );\n\n\tlet x, y;\n\tif ( a === 'top' || a === 'bottom' ) {\n\t\tx = a === 'top' ? 'bottom' : 'top';\n\t\ty = 'middle';\n\t\tif ( b === 'start' ) {\n\t\t\ty = 'left';\n\t\t} else if ( b === 'end' ) {\n\t\t\ty = 'right';\n\t\t}\n\t}\n\n\tif ( a === 'left' || a === 'right' ) {\n\t\tx = 'center';\n\t\ty = a === 'left' ? 'right' : 'left';\n\t\tif ( b === 'start' ) {\n\t\t\tx = 'top';\n\t\t} else if ( b === 'end' ) {\n\t\t\tx = 'bottom';\n\t\t}\n\t}\n\n\treturn x + ' ' + y;\n};\n\nconst Popover = (\n\t{\n\t\trange,\n\t\tanimate = true,\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tisAlternate,\n\t\tposition,\n\t\tplacement = 'bottom-start',\n\t\toffset,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\texpandOnMobile,\n\t\tonFocusOutside,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\t__unstableObserveElement,\n\t\t__unstableForcePosition,\n\t\t__unstableShift = false,\n\t\t...contentProps\n\t},\n\tref\n) => {\n\tif ( range ) {\n\t\tdeprecated( 'range prop in Popover component', {\n\t\t\tsince: '6.1',\n\t\t\tversion: '6.3',\n\t\t} );\n\t}\n\n\tconst arrowRef = useRef( null );\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst hasArrow = ! isExpanded && ! noArrow;\n\tconst usedPlacement = position\n\t\t? positionToPlacement( position )\n\t\t: placement;\n\n\tconst ownerDocument = useMemo( () => {\n\t\tif ( anchorRef?.top ) {\n\t\t\treturn anchorRef?.top.ownerDocument;\n\t\t} else if ( anchorRef?.startContainer ) {\n\t\t\treturn anchorRef.startContainer.ownerDocument;\n\t\t} else if ( anchorRef?.current ) {\n\t\t\treturn anchorRef.current.ownerDocument;\n\t\t} else if ( anchorRef ) {\n\t\t\t// This one should be deprecated.\n\t\t\treturn anchorRef.ownerDocument;\n\t\t} else if ( anchorRect && anchorRect?.ownerDocument ) {\n\t\t\treturn anchorRect.ownerDocument;\n\t\t} else if ( getAnchorRect ) {\n\t\t\treturn getAnchorRect()?.ownerDocument ?? document;\n\t\t}\n\n\t\treturn document;\n\t}, [ anchorRef, anchorRect, getAnchorRect ] );\n\n\t/**\n\t * Offsets the the position of the popover when the anchor is inside an iframe.\n\t */\n\tconst frameOffset = useMemo( () => {\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst { frameElement } = defaultView;\n\n\t\tif ( ! frameElement || ownerDocument === document ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst iframeRect = frameElement.getBoundingClientRect();\n\t\treturn {\n\t\t\tname: 'iframeOffset',\n\t\t\tfn( { x, y } ) {\n\t\t\t\treturn {\n\t\t\t\t\tx: x + iframeRect.left,\n\t\t\t\t\ty: y + iframeRect.top,\n\t\t\t\t};\n\t\t\t},\n\t\t};\n\t}, [ ownerDocument ] );\n\n\tconst middlewares = [\n\t\tframeOffset,\n\t\toffset ? offsetMiddleware( offset ) : undefined,\n\t\t__unstableForcePosition ? undefined : flip(),\n\t\t__unstableForcePosition\n\t\t\t? undefined\n\t\t\t: size( {\n\t\t\t\t\tapply( sizeProps ) {\n\t\t\t\t\t\tconst { height } = sizeProps;\n\t\t\t\t\t\tif ( ! refs.floating.current ) return;\n\t\t\t\t\t\t// Reduce the height of the popover to the available space.\n\t\t\t\t\t\tObject.assign( refs.floating.current.firstChild.style, {\n\t\t\t\t\t\t\tmaxHeight: `${ height }px`,\n\t\t\t\t\t\t\toverflow: 'auto',\n\t\t\t\t\t\t} );\n\t\t\t\t\t},\n\t\t\t } ),\n\t\t__unstableShift\n\t\t\t? shift( {\n\t\t\t\t\tcrossAxis: true,\n\t\t\t\t\tlimiter: limitShift(),\n\t\t\t\t\tpadding: 1, // Necessary to avoid flickering at the edge of the viewport.\n\t\t\t } )\n\t\t\t: undefined,\n\t\thasArrow ? arrow( { element: arrowRef } ) : undefined,\n\t].filter( ( m ) => !! m );\n\tconst anchorRefFallback = useRef( null );\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\n\tconst onDialogClose = ( type, event ) => {\n\t\t// Ideally the popover should have just a single onClose prop and\n\t\t// not three props that potentially do the same thing.\n\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\tonFocusOutside( event );\n\t\t} else if ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst {\n\t\tx,\n\t\ty,\n\t\treference,\n\t\tfloating,\n\t\tstrategy,\n\t\trefs,\n\t\tupdate,\n\t\tplacement: placementData,\n\t\tmiddlewareData: { arrow: arrowData = {} },\n\t} = useFloating( {\n\t\tplacement: usedPlacement,\n\t\tmiddleware: middlewares,\n\t} );\n\tconst staticSide = {\n\t\ttop: 'bottom',\n\t\tright: 'left',\n\t\tbottom: 'top',\n\t\tleft: 'right',\n\t}[ placementData.split( '-' )[ 0 ] ];\n\tconst mergedRefs = useMergeRefs( [ floating, dialogRef, ref ] );\n\n\t// Updates references\n\tuseLayoutEffect( () => {\n\t\t// No ref or position have been passed\n\t\tlet usedRef;\n\t\tif ( anchorRef?.top ) {\n\t\t\tusedRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\tconst topRect = anchorRef.top.getBoundingClientRect();\n\t\t\t\t\tconst bottomRect = anchorRef.bottom.getBoundingClientRect();\n\t\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\t\ttopRect.x,\n\t\t\t\t\t\ttopRect.y,\n\t\t\t\t\t\ttopRect.width,\n\t\t\t\t\t\tbottomRect.bottom - topRect.top\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( anchorRef?.current ) {\n\t\t\tusedRef = anchorRef.current;\n\t\t} else if ( anchorRef ) {\n\t\t\tusedRef = anchorRef;\n\t\t} else if ( anchorRect ) {\n\t\t\tusedRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\treturn anchorRect;\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( getAnchorRect ) {\n\t\t\tusedRef = {\n\t\t\t\tgetBoundingClientRect() {\n\t\t\t\t\tconst rect = getAnchorRect();\n\t\t\t\t\treturn new window.DOMRect(\n\t\t\t\t\t\trect.x ?? rect.left,\n\t\t\t\t\t\trect.y ?? rect.top,\n\t\t\t\t\t\trect.width ?? rect.right - rect.left,\n\t\t\t\t\t\trect.height ?? rect.bottom - rect.top\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t};\n\t\t} else if ( anchorRefFallback.current ) {\n\t\t\tusedRef = anchorRefFallback.current;\n\t\t}\n\n\t\tif ( ! usedRef ) {\n\t\t\treturn;\n\t\t}\n\n\t\treference( usedRef );\n\n\t\tif ( ! refs.floating.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn autoUpdate( usedRef, refs.floating.current, update );\n\t}, [ anchorRef, anchorRect, getAnchorRect ] );\n\n\t// This is only needed for a smoth transition when moving blocks.\n\tuseLayoutEffect( () => {\n\t\tif ( ! __unstableObserveElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( update );\n\t\tobserver.observe( __unstableObserveElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ __unstableObserveElement ] );\n\n\t// If we're using getAnchorRect, we need to update the position as we scroll the iframe.\n\tuseLayoutEffect( () => {\n\t\tif ( ownerDocument === document ) {\n\t\t\treturn;\n\t\t}\n\n\t\townerDocument.addEventListener( 'scroll', update );\n\t\treturn () => ownerDocument.removeEventListener( 'scroll', update );\n\t}, [ ownerDocument ] );\n\n\t/** @type {false | string} */\n\tconst animateClassName =\n\t\t!! animate &&\n\t\tgetAnimateClassName( {\n\t\t\ttype: 'appear',\n\t\t\torigin: placementToAnimationOrigin( placementData ),\n\t\t} );\n\n\t// Disable reason: We care to capture the _bubbled_ events from inputs\n\t// within popover as inferring close intent.\n\n\tlet content = (\n\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-popover',\n\t\t\t\tclassName,\n\t\t\t\tanimateClassName,\n\t\t\t\t{\n\t\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t\t'is-alternate': isAlternate,\n\t\t\t\t}\n\t\t\t) }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedRefs }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex=\"-1\"\n\t\t\tstyle={\n\t\t\t\tisExpanded\n\t\t\t\t\t? undefined\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\t\tleft: Number.isNaN( x ) ? 0 : x,\n\t\t\t\t\t\t\ttop: Number.isNaN( y ) ? 0 : y,\n\t\t\t\t\t }\n\t\t\t}\n\t\t>\n\t\t\t{ isExpanded && <ScrollLock /> }\n\t\t\t{ isExpanded && (\n\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-popover__close\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div className=\"components-popover__content\">{ children }</div>\n\t\t\t{ hasArrow && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"components-popover__arrow\"\n\t\t\t\t\tref={ arrowRef }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tleft:\n\t\t\t\t\t\t\t! arrowData?.x || Number.isNaN( arrowData?.x )\n\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t: arrowData.x,\n\t\t\t\t\t\ttop:\n\t\t\t\t\t\t\t! arrowData?.y || Number.isNaN( arrowData?.y )\n\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t: arrowData.y,\n\t\t\t\t\t\tright: undefined,\n\t\t\t\t\t\tbottom: undefined,\n\t\t\t\t\t\t[ staticSide ]: '-4px',\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n\n\tif ( slot.ref ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t}\n\n\tif ( anchorRef || anchorRect ) {\n\t\treturn content;\n\t}\n\n\treturn <span ref={ anchorRefFallback }>{ content }</span>;\n};\n\nconst PopoverContainer = forwardRef( Popover );\n\nfunction PopoverSlot( { name = SLOT_NAME }, ref ) {\n\treturn (\n\t\t<Slot\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nPopoverContainer.Slot = forwardRef( PopoverSlot );\nPopoverContainer.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default PopoverContainer;\n"]}
|
|
@@ -21,8 +21,6 @@ var _ = require("../");
|
|
|
21
21
|
|
|
22
22
|
var _baseControl = _interopRequireDefault(require("../base-control"));
|
|
23
23
|
|
|
24
|
-
var _utils = require("../utils");
|
|
25
|
-
|
|
26
24
|
/**
|
|
27
25
|
* External dependencies
|
|
28
26
|
*/
|
|
@@ -34,7 +32,7 @@ var _utils = require("../utils");
|
|
|
34
32
|
/**
|
|
35
33
|
* Internal dependencies
|
|
36
34
|
*/
|
|
37
|
-
function SearchControl(_ref,
|
|
35
|
+
function SearchControl(_ref, forwardedRef) {
|
|
38
36
|
let {
|
|
39
37
|
className,
|
|
40
38
|
onChange,
|
|
@@ -46,8 +44,8 @@ function SearchControl(_ref, ref) {
|
|
|
46
44
|
help,
|
|
47
45
|
onClose
|
|
48
46
|
} = _ref;
|
|
47
|
+
const searchRef = (0, _element.useRef)();
|
|
49
48
|
const instanceId = (0, _compose.useInstanceId)(SearchControl);
|
|
50
|
-
const searchInput = (0, _utils.useCombinedRef)(ref);
|
|
51
49
|
const id = `components-search-control-${instanceId}`;
|
|
52
50
|
|
|
53
51
|
const renderRightButton = () => {
|
|
@@ -65,7 +63,7 @@ function SearchControl(_ref, ref) {
|
|
|
65
63
|
label: (0, _i18n.__)('Reset search'),
|
|
66
64
|
onClick: () => {
|
|
67
65
|
onChange('');
|
|
68
|
-
|
|
66
|
+
searchRef.current.focus();
|
|
69
67
|
}
|
|
70
68
|
});
|
|
71
69
|
}
|
|
@@ -84,7 +82,7 @@ function SearchControl(_ref, ref) {
|
|
|
84
82
|
}, (0, _element.createElement)("div", {
|
|
85
83
|
className: "components-search-control__input-wrapper"
|
|
86
84
|
}, (0, _element.createElement)("input", {
|
|
87
|
-
ref:
|
|
85
|
+
ref: (0, _compose.useMergeRefs)([searchRef, forwardedRef]),
|
|
88
86
|
className: "components-search-control__input",
|
|
89
87
|
id: id,
|
|
90
88
|
type: "search",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/search-control/index.js"],"names":["SearchControl","
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/search-control/index.js"],"names":["SearchControl","forwardedRef","className","onChange","onKeyDown","value","label","placeholder","hideLabelFromVision","help","onClose","searchRef","instanceId","id","renderRightButton","closeSmall","current","focus","search","event","target"],"mappings":";;;;;;;;;AAWA;;AARA;;AAKA;;AACA;;AACA;;AAMA;;AACA;;AAjBA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;AAIA,SAASA,aAAT,OAYCC,YAZD,EAaE;AAAA,MAZD;AACCC,IAAAA,SADD;AAECC,IAAAA,QAFD;AAGCC,IAAAA,SAHD;AAICC,IAAAA,KAJD;AAKCC,IAAAA,KALD;AAMCC,IAAAA,WAAW,GAAG,cAAI,QAAJ,CANf;AAOCC,IAAAA,mBAAmB,GAAG,IAPvB;AAQCC,IAAAA,IARD;AASCC,IAAAA;AATD,GAYC;AACD,QAAMC,SAAS,GAAG,sBAAlB;AACA,QAAMC,UAAU,GAAG,4BAAeZ,aAAf,CAAnB;AACA,QAAMa,EAAE,GAAI,6BAA6BD,UAAY,EAArD;;AAEA,QAAME,iBAAiB,GAAG,MAAM;AAC/B,QAAKJ,OAAL,EAAe;AACd,aACC,4BAAC,QAAD;AACC,QAAA,IAAI,EAAGK,iBADR;AAEC,QAAA,KAAK,EAAG,cAAI,cAAJ,CAFT;AAGC,QAAA,OAAO,EAAGL;AAHX,QADD;AAOA;;AAED,QAAK,CAAC,CAAEL,KAAR,EAAgB;AACf,aACC,4BAAC,QAAD;AACC,QAAA,IAAI,EAAGU,iBADR;AAEC,QAAA,KAAK,EAAG,cAAI,cAAJ,CAFT;AAGC,QAAA,OAAO,EAAG,MAAM;AACfZ,UAAAA,QAAQ,CAAE,EAAF,CAAR;AACAQ,UAAAA,SAAS,CAACK,OAAV,CAAkBC,KAAlB;AACA;AANF,QADD;AAUA;;AAED,WAAO,4BAAC,WAAD;AAAM,MAAA,IAAI,EAAGC;AAAb,MAAP;AACA,GAzBD;;AA2BA,SACC,4BAAC,oBAAD;AACC,IAAA,KAAK,EAAGZ,KADT;AAEC,IAAA,EAAE,EAAGO,EAFN;AAGC,IAAA,mBAAmB,EAAGL,mBAHvB;AAIC,IAAA,IAAI,EAAGC,IAJR;AAKC,IAAA,SAAS,EAAG,yBAAYP,SAAZ,EAAuB,2BAAvB;AALb,KAOC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AACC,IAAA,GAAG,EAAG,2BAAc,CAAES,SAAF,EAAaV,YAAb,CAAd,CADP;AAEC,IAAA,SAAS,EAAC,kCAFX;AAGC,IAAA,EAAE,EAAGY,EAHN;AAIC,IAAA,IAAI,EAAC,QAJN;AAKC,IAAA,WAAW,EAAGN,WALf;AAMC,IAAA,QAAQ,EAAKY,KAAF,IAAahB,QAAQ,CAAEgB,KAAK,CAACC,MAAN,CAAaf,KAAf,CANjC;AAOC,IAAA,SAAS,EAAGD,SAPb;AAQC,IAAA,YAAY,EAAC,KARd;AASC,IAAA,KAAK,EAAGC,KAAK,IAAI;AATlB,IADD,EAYC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGS,iBAAiB,EADpB,CAZD,CAPD,CADD;AA0BA;;eAEc,yBAAYd,aAAZ,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, search, closeSmall } from '@wordpress/icons';\nimport { forwardRef, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { Button } from '../';\nimport BaseControl from '../base-control';\n\nfunction SearchControl(\n\t{\n\t\tclassName,\n\t\tonChange,\n\t\tonKeyDown,\n\t\tvalue,\n\t\tlabel,\n\t\tplaceholder = __( 'Search' ),\n\t\thideLabelFromVision = true,\n\t\thelp,\n\t\tonClose,\n\t},\n\tforwardedRef\n) {\n\tconst searchRef = useRef();\n\tconst instanceId = useInstanceId( SearchControl );\n\tconst id = `components-search-control-${ instanceId }`;\n\n\tconst renderRightButton = () => {\n\t\tif ( onClose ) {\n\t\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tlabel={ __( 'Close search' ) }\n\t\t\t\t\tonClick={ onClose }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif ( !! value ) {\n\t\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\tlabel={ __( 'Reset search' ) }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tonChange( '' );\n\t\t\t\t\t\tsearchRef.current.focus();\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn <Icon icon={ search } />;\n\t};\n\n\treturn (\n\t\t<BaseControl\n\t\t\tlabel={ label }\n\t\t\tid={ id }\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\thelp={ help }\n\t\t\tclassName={ classnames( className, 'components-search-control' ) }\n\t\t>\n\t\t\t<div className=\"components-search-control__input-wrapper\">\n\t\t\t\t<input\n\t\t\t\t\tref={ useMergeRefs( [ searchRef, forwardedRef ] ) }\n\t\t\t\t\tclassName=\"components-search-control__input\"\n\t\t\t\t\tid={ id }\n\t\t\t\t\ttype=\"search\"\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tonChange={ ( event ) => onChange( event.target.value ) }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tvalue={ value || '' }\n\t\t\t\t/>\n\t\t\t\t<div className=\"components-search-control__icon\">\n\t\t\t\t\t{ renderRightButton() }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</BaseControl>\n\t);\n}\n\nexport default forwardRef( SearchControl );\n"]}
|
|
@@ -61,6 +61,7 @@ function UnforwardedSelectControl(_ref, ref) {
|
|
|
61
61
|
children,
|
|
62
62
|
prefix,
|
|
63
63
|
suffix,
|
|
64
|
+
__nextHasNoMarginBottom = false,
|
|
64
65
|
...props
|
|
65
66
|
} = _ref;
|
|
66
67
|
const [isFocused, setIsFocused] = (0, _element.useState)(false);
|
|
@@ -107,7 +108,8 @@ function UnforwardedSelectControl(_ref, ref) {
|
|
|
107
108
|
|
|
108
109
|
return (0, _element.createElement)(_baseControl.default, {
|
|
109
110
|
help: help,
|
|
110
|
-
id: id
|
|
111
|
+
id: id,
|
|
112
|
+
__nextHasNoMarginBottom: __nextHasNoMarginBottom
|
|
111
113
|
}, (0, _element.createElement)(_inputBase.default, {
|
|
112
114
|
className: classes,
|
|
113
115
|
disabled: disabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/select-control/index.tsx"],"names":["useUniqueId","idProp","instanceId","SelectControl","id","UnforwardedSelectControl","ref","className","disabled","help","hideLabelFromVision","label","multiple","onBlur","noop","onChange","onFocus","options","size","value","valueProp","labelPosition","children","prefix","suffix","props","isFocused","setIsFocused","helpId","undefined","handleOnBlur","event","handleOnFocus","handleOnChange","selectedOptions","Array","from","target","filter","selected","newValues","map","classes","chevronDown","option","index","key"],"mappings":";;;;;;;;;AAWA;;;;AARA;;AACA;;AAMA;;AAEA;;AAKA;;AACA;;AACA;;AAnBA;AACA;AACA;;AAKA;AACA;AACA;;AAKA;AACA;AACA;AAOA,SAASA,WAAT,CAAsBC,MAAtB,EAAwC;AACvC,QAAMC,UAAU,GAAG,4BAAeC,aAAf,CAAnB;AACA,QAAMC,EAAE,GAAI,4BAA4BF,UAAY,EAApD;AAEA,SAAOD,MAAM,IAAIG,EAAjB;AACA;;AAED,SAASC,wBAAT,
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/select-control/index.tsx"],"names":["useUniqueId","idProp","instanceId","SelectControl","id","UnforwardedSelectControl","ref","className","disabled","help","hideLabelFromVision","label","multiple","onBlur","noop","onChange","onFocus","options","size","value","valueProp","labelPosition","children","prefix","suffix","__nextHasNoMarginBottom","props","isFocused","setIsFocused","helpId","undefined","handleOnBlur","event","handleOnFocus","handleOnChange","selectedOptions","Array","from","target","filter","selected","newValues","map","classes","chevronDown","option","index","key"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty, noop } from 'lodash';\nimport classNames from 'classnames';\nimport type { ChangeEvent, FocusEvent, ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useState, forwardRef } from '@wordpress/element';\nimport { Icon, chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\nimport InputBase from '../input-control/input-base';\nimport { Select, DownArrowWrapper } from './styles/select-control-styles';\nimport type { WordPressComponentProps } from '../ui/context';\nimport type { SelectControlProps } from './types';\n\nfunction useUniqueId( idProp?: string ) {\n\tconst instanceId = useInstanceId( SelectControl );\n\tconst id = `inspector-select-control-${ instanceId }`;\n\n\treturn idProp || id;\n}\n\nfunction UnforwardedSelectControl(\n\t{\n\t\tclassName,\n\t\tdisabled = false,\n\t\thelp,\n\t\thideLabelFromVision,\n\t\tid: idProp,\n\t\tlabel,\n\t\tmultiple = false,\n\t\tonBlur = noop,\n\t\tonChange = noop,\n\t\tonFocus = noop,\n\t\toptions = [],\n\t\tsize = 'default',\n\t\tvalue: valueProp,\n\t\tlabelPosition = 'top',\n\t\tchildren,\n\t\tprefix,\n\t\tsuffix,\n\t\t__nextHasNoMarginBottom = false,\n\t\t...props\n\t}: WordPressComponentProps< SelectControlProps, 'select', false >,\n\tref: ForwardedRef< HTMLSelectElement >\n) {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst id = useUniqueId( idProp );\n\tconst helpId = help ? `${ id }__help` : undefined;\n\n\t// Disable reason: A select with an onchange throws a warning.\n\tif ( isEmpty( options ) && ! children ) return null;\n\n\tconst handleOnBlur = ( event: FocusEvent< HTMLSelectElement > ) => {\n\t\tonBlur( event );\n\t\tsetIsFocused( false );\n\t};\n\n\tconst handleOnFocus = ( event: FocusEvent< HTMLSelectElement > ) => {\n\t\tonFocus( event );\n\t\tsetIsFocused( true );\n\t};\n\n\tconst handleOnChange = ( event: ChangeEvent< HTMLSelectElement > ) => {\n\t\tif ( multiple ) {\n\t\t\tconst selectedOptions = Array.from( event.target.options ).filter(\n\t\t\t\t( { selected } ) => selected\n\t\t\t);\n\t\t\tconst newValues = selectedOptions.map( ( { value } ) => value );\n\t\t\tonChange( newValues );\n\t\t\treturn;\n\t\t}\n\n\t\tonChange( event.target.value, { event } );\n\t};\n\n\tconst classes = classNames( 'components-select-control', className );\n\n\t/* eslint-disable jsx-a11y/no-onchange */\n\treturn (\n\t\t<BaseControl\n\t\t\thelp={ help }\n\t\t\tid={ id }\n\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t>\n\t\t\t<InputBase\n\t\t\t\tclassName={ classes }\n\t\t\t\tdisabled={ disabled }\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\tid={ id }\n\t\t\t\tisFocused={ isFocused }\n\t\t\t\tlabel={ label }\n\t\t\t\tsize={ size }\n\t\t\t\tsuffix={\n\t\t\t\t\tsuffix || (\n\t\t\t\t\t\t<DownArrowWrapper>\n\t\t\t\t\t\t\t<Icon icon={ chevronDown } size={ 18 } />\n\t\t\t\t\t\t</DownArrowWrapper>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tprefix={ prefix }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t>\n\t\t\t\t<Select\n\t\t\t\t\t{ ...props }\n\t\t\t\t\taria-describedby={ helpId }\n\t\t\t\t\tclassName=\"components-select-control__input\"\n\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\tid={ id }\n\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\t\tonChange={ handleOnChange }\n\t\t\t\t\tonFocus={ handleOnFocus }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tselectSize={ size }\n\t\t\t\t\tvalue={ valueProp }\n\t\t\t\t>\n\t\t\t\t\t{ children ||\n\t\t\t\t\t\toptions.map( ( option, index ) => {\n\t\t\t\t\t\t\tconst key =\n\t\t\t\t\t\t\t\toption.id ||\n\t\t\t\t\t\t\t\t`${ option.label }-${ option.value }-${ index }`;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\t\tdisabled={ option.disabled }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ option.label }\n\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t</Select>\n\t\t\t</InputBase>\n\t\t</BaseControl>\n\t);\n\t/* eslint-enable jsx-a11y/no-onchange */\n}\n\n/**\n * `SelectControl` allows users to select from a single or multiple option menu.\n * It functions as a wrapper around the browser's native `<select>` element.\n *\n * @example\n * import { SelectControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MySelectControl = () => {\n * const [ size, setSize ] = useState( '50%' );\n *\n * return (\n * <SelectControl\n * label=\"Size\"\n * value={ size }\n * options={ [\n * { label: 'Big', value: '100%' },\n * { label: 'Medium', value: '50%' },\n * { label: 'Small', value: '25%' },\n * ] }\n * onChange={ setSize }\n * />\n * );\n * };\n */\nexport const SelectControl = forwardRef( UnforwardedSelectControl );\n\nexport default SelectControl;\n"]}
|