@wordpress/components 19.10.0 → 19.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -6
- package/build/border-box-control/border-box-control/component.js +22 -7
- package/build/border-box-control/border-box-control/component.js.map +1 -1
- package/build/border-box-control/border-box-control-linked-button/hook.js +3 -2
- package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
- package/build/border-box-control/border-box-control-split-controls/component.js +21 -8
- package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
- package/build/border-box-control/border-box-control-visualizer/hook.js +3 -2
- package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
- package/build/border-box-control/styles.js +11 -15
- package/build/border-box-control/styles.js.map +1 -1
- package/build/border-control/border-control/component.js +5 -3
- package/build/border-control/border-control/component.js.map +1 -1
- package/build/border-control/border-control/hook.js +6 -3
- package/build/border-control/border-control/hook.js.map +1 -1
- package/build/border-control/border-control-dropdown/component.js +6 -2
- package/build/border-control/border-control-dropdown/component.js.map +1 -1
- package/build/border-control/border-control-dropdown/hook.js +5 -5
- package/build/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build/border-control/styles.js +58 -29
- package/build/border-control/styles.js.map +1 -1
- package/build/button/index.native.js +16 -2
- package/build/button/index.native.js.map +1 -1
- package/build/button-group/index.js +24 -7
- package/build/button-group/index.js.map +1 -1
- package/build/{flyout → button-group}/types.js +0 -0
- package/build/button-group/types.js.map +1 -0
- package/build/checkbox-control/index.js +34 -7
- package/build/checkbox-control/index.js.map +1 -1
- package/build/checkbox-control/types.js +6 -0
- package/build/checkbox-control/types.js.map +1 -0
- package/build/color-palette/index.js +5 -12
- package/build/color-palette/index.js.map +1 -1
- package/build/date-time/date.js +43 -19
- package/build/date-time/date.js.map +1 -1
- package/build/date-time/index.js +28 -3
- package/build/date-time/index.js.map +1 -1
- package/build/date-time/time.js +42 -40
- package/build/date-time/time.js.map +1 -1
- package/build/date-time/timezone.js +4 -3
- package/build/date-time/timezone.js.map +1 -1
- package/build/date-time/types.js +6 -0
- package/build/date-time/types.js.map +1 -0
- package/build/date-time/utils.js +6 -4
- package/build/date-time/utils.js.map +1 -1
- package/build/disabled/index.js +1 -1
- package/build/disabled/index.js.map +1 -1
- package/build/draggable/index.native.js +223 -0
- package/build/draggable/index.native.js.map +1 -0
- package/build/dropdown/index.js +7 -5
- package/build/dropdown/index.js.map +1 -1
- package/build/focal-point-picker/index.native.js +3 -3
- package/build/focal-point-picker/index.native.js.map +1 -1
- package/build/index.js +0 -8
- package/build/index.js.map +1 -1
- package/build/index.native.js +16 -0
- package/build/index.native.js.map +1 -1
- package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
- package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
- package/build/mobile/bottom-sheet/index.native.js +1 -1
- package/build/mobile/bottom-sheet/index.native.js.map +1 -1
- package/build/mobile/bottom-sheet-select-control/index.native.js +3 -2
- package/build/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
- package/build/mobile/html-text-input/index.native.js +19 -8
- package/build/mobile/html-text-input/index.native.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.android.js +28 -5
- package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
- package/build/mobile/keyboard-aware-flat-list/index.ios.js +47 -24
- package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
- package/build/palette-edit/index.js +38 -7
- package/build/palette-edit/index.js.map +1 -1
- package/build/popover/index.js +223 -277
- package/build/popover/index.js.map +1 -1
- package/build/resizable-box/resize-tooltip/utils.js +5 -8
- package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build/sandbox/index.native.js +1 -1
- package/build/sandbox/index.native.js.map +1 -1
- package/build/select-control/styles/select-control-styles.js +14 -11
- package/build/select-control/styles/select-control-styles.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/component.js +1 -3
- package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build/tooltip/index.js +2 -2
- package/build/tooltip/index.js.map +1 -1
- package/build-module/border-box-control/border-box-control/component.js +22 -7
- package/build-module/border-box-control/border-box-control/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control-linked-button/hook.js +3 -2
- package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
- package/build-module/border-box-control/border-box-control-split-controls/component.js +21 -8
- 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-visualizer/hook.js +3 -2
- package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
- package/build-module/border-box-control/styles.js +9 -15
- package/build-module/border-box-control/styles.js.map +1 -1
- package/build-module/border-control/border-control/component.js +5 -3
- package/build-module/border-control/border-control/component.js.map +1 -1
- package/build-module/border-control/border-control/hook.js +6 -3
- package/build-module/border-control/border-control/hook.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/component.js +6 -2
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/hook.js +5 -5
- package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
- package/build-module/border-control/styles.js +56 -29
- package/build-module/border-control/styles.js.map +1 -1
- package/build-module/button/index.native.js +16 -3
- package/build-module/button/index.native.js.map +1 -1
- package/build-module/button-group/index.js +27 -7
- package/build-module/button-group/index.js.map +1 -1
- package/build-module/{flyout → button-group}/types.js +0 -0
- package/build-module/{flyout → button-group}/types.js.map +0 -0
- package/build-module/checkbox-control/index.js +31 -7
- package/build-module/checkbox-control/index.js.map +1 -1
- package/build-module/checkbox-control/types.js +2 -0
- package/{build/flyout → build-module/checkbox-control}/types.js.map +0 -0
- package/build-module/color-palette/index.js +5 -11
- package/build-module/color-palette/index.js.map +1 -1
- package/build-module/date-time/date.js +44 -19
- package/build-module/date-time/date.js.map +1 -1
- package/build-module/date-time/index.js +28 -4
- package/build-module/date-time/index.js.map +1 -1
- package/build-module/date-time/time.js +43 -41
- package/build-module/date-time/time.js.map +1 -1
- package/build-module/date-time/timezone.js +4 -3
- package/build-module/date-time/timezone.js.map +1 -1
- package/build-module/date-time/types.js +2 -0
- package/build-module/date-time/types.js.map +1 -0
- package/build-module/date-time/utils.js +6 -4
- package/build-module/date-time/utils.js.map +1 -1
- package/build-module/disabled/index.js +1 -1
- package/build-module/disabled/index.js.map +1 -1
- package/build-module/draggable/index.native.js +206 -0
- package/build-module/draggable/index.native.js.map +1 -0
- package/build-module/dropdown/index.js +7 -5
- package/build-module/dropdown/index.js.map +1 -1
- package/build-module/focal-point-picker/index.native.js +3 -3
- package/build-module/focal-point-picker/index.native.js.map +1 -1
- package/build-module/index.js +0 -1
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +2 -1
- package/build-module/index.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
- package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet/index.native.js +1 -1
- package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
- package/build-module/mobile/bottom-sheet-select-control/index.native.js +3 -2
- package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
- package/build-module/mobile/html-text-input/index.native.js +20 -9
- package/build-module/mobile/html-text-input/index.native.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.android.js +21 -5
- package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +42 -25
- package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
- package/build-module/palette-edit/index.js +37 -7
- package/build-module/palette-edit/index.js.map +1 -1
- package/build-module/popover/index.js +225 -279
- package/build-module/popover/index.js.map +1 -1
- package/build-module/resizable-box/resize-tooltip/utils.js +4 -5
- package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
- package/build-module/sandbox/index.native.js +1 -1
- package/build-module/sandbox/index.native.js.map +1 -1
- package/build-module/select-control/styles/select-control-styles.js +14 -11
- package/build-module/select-control/styles/select-control-styles.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/component.js +2 -3
- package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
- package/build-module/tooltip/index.js +2 -2
- package/build-module/tooltip/index.js.map +1 -1
- package/build-style/style-rtl.css +31 -170
- package/build-style/style.css +27 -170
- package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts +3 -1
- 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.map +1 -1
- 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 +3 -1
- 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 +2 -2
- package/build-types/border-box-control/styles.d.ts.map +1 -1
- package/build-types/border-box-control/types.d.ts +40 -13
- package/build-types/border-box-control/types.d.ts.map +1 -1
- package/build-types/border-control/border-control/component.d.ts.map +1 -1
- package/build-types/border-control/border-control/hook.d.ts +2 -1
- 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 +1 -0
- package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
- package/build-types/border-control/styles.d.ts +2 -1
- package/build-types/border-control/styles.d.ts.map +1 -1
- package/build-types/border-control/types.d.ts +18 -6
- package/build-types/border-control/types.d.ts.map +1 -1
- package/build-types/button-group/index.d.ts +25 -0
- package/build-types/button-group/index.d.ts.map +1 -0
- package/build-types/button-group/stories/index.d.ts +12 -0
- package/build-types/button-group/stories/index.d.ts.map +1 -0
- package/build-types/button-group/types.d.ts +11 -0
- package/build-types/button-group/types.d.ts.map +1 -0
- package/build-types/checkbox-control/index.d.ts +26 -0
- package/build-types/checkbox-control/index.d.ts.map +1 -0
- package/build-types/checkbox-control/stories/index.d.ts +13 -0
- package/build-types/checkbox-control/stories/index.d.ts.map +1 -0
- package/build-types/checkbox-control/types.d.ts +35 -0
- package/build-types/checkbox-control/types.d.ts.map +1 -0
- package/build-types/color-palette/index.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +1 -1
- package/build-types/date-time/date.d.ts +24 -0
- package/build-types/date-time/date.d.ts.map +1 -0
- package/build-types/date-time/index.d.ts +35 -0
- package/build-types/date-time/index.d.ts.map +1 -0
- package/build-types/date-time/stories/date.d.ts +14 -0
- package/build-types/date-time/stories/date.d.ts.map +1 -0
- package/build-types/date-time/stories/index.d.ts +14 -0
- package/build-types/date-time/stories/index.d.ts.map +1 -0
- package/build-types/date-time/stories/time.d.ts +12 -0
- package/build-types/date-time/stories/time.d.ts.map +1 -0
- package/build-types/date-time/stories/utils.d.ts +3 -0
- package/build-types/date-time/stories/utils.d.ts.map +1 -0
- package/build-types/date-time/test/date.d.ts +2 -0
- package/build-types/date-time/test/date.d.ts.map +1 -0
- package/build-types/date-time/test/time.d.ts +2 -0
- package/build-types/date-time/test/time.d.ts.map +1 -0
- package/build-types/date-time/test/utils.d.ts +2 -0
- package/build-types/date-time/test/utils.d.ts.map +1 -0
- package/build-types/date-time/time.d.ts +25 -0
- package/build-types/date-time/time.d.ts.map +1 -0
- package/build-types/date-time/timezone.d.ts +8 -0
- package/build-types/date-time/timezone.d.ts.map +1 -0
- package/build-types/date-time/types.d.ts +91 -0
- package/build-types/date-time/types.d.ts.map +1 -0
- package/build-types/date-time/utils.d.ts +15 -0
- package/build-types/date-time/utils.d.ts.map +1 -0
- package/build-types/dropdown/index.d.ts.map +1 -1
- package/build-types/input-control/index.d.ts +1 -1
- package/build-types/input-control/stories/index.d.ts +5 -5
- package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
- package/build-types/popover/index.d.ts +5 -7
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/resizable-box/index.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
- package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
- package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/package.json +19 -19
- package/src/autocomplete/style.scss +1 -1
- package/src/border-box-control/border-box-control/README.md +10 -14
- package/src/border-box-control/border-box-control/component.tsx +21 -4
- package/src/border-box-control/border-box-control-linked-button/hook.ts +10 -6
- package/src/border-box-control/border-box-control-split-controls/component.tsx +24 -7
- package/src/border-box-control/border-box-control-visualizer/hook.ts +11 -6
- package/src/border-box-control/stories/index.js +1 -0
- package/src/border-box-control/styles.ts +15 -8
- package/src/border-box-control/types.ts +40 -14
- package/src/border-control/border-control/README.md +0 -7
- package/src/border-control/border-control/component.tsx +4 -2
- package/src/border-control/border-control/hook.ts +5 -2
- package/src/border-control/border-control-dropdown/component.tsx +18 -11
- package/src/border-control/border-control-dropdown/hook.ts +7 -5
- package/src/border-control/stories/index.js +1 -0
- package/src/border-control/styles.ts +82 -22
- package/src/border-control/types.ts +18 -6
- package/src/button/index.native.js +33 -18
- package/src/button-group/index.tsx +47 -0
- package/src/button-group/stories/index.tsx +41 -0
- package/src/button-group/types.ts +11 -0
- package/src/checkbox-control/README.md +10 -8
- package/src/checkbox-control/{index.js → index.tsx} +49 -14
- package/src/checkbox-control/stories/{index.js → index.tsx} +49 -27
- package/src/checkbox-control/types.ts +36 -0
- package/src/circular-option-picker/style.scss +1 -0
- package/src/color-palette/index.js +6 -13
- package/src/color-palette/style.scss +3 -18
- package/src/date-time/README.md +13 -10
- package/src/date-time/{date.js → date.tsx} +49 -20
- package/src/date-time/{index.js → index.tsx} +31 -5
- package/src/date-time/stories/date.tsx +73 -0
- package/src/date-time/stories/index.tsx +75 -0
- package/src/date-time/stories/time.tsx +51 -0
- package/src/date-time/stories/utils.ts +9 -0
- package/src/date-time/test/{date.js → date.tsx} +3 -2
- package/src/date-time/test/{time.js → time.tsx} +34 -19
- package/src/date-time/test/{utils.js → utils.ts} +1 -1
- package/src/date-time/{time.js → time.tsx} +57 -46
- package/src/date-time/{timezone.js → timezone.tsx} +4 -3
- package/src/date-time/types.ts +106 -0
- package/src/date-time/utils.ts +20 -0
- package/src/disabled/index.js +1 -1
- package/src/draggable/index.native.js +215 -0
- package/src/draggable/style.native.scss +3 -0
- package/src/dropdown/index.js +9 -4
- package/src/dropdown/style.scss +1 -1
- package/src/focal-point-picker/index.native.js +3 -3
- package/src/form-file-upload/test/index.js +8 -4
- package/src/index.js +0 -1
- package/src/index.native.js +1 -0
- package/src/item-group/stories/index.js +22 -18
- package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
- package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +1 -1
- package/src/mobile/bottom-sheet/index.native.js +1 -1
- package/src/mobile/bottom-sheet-select-control/index.native.js +7 -2
- package/src/mobile/html-text-input/index.native.js +45 -29
- package/src/mobile/html-text-input/style.android.scss +1 -15
- package/src/mobile/html-text-input/style.ios.scss +1 -15
- package/src/mobile/html-text-input/{style-common.native.scss → style.scss} +16 -0
- package/src/mobile/keyboard-aware-flat-list/index.android.js +15 -5
- package/src/mobile/keyboard-aware-flat-list/index.ios.js +75 -46
- package/src/navigator/stories/index.js +16 -10
- package/src/palette-edit/index.js +37 -9
- package/src/palette-edit/style.scss +0 -7
- package/src/palette-edit/test/index.js +63 -0
- package/src/panel/README.md +1 -1
- package/src/placeholder/test/index.js +7 -0
- package/src/popover/README.md +7 -9
- package/src/popover/index.js +242 -371
- package/src/popover/style.scss +20 -190
- package/src/popover/test/__snapshots__/index.js.snap +6 -18
- package/src/resizable-box/resize-tooltip/utils.ts +4 -5
- package/src/sandbox/index.native.js +1 -1
- package/src/select-control/styles/select-control-styles.ts +6 -3
- package/src/tab-panel/style.scss +1 -1
- package/src/toggle-group-control/test/__snapshots__/index.js.snap +4 -10
- package/src/toggle-group-control/toggle-group-control/component.tsx +7 -3
- package/src/tooltip/index.js +8 -2
- package/src/tooltip/style.scss +2 -4
- package/src/tooltip/test/index.native.js +1 -1
- package/src/unit-control/test/index.tsx +84 -4
- package/tsconfig.json +6 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/build/flyout/context.js +0 -23
- package/build/flyout/context.js.map +0 -1
- package/build/flyout/flyout/component.js +0 -106
- package/build/flyout/flyout/component.js.map +0 -1
- package/build/flyout/flyout/hook.js +0 -53
- package/build/flyout/flyout/hook.js.map +0 -1
- package/build/flyout/flyout/index.js +0 -24
- package/build/flyout/flyout/index.js.map +0 -1
- package/build/flyout/flyout-content/component.js +0 -65
- package/build/flyout/flyout-content/component.js.map +0 -1
- package/build/flyout/flyout-content/index.js +0 -16
- package/build/flyout/flyout-content/index.js.map +0 -1
- package/build/flyout/index.js +0 -16
- package/build/flyout/index.js.map +0 -1
- package/build/flyout/styles.js +0 -46
- package/build/flyout/styles.js.map +0 -1
- package/build/flyout/utils.js +0 -36
- package/build/flyout/utils.js.map +0 -1
- package/build/mobile/html-text-input/container.android.js +0 -41
- package/build/mobile/html-text-input/container.android.js.map +0 -1
- package/build/mobile/html-text-input/container.ios.js +0 -60
- package/build/mobile/html-text-input/container.ios.js.map +0 -1
- package/build/popover/utils.js +0 -322
- package/build/popover/utils.js.map +0 -1
- package/build-module/flyout/context.js +0 -11
- package/build-module/flyout/context.js.map +0 -1
- package/build-module/flyout/flyout/component.js +0 -89
- package/build-module/flyout/flyout/component.js.map +0 -1
- package/build-module/flyout/flyout/hook.js +0 -44
- package/build-module/flyout/flyout/hook.js.map +0 -1
- package/build-module/flyout/flyout/index.js +0 -3
- package/build-module/flyout/flyout/index.js.map +0 -1
- package/build-module/flyout/flyout-content/component.js +0 -51
- package/build-module/flyout/flyout-content/component.js.map +0 -1
- package/build-module/flyout/flyout-content/index.js +0 -2
- package/build-module/flyout/flyout-content/index.js.map +0 -1
- package/build-module/flyout/index.js +0 -2
- package/build-module/flyout/index.js.map +0 -1
- package/build-module/flyout/styles.js +0 -27
- package/build-module/flyout/styles.js.map +0 -1
- package/build-module/flyout/utils.js +0 -25
- package/build-module/flyout/utils.js.map +0 -1
- package/build-module/mobile/html-text-input/container.android.js +0 -29
- package/build-module/mobile/html-text-input/container.android.js.map +0 -1
- package/build-module/mobile/html-text-input/container.ios.js +0 -48
- package/build-module/mobile/html-text-input/container.ios.js.map +0 -1
- package/build-module/popover/utils.js +0 -308
- package/build-module/popover/utils.js.map +0 -1
- package/build-types/flyout/context.d.ts +0 -6
- package/build-types/flyout/context.d.ts.map +0 -1
- package/build-types/flyout/flyout/component.d.ts +0 -21
- package/build-types/flyout/flyout/component.d.ts.map +0 -1
- package/build-types/flyout/flyout/hook.d.ts +0 -270
- package/build-types/flyout/flyout/hook.d.ts.map +0 -1
- package/build-types/flyout/flyout/index.d.ts +0 -3
- package/build-types/flyout/flyout/index.d.ts.map +0 -1
- package/build-types/flyout/flyout-content/component.d.ts +0 -3
- package/build-types/flyout/flyout-content/component.d.ts.map +0 -1
- package/build-types/flyout/flyout-content/index.d.ts +0 -2
- package/build-types/flyout/flyout-content/index.d.ts.map +0 -1
- package/build-types/flyout/index.d.ts +0 -2
- package/build-types/flyout/index.d.ts.map +0 -1
- package/build-types/flyout/styles.d.ts +0 -22
- package/build-types/flyout/styles.d.ts.map +0 -1
- package/build-types/flyout/types.d.ts +0 -80
- package/build-types/flyout/types.d.ts.map +0 -1
- package/build-types/flyout/utils.d.ts +0 -8
- package/build-types/flyout/utils.d.ts.map +0 -1
- package/build-types/popover/utils.d.ts +0 -70
- package/build-types/popover/utils.d.ts.map +0 -1
- package/src/button-group/index.js +0 -17
- package/src/button-group/stories/index.js +0 -21
- package/src/date-time/stories/date.js +0 -17
- package/src/date-time/stories/index.js +0 -91
- package/src/date-time/stories/time.js +0 -32
- package/src/date-time/utils.js +0 -18
- package/src/flyout/context.js +0 -10
- package/src/flyout/flyout/README.md +0 -98
- package/src/flyout/flyout/component.js +0 -111
- package/src/flyout/flyout/hook.js +0 -45
- package/src/flyout/flyout/index.js +0 -2
- package/src/flyout/flyout-content/component.js +0 -53
- package/src/flyout/flyout-content/index.js +0 -1
- package/src/flyout/index.js +0 -1
- package/src/flyout/stories/index.js +0 -24
- package/src/flyout/styles.ts +0 -41
- package/src/flyout/test/__snapshots__/index.js.snap +0 -186
- package/src/flyout/test/index.js +0 -103
- package/src/flyout/types.ts +0 -84
- package/src/flyout/utils.js +0 -23
- package/src/mobile/html-text-input/container.android.js +0 -23
- package/src/mobile/html-text-input/container.ios.js +0 -50
- package/src/popover/test/utils.js +0 -304
- package/src/popover/utils.js +0 -396
package/src/index.js
CHANGED
|
@@ -71,7 +71,6 @@ export { DuotoneSwatch, DuotonePicker } from './duotone-picker';
|
|
|
71
71
|
export { Elevation as __experimentalElevation } from './elevation';
|
|
72
72
|
export { default as ExternalLink } from './external-link';
|
|
73
73
|
export { Flex, FlexBlock, FlexItem } from './flex';
|
|
74
|
-
export { Flyout as __experimentalFlyout } from './flyout';
|
|
75
74
|
export { default as FocalPointPicker } from './focal-point-picker';
|
|
76
75
|
export { default as FocusableIframe } from './focusable-iframe';
|
|
77
76
|
export { default as FontSizePicker } from './font-size-picker';
|
package/src/index.native.js
CHANGED
|
@@ -61,6 +61,7 @@ export {
|
|
|
61
61
|
filterUnitsWithSettings as filterUnitsWithSettings,
|
|
62
62
|
} from './unit-control/utils';
|
|
63
63
|
export { default as Disabled } from './disabled';
|
|
64
|
+
export { default as Draggable, DraggableTrigger } from './draggable';
|
|
64
65
|
|
|
65
66
|
// Higher-Order Components.
|
|
66
67
|
export { default as withConstrainedTabbing } from './higher-order/with-constrained-tabbing';
|
|
@@ -21,7 +21,7 @@ import { useCx } from '../../utils';
|
|
|
21
21
|
import { ItemGroup, Item } from '..';
|
|
22
22
|
import Button from '../../button';
|
|
23
23
|
import { FlexItem, FlexBlock } from '../../flex';
|
|
24
|
-
import
|
|
24
|
+
import Dropdown from '../../dropdown';
|
|
25
25
|
import { HStack } from '../../h-stack';
|
|
26
26
|
import Icon from '../../icon';
|
|
27
27
|
import { Text } from '../../text';
|
|
@@ -90,23 +90,27 @@ export const _default = () => {
|
|
|
90
90
|
};
|
|
91
91
|
|
|
92
92
|
export const dropdown = () => (
|
|
93
|
-
<
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
93
|
+
<Dropdown
|
|
94
|
+
renderToggle={ ( { isOpen, onToggle } ) => (
|
|
95
|
+
<Button onClick={ onToggle } aria-expanded={ isOpen }>
|
|
96
|
+
Open Popover
|
|
97
|
+
</Button>
|
|
98
|
+
) }
|
|
99
|
+
renderContent={ () => (
|
|
100
|
+
<ItemGroup style={ { minWidth: 350, padding: 4 } }>
|
|
101
|
+
<Item>Code is Poetry (no click handlers)</Item>
|
|
102
|
+
<Item onClick={ () => alert( 'WordPress.org' ) }>
|
|
103
|
+
Code is Poetry — Click me!
|
|
104
|
+
</Item>
|
|
105
|
+
<Item onClick={ () => alert( 'WordPress.org' ) }>
|
|
106
|
+
Code is Poetry — Click me!
|
|
107
|
+
</Item>
|
|
108
|
+
<Item onClick={ () => alert( 'WordPress.org' ) }>
|
|
109
|
+
Code is Poetry — Click me!
|
|
110
|
+
</Item>
|
|
111
|
+
</ItemGroup>
|
|
112
|
+
) }
|
|
113
|
+
/>
|
|
110
114
|
);
|
|
111
115
|
|
|
112
116
|
const SimpleColorSwatch = ( { color, style } ) => (
|
|
@@ -69,7 +69,7 @@ const BottomSheetNavigationScreen = ( {
|
|
|
69
69
|
* Ideally, we refactor onHandleHardwareButtonPress to manage multiple
|
|
70
70
|
* callbacks triggered based upon which screen is currently active.
|
|
71
71
|
*
|
|
72
|
-
* Related: https://
|
|
72
|
+
* Related: https://github.com/WordPress/gutenberg/pull/36328#discussion_r768897546
|
|
73
73
|
*/
|
|
74
74
|
}, [] )
|
|
75
75
|
);
|
|
@@ -108,7 +108,7 @@ it( 'animates height transitioning from full-screen to non-full-screen', async (
|
|
|
108
108
|
);
|
|
109
109
|
// Navigate to screen 1
|
|
110
110
|
fireEvent.press(
|
|
111
|
-
// Use custom waitFor due to https://
|
|
111
|
+
// Use custom waitFor due to https://github.com/callstack/react-native-testing-library/issues/379
|
|
112
112
|
await waitFor( () => screen.getByText( /test-screen-2/ ) )
|
|
113
113
|
);
|
|
114
114
|
// Await navigation screen to allow async state updates to complete
|
|
@@ -148,7 +148,7 @@ class BottomSheet extends Component {
|
|
|
148
148
|
// TODO: Reinstate animations, possibly replacing `LayoutAnimation` with
|
|
149
149
|
// more nuanced `Animated` usage or replacing our custom `BottomSheet`
|
|
150
150
|
// with `@gorhom/bottom-sheet`. This animation was disabled to avoid a
|
|
151
|
-
// preexisting bug: https://
|
|
151
|
+
// preexisting bug: https://github.com/WordPress/gutenberg/issues/30562
|
|
152
152
|
// this.performRegularLayoutAnimation( {
|
|
153
153
|
// useLastLayoutAnimation: false,
|
|
154
154
|
// } );.
|
|
@@ -57,11 +57,16 @@ const BottomSheetSelectControl = ( {
|
|
|
57
57
|
value={ selectedOption.label }
|
|
58
58
|
onPress={ openSubSheet }
|
|
59
59
|
accessibilityRole={ 'button' }
|
|
60
|
-
accessibilityLabel={
|
|
60
|
+
accessibilityLabel={ sprintf(
|
|
61
|
+
// translators: %1$s: Select control button label e.g. "Button width". %2$s: Select control option value e.g: "Auto, 25%".
|
|
62
|
+
__( '%1$s. Currently selected: %2$s' ),
|
|
63
|
+
label,
|
|
64
|
+
selectedOption.label
|
|
65
|
+
) }
|
|
61
66
|
accessibilityHint={ sprintf(
|
|
62
67
|
// translators: %s: Select control button label e.g. "Button width"
|
|
63
68
|
__( 'Navigates to select %s' ),
|
|
64
|
-
|
|
69
|
+
label
|
|
65
70
|
) }
|
|
66
71
|
>
|
|
67
72
|
<Icon icon={ chevronRight }></Icon>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { TextInput } from 'react-native';
|
|
4
|
+
import { ScrollView, TextInput } from 'react-native';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* WordPress dependencies
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
/**
|
|
21
21
|
* Internal dependencies
|
|
22
22
|
*/
|
|
23
|
-
import
|
|
23
|
+
import KeyboardAvoidingView from '../keyboard-avoiding-view';
|
|
24
24
|
import styles from './style.scss';
|
|
25
25
|
|
|
26
26
|
export class HTMLTextInput extends Component {
|
|
@@ -73,7 +73,13 @@ export class HTMLTextInput extends Component {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
render() {
|
|
76
|
-
const {
|
|
76
|
+
const {
|
|
77
|
+
editTitle,
|
|
78
|
+
getStylesFromColorScheme,
|
|
79
|
+
parentHeight,
|
|
80
|
+
style,
|
|
81
|
+
title,
|
|
82
|
+
} = this.props;
|
|
77
83
|
const titleStyle = [
|
|
78
84
|
styles.htmlViewTitle,
|
|
79
85
|
style?.text && { color: style.text },
|
|
@@ -90,32 +96,42 @@ export class HTMLTextInput extends Component {
|
|
|
90
96
|
...( style?.text && { color: style.text } ),
|
|
91
97
|
};
|
|
92
98
|
return (
|
|
93
|
-
<
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
99
|
+
<KeyboardAvoidingView
|
|
100
|
+
style={ styles.keyboardAvoidingView }
|
|
101
|
+
parentHeight={ parentHeight }
|
|
102
|
+
>
|
|
103
|
+
<ScrollView style={ styles.scrollView }>
|
|
104
|
+
<TextInput
|
|
105
|
+
autoCorrect={ false }
|
|
106
|
+
accessibilityLabel="html-view-title"
|
|
107
|
+
textAlignVertical="center"
|
|
108
|
+
numberOfLines={ 1 }
|
|
109
|
+
style={ titleStyle }
|
|
110
|
+
value={ title }
|
|
111
|
+
placeholder={ __( 'Add title' ) }
|
|
112
|
+
placeholderTextColor={ placeholderStyle.color }
|
|
113
|
+
onChangeText={ editTitle }
|
|
114
|
+
/>
|
|
115
|
+
<TextInput
|
|
116
|
+
ref={ this.contentTextInputRef }
|
|
117
|
+
autoCorrect={ false }
|
|
118
|
+
accessibilityLabel="html-view-content"
|
|
119
|
+
textAlignVertical="top"
|
|
120
|
+
multiline
|
|
121
|
+
style={ htmlStyle }
|
|
122
|
+
value={ this.state.value }
|
|
123
|
+
onChangeText={ this.edit }
|
|
124
|
+
onBlur={ this.stopEditing }
|
|
125
|
+
placeholder={ __( 'Start writing…' ) }
|
|
126
|
+
placeholderTextColor={ placeholderStyle.color }
|
|
127
|
+
scrollEnabled={ false }
|
|
128
|
+
// [Only iOS] This prop prevents the text input from
|
|
129
|
+
// automatically getting focused after scrolling
|
|
130
|
+
// content.
|
|
131
|
+
rejectResponderTermination={ false }
|
|
132
|
+
/>
|
|
133
|
+
</ScrollView>
|
|
134
|
+
</KeyboardAvoidingView>
|
|
119
135
|
);
|
|
120
136
|
}
|
|
121
137
|
}
|
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
@import "./style
|
|
2
|
-
|
|
3
|
-
.htmlView {
|
|
4
|
-
font-family: $htmlFont;
|
|
5
|
-
padding-left: $padding;
|
|
6
|
-
padding-right: $padding;
|
|
7
|
-
padding-top: $padding;
|
|
8
|
-
padding-bottom: $padding + 16;
|
|
9
|
-
}
|
|
1
|
+
@import "./style.scss";
|
|
10
2
|
|
|
11
3
|
.htmlViewTitle {
|
|
12
4
|
font-family: $htmlFont;
|
|
13
5
|
padding-left: $padding;
|
|
14
6
|
padding-right: $padding;
|
|
15
|
-
padding-top: $padding;
|
|
16
|
-
padding-bottom: $padding;
|
|
17
7
|
margin-top: $padding * 2;
|
|
18
8
|
}
|
|
19
|
-
|
|
20
|
-
.scrollView {
|
|
21
|
-
flex: 1;
|
|
22
|
-
}
|
|
@@ -1,17 +1,4 @@
|
|
|
1
|
-
@import "./style
|
|
2
|
-
|
|
3
|
-
$title-height: 32;
|
|
4
|
-
|
|
5
|
-
.htmlView {
|
|
6
|
-
font-family: $htmlFont;
|
|
7
|
-
padding-left: $padding;
|
|
8
|
-
padding-right: $padding;
|
|
9
|
-
padding-bottom: $title-height + $padding;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.htmlViewDark {
|
|
13
|
-
color: $textColorDark;
|
|
14
|
-
}
|
|
1
|
+
@import "./style.scss";
|
|
15
2
|
|
|
16
3
|
.htmlViewTitle {
|
|
17
4
|
font-family: $htmlFont;
|
|
@@ -19,6 +6,5 @@ $title-height: 32;
|
|
|
19
6
|
padding-right: $padding;
|
|
20
7
|
padding-top: $padding;
|
|
21
8
|
padding-bottom: $padding;
|
|
22
|
-
height: $title-height;
|
|
23
9
|
margin-top: $padding * 2;
|
|
24
10
|
}
|
|
@@ -21,3 +21,19 @@ $textColorDark: $white;
|
|
|
21
21
|
.placeholderDark {
|
|
22
22
|
color: $gray-50;
|
|
23
23
|
}
|
|
24
|
+
|
|
25
|
+
.htmlView {
|
|
26
|
+
font-family: $htmlFont;
|
|
27
|
+
padding-left: $padding;
|
|
28
|
+
padding-right: $padding;
|
|
29
|
+
padding-top: $padding;
|
|
30
|
+
padding-bottom: $padding + 16;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.htmlViewDark {
|
|
34
|
+
color: $textColorDark;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.scrollView {
|
|
38
|
+
flex: 1;
|
|
39
|
+
}
|
|
@@ -2,17 +2,27 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { FlatList } from 'react-native';
|
|
5
|
+
import Animated, { useAnimatedScrollHandler } from 'react-native-reanimated';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* Internal dependencies
|
|
8
9
|
*/
|
|
9
10
|
import KeyboardAvoidingView from '../keyboard-avoiding-view';
|
|
10
11
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
const AnimatedFlatList = Animated.createAnimatedComponent( FlatList );
|
|
13
|
+
|
|
14
|
+
export const KeyboardAwareFlatList = ( { innerRef, onScroll, ...props } ) => {
|
|
15
|
+
const scrollHandler = useAnimatedScrollHandler( { onScroll } );
|
|
16
|
+
return (
|
|
17
|
+
<KeyboardAvoidingView style={ { flex: 1 } }>
|
|
18
|
+
<AnimatedFlatList
|
|
19
|
+
ref={ innerRef }
|
|
20
|
+
onScroll={ scrollHandler }
|
|
21
|
+
{ ...props }
|
|
22
|
+
/>
|
|
23
|
+
</KeyboardAvoidingView>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
16
26
|
|
|
17
27
|
KeyboardAwareFlatList.handleCaretVerticalPositionChange = () => {
|
|
18
28
|
// no need to handle on Android, it is system managed
|
|
@@ -4,13 +4,20 @@
|
|
|
4
4
|
import { KeyboardAwareScrollView } from 'react-native-keyboard-aware-scroll-view';
|
|
5
5
|
import { FlatList } from 'react-native';
|
|
6
6
|
import { isEqual } from 'lodash';
|
|
7
|
+
import Animated, {
|
|
8
|
+
useAnimatedScrollHandler,
|
|
9
|
+
useSharedValue,
|
|
10
|
+
} from 'react-native-reanimated';
|
|
7
11
|
|
|
8
12
|
/**
|
|
9
13
|
* WordPress dependencies
|
|
10
14
|
*/
|
|
11
|
-
import { memo } from '@wordpress/element';
|
|
15
|
+
import { memo, useCallback, useRef } from '@wordpress/element';
|
|
12
16
|
|
|
13
17
|
const List = memo( FlatList, isEqual );
|
|
18
|
+
const AnimatedKeyboardAwareScrollView = Animated.createAnimatedComponent(
|
|
19
|
+
KeyboardAwareScrollView
|
|
20
|
+
);
|
|
14
21
|
|
|
15
22
|
export const KeyboardAwareFlatList = ( {
|
|
16
23
|
extraScrollHeight,
|
|
@@ -19,53 +26,75 @@ export const KeyboardAwareFlatList = ( {
|
|
|
19
26
|
autoScroll,
|
|
20
27
|
scrollViewStyle,
|
|
21
28
|
inputAccessoryViewHeight,
|
|
29
|
+
onScroll,
|
|
22
30
|
...listProps
|
|
23
|
-
} ) =>
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
} ) => {
|
|
32
|
+
const scrollViewRef = useRef();
|
|
33
|
+
const keyboardWillShowIndicator = useRef();
|
|
34
|
+
|
|
35
|
+
const latestContentOffsetY = useSharedValue( -1 );
|
|
36
|
+
|
|
37
|
+
const scrollHandler = useAnimatedScrollHandler( {
|
|
38
|
+
onScroll: ( event ) => {
|
|
39
|
+
const { contentOffset } = event;
|
|
40
|
+
latestContentOffsetY.value = contentOffset.y;
|
|
41
|
+
onScroll( event );
|
|
42
|
+
},
|
|
43
|
+
} );
|
|
44
|
+
|
|
45
|
+
const getRef = useCallback(
|
|
46
|
+
( ref ) => {
|
|
47
|
+
scrollViewRef.current = ref;
|
|
35
48
|
innerRef( ref );
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
49
|
+
},
|
|
50
|
+
[ innerRef ]
|
|
51
|
+
);
|
|
52
|
+
const onKeyboardWillHide = useCallback( () => {
|
|
53
|
+
keyboardWillShowIndicator.current = false;
|
|
54
|
+
}, [] );
|
|
55
|
+
const onKeyboardDidHide = useCallback( () => {
|
|
56
|
+
setTimeout( () => {
|
|
57
|
+
if (
|
|
58
|
+
! keyboardWillShowIndicator.current &&
|
|
59
|
+
latestContentOffsetY.value !== -1 &&
|
|
60
|
+
! shouldPreventAutomaticScroll()
|
|
61
|
+
) {
|
|
62
|
+
// Reset the content position if keyboard is still closed.
|
|
63
|
+
scrollViewRef.current?.scrollToPosition(
|
|
64
|
+
0,
|
|
65
|
+
latestContentOffsetY.value,
|
|
66
|
+
true
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
}, 50 );
|
|
70
|
+
}, [ latestContentOffsetY, shouldPreventAutomaticScroll ] );
|
|
71
|
+
const onKeyboardWillShow = useCallback( () => {
|
|
72
|
+
keyboardWillShowIndicator.current = true;
|
|
73
|
+
}, [] );
|
|
74
|
+
|
|
75
|
+
return (
|
|
76
|
+
<AnimatedKeyboardAwareScrollView
|
|
77
|
+
style={ [ { flex: 1 }, scrollViewStyle ] }
|
|
78
|
+
keyboardDismissMode="none"
|
|
79
|
+
enableResetScrollToCoords={ false }
|
|
80
|
+
keyboardShouldPersistTaps="handled"
|
|
81
|
+
extraScrollHeight={ extraScrollHeight }
|
|
82
|
+
extraHeight={ 0 }
|
|
83
|
+
inputAccessoryViewHeight={ inputAccessoryViewHeight }
|
|
84
|
+
enableAutomaticScroll={
|
|
85
|
+
autoScroll === undefined ? false : autoScroll
|
|
86
|
+
}
|
|
87
|
+
ref={ getRef }
|
|
88
|
+
onKeyboardWillHide={ onKeyboardWillHide }
|
|
89
|
+
onKeyboardDidHide={ onKeyboardDidHide }
|
|
90
|
+
onKeyboardWillShow={ onKeyboardWillShow }
|
|
91
|
+
scrollEnabled={ listProps.scrollEnabled }
|
|
92
|
+
onScroll={ scrollHandler }
|
|
93
|
+
>
|
|
94
|
+
<List { ...listProps } />
|
|
95
|
+
</AnimatedKeyboardAwareScrollView>
|
|
96
|
+
);
|
|
97
|
+
};
|
|
69
98
|
|
|
70
99
|
KeyboardAwareFlatList.handleCaretVerticalPositionChange = (
|
|
71
100
|
scrollView,
|
|
@@ -9,7 +9,7 @@ import { css } from '@emotion/react';
|
|
|
9
9
|
import Button from '../../button';
|
|
10
10
|
import { Card, CardBody, CardFooter, CardHeader } from '../../card';
|
|
11
11
|
import { HStack } from '../../h-stack';
|
|
12
|
-
import
|
|
12
|
+
import Dropdown from '../../dropdown';
|
|
13
13
|
import { useCx } from '../../utils/hooks/use-cx';
|
|
14
14
|
import {
|
|
15
15
|
NavigatorProvider,
|
|
@@ -54,17 +54,23 @@ const MyNavigation = () => {
|
|
|
54
54
|
Navigate to screen with sticky content.
|
|
55
55
|
</NavigatorButton>
|
|
56
56
|
|
|
57
|
-
<
|
|
58
|
-
|
|
59
|
-
<Button
|
|
57
|
+
<Dropdown
|
|
58
|
+
renderToggle={ ( { isOpen, onToggle } ) => (
|
|
59
|
+
<Button
|
|
60
|
+
onClick={ onToggle }
|
|
61
|
+
aria-expanded={ isOpen }
|
|
62
|
+
variant="primary"
|
|
63
|
+
>
|
|
60
64
|
Open test dialog
|
|
61
65
|
</Button>
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
) }
|
|
67
|
+
renderContent={ () => (
|
|
68
|
+
<Card>
|
|
69
|
+
<CardHeader>Go</CardHeader>
|
|
70
|
+
<CardBody>Stuff</CardBody>
|
|
71
|
+
</Card>
|
|
72
|
+
) }
|
|
73
|
+
/>
|
|
68
74
|
</HStack>
|
|
69
75
|
</CardBody>
|
|
70
76
|
</Card>
|
|
@@ -56,11 +56,36 @@ function NameInput( { value, onChange, label } ) {
|
|
|
56
56
|
);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Returns a temporary name for a palette item in the format "Color + id".
|
|
61
|
+
* To ensure there are no duplicate ids, this function checks all slugs for temporary names.
|
|
62
|
+
* It expects slugs to be in the format: slugPrefix + color- + number.
|
|
63
|
+
* It then sets the id component of the new name based on the incremented id of the highest existing slug id.
|
|
64
|
+
*
|
|
65
|
+
* @param {string} elements An array of color palette items.
|
|
66
|
+
* @param {string} slugPrefix The slug prefix used to match the element slug.
|
|
67
|
+
*
|
|
68
|
+
* @return {string} A unique name for a palette item.
|
|
69
|
+
*/
|
|
70
|
+
export function getNameForPosition( elements, slugPrefix ) {
|
|
71
|
+
const temporaryNameRegex = new RegExp( `^${ slugPrefix }color-([\\d]+)$` );
|
|
72
|
+
const position = elements.reduce( ( previousValue, currentValue ) => {
|
|
73
|
+
if ( typeof currentValue?.slug === 'string' ) {
|
|
74
|
+
const matches = currentValue?.slug.match( temporaryNameRegex );
|
|
75
|
+
if ( matches ) {
|
|
76
|
+
const id = parseInt( matches[ 1 ], 10 );
|
|
77
|
+
if ( id >= previousValue ) {
|
|
78
|
+
return id + 1;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return previousValue;
|
|
83
|
+
}, 1 );
|
|
84
|
+
|
|
60
85
|
return sprintf(
|
|
61
86
|
/* translators: %s: is a temporary id for a custom color */
|
|
62
|
-
__( 'Color %s
|
|
63
|
-
position
|
|
87
|
+
__( 'Color %s' ),
|
|
88
|
+
position
|
|
64
89
|
);
|
|
65
90
|
}
|
|
66
91
|
|
|
@@ -131,7 +156,8 @@ function Option( {
|
|
|
131
156
|
</HStack>
|
|
132
157
|
{ isEditing && (
|
|
133
158
|
<Popover
|
|
134
|
-
|
|
159
|
+
placement="left-start"
|
|
160
|
+
offset={ 20 }
|
|
135
161
|
className="components-palette-edit__popover"
|
|
136
162
|
>
|
|
137
163
|
{ ! isGradient && (
|
|
@@ -163,9 +189,10 @@ function Option( {
|
|
|
163
189
|
);
|
|
164
190
|
}
|
|
165
191
|
|
|
166
|
-
function isTemporaryElement( slugPrefix, { slug, color, gradient }
|
|
192
|
+
function isTemporaryElement( slugPrefix, { slug, color, gradient } ) {
|
|
193
|
+
const regex = new RegExp( `^${ slugPrefix }color-([\\d]+)$` );
|
|
167
194
|
return (
|
|
168
|
-
|
|
195
|
+
regex.test( slug ) &&
|
|
169
196
|
( ( !! color && color === DEFAULT_COLOR ) ||
|
|
170
197
|
( !! gradient && gradient === DEFAULT_GRADIENT ) )
|
|
171
198
|
);
|
|
@@ -193,8 +220,7 @@ function PaletteEditListView( {
|
|
|
193
220
|
)
|
|
194
221
|
) {
|
|
195
222
|
const newElements = elementsReference.current.filter(
|
|
196
|
-
( element,
|
|
197
|
-
! isTemporaryElement( slugPrefix, element, index )
|
|
223
|
+
( element ) => ! isTemporaryElement( slugPrefix, element )
|
|
198
224
|
);
|
|
199
225
|
onChange( newElements.length ? newElements : undefined );
|
|
200
226
|
}
|
|
@@ -309,8 +335,10 @@ export default function PaletteEdit( {
|
|
|
309
335
|
}
|
|
310
336
|
onClick={ () => {
|
|
311
337
|
const tempOptionName = getNameForPosition(
|
|
312
|
-
|
|
338
|
+
elements,
|
|
339
|
+
slugPrefix
|
|
313
340
|
);
|
|
341
|
+
|
|
314
342
|
onChange( [
|
|
315
343
|
...elements,
|
|
316
344
|
{
|
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
@include break-medium() {
|
|
2
|
-
.components-palette-edit__popover.components-popover .components-popover__content.components-popover__content.components-popover__content {
|
|
3
|
-
margin-right: #{ math.div($sidebar-width, 2) + $grid-unit-20 };
|
|
4
|
-
margin-top: #{ -($grid-unit-60 + $border-width) };
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
|
|
8
1
|
.components-palette-edit__popover {
|
|
9
2
|
.components-custom-gradient-picker__gradient-bar {
|
|
10
3
|
margin-top: 0;
|