@wordpress/components 25.6.0 → 25.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/CONTRIBUTING.md +1 -1
- package/build/color-palette/utils.js +2 -9
- package/build/color-palette/utils.js.map +1 -1
- package/build/sandbox/index.js +1 -1
- package/build/sandbox/index.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/slot-fill-context.js +1 -1
- package/build/slot-fill/bubbles-virtually/slot-fill-context.js.map +1 -1
- package/build/snackbar/index.js +1 -1
- package/build/snackbar/index.js.map +1 -1
- package/build/theme/color-algorithms.js +2 -2
- package/build/theme/color-algorithms.js.map +1 -1
- package/build/toolbar/toolbar-item/index.js +1 -1
- package/build/toolbar/toolbar-item/index.js.map +1 -1
- package/build/toolbar/toolbar-item/index.native.js +1 -1
- package/build/toolbar/toolbar-item/index.native.js.map +1 -1
- package/build/ui/context/constants.js +2 -6
- package/build/ui/context/constants.js.map +1 -1
- package/build/ui/context/context-connect.js +1 -1
- package/build/ui/context/context-connect.js.map +1 -1
- package/build/ui/context/context-system-provider.js +1 -1
- package/build/ui/context/context-system-provider.js.map +1 -1
- package/build/ui/context/use-context-system.js +1 -1
- package/build/ui/context/use-context-system.js.map +1 -1
- package/build/utils/math.js +0 -12
- package/build/utils/math.js.map +1 -1
- package/build/utils/values.js +3 -66
- package/build/utils/values.js.map +1 -1
- package/build-module/color-palette/utils.js +0 -6
- package/build-module/color-palette/utils.js.map +1 -1
- package/build-module/sandbox/index.js +1 -1
- package/build-module/sandbox/index.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/slot-fill-context.js +1 -1
- package/build-module/slot-fill/bubbles-virtually/slot-fill-context.js.map +1 -1
- package/build-module/snackbar/index.js +1 -1
- package/build-module/snackbar/index.js.map +1 -1
- package/build-module/theme/color-algorithms.js +2 -2
- package/build-module/theme/color-algorithms.js.map +1 -1
- package/build-module/toolbar/toolbar-item/index.js +1 -1
- package/build-module/toolbar/toolbar-item/index.js.map +1 -1
- package/build-module/toolbar/toolbar-item/index.native.js +1 -1
- package/build-module/toolbar/toolbar-item/index.native.js.map +1 -1
- package/build-module/ui/context/constants.js +0 -2
- package/build-module/ui/context/constants.js.map +1 -1
- package/build-module/ui/context/context-connect.js +1 -1
- package/build-module/ui/context/context-connect.js.map +1 -1
- package/build-module/ui/context/context-system-provider.js +1 -1
- package/build-module/ui/context/context-system-provider.js.map +1 -1
- package/build-module/ui/context/use-context-system.js +1 -1
- package/build-module/ui/context/use-context-system.js.map +1 -1
- package/build-module/utils/math.js +0 -11
- package/build-module/utils/math.js.map +1 -1
- package/build-module/utils/values.js +0 -60
- package/build-module/utils/values.js.map +1 -1
- package/build-types/circular-option-picker/stories/index.story.d.ts.map +1 -1
- package/build-types/color-palette/utils.d.ts +0 -1
- package/build-types/color-palette/utils.d.ts.map +1 -1
- package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
- package/build-types/item-group/item/hook.d.ts +1 -1
- package/build-types/sandbox/index.d.ts.map +1 -1
- package/build-types/search-control/stories/index.story.d.ts +0 -14
- package/build-types/search-control/stories/index.story.d.ts.map +1 -1
- package/build-types/ui/context/constants.d.ts +0 -2
- package/build-types/ui/context/constants.d.ts.map +1 -1
- package/build-types/utils/math.d.ts +0 -8
- package/build-types/utils/math.d.ts.map +1 -1
- package/build-types/utils/values.d.ts +0 -13
- package/build-types/utils/values.d.ts.map +1 -1
- package/package.json +19 -19
- package/src/alignment-matrix-control/stories/index.story.tsx +1 -1
- package/src/alignment-matrix-control/test/index.tsx +6 -2
- package/src/angle-picker-control/stories/index.story.tsx +1 -1
- package/src/animate/stories/index.story.tsx +1 -1
- package/src/base-control/stories/index.story.tsx +1 -1
- package/src/border-box-control/stories/index.story.tsx +1 -1
- package/src/border-control/stories/index.story.tsx +1 -1
- package/src/button/stories/index.story.tsx +1 -1
- package/src/button-group/stories/index.story.tsx +1 -1
- package/src/card/stories/index.story.tsx +1 -1
- package/src/checkbox-control/stories/index.story.tsx +1 -1
- package/src/circular-option-picker/stories/index.story.tsx +4 -1
- package/src/color-indicator/stories/index.story.tsx +1 -1
- package/src/color-palette/stories/index.story.tsx +1 -1
- package/src/color-palette/test/index.tsx +15 -9
- package/src/color-palette/test/utils.ts +0 -15
- package/src/color-palette/utils.ts +0 -7
- package/src/color-picker/stories/index.story.tsx +1 -1
- package/src/combobox-control/stories/index.story.tsx +1 -1
- package/src/confirm-dialog/stories/index.story.js +1 -1
- package/src/custom-gradient-picker/stories/index.story.tsx +1 -1
- package/src/date-time/stories/date-time.story.tsx +1 -1
- package/src/date-time/stories/date.story.tsx +1 -1
- package/src/date-time/stories/time.story.tsx +1 -1
- package/src/dimension-control/stories/index.story.tsx +1 -1
- package/src/disabled/stories/index.story.tsx +1 -1
- package/src/divider/stories/index.story.tsx +1 -1
- package/src/drop-zone/stories/index.story.tsx +1 -1
- package/src/dropdown-menu/stories/index.story.tsx +1 -1
- package/src/dropdown-menu-v2/stories/index.story.tsx +4 -1
- package/src/duotone-picker/stories/duotone-picker.story.tsx +1 -1
- package/src/duotone-picker/stories/duotone-swatch.story.tsx +1 -1
- package/src/elevation/stories/index.story.tsx +1 -1
- package/src/external-link/stories/index.story.tsx +1 -1
- package/src/flex/stories/index.story.tsx +1 -1
- package/src/focal-point-picker/stories/index.story.tsx +1 -1
- package/src/font-size-picker/stories/index.story.tsx +1 -1
- package/src/form-file-upload/stories/index.story.tsx +1 -1
- package/src/form-toggle/stories/index.story.tsx +1 -1
- package/src/form-token-field/stories/index.story.tsx +1 -1
- package/src/gradient-picker/stories/index.story.tsx +1 -1
- package/src/grid/stories/index.story.tsx +1 -1
- package/src/h-stack/stories/index.story.tsx +1 -1
- package/src/heading/stories/index.story.tsx +1 -1
- package/src/icon/stories/index.story.tsx +1 -1
- package/src/input-control/stories/index.story.tsx +1 -1
- package/src/item-group/stories/index.story.tsx +1 -1
- package/src/keyboard-shortcuts/stories/index.story.tsx +1 -1
- package/src/menu-group/stories/index.story.tsx +1 -1
- package/src/menu-items-choice/stories/index.story.tsx +1 -1
- package/src/navigable-container/stories/navigable-menu.story.tsx +1 -1
- package/src/navigable-container/stories/tabbable-container.story.tsx +1 -1
- package/src/navigation/stories/index.story.tsx +1 -1
- package/src/navigator/stories/index.story.tsx +1 -1
- package/src/notice/stories/index.story.tsx +1 -1
- package/src/number-control/stories/index.story.tsx +1 -1
- package/src/palette-edit/stories/index.story.tsx +1 -1
- package/src/panel/stories/index.story.tsx +1 -1
- package/src/placeholder/stories/index.story.tsx +1 -1
- package/src/progress-bar/stories/index.story.tsx +1 -1
- package/src/query-controls/stories/index.story.tsx +1 -1
- package/src/radio-control/stories/index.story.tsx +1 -1
- package/src/range-control/stories/index.story.tsx +1 -1
- package/src/resizable-box/stories/index.story.tsx +1 -1
- package/src/responsive-wrapper/stories/index.story.tsx +1 -1
- package/src/sandbox/index.tsx +4 -1
- package/src/sandbox/stories/index.story.tsx +1 -1
- package/src/scroll-lock/stories/index.story.tsx +1 -1
- package/src/scrollable/stories/index.story.tsx +1 -1
- package/src/search-control/stories/index.story.tsx +1 -1
- package/src/select-control/stories/index.story.tsx +1 -1
- package/src/slot-fill/stories/index.story.js +1 -1
- package/src/snackbar/stories/index.story.tsx +1 -1
- package/src/snackbar/stories/list.story.tsx +1 -1
- package/src/spacer/stories/index.story.tsx +1 -1
- package/src/spinner/stories/index.story.tsx +1 -1
- package/src/surface/stories/index.story.tsx +1 -1
- package/src/tab-panel/stories/index.story.tsx +1 -1
- package/src/text/test/index.tsx +1 -1
- package/src/text-control/stories/index.story.tsx +1 -1
- package/src/text-highlight/stories/index.story.tsx +1 -1
- package/src/textarea-control/stories/index.story.tsx +1 -1
- package/src/theme/stories/index.story.tsx +2 -2
- package/src/tip/stories/index.story.tsx +1 -1
- package/src/toggle-control/stories/index.story.tsx +1 -1
- package/src/toggle-group-control/stories/index.story.tsx +1 -1
- package/src/toolbar/stories/index.story.tsx +1 -1
- package/src/tools-panel/stories/index.story.tsx +1 -1
- package/src/tooltip/stories/index.story.js +1 -1
- package/src/tree-select/stories/index.story.tsx +1 -1
- package/src/truncate/stories/index.story.tsx +1 -1
- package/src/ui/context/constants.js +0 -2
- package/src/unit-control/stories/index.story.tsx +1 -1
- package/src/utils/math.js +0 -11
- package/src/utils/values.js +0 -81
- package/src/v-stack/stories/index.story.tsx +1 -1
- package/src/view/stories/index.story.tsx +1 -1
- package/src/visually-hidden/stories/index.story.tsx +1 -1
- package/src/z-stack/stories/index.story.tsx +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/ui/utils/get-high-dpi.js +0 -16
- package/build/ui/utils/get-high-dpi.js.map +0 -1
- package/build/utils/browsers.js +0 -32
- package/build/utils/browsers.js.map +0 -1
- package/build/utils/events.js +0 -43
- package/build/utils/events.js.map +0 -1
- package/build-module/ui/utils/get-high-dpi.js +0 -11
- package/build-module/ui/utils/get-high-dpi.js.map +0 -1
- package/build-module/utils/browsers.js +0 -25
- package/build-module/utils/browsers.js.map +0 -1
- package/build-module/utils/events.js +0 -37
- package/build-module/utils/events.js.map +0 -1
- package/build-types/alignment-matrix-control/stories/index.d.ts +0 -14
- package/build-types/alignment-matrix-control/stories/index.d.ts.map +0 -1
- package/build-types/angle-picker-control/stories/index.d.ts +0 -15
- package/build-types/angle-picker-control/stories/index.d.ts.map +0 -1
- package/build-types/animate/stories/index.d.ts +0 -18
- package/build-types/animate/stories/index.d.ts.map +0 -1
- package/build-types/base-control/stories/index.d.ts +0 -25
- package/build-types/base-control/stories/index.d.ts.map +0 -1
- package/build-types/border-box-control/stories/index.d.ts +0 -17
- package/build-types/border-box-control/stories/index.d.ts.map +0 -1
- package/build-types/border-control/stories/index.d.ts +0 -119
- package/build-types/border-control/stories/index.d.ts.map +0 -1
- package/build-types/button/stories/e2e/index.d.ts +0 -15
- package/build-types/button/stories/e2e/index.d.ts.map +0 -1
- package/build-types/button/stories/index.d.ts +0 -20
- package/build-types/button/stories/index.d.ts.map +0 -1
- package/build-types/button-group/stories/index.d.ts +0 -12
- package/build-types/button-group/stories/index.d.ts.map +0 -1
- package/build-types/card/stories/index.d.ts +0 -32
- package/build-types/card/stories/index.d.ts.map +0 -1
- package/build-types/checkbox-control/stories/index.d.ts +0 -13
- package/build-types/checkbox-control/stories/index.d.ts.map +0 -1
- package/build-types/circular-option-picker/stories/index.d.ts +0 -14
- package/build-types/circular-option-picker/stories/index.d.ts.map +0 -1
- package/build-types/color-indicator/stories/index.d.ts +0 -12
- package/build-types/color-indicator/stories/index.d.ts.map +0 -1
- package/build-types/color-palette/stories/index.d.ts +0 -46
- package/build-types/color-palette/stories/index.d.ts.map +0 -1
- package/build-types/color-picker/stories/index.d.ts +0 -19
- package/build-types/color-picker/stories/index.d.ts.map +0 -1
- package/build-types/combobox-control/stories/index.d.ts +0 -18
- package/build-types/combobox-control/stories/index.d.ts.map +0 -1
- package/build-types/custom-gradient-picker/stories/index.d.ts +0 -12
- package/build-types/custom-gradient-picker/stories/index.d.ts.map +0 -1
- package/build-types/date-time/stories/date-time.d.ts +0 -14
- package/build-types/date-time/stories/date-time.d.ts.map +0 -1
- package/build-types/date-time/stories/date.d.ts +0 -14
- package/build-types/date-time/stories/date.d.ts.map +0 -1
- package/build-types/date-time/stories/time.d.ts +0 -12
- package/build-types/date-time/stories/time.d.ts.map +0 -1
- package/build-types/dimension-control/stories/index.d.ts +0 -12
- package/build-types/dimension-control/stories/index.d.ts.map +0 -1
- package/build-types/disabled/stories/index.d.ts +0 -13
- package/build-types/disabled/stories/index.d.ts.map +0 -1
- package/build-types/divider/stories/index.d.ts +0 -11
- package/build-types/divider/stories/index.d.ts.map +0 -1
- package/build-types/draggable/stories/index.d.ts +0 -20
- package/build-types/draggable/stories/index.d.ts.map +0 -1
- package/build-types/drop-zone/stories/index.d.ts +0 -12
- package/build-types/drop-zone/stories/index.d.ts.map +0 -1
- package/build-types/dropdown/stories/index.d.ts +0 -23
- package/build-types/dropdown/stories/index.d.ts.map +0 -1
- package/build-types/dropdown-menu/stories/index.d.ts +0 -14
- package/build-types/dropdown-menu/stories/index.d.ts.map +0 -1
- package/build-types/dropdown-menu-v2/stories/index.d.ts +0 -11
- package/build-types/dropdown-menu-v2/stories/index.d.ts.map +0 -1
- package/build-types/duotone-picker/stories/duotone-picker.d.ts +0 -12
- package/build-types/duotone-picker/stories/duotone-picker.d.ts.map +0 -1
- package/build-types/duotone-picker/stories/duotone-swatch.d.ts +0 -14
- package/build-types/duotone-picker/stories/duotone-swatch.d.ts.map +0 -1
- package/build-types/elevation/stories/index.d.ts +0 -22
- package/build-types/elevation/stories/index.d.ts.map +0 -1
- package/build-types/external-link/stories/index.d.ts +0 -12
- package/build-types/external-link/stories/index.d.ts.map +0 -1
- package/build-types/flex/stories/index.d.ts +0 -13
- package/build-types/flex/stories/index.d.ts.map +0 -1
- package/build-types/focal-point-picker/stories/index.d.ts +0 -15
- package/build-types/focal-point-picker/stories/index.d.ts.map +0 -1
- package/build-types/font-size-picker/stories/e2e/index.d.ts +0 -16
- package/build-types/font-size-picker/stories/e2e/index.d.ts.map +0 -1
- package/build-types/font-size-picker/stories/index.d.ts +0 -31
- package/build-types/font-size-picker/stories/index.d.ts.map +0 -1
- package/build-types/form-file-upload/stories/index.d.ts +0 -23
- package/build-types/form-file-upload/stories/index.d.ts.map +0 -1
- package/build-types/form-toggle/stories/index.d.ts +0 -12
- package/build-types/form-toggle/stories/index.d.ts.map +0 -1
- package/build-types/form-token-field/stories/index.d.ts +0 -26
- package/build-types/form-token-field/stories/index.d.ts.map +0 -1
- package/build-types/gradient-picker/stories/index.d.ts +0 -14
- package/build-types/gradient-picker/stories/index.d.ts.map +0 -1
- package/build-types/grid/stories/index.d.ts +0 -9
- package/build-types/grid/stories/index.d.ts.map +0 -1
- package/build-types/guide/stories/index.d.ts +0 -9
- package/build-types/guide/stories/index.d.ts.map +0 -1
- package/build-types/h-stack/stories/e2e/index.d.ts +0 -9
- package/build-types/h-stack/stories/e2e/index.d.ts.map +0 -1
- package/build-types/h-stack/stories/index.d.ts +0 -9
- package/build-types/h-stack/stories/index.d.ts.map +0 -1
- package/build-types/heading/stories/index.d.ts +0 -12
- package/build-types/heading/stories/index.d.ts.map +0 -1
- package/build-types/icon/stories/index.d.ts +0 -22
- package/build-types/icon/stories/index.d.ts.map +0 -1
- package/build-types/input-control/stories/index.d.ts +0 -28
- package/build-types/input-control/stories/index.d.ts.map +0 -1
- package/build-types/item-group/stories/index.d.ts +0 -15
- package/build-types/item-group/stories/index.d.ts.map +0 -1
- package/build-types/keyboard-shortcuts/stories/index.d.ts +0 -12
- package/build-types/keyboard-shortcuts/stories/index.d.ts.map +0 -1
- package/build-types/menu-group/stories/index.d.ts +0 -17
- package/build-types/menu-group/stories/index.d.ts.map +0 -1
- package/build-types/menu-items-choice/stories/index.d.ts +0 -12
- package/build-types/menu-items-choice/stories/index.d.ts.map +0 -1
- package/build-types/modal/stories/index.d.ts +0 -10
- package/build-types/modal/stories/index.d.ts.map +0 -1
- package/build-types/navigable-container/stories/navigable-menu.d.ts +0 -12
- package/build-types/navigable-container/stories/navigable-menu.d.ts.map +0 -1
- package/build-types/navigable-container/stories/tabbable-container.d.ts +0 -12
- package/build-types/navigable-container/stories/tabbable-container.d.ts.map +0 -1
- package/build-types/navigation/stories/index.d.ts +0 -18
- package/build-types/navigation/stories/index.d.ts.map +0 -1
- package/build-types/navigator/stories/index.d.ts +0 -11
- package/build-types/navigator/stories/index.d.ts.map +0 -1
- package/build-types/notice/stories/index.d.ts +0 -17
- package/build-types/notice/stories/index.d.ts.map +0 -1
- package/build-types/number-control/stories/index.d.ts +0 -25
- package/build-types/number-control/stories/index.d.ts.map +0 -1
- package/build-types/palette-edit/stories/index.d.ts +0 -13
- package/build-types/palette-edit/stories/index.d.ts.map +0 -1
- package/build-types/panel/stories/index.d.ts +0 -19
- package/build-types/panel/stories/index.d.ts.map +0 -1
- package/build-types/placeholder/stories/index.d.ts +0 -12
- package/build-types/placeholder/stories/index.d.ts.map +0 -1
- package/build-types/popover/stories/e2e/index.d.ts +0 -8
- package/build-types/popover/stories/e2e/index.d.ts.map +0 -1
- package/build-types/popover/stories/index.d.ts +0 -13
- package/build-types/popover/stories/index.d.ts.map +0 -1
- package/build-types/progress-bar/stories/index.d.ts +0 -12
- package/build-types/progress-bar/stories/index.d.ts.map +0 -1
- package/build-types/query-controls/stories/index.d.ts +0 -13
- package/build-types/query-controls/stories/index.d.ts.map +0 -1
- package/build-types/radio-control/stories/index.d.ts +0 -12
- package/build-types/radio-control/stories/index.d.ts.map +0 -1
- package/build-types/range-control/stories/index.d.ts +0 -48
- package/build-types/range-control/stories/index.d.ts.map +0 -1
- package/build-types/resizable-box/stories/index.d.ts +0 -61
- package/build-types/resizable-box/stories/index.d.ts.map +0 -1
- package/build-types/responsive-wrapper/stories/index.d.ts +0 -22
- package/build-types/responsive-wrapper/stories/index.d.ts.map +0 -1
- package/build-types/sandbox/stories/index.d.ts +0 -12
- package/build-types/sandbox/stories/index.d.ts.map +0 -1
- package/build-types/scroll-lock/stories/index.d.ts +0 -9
- package/build-types/scroll-lock/stories/index.d.ts.map +0 -1
- package/build-types/scrollable/stories/index.d.ts +0 -9
- package/build-types/scrollable/stories/index.d.ts.map +0 -1
- package/build-types/search-control/stories/index.d.ts +0 -47
- package/build-types/search-control/stories/index.d.ts.map +0 -1
- package/build-types/select-control/stories/index.d.ts +0 -19
- package/build-types/select-control/stories/index.d.ts.map +0 -1
- package/build-types/snackbar/stories/index.d.ts +0 -16
- package/build-types/snackbar/stories/index.d.ts.map +0 -1
- package/build-types/snackbar/stories/list.d.ts +0 -12
- package/build-types/snackbar/stories/list.d.ts.map +0 -1
- package/build-types/spacer/stories/index.d.ts +0 -12
- package/build-types/spacer/stories/index.d.ts.map +0 -1
- package/build-types/spinner/stories/index.d.ts +0 -13
- package/build-types/spinner/stories/index.d.ts.map +0 -1
- package/build-types/surface/stories/index.d.ts +0 -12
- package/build-types/surface/stories/index.d.ts.map +0 -1
- package/build-types/tab-panel/stories/index.d.ts +0 -16
- package/build-types/tab-panel/stories/index.d.ts.map +0 -1
- package/build-types/text-control/stories/index.d.ts +0 -13
- package/build-types/text-control/stories/index.d.ts.map +0 -1
- package/build-types/text-highlight/stories/index.d.ts +0 -12
- package/build-types/text-highlight/stories/index.d.ts.map +0 -1
- package/build-types/textarea-control/stories/index.d.ts +0 -12
- package/build-types/textarea-control/stories/index.d.ts.map +0 -1
- package/build-types/theme/stories/index.d.ts +0 -17
- package/build-types/theme/stories/index.d.ts.map +0 -1
- package/build-types/tip/stories/index.d.ts +0 -12
- package/build-types/tip/stories/index.d.ts.map +0 -1
- package/build-types/toggle-control/stories/index.d.ts +0 -13
- package/build-types/toggle-control/stories/index.d.ts.map +0 -1
- package/build-types/toggle-group-control/stories/index.d.ts +0 -27
- package/build-types/toggle-group-control/stories/index.d.ts.map +0 -1
- package/build-types/toolbar/stories/index.d.ts +0 -14
- package/build-types/toolbar/stories/index.d.ts.map +0 -1
- package/build-types/tools-panel/stories/index.d.ts +0 -17
- package/build-types/tools-panel/stories/index.d.ts.map +0 -1
- package/build-types/tree-grid/stories/index.d.ts +0 -13
- package/build-types/tree-grid/stories/index.d.ts.map +0 -1
- package/build-types/tree-select/stories/index.d.ts +0 -12
- package/build-types/tree-select/stories/index.d.ts.map +0 -1
- package/build-types/truncate/stories/index.d.ts +0 -13
- package/build-types/truncate/stories/index.d.ts.map +0 -1
- package/build-types/ui/control-group/component.d.ts +0 -27
- package/build-types/ui/control-group/component.d.ts.map +0 -1
- package/build-types/ui/control-group/context.d.ts +0 -4
- package/build-types/ui/control-group/context.d.ts.map +0 -1
- package/build-types/ui/control-group/hook.d.ts +0 -266
- package/build-types/ui/control-group/hook.d.ts.map +0 -1
- package/build-types/ui/control-group/index.d.ts +0 -4
- package/build-types/ui/control-group/index.d.ts.map +0 -1
- package/build-types/ui/control-group/styles.d.ts +0 -8
- package/build-types/ui/control-group/styles.d.ts.map +0 -1
- package/build-types/ui/control-group/types.d.ts +0 -27
- package/build-types/ui/control-group/types.d.ts.map +0 -1
- package/build-types/ui/control-label/component.d.ts +0 -23
- package/build-types/ui/control-label/component.d.ts.map +0 -1
- package/build-types/ui/control-label/hook.d.ts +0 -265
- package/build-types/ui/control-label/hook.d.ts.map +0 -1
- package/build-types/ui/control-label/index.d.ts +0 -3
- package/build-types/ui/control-label/index.d.ts.map +0 -1
- package/build-types/ui/control-label/styles.d.ts +0 -7
- package/build-types/ui/control-label/styles.d.ts.map +0 -1
- package/build-types/ui/control-label/types.d.ts +0 -9
- package/build-types/ui/control-label/types.d.ts.map +0 -1
- package/build-types/ui/form-group/form-group-content.d.ts +0 -7
- package/build-types/ui/form-group/form-group-content.d.ts.map +0 -1
- package/build-types/ui/form-group/form-group-context.d.ts +0 -11
- package/build-types/ui/form-group/form-group-context.d.ts.map +0 -1
- package/build-types/ui/form-group/form-group-help.d.ts +0 -18
- package/build-types/ui/form-group/form-group-help.d.ts.map +0 -1
- package/build-types/ui/form-group/form-group-label.d.ts +0 -8
- package/build-types/ui/form-group/form-group-label.d.ts.map +0 -1
- package/build-types/ui/form-group/form-group-styles.d.ts +0 -2
- package/build-types/ui/form-group/form-group-styles.d.ts.map +0 -1
- package/build-types/ui/form-group/form-group.d.ts +0 -53
- package/build-types/ui/form-group/form-group.d.ts.map +0 -1
- package/build-types/ui/form-group/index.d.ts +0 -4
- package/build-types/ui/form-group/index.d.ts.map +0 -1
- package/build-types/ui/form-group/types.d.ts +0 -30
- package/build-types/ui/form-group/types.d.ts.map +0 -1
- package/build-types/ui/form-group/use-form-group.d.ts +0 -593
- package/build-types/ui/form-group/use-form-group.d.ts.map +0 -1
- package/build-types/ui/index.d.ts +0 -6
- package/build-types/ui/index.d.ts.map +0 -1
- package/build-types/ui/spinner/component.d.ts +0 -13
- package/build-types/ui/spinner/component.d.ts.map +0 -1
- package/build-types/ui/spinner/index.d.ts +0 -2
- package/build-types/ui/spinner/index.d.ts.map +0 -1
- package/build-types/ui/spinner/styles.d.ts +0 -13
- package/build-types/ui/spinner/styles.d.ts.map +0 -1
- package/build-types/ui/spinner/utils.d.ts +0 -3
- package/build-types/ui/spinner/utils.d.ts.map +0 -1
- package/build-types/ui/utils/get-high-dpi.d.ts +0 -3
- package/build-types/ui/utils/get-high-dpi.d.ts.map +0 -1
- package/build-types/unit-control/stories/index.d.ts +0 -33
- package/build-types/unit-control/stories/index.d.ts.map +0 -1
- package/build-types/utils/browsers.d.ts +0 -11
- package/build-types/utils/browsers.d.ts.map +0 -1
- package/build-types/utils/events.d.ts +0 -11
- package/build-types/utils/events.d.ts.map +0 -1
- package/build-types/v-stack/stories/e2e/index.d.ts +0 -9
- package/build-types/v-stack/stories/e2e/index.d.ts.map +0 -1
- package/build-types/v-stack/stories/index.d.ts +0 -13
- package/build-types/v-stack/stories/index.d.ts.map +0 -1
- package/build-types/view/stories/index.d.ts +0 -12
- package/build-types/view/stories/index.d.ts.map +0 -1
- package/build-types/visually-hidden/stories/index.d.ts +0 -14
- package/build-types/visually-hidden/stories/index.d.ts.map +0 -1
- package/build-types/z-stack/stories/index.d.ts +0 -6
- package/build-types/z-stack/stories/index.d.ts.map +0 -1
- package/src/ui/utils/get-high-dpi.ts +0 -20
- package/src/utils/browsers.js +0 -36
- package/src/utils/events.ts +0 -50
- package/src/utils/test/events.js +0 -63
- package/src/utils/test/values.js +0 -101
package/build/utils/math.js
CHANGED
|
@@ -7,7 +7,6 @@ exports.add = add;
|
|
|
7
7
|
exports.clamp = clamp;
|
|
8
8
|
exports.getNumber = getNumber;
|
|
9
9
|
exports.roundClamp = roundClamp;
|
|
10
|
-
exports.roundClampString = roundClampString;
|
|
11
10
|
exports.subtract = subtract;
|
|
12
11
|
/**
|
|
13
12
|
* Parses and retrieves a number value.
|
|
@@ -92,15 +91,4 @@ function roundClamp(value = 0, min = Infinity, max = Infinity, step = 1) {
|
|
|
92
91
|
const clampedValue = clamp(rounded, min, max);
|
|
93
92
|
return precision ? getNumber(clampedValue.toFixed(precision)) : clampedValue;
|
|
94
93
|
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Clamps a value based on a min/max range with rounding.
|
|
98
|
-
* Returns a string.
|
|
99
|
-
*
|
|
100
|
-
* @param {Parameters<typeof roundClamp>} args Arguments for roundClamp().
|
|
101
|
-
* @return {string} The rounded and clamped value.
|
|
102
|
-
*/
|
|
103
|
-
function roundClampString(...args) {
|
|
104
|
-
return roundClamp(...args).toString();
|
|
105
|
-
}
|
|
106
94
|
//# sourceMappingURL=math.js.map
|
package/build/utils/math.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getNumber","value","number","Number","isNaN","add","args","reduce","sum","arg","subtract","diff","index","getPrecision","split","undefined","length","clamp","min","max","baseValue","Math","roundClamp","Infinity","step","stepValue","precision","rounded","round","clampedValue","toFixed"
|
|
1
|
+
{"version":3,"names":["getNumber","value","number","Number","isNaN","add","args","reduce","sum","arg","subtract","diff","index","getPrecision","split","undefined","length","clamp","min","max","baseValue","Math","roundClamp","Infinity","step","stepValue","precision","rounded","round","clampedValue","toFixed"],"sources":["@wordpress/components/src/utils/math.js"],"sourcesContent":["/**\n * Parses and retrieves a number value.\n *\n * @param {unknown} value The incoming value.\n *\n * @return {number} The parsed number value.\n */\nexport function getNumber( value ) {\n\tconst number = Number( value );\n\n\treturn isNaN( number ) ? 0 : number;\n}\n\n/**\n * Safely adds 2 values.\n *\n * @param {Array<number|string>} args Values to add together.\n *\n * @return {number} The sum of values.\n */\nexport function add( ...args ) {\n\treturn args.reduce(\n\t\t/** @type {(sum:number, arg: number|string) => number} */\n\t\t( sum, arg ) => sum + getNumber( arg ),\n\t\t0\n\t);\n}\n\n/**\n * Safely subtracts 2 values.\n *\n * @param {Array<number|string>} args Values to subtract together.\n *\n * @return {number} The difference of the values.\n */\nexport function subtract( ...args ) {\n\treturn args.reduce(\n\t\t/** @type {(diff:number, arg: number|string, index:number) => number} */\n\t\t( diff, arg, index ) => {\n\t\t\tconst value = getNumber( arg );\n\t\t\treturn index === 0 ? value : diff - value;\n\t\t},\n\t\t0\n\t);\n}\n\n/**\n * Determines the decimal position of a number value.\n *\n * @param {number} value The number to evaluate.\n *\n * @return {number} The number of decimal places.\n */\nfunction getPrecision( value ) {\n\tconst split = ( value + '' ).split( '.' );\n\treturn split[ 1 ] !== undefined ? split[ 1 ].length : 0;\n}\n\n/**\n * Clamps a value based on a min/max range.\n *\n * @param {number} value The value.\n * @param {number} min The minimum range.\n * @param {number} max The maximum range.\n *\n * @return {number} The clamped value.\n */\nexport function clamp( value, min, max ) {\n\tconst baseValue = getNumber( value );\n\treturn Math.max( min, Math.min( baseValue, max ) );\n}\n\n/**\n * Clamps a value based on a min/max range with rounding\n *\n * @param {number | string} value The value.\n * @param {number} min The minimum range.\n * @param {number} max The maximum range.\n * @param {number} step A multiplier for the value.\n *\n * @return {number} The rounded and clamped value.\n */\nexport function roundClamp(\n\tvalue = 0,\n\tmin = Infinity,\n\tmax = Infinity,\n\tstep = 1\n) {\n\tconst baseValue = getNumber( value );\n\tconst stepValue = getNumber( step );\n\tconst precision = getPrecision( step );\n\tconst rounded = Math.round( baseValue / stepValue ) * stepValue;\n\tconst clampedValue = clamp( rounded, min, max );\n\n\treturn precision\n\t\t? getNumber( clampedValue.toFixed( precision ) )\n\t\t: clampedValue;\n}\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,SAASA,CAAEC,KAAK,EAAG;EAClC,MAAMC,MAAM,GAAGC,MAAM,CAAEF,KAAM,CAAC;EAE9B,OAAOG,KAAK,CAAEF,MAAO,CAAC,GAAG,CAAC,GAAGA,MAAM;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,GAAGA,CAAE,GAAGC,IAAI,EAAG;EAC9B,OAAOA,IAAI,CAACC,MAAM,EACjB;EACA,CAAEC,GAAG,EAAEC,GAAG,KAAMD,GAAG,GAAGR,SAAS,CAAES,GAAI,CAAC,EACtC,CACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,QAAQA,CAAE,GAAGJ,IAAI,EAAG;EACnC,OAAOA,IAAI,CAACC,MAAM,EACjB;EACA,CAAEI,IAAI,EAAEF,GAAG,EAAEG,KAAK,KAAM;IACvB,MAAMX,KAAK,GAAGD,SAAS,CAAES,GAAI,CAAC;IAC9B,OAAOG,KAAK,KAAK,CAAC,GAAGX,KAAK,GAAGU,IAAI,GAAGV,KAAK;EAC1C,CAAC,EACD,CACD,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASY,YAAYA,CAAEZ,KAAK,EAAG;EAC9B,MAAMa,KAAK,GAAG,CAAEb,KAAK,GAAG,EAAE,EAAGa,KAAK,CAAE,GAAI,CAAC;EACzC,OAAOA,KAAK,CAAE,CAAC,CAAE,KAAKC,SAAS,GAAGD,KAAK,CAAE,CAAC,CAAE,CAACE,MAAM,GAAG,CAAC;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,KAAKA,CAAEhB,KAAK,EAAEiB,GAAG,EAAEC,GAAG,EAAG;EACxC,MAAMC,SAAS,GAAGpB,SAAS,CAAEC,KAAM,CAAC;EACpC,OAAOoB,IAAI,CAACF,GAAG,CAAED,GAAG,EAAEG,IAAI,CAACH,GAAG,CAAEE,SAAS,EAAED,GAAI,CAAE,CAAC;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,UAAUA,CACzBrB,KAAK,GAAG,CAAC,EACTiB,GAAG,GAAGK,QAAQ,EACdJ,GAAG,GAAGI,QAAQ,EACdC,IAAI,GAAG,CAAC,EACP;EACD,MAAMJ,SAAS,GAAGpB,SAAS,CAAEC,KAAM,CAAC;EACpC,MAAMwB,SAAS,GAAGzB,SAAS,CAAEwB,IAAK,CAAC;EACnC,MAAME,SAAS,GAAGb,YAAY,CAAEW,IAAK,CAAC;EACtC,MAAMG,OAAO,GAAGN,IAAI,CAACO,KAAK,CAAER,SAAS,GAAGK,SAAU,CAAC,GAAGA,SAAS;EAC/D,MAAMI,YAAY,GAAGZ,KAAK,CAAEU,OAAO,EAAET,GAAG,EAAEC,GAAI,CAAC;EAE/C,OAAOO,SAAS,GACb1B,SAAS,CAAE6B,YAAY,CAACC,OAAO,CAAEJ,SAAU,CAAE,CAAC,GAC9CG,YAAY;AAChB"}
|
package/build/utils/values.js
CHANGED
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.ensureNumber = void 0;
|
|
7
7
|
exports.getDefinedValue = getDefinedValue;
|
|
8
8
|
exports.isValueDefined = isValueDefined;
|
|
9
9
|
exports.isValueEmpty = isValueEmpty;
|
|
10
|
-
exports.
|
|
11
|
-
exports.stringToNumber = exports.numberToString = void 0;
|
|
10
|
+
exports.stringToNumber = void 0;
|
|
12
11
|
/* eslint-disable jsdoc/valid-types */
|
|
13
12
|
/**
|
|
14
13
|
* Determines if a value is null or undefined.
|
|
@@ -50,44 +49,6 @@ function getDefinedValue(values = [], fallbackValue) {
|
|
|
50
49
|
return (_values$find = values.find(isValueDefined)) !== null && _values$find !== void 0 ? _values$find : fallbackValue;
|
|
51
50
|
}
|
|
52
51
|
|
|
53
|
-
/**
|
|
54
|
-
* @param {string} [locale]
|
|
55
|
-
* @return {[RegExp, RegExp]} The delimiter and decimal regexp
|
|
56
|
-
*/
|
|
57
|
-
const getDelimiterAndDecimalRegex = locale => {
|
|
58
|
-
const formatted = Intl.NumberFormat(locale).format(1000.1);
|
|
59
|
-
const delimiter = formatted[1];
|
|
60
|
-
const decimal = formatted[formatted.length - 2];
|
|
61
|
-
return [new RegExp(`\\${delimiter}`, 'g'), new RegExp(`\\${decimal}`, 'g')];
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
// https://en.wikipedia.org/wiki/Decimal_separator#Current_standards
|
|
65
|
-
const INTERNATIONAL_THOUSANDS_DELIMITER = / /g;
|
|
66
|
-
const ARABIC_NUMERAL_LOCALES = ['ar', 'fa', 'ur', 'ckb', 'ps'];
|
|
67
|
-
const EASTERN_ARABIC_NUMBERS = /([۰-۹]|[٠-٩])/g;
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Checks to see if a value is a numeric value (`number` or `string`).
|
|
71
|
-
*
|
|
72
|
-
* Intentionally ignores whether the thousands delimiters are only
|
|
73
|
-
* in the thousands marks.
|
|
74
|
-
*
|
|
75
|
-
* @param {any} value
|
|
76
|
-
* @param {string} [locale]
|
|
77
|
-
* @return {boolean} Whether value is numeric.
|
|
78
|
-
*/
|
|
79
|
-
function isValueNumeric(value, locale = window.navigator.language) {
|
|
80
|
-
if (ARABIC_NUMERAL_LOCALES.some(l => locale.startsWith(l))) {
|
|
81
|
-
locale = 'en-GB';
|
|
82
|
-
if (EASTERN_ARABIC_NUMBERS.test(value)) {
|
|
83
|
-
value = value.replace(/[٠-٩]/g, ( /** @type {string} */d) => '٠١٢٣٤٥٦٧٨٩'.indexOf(d)).replace(/[۰-۹]/g, ( /** @type {string} */d) => '۰۱۲۳۴۵۶۷۸۹'.indexOf(d)).replace(/٬/g, ',').replace(/٫/g, '.');
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
const [delimiterRegexp, decimalRegexp] = getDelimiterAndDecimalRegex(locale);
|
|
87
|
-
const valueToCheck = typeof value === 'string' ? value.replace(delimiterRegexp, '').replace(decimalRegexp, '.').replace(INTERNATIONAL_THOUSANDS_DELIMITER, '') : value;
|
|
88
|
-
return !isNaN(parseFloat(valueToCheck)) && isFinite(valueToCheck);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
52
|
/**
|
|
92
53
|
* Converts a string to a number.
|
|
93
54
|
*
|
|
@@ -98,17 +59,6 @@ const stringToNumber = value => {
|
|
|
98
59
|
return parseFloat(value);
|
|
99
60
|
};
|
|
100
61
|
|
|
101
|
-
/**
|
|
102
|
-
* Converts a number to a string.
|
|
103
|
-
*
|
|
104
|
-
* @param {number} value
|
|
105
|
-
* @return {string} Number as a string.
|
|
106
|
-
*/
|
|
107
|
-
exports.stringToNumber = stringToNumber;
|
|
108
|
-
const numberToString = value => {
|
|
109
|
-
return `${value}`;
|
|
110
|
-
};
|
|
111
|
-
|
|
112
62
|
/**
|
|
113
63
|
* Regardless of the input being a string or a number, returns a number.
|
|
114
64
|
*
|
|
@@ -117,22 +67,9 @@ const numberToString = value => {
|
|
|
117
67
|
* @param {string | number} value
|
|
118
68
|
* @return {number} The parsed number.
|
|
119
69
|
*/
|
|
120
|
-
exports.
|
|
70
|
+
exports.stringToNumber = stringToNumber;
|
|
121
71
|
const ensureNumber = value => {
|
|
122
72
|
return typeof value === 'string' ? stringToNumber(value) : value;
|
|
123
73
|
};
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Regardless of the input being a string or a number, returns a number.
|
|
127
|
-
*
|
|
128
|
-
* Returns `undefined` in case the string is `undefined` or not a valid numeric value.
|
|
129
|
-
*
|
|
130
|
-
* @param {string | number} value
|
|
131
|
-
* @return {string} The converted string, or `undefined` in case the input is `undefined` or `NaN`.
|
|
132
|
-
*/
|
|
133
74
|
exports.ensureNumber = ensureNumber;
|
|
134
|
-
const ensureString = value => {
|
|
135
|
-
return typeof value === 'string' ? value : numberToString(value);
|
|
136
|
-
};
|
|
137
|
-
exports.ensureString = ensureString;
|
|
138
75
|
//# sourceMappingURL=values.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isValueDefined","value","undefined","isValueEmpty","isEmptyString","getDefinedValue","values","fallbackValue","_values$find","find","
|
|
1
|
+
{"version":3,"names":["isValueDefined","value","undefined","isValueEmpty","isEmptyString","getDefinedValue","values","fallbackValue","_values$find","find","stringToNumber","parseFloat","exports","ensureNumber"],"sources":["@wordpress/components/src/utils/values.js"],"sourcesContent":["/* eslint-disable jsdoc/valid-types */\n/**\n * Determines if a value is null or undefined.\n *\n * @template T\n *\n * @param {T} value The value to check.\n * @return {value is Exclude<T, null | undefined>} Whether value is not null or undefined.\n */\nexport function isValueDefined( value ) {\n\treturn value !== undefined && value !== null;\n}\n/* eslint-enable jsdoc/valid-types */\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * Determines if a value is empty, null, or undefined.\n *\n * @param {string | number | null | undefined} value The value to check.\n * @return {value is (\"\" | null | undefined)} Whether value is empty.\n */\nexport function isValueEmpty( value ) {\n\tconst isEmptyString = value === '';\n\n\treturn ! isValueDefined( value ) || isEmptyString;\n}\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Get the first defined/non-null value from an array.\n *\n * @template T\n *\n * @param {Array<T | null | undefined>} values Values to derive from.\n * @param {T} fallbackValue Fallback value if there are no defined values.\n * @return {T} A defined value or the fallback value.\n */\nexport function getDefinedValue( values = [], fallbackValue ) {\n\treturn values.find( isValueDefined ) ?? fallbackValue;\n}\n\n/**\n * Converts a string to a number.\n *\n * @param {string} value\n * @return {number} String as a number.\n */\nexport const stringToNumber = ( value ) => {\n\treturn parseFloat( value );\n};\n\n/**\n * Regardless of the input being a string or a number, returns a number.\n *\n * Returns `undefined` in case the string is `undefined` or not a valid numeric value.\n *\n * @param {string | number} value\n * @return {number} The parsed number.\n */\nexport const ensureNumber = ( value ) => {\n\treturn typeof value === 'string' ? stringToNumber( value ) : value;\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,cAAcA,CAAEC,KAAK,EAAG;EACvC,OAAOA,KAAK,KAAKC,SAAS,IAAID,KAAK,KAAK,IAAI;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,YAAYA,CAAEF,KAAK,EAAG;EACrC,MAAMG,aAAa,GAAGH,KAAK,KAAK,EAAE;EAElC,OAAO,CAAED,cAAc,CAAEC,KAAM,CAAC,IAAIG,aAAa;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAAEC,MAAM,GAAG,EAAE,EAAEC,aAAa,EAAG;EAAA,IAAAC,YAAA;EAC7D,QAAAA,YAAA,GAAOF,MAAM,CAACG,IAAI,CAAET,cAAe,CAAC,cAAAQ,YAAA,cAAAA,YAAA,GAAID,aAAa;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,cAAc,GAAKT,KAAK,IAAM;EAC1C,OAAOU,UAAU,CAAEV,KAAM,CAAC;AAC3B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPAW,OAAA,CAAAF,cAAA,GAAAA,cAAA;AAQO,MAAMG,YAAY,GAAKZ,KAAK,IAAM;EACxC,OAAO,OAAOA,KAAK,KAAK,QAAQ,GAAGS,cAAc,CAAET,KAAM,CAAC,GAAGA,KAAK;AACnE,CAAC;AAACW,OAAA,CAAAC,YAAA,GAAAA,YAAA"}
|
|
@@ -44,12 +44,6 @@ export const extractColorNameFromCurrentValue = (currentValue, colors = [], show
|
|
|
44
44
|
// translators: shown when the user has picked a custom color (i.e not in the palette of colors).
|
|
45
45
|
return __('Custom');
|
|
46
46
|
};
|
|
47
|
-
export const showTransparentBackground = currentValue => {
|
|
48
|
-
if (typeof currentValue === 'undefined') {
|
|
49
|
-
return true;
|
|
50
|
-
}
|
|
51
|
-
return colord(currentValue).alpha() === 0;
|
|
52
|
-
};
|
|
53
47
|
|
|
54
48
|
// The PaletteObject type has a `colors` property (an array of ColorObject),
|
|
55
49
|
// while the ColorObject type has a `color` property (the CSS color value).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["colord","extend","namesPlugin","a11yPlugin","__","extractColorNameFromCurrentValue","currentValue","colors","showMultiplePalettes","currentValueIsCssVariable","test","normalizedCurrentValue","toHex","colorPalettes","paletteColors","name","colorName","color","colorValue","normalizedColorValue","
|
|
1
|
+
{"version":3,"names":["colord","extend","namesPlugin","a11yPlugin","__","extractColorNameFromCurrentValue","currentValue","colors","showMultiplePalettes","currentValueIsCssVariable","test","normalizedCurrentValue","toHex","colorPalettes","paletteColors","name","colorName","color","colorValue","normalizedColorValue","isMultiplePaletteObject","obj","Array","isArray","isMultiplePaletteArray","arr","length","every","colorObj","normalizeColorValue","value","element","ownerDocument","defaultView","computedBackgroundColor","getComputedStyle","backgroundColor"],"sources":["@wordpress/components/src/color-palette/utils.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport { colord, extend } from 'colord';\nimport namesPlugin from 'colord/plugins/names';\nimport a11yPlugin from 'colord/plugins/a11y';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { ColorObject, ColorPaletteProps, PaletteObject } from './types';\n\nextend( [ namesPlugin, a11yPlugin ] );\n\nexport const extractColorNameFromCurrentValue = (\n\tcurrentValue?: ColorPaletteProps[ 'value' ],\n\tcolors: ColorPaletteProps[ 'colors' ] = [],\n\tshowMultiplePalettes: boolean = false\n) => {\n\tif ( ! currentValue ) {\n\t\treturn '';\n\t}\n\n\tconst currentValueIsCssVariable = /^var\\(/.test( currentValue );\n\tconst normalizedCurrentValue = currentValueIsCssVariable\n\t\t? currentValue\n\t\t: colord( currentValue ).toHex();\n\n\t// Normalize format of `colors` to simplify the following loop\n\ttype normalizedPaletteObject = { colors: ColorObject[] };\n\tconst colorPalettes: normalizedPaletteObject[] = showMultiplePalettes\n\t\t? ( colors as PaletteObject[] )\n\t\t: [ { colors: colors as ColorObject[] } ];\n\tfor ( const { colors: paletteColors } of colorPalettes ) {\n\t\tfor ( const { name: colorName, color: colorValue } of paletteColors ) {\n\t\t\tconst normalizedColorValue = currentValueIsCssVariable\n\t\t\t\t? colorValue\n\t\t\t\t: colord( colorValue ).toHex();\n\n\t\t\tif ( normalizedCurrentValue === normalizedColorValue ) {\n\t\t\t\treturn colorName;\n\t\t\t}\n\t\t}\n\t}\n\n\t// translators: shown when the user has picked a custom color (i.e not in the palette of colors).\n\treturn __( 'Custom' );\n};\n\n// The PaletteObject type has a `colors` property (an array of ColorObject),\n// while the ColorObject type has a `color` property (the CSS color value).\nexport const isMultiplePaletteObject = (\n\tobj: PaletteObject | ColorObject\n): obj is PaletteObject =>\n\tArray.isArray( ( obj as PaletteObject ).colors ) && ! ( 'color' in obj );\n\nexport const isMultiplePaletteArray = (\n\tarr: ( PaletteObject | ColorObject )[]\n): arr is PaletteObject[] => {\n\treturn (\n\t\tarr.length > 0 &&\n\t\tarr.every( ( colorObj ) => isMultiplePaletteObject( colorObj ) )\n\t);\n};\n\n/**\n * Transform a CSS variable used as background color into the color value itself.\n *\n * @param value The color value that may be a CSS variable.\n * @param element The element for which to get the computed style.\n * @return The background color value computed from a element.\n */\nexport const normalizeColorValue = (\n\tvalue: string | undefined,\n\telement: HTMLElement | null\n) => {\n\tconst currentValueIsCssVariable = /^var\\(/.test( value ?? '' );\n\n\tif ( ! currentValueIsCssVariable || element === null ) {\n\t\treturn value;\n\t}\n\n\tconst { ownerDocument } = element;\n\tconst { defaultView } = ownerDocument;\n\tconst computedBackgroundColor =\n\t\tdefaultView?.getComputedStyle( element ).backgroundColor;\n\n\treturn computedBackgroundColor\n\t\t? colord( computedBackgroundColor ).toHex()\n\t\t: value;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,EAAEC,MAAM,QAAQ,QAAQ;AACvC,OAAOC,WAAW,MAAM,sBAAsB;AAC9C,OAAOC,UAAU,MAAM,qBAAqB;;AAE5C;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;;AAGAH,MAAM,CAAE,CAAEC,WAAW,EAAEC,UAAU,CAAG,CAAC;AAErC,OAAO,MAAME,gCAAgC,GAAGA,CAC/CC,YAA2C,EAC3CC,MAAqC,GAAG,EAAE,EAC1CC,oBAA6B,GAAG,KAAK,KACjC;EACJ,IAAK,CAAEF,YAAY,EAAG;IACrB,OAAO,EAAE;EACV;EAEA,MAAMG,yBAAyB,GAAG,QAAQ,CAACC,IAAI,CAAEJ,YAAa,CAAC;EAC/D,MAAMK,sBAAsB,GAAGF,yBAAyB,GACrDH,YAAY,GACZN,MAAM,CAAEM,YAAa,CAAC,CAACM,KAAK,CAAC,CAAC;;EAEjC;;EAEA,MAAMC,aAAwC,GAAGL,oBAAoB,GAChED,MAAM,GACR,CAAE;IAAEA,MAAM,EAAEA;EAAwB,CAAC,CAAE;EAC1C,KAAM,MAAM;IAAEA,MAAM,EAAEO;EAAc,CAAC,IAAID,aAAa,EAAG;IACxD,KAAM,MAAM;MAAEE,IAAI,EAAEC,SAAS;MAAEC,KAAK,EAAEC;IAAW,CAAC,IAAIJ,aAAa,EAAG;MACrE,MAAMK,oBAAoB,GAAGV,yBAAyB,GACnDS,UAAU,GACVlB,MAAM,CAAEkB,UAAW,CAAC,CAACN,KAAK,CAAC,CAAC;MAE/B,IAAKD,sBAAsB,KAAKQ,oBAAoB,EAAG;QACtD,OAAOH,SAAS;MACjB;IACD;EACD;;EAEA;EACA,OAAOZ,EAAE,CAAE,QAAS,CAAC;AACtB,CAAC;;AAED;AACA;AACA,OAAO,MAAMgB,uBAAuB,GACnCC,GAAgC,IAEhCC,KAAK,CAACC,OAAO,CAAIF,GAAG,CAAoBd,MAAO,CAAC,IAAI,EAAI,OAAO,IAAIc,GAAG,CAAE;AAEzE,OAAO,MAAMG,sBAAsB,GAClCC,GAAsC,IACV;EAC5B,OACCA,GAAG,CAACC,MAAM,GAAG,CAAC,IACdD,GAAG,CAACE,KAAK,CAAIC,QAAQ,IAAMR,uBAAuB,CAAEQ,QAAS,CAAE,CAAC;AAElE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAGA,CAClCC,KAAyB,EACzBC,OAA2B,KACvB;EACJ,MAAMtB,yBAAyB,GAAG,QAAQ,CAACC,IAAI,CAAEoB,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAG,CAAC;EAE9D,IAAK,CAAErB,yBAAyB,IAAIsB,OAAO,KAAK,IAAI,EAAG;IACtD,OAAOD,KAAK;EACb;EAEA,MAAM;IAAEE;EAAc,CAAC,GAAGD,OAAO;EACjC,MAAM;IAAEE;EAAY,CAAC,GAAGD,aAAa;EACrC,MAAME,uBAAuB,GAC5BD,WAAW,EAAEE,gBAAgB,CAAEJ,OAAQ,CAAC,CAACK,eAAe;EAEzD,OAAOF,uBAAuB,GAC3BlC,MAAM,CAAEkC,uBAAwB,CAAC,CAACtB,KAAK,CAAC,CAAC,GACzCkB,KAAK;AACT,CAAC"}
|
|
@@ -206,7 +206,7 @@ function SandBox({
|
|
|
206
206
|
defaultView?.addEventListener('message', checkMessageForResize);
|
|
207
207
|
return () => {
|
|
208
208
|
iframe?.removeEventListener('load', tryNoForceSandBox, false);
|
|
209
|
-
defaultView?.
|
|
209
|
+
defaultView?.removeEventListener('message', checkMessageForResize);
|
|
210
210
|
};
|
|
211
211
|
// Ignore reason: passing `exhaustive-deps` will likely involve a more detailed refactor.
|
|
212
212
|
// See https://github.com/WordPress/gutenberg/pull/44378
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["renderToString","useRef","useState","useEffect","useFocusableIframe","useMergeRefs","observeAndResizeJS","MutationObserver","window","document","body","parent","sendResize","clientBoundingRect","getBoundingClientRect","postMessage","action","width","height","observer","observe","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","addEventListener","removeViewportStyles","ruleOrNode","style","forEach","test","Array","prototype","call","querySelectorAll","styleSheets","stylesheet","cssRules","rules","position","setAttribute","SandBox","html","title","type","styles","scripts","onFocus","ref","setWidth","setHeight","isFrameAccessible","current","contentDocument","e","trySandBox","forceRerender","ownerDocument","getAttribute","htmlDoc","createElement","lang","documentElement","className","dangerouslySetInnerHTML","__html","map","i","key","toString","src","open","write","close","tryNoForceSandBox","checkMessageForResize","event","iframe","contentWindow","source","data","JSON","parse","defaultView","removeEventListener","sandbox","Math","ceil"],"sources":["@wordpress/components/src/sandbox/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\trenderToString,\n\tuseRef,\n\tuseState,\n\tuseEffect,\n} from '@wordpress/element';\nimport { useFocusableIframe, useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport type { SandBoxProps } from './types';\n\nconst observeAndResizeJS = function () {\n\tconst { MutationObserver } = window;\n\n\tif ( ! MutationObserver || ! document.body || ! window.parent ) {\n\t\treturn;\n\t}\n\n\tfunction sendResize() {\n\t\tconst clientBoundingRect = document.body.getBoundingClientRect();\n\n\t\twindow.parent.postMessage(\n\t\t\t{\n\t\t\t\taction: 'resize',\n\t\t\t\twidth: clientBoundingRect.width,\n\t\t\t\theight: clientBoundingRect.height,\n\t\t\t},\n\t\t\t'*'\n\t\t);\n\t}\n\n\tconst observer = new MutationObserver( sendResize );\n\tobserver.observe( document.body, {\n\t\tattributes: true,\n\t\tattributeOldValue: false,\n\t\tcharacterData: true,\n\t\tcharacterDataOldValue: false,\n\t\tchildList: true,\n\t\tsubtree: true,\n\t} );\n\n\twindow.addEventListener( 'load', sendResize, true );\n\n\t// Hack: Remove viewport unit styles, as these are relative\n\t// the iframe root and interfere with our mechanism for\n\t// determining the unconstrained page bounds.\n\tfunction removeViewportStyles( ruleOrNode: ElementCSSInlineStyle ) {\n\t\tif ( ruleOrNode.style ) {\n\t\t\t(\n\t\t\t\t[ 'width', 'height', 'minHeight', 'maxHeight' ] as const\n\t\t\t ).forEach( function ( style ) {\n\t\t\t\tif (\n\t\t\t\t\t/^\\\\d+(vmin|vmax|vh|vw)$/.test( ruleOrNode.style[ style ] )\n\t\t\t\t) {\n\t\t\t\t\truleOrNode.style[ style ] = '';\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\tArray.prototype.forEach.call(\n\t\tdocument.querySelectorAll( '[style]' ),\n\t\tremoveViewportStyles\n\t);\n\tArray.prototype.forEach.call(\n\t\tdocument.styleSheets,\n\t\tfunction ( stylesheet ) {\n\t\t\tArray.prototype.forEach.call(\n\t\t\t\tstylesheet.cssRules || stylesheet.rules,\n\t\t\t\tremoveViewportStyles\n\t\t\t);\n\t\t}\n\t);\n\n\tdocument.body.style.position = 'absolute';\n\tdocument.body.style.width = '100%';\n\tdocument.body.setAttribute( 'data-resizable-iframe-connected', '' );\n\n\tsendResize();\n\n\t// Resize events can change the width of elements with 100% width, but we don't\n\t// get an DOM mutations for that, so do the resize when the window is resized, too.\n\twindow.addEventListener( 'resize', sendResize, true );\n};\n\n// TODO: These styles shouldn't be coupled with WordPress.\nconst style = `\n\tbody {\n\t\tmargin: 0;\n\t}\n\thtml,\n\tbody,\n\tbody > div {\n\t\twidth: 100%;\n\t}\n\thtml.wp-has-aspect-ratio,\n\tbody.wp-has-aspect-ratio,\n\tbody.wp-has-aspect-ratio > div,\n\tbody.wp-has-aspect-ratio > div iframe {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\toverflow: hidden; /* If it has an aspect ratio, it shouldn't scroll. */\n\t}\n\tbody > div > * {\n\t\tmargin-top: 0 !important; /* Has to have !important to override inline styles. */\n\t\tmargin-bottom: 0 !important;\n\t}\n`;\n\n/**\n * This component provides an isolated environment for arbitrary HTML via iframes.\n *\n * ```jsx\n * import { SandBox } from '@wordpress/components';\n *\n * const MySandBox = () => (\n * \t<SandBox html=\"<p>Content</p>\" title=\"SandBox\" type=\"embed\" />\n * );\n * ```\n */\nfunction SandBox( {\n\thtml = '',\n\ttitle = '',\n\ttype,\n\tstyles = [],\n\tscripts = [],\n\tonFocus,\n}: SandBoxProps ) {\n\tconst ref = useRef< HTMLIFrameElement >();\n\tconst [ width, setWidth ] = useState( 0 );\n\tconst [ height, setHeight ] = useState( 0 );\n\n\tfunction isFrameAccessible() {\n\t\ttry {\n\t\t\treturn !! ref.current?.contentDocument?.body;\n\t\t} catch ( e ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tfunction trySandBox( forceRerender = false ) {\n\t\tif ( ! isFrameAccessible() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { contentDocument, ownerDocument } =\n\t\t\tref.current as HTMLIFrameElement & {\n\t\t\t\tcontentDocument: Document;\n\t\t\t};\n\n\t\tif (\n\t\t\t! forceRerender &&\n\t\t\tnull !==\n\t\t\t\tcontentDocument?.body.getAttribute(\n\t\t\t\t\t'data-resizable-iframe-connected'\n\t\t\t\t)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Put the html snippet into a html document, and then write it to the iframe's document\n\t\t// we can use this in the future to inject custom styles or scripts.\n\t\t// Scripts go into the body rather than the head, to support embedded content such as Instagram\n\t\t// that expect the scripts to be part of the body.\n\t\tconst htmlDoc = (\n\t\t\t<html\n\t\t\t\tlang={ ownerDocument.documentElement.lang }\n\t\t\t\tclassName={ type }\n\t\t\t>\n\t\t\t\t<head>\n\t\t\t\t\t<title>{ title }</title>\n\t\t\t\t\t<style dangerouslySetInnerHTML={ { __html: style } } />\n\t\t\t\t\t{ styles.map( ( rules, i ) => (\n\t\t\t\t\t\t<style\n\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={ { __html: rules } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</head>\n\t\t\t\t<body\n\t\t\t\t\tdata-resizable-iframe-connected=\"data-resizable-iframe-connected\"\n\t\t\t\t\tclassName={ type }\n\t\t\t\t>\n\t\t\t\t\t<div dangerouslySetInnerHTML={ { __html: html } } />\n\t\t\t\t\t<script\n\t\t\t\t\t\ttype=\"text/javascript\"\n\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t__html: `(${ observeAndResizeJS.toString() })();`,\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t{ scripts.map( ( src ) => (\n\t\t\t\t\t\t<script key={ src } src={ src } />\n\t\t\t\t\t) ) }\n\t\t\t\t</body>\n\t\t\t</html>\n\t\t);\n\n\t\t// Writing the document like this makes it act in the same way as if it was\n\t\t// loaded over the network, so DOM creation and mutation, script execution, etc.\n\t\t// all work as expected.\n\t\tcontentDocument.open();\n\t\tcontentDocument.write( '<!DOCTYPE html>' + renderToString( htmlDoc ) );\n\t\tcontentDocument.close();\n\t}\n\n\tuseEffect( () => {\n\t\ttrySandBox();\n\n\t\tfunction tryNoForceSandBox() {\n\t\t\ttrySandBox( false );\n\t\t}\n\n\t\tfunction checkMessageForResize( event: MessageEvent ) {\n\t\t\tconst iframe = ref.current;\n\n\t\t\t// Verify that the mounted element is the source of the message.\n\t\t\tif ( ! iframe || iframe.contentWindow !== event.source ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Attempt to parse the message data as JSON if passed as string.\n\t\t\tlet data = event.data || {};\n\n\t\t\tif ( 'string' === typeof data ) {\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse( data );\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\t// Update the state only if the message is formatted as we expect,\n\t\t\t// i.e. as an object with a 'resize' action.\n\t\t\tif ( 'resize' !== data.action ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetWidth( data.width );\n\t\t\tsetHeight( data.height );\n\t\t}\n\n\t\tconst iframe = ref.current;\n\t\tconst defaultView = iframe?.ownerDocument?.defaultView;\n\n\t\t// This used to be registered using <iframe onLoad={} />, but it made the iframe blank\n\t\t// after reordering the containing block. See these two issues for more details:\n\t\t// https://github.com/WordPress/gutenberg/issues/6146\n\t\t// https://github.com/facebook/react/issues/18752\n\t\tiframe?.addEventListener( 'load', tryNoForceSandBox, false );\n\t\tdefaultView?.addEventListener( 'message', checkMessageForResize );\n\n\t\treturn () => {\n\t\t\tiframe?.removeEventListener( 'load', tryNoForceSandBox, false );\n\t\t\tdefaultView?.addEventListener( 'message', checkMessageForResize );\n\t\t};\n\t\t// Ignore reason: passing `exhaustive-deps` will likely involve a more detailed refactor.\n\t\t// See https://github.com/WordPress/gutenberg/pull/44378\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tuseEffect( () => {\n\t\ttrySandBox();\n\t\t// Ignore reason: passing `exhaustive-deps` will likely involve a more detailed refactor.\n\t\t// See https://github.com/WordPress/gutenberg/pull/44378\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ title, styles, scripts ] );\n\n\tuseEffect( () => {\n\t\ttrySandBox( true );\n\t\t// Ignore reason: passing `exhaustive-deps` will likely involve a more detailed refactor.\n\t\t// See https://github.com/WordPress/gutenberg/pull/44378\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ html, type ] );\n\n\treturn (\n\t\t<iframe\n\t\t\tref={ useMergeRefs( [ ref, useFocusableIframe() ] ) }\n\t\t\ttitle={ title }\n\t\t\tclassName=\"components-sandbox\"\n\t\t\tsandbox=\"allow-scripts allow-same-origin allow-presentation\"\n\t\t\tonFocus={ onFocus }\n\t\t\twidth={ Math.ceil( width ) }\n\t\t\theight={ Math.ceil( height ) }\n\t\t/>\n\t);\n}\n\nexport default SandBox;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["renderToString","useRef","useState","useEffect","useFocusableIframe","useMergeRefs","observeAndResizeJS","MutationObserver","window","document","body","parent","sendResize","clientBoundingRect","getBoundingClientRect","postMessage","action","width","height","observer","observe","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","addEventListener","removeViewportStyles","ruleOrNode","style","forEach","test","Array","prototype","call","querySelectorAll","styleSheets","stylesheet","cssRules","rules","position","setAttribute","SandBox","html","title","type","styles","scripts","onFocus","ref","setWidth","setHeight","isFrameAccessible","current","contentDocument","e","trySandBox","forceRerender","ownerDocument","getAttribute","htmlDoc","createElement","lang","documentElement","className","dangerouslySetInnerHTML","__html","map","i","key","toString","src","open","write","close","tryNoForceSandBox","checkMessageForResize","event","iframe","contentWindow","source","data","JSON","parse","defaultView","removeEventListener","sandbox","Math","ceil"],"sources":["@wordpress/components/src/sandbox/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\trenderToString,\n\tuseRef,\n\tuseState,\n\tuseEffect,\n} from '@wordpress/element';\nimport { useFocusableIframe, useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport type { SandBoxProps } from './types';\n\nconst observeAndResizeJS = function () {\n\tconst { MutationObserver } = window;\n\n\tif ( ! MutationObserver || ! document.body || ! window.parent ) {\n\t\treturn;\n\t}\n\n\tfunction sendResize() {\n\t\tconst clientBoundingRect = document.body.getBoundingClientRect();\n\n\t\twindow.parent.postMessage(\n\t\t\t{\n\t\t\t\taction: 'resize',\n\t\t\t\twidth: clientBoundingRect.width,\n\t\t\t\theight: clientBoundingRect.height,\n\t\t\t},\n\t\t\t'*'\n\t\t);\n\t}\n\n\tconst observer = new MutationObserver( sendResize );\n\tobserver.observe( document.body, {\n\t\tattributes: true,\n\t\tattributeOldValue: false,\n\t\tcharacterData: true,\n\t\tcharacterDataOldValue: false,\n\t\tchildList: true,\n\t\tsubtree: true,\n\t} );\n\n\twindow.addEventListener( 'load', sendResize, true );\n\n\t// Hack: Remove viewport unit styles, as these are relative\n\t// the iframe root and interfere with our mechanism for\n\t// determining the unconstrained page bounds.\n\tfunction removeViewportStyles( ruleOrNode: ElementCSSInlineStyle ) {\n\t\tif ( ruleOrNode.style ) {\n\t\t\t(\n\t\t\t\t[ 'width', 'height', 'minHeight', 'maxHeight' ] as const\n\t\t\t ).forEach( function ( style ) {\n\t\t\t\tif (\n\t\t\t\t\t/^\\\\d+(vmin|vmax|vh|vw)$/.test( ruleOrNode.style[ style ] )\n\t\t\t\t) {\n\t\t\t\t\truleOrNode.style[ style ] = '';\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t}\n\n\tArray.prototype.forEach.call(\n\t\tdocument.querySelectorAll( '[style]' ),\n\t\tremoveViewportStyles\n\t);\n\tArray.prototype.forEach.call(\n\t\tdocument.styleSheets,\n\t\tfunction ( stylesheet ) {\n\t\t\tArray.prototype.forEach.call(\n\t\t\t\tstylesheet.cssRules || stylesheet.rules,\n\t\t\t\tremoveViewportStyles\n\t\t\t);\n\t\t}\n\t);\n\n\tdocument.body.style.position = 'absolute';\n\tdocument.body.style.width = '100%';\n\tdocument.body.setAttribute( 'data-resizable-iframe-connected', '' );\n\n\tsendResize();\n\n\t// Resize events can change the width of elements with 100% width, but we don't\n\t// get an DOM mutations for that, so do the resize when the window is resized, too.\n\twindow.addEventListener( 'resize', sendResize, true );\n};\n\n// TODO: These styles shouldn't be coupled with WordPress.\nconst style = `\n\tbody {\n\t\tmargin: 0;\n\t}\n\thtml,\n\tbody,\n\tbody > div {\n\t\twidth: 100%;\n\t}\n\thtml.wp-has-aspect-ratio,\n\tbody.wp-has-aspect-ratio,\n\tbody.wp-has-aspect-ratio > div,\n\tbody.wp-has-aspect-ratio > div iframe {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\toverflow: hidden; /* If it has an aspect ratio, it shouldn't scroll. */\n\t}\n\tbody > div > * {\n\t\tmargin-top: 0 !important; /* Has to have !important to override inline styles. */\n\t\tmargin-bottom: 0 !important;\n\t}\n`;\n\n/**\n * This component provides an isolated environment for arbitrary HTML via iframes.\n *\n * ```jsx\n * import { SandBox } from '@wordpress/components';\n *\n * const MySandBox = () => (\n * \t<SandBox html=\"<p>Content</p>\" title=\"SandBox\" type=\"embed\" />\n * );\n * ```\n */\nfunction SandBox( {\n\thtml = '',\n\ttitle = '',\n\ttype,\n\tstyles = [],\n\tscripts = [],\n\tonFocus,\n}: SandBoxProps ) {\n\tconst ref = useRef< HTMLIFrameElement >();\n\tconst [ width, setWidth ] = useState( 0 );\n\tconst [ height, setHeight ] = useState( 0 );\n\n\tfunction isFrameAccessible() {\n\t\ttry {\n\t\t\treturn !! ref.current?.contentDocument?.body;\n\t\t} catch ( e ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tfunction trySandBox( forceRerender = false ) {\n\t\tif ( ! isFrameAccessible() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { contentDocument, ownerDocument } =\n\t\t\tref.current as HTMLIFrameElement & {\n\t\t\t\tcontentDocument: Document;\n\t\t\t};\n\n\t\tif (\n\t\t\t! forceRerender &&\n\t\t\tnull !==\n\t\t\t\tcontentDocument?.body.getAttribute(\n\t\t\t\t\t'data-resizable-iframe-connected'\n\t\t\t\t)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Put the html snippet into a html document, and then write it to the iframe's document\n\t\t// we can use this in the future to inject custom styles or scripts.\n\t\t// Scripts go into the body rather than the head, to support embedded content such as Instagram\n\t\t// that expect the scripts to be part of the body.\n\t\tconst htmlDoc = (\n\t\t\t<html\n\t\t\t\tlang={ ownerDocument.documentElement.lang }\n\t\t\t\tclassName={ type }\n\t\t\t>\n\t\t\t\t<head>\n\t\t\t\t\t<title>{ title }</title>\n\t\t\t\t\t<style dangerouslySetInnerHTML={ { __html: style } } />\n\t\t\t\t\t{ styles.map( ( rules, i ) => (\n\t\t\t\t\t\t<style\n\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\tdangerouslySetInnerHTML={ { __html: rules } }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</head>\n\t\t\t\t<body\n\t\t\t\t\tdata-resizable-iframe-connected=\"data-resizable-iframe-connected\"\n\t\t\t\t\tclassName={ type }\n\t\t\t\t>\n\t\t\t\t\t<div dangerouslySetInnerHTML={ { __html: html } } />\n\t\t\t\t\t<script\n\t\t\t\t\t\ttype=\"text/javascript\"\n\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t__html: `(${ observeAndResizeJS.toString() })();`,\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t{ scripts.map( ( src ) => (\n\t\t\t\t\t\t<script key={ src } src={ src } />\n\t\t\t\t\t) ) }\n\t\t\t\t</body>\n\t\t\t</html>\n\t\t);\n\n\t\t// Writing the document like this makes it act in the same way as if it was\n\t\t// loaded over the network, so DOM creation and mutation, script execution, etc.\n\t\t// all work as expected.\n\t\tcontentDocument.open();\n\t\tcontentDocument.write( '<!DOCTYPE html>' + renderToString( htmlDoc ) );\n\t\tcontentDocument.close();\n\t}\n\n\tuseEffect( () => {\n\t\ttrySandBox();\n\n\t\tfunction tryNoForceSandBox() {\n\t\t\ttrySandBox( false );\n\t\t}\n\n\t\tfunction checkMessageForResize( event: MessageEvent ) {\n\t\t\tconst iframe = ref.current;\n\n\t\t\t// Verify that the mounted element is the source of the message.\n\t\t\tif ( ! iframe || iframe.contentWindow !== event.source ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Attempt to parse the message data as JSON if passed as string.\n\t\t\tlet data = event.data || {};\n\n\t\t\tif ( 'string' === typeof data ) {\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse( data );\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\t// Update the state only if the message is formatted as we expect,\n\t\t\t// i.e. as an object with a 'resize' action.\n\t\t\tif ( 'resize' !== data.action ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetWidth( data.width );\n\t\t\tsetHeight( data.height );\n\t\t}\n\n\t\tconst iframe = ref.current;\n\t\tconst defaultView = iframe?.ownerDocument?.defaultView;\n\n\t\t// This used to be registered using <iframe onLoad={} />, but it made the iframe blank\n\t\t// after reordering the containing block. See these two issues for more details:\n\t\t// https://github.com/WordPress/gutenberg/issues/6146\n\t\t// https://github.com/facebook/react/issues/18752\n\t\tiframe?.addEventListener( 'load', tryNoForceSandBox, false );\n\t\tdefaultView?.addEventListener( 'message', checkMessageForResize );\n\n\t\treturn () => {\n\t\t\tiframe?.removeEventListener( 'load', tryNoForceSandBox, false );\n\t\t\tdefaultView?.removeEventListener(\n\t\t\t\t'message',\n\t\t\t\tcheckMessageForResize\n\t\t\t);\n\t\t};\n\t\t// Ignore reason: passing `exhaustive-deps` will likely involve a more detailed refactor.\n\t\t// See https://github.com/WordPress/gutenberg/pull/44378\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tuseEffect( () => {\n\t\ttrySandBox();\n\t\t// Ignore reason: passing `exhaustive-deps` will likely involve a more detailed refactor.\n\t\t// See https://github.com/WordPress/gutenberg/pull/44378\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ title, styles, scripts ] );\n\n\tuseEffect( () => {\n\t\ttrySandBox( true );\n\t\t// Ignore reason: passing `exhaustive-deps` will likely involve a more detailed refactor.\n\t\t// See https://github.com/WordPress/gutenberg/pull/44378\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [ html, type ] );\n\n\treturn (\n\t\t<iframe\n\t\t\tref={ useMergeRefs( [ ref, useFocusableIframe() ] ) }\n\t\t\ttitle={ title }\n\t\t\tclassName=\"components-sandbox\"\n\t\t\tsandbox=\"allow-scripts allow-same-origin allow-presentation\"\n\t\t\tonFocus={ onFocus }\n\t\t\twidth={ Math.ceil( width ) }\n\t\t\theight={ Math.ceil( height ) }\n\t\t/>\n\t);\n}\n\nexport default SandBox;\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,cAAc,EACdC,MAAM,EACNC,QAAQ,EACRC,SAAS,QACH,oBAAoB;AAC3B,SAASC,kBAAkB,EAAEC,YAAY,QAAQ,oBAAoB;;AAErE;AACA;AACA;;AAGA,MAAMC,kBAAkB,GAAG,SAAAA,CAAA,EAAY;EACtC,MAAM;IAAEC;EAAiB,CAAC,GAAGC,MAAM;EAEnC,IAAK,CAAED,gBAAgB,IAAI,CAAEE,QAAQ,CAACC,IAAI,IAAI,CAAEF,MAAM,CAACG,MAAM,EAAG;IAC/D;EACD;EAEA,SAASC,UAAUA,CAAA,EAAG;IACrB,MAAMC,kBAAkB,GAAGJ,QAAQ,CAACC,IAAI,CAACI,qBAAqB,CAAC,CAAC;IAEhEN,MAAM,CAACG,MAAM,CAACI,WAAW,CACxB;MACCC,MAAM,EAAE,QAAQ;MAChBC,KAAK,EAAEJ,kBAAkB,CAACI,KAAK;MAC/BC,MAAM,EAAEL,kBAAkB,CAACK;IAC5B,CAAC,EACD,GACD,CAAC;EACF;EAEA,MAAMC,QAAQ,GAAG,IAAIZ,gBAAgB,CAAEK,UAAW,CAAC;EACnDO,QAAQ,CAACC,OAAO,CAAEX,QAAQ,CAACC,IAAI,EAAE;IAChCW,UAAU,EAAE,IAAI;IAChBC,iBAAiB,EAAE,KAAK;IACxBC,aAAa,EAAE,IAAI;IACnBC,qBAAqB,EAAE,KAAK;IAC5BC,SAAS,EAAE,IAAI;IACfC,OAAO,EAAE;EACV,CAAE,CAAC;EAEHlB,MAAM,CAACmB,gBAAgB,CAAE,MAAM,EAAEf,UAAU,EAAE,IAAK,CAAC;;EAEnD;EACA;EACA;EACA,SAASgB,oBAAoBA,CAAEC,UAAiC,EAAG;IAClE,IAAKA,UAAU,CAACC,KAAK,EAAG;MAEtB,CAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAE,CAC7CC,OAAO,CAAE,UAAWD,KAAK,EAAG;QAC9B,IACC,yBAAyB,CAACE,IAAI,CAAEH,UAAU,CAACC,KAAK,CAAEA,KAAK,CAAG,CAAC,EAC1D;UACDD,UAAU,CAACC,KAAK,CAAEA,KAAK,CAAE,GAAG,EAAE;QAC/B;MACD,CAAE,CAAC;IACJ;EACD;EAEAG,KAAK,CAACC,SAAS,CAACH,OAAO,CAACI,IAAI,CAC3B1B,QAAQ,CAAC2B,gBAAgB,CAAE,SAAU,CAAC,EACtCR,oBACD,CAAC;EACDK,KAAK,CAACC,SAAS,CAACH,OAAO,CAACI,IAAI,CAC3B1B,QAAQ,CAAC4B,WAAW,EACpB,UAAWC,UAAU,EAAG;IACvBL,KAAK,CAACC,SAAS,CAACH,OAAO,CAACI,IAAI,CAC3BG,UAAU,CAACC,QAAQ,IAAID,UAAU,CAACE,KAAK,EACvCZ,oBACD,CAAC;EACF,CACD,CAAC;EAEDnB,QAAQ,CAACC,IAAI,CAACoB,KAAK,CAACW,QAAQ,GAAG,UAAU;EACzChC,QAAQ,CAACC,IAAI,CAACoB,KAAK,CAACb,KAAK,GAAG,MAAM;EAClCR,QAAQ,CAACC,IAAI,CAACgC,YAAY,CAAE,iCAAiC,EAAE,EAAG,CAAC;EAEnE9B,UAAU,CAAC,CAAC;;EAEZ;EACA;EACAJ,MAAM,CAACmB,gBAAgB,CAAE,QAAQ,EAAEf,UAAU,EAAE,IAAK,CAAC;AACtD,CAAC;;AAED;AACA,MAAMkB,KAAK,GAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASa,OAAOA,CAAE;EACjBC,IAAI,GAAG,EAAE;EACTC,KAAK,GAAG,EAAE;EACVC,IAAI;EACJC,MAAM,GAAG,EAAE;EACXC,OAAO,GAAG,EAAE;EACZC;AACa,CAAC,EAAG;EACjB,MAAMC,GAAG,GAAGjD,MAAM,CAAsB,CAAC;EACzC,MAAM,CAAEgB,KAAK,EAAEkC,QAAQ,CAAE,GAAGjD,QAAQ,CAAE,CAAE,CAAC;EACzC,MAAM,CAAEgB,MAAM,EAAEkC,SAAS,CAAE,GAAGlD,QAAQ,CAAE,CAAE,CAAC;EAE3C,SAASmD,iBAAiBA,CAAA,EAAG;IAC5B,IAAI;MACH,OAAO,CAAC,CAAEH,GAAG,CAACI,OAAO,EAAEC,eAAe,EAAE7C,IAAI;IAC7C,CAAC,CAAC,OAAQ8C,CAAC,EAAG;MACb,OAAO,KAAK;IACb;EACD;EAEA,SAASC,UAAUA,CAAEC,aAAa,GAAG,KAAK,EAAG;IAC5C,IAAK,CAAEL,iBAAiB,CAAC,CAAC,EAAG;MAC5B;IACD;IAEA,MAAM;MAAEE,eAAe;MAAEI;IAAc,CAAC,GACvCT,GAAG,CAACI,OAEH;IAEF,IACC,CAAEI,aAAa,IACf,IAAI,KACHH,eAAe,EAAE7C,IAAI,CAACkD,YAAY,CACjC,iCACD,CAAC,EACD;MACD;IACD;;IAEA;IACA;IACA;IACA;IACA,MAAMC,OAAO,GACZC,aAAA;MACCC,IAAI,EAAGJ,aAAa,CAACK,eAAe,CAACD,IAAM;MAC3CE,SAAS,EAAGnB;IAAM,GAElBgB,aAAA,eACCA,aAAA,gBAASjB,KAAc,CAAC,EACxBiB,aAAA;MAAOI,uBAAuB,EAAG;QAAEC,MAAM,EAAErC;MAAM;IAAG,CAAE,CAAC,EACrDiB,MAAM,CAACqB,GAAG,CAAE,CAAE5B,KAAK,EAAE6B,CAAC,KACvBP,aAAA;MACCQ,GAAG,EAAGD,CAAG;MACTH,uBAAuB,EAAG;QAAEC,MAAM,EAAE3B;MAAM;IAAG,CAC7C,CACA,CACG,CAAC,EACPsB,aAAA;MACC,mCAAgC,iCAAiC;MACjEG,SAAS,EAAGnB;IAAM,GAElBgB,aAAA;MAAKI,uBAAuB,EAAG;QAAEC,MAAM,EAAEvB;MAAK;IAAG,CAAE,CAAC,EACpDkB,aAAA;MACChB,IAAI,EAAC,iBAAiB;MACtBoB,uBAAuB,EAAG;QACzBC,MAAM,EAAG,IAAI7D,kBAAkB,CAACiE,QAAQ,CAAC,CAAG;MAC7C;IAAG,CACH,CAAC,EACAvB,OAAO,CAACoB,GAAG,CAAII,GAAG,IACnBV,aAAA;MAAQQ,GAAG,EAAGE,GAAK;MAACA,GAAG,EAAGA;IAAK,CAAE,CAChC,CACG,CACD,CACN;;IAED;IACA;IACA;IACAjB,eAAe,CAACkB,IAAI,CAAC,CAAC;IACtBlB,eAAe,CAACmB,KAAK,CAAE,iBAAiB,GAAG1E,cAAc,CAAE6D,OAAQ,CAAE,CAAC;IACtEN,eAAe,CAACoB,KAAK,CAAC,CAAC;EACxB;EAEAxE,SAAS,CAAE,MAAM;IAChBsD,UAAU,CAAC,CAAC;IAEZ,SAASmB,iBAAiBA,CAAA,EAAG;MAC5BnB,UAAU,CAAE,KAAM,CAAC;IACpB;IAEA,SAASoB,qBAAqBA,CAAEC,KAAmB,EAAG;MACrD,MAAMC,MAAM,GAAG7B,GAAG,CAACI,OAAO;;MAE1B;MACA,IAAK,CAAEyB,MAAM,IAAIA,MAAM,CAACC,aAAa,KAAKF,KAAK,CAACG,MAAM,EAAG;QACxD;MACD;;MAEA;MACA,IAAIC,IAAI,GAAGJ,KAAK,CAACI,IAAI,IAAI,CAAC,CAAC;MAE3B,IAAK,QAAQ,KAAK,OAAOA,IAAI,EAAG;QAC/B,IAAI;UACHA,IAAI,GAAGC,IAAI,CAACC,KAAK,CAAEF,IAAK,CAAC;QAC1B,CAAC,CAAC,OAAQ1B,CAAC,EAAG,CAAC;MAChB;;MAEA;MACA;MACA,IAAK,QAAQ,KAAK0B,IAAI,CAAClE,MAAM,EAAG;QAC/B;MACD;MAEAmC,QAAQ,CAAE+B,IAAI,CAACjE,KAAM,CAAC;MACtBmC,SAAS,CAAE8B,IAAI,CAAChE,MAAO,CAAC;IACzB;IAEA,MAAM6D,MAAM,GAAG7B,GAAG,CAACI,OAAO;IAC1B,MAAM+B,WAAW,GAAGN,MAAM,EAAEpB,aAAa,EAAE0B,WAAW;;IAEtD;IACA;IACA;IACA;IACAN,MAAM,EAAEpD,gBAAgB,CAAE,MAAM,EAAEiD,iBAAiB,EAAE,KAAM,CAAC;IAC5DS,WAAW,EAAE1D,gBAAgB,CAAE,SAAS,EAAEkD,qBAAsB,CAAC;IAEjE,OAAO,MAAM;MACZE,MAAM,EAAEO,mBAAmB,CAAE,MAAM,EAAEV,iBAAiB,EAAE,KAAM,CAAC;MAC/DS,WAAW,EAAEC,mBAAmB,CAC/B,SAAS,EACTT,qBACD,CAAC;IACF,CAAC;IACD;IACA;IACA;EACD,CAAC,EAAE,EAAG,CAAC;EAEP1E,SAAS,CAAE,MAAM;IAChBsD,UAAU,CAAC,CAAC;IACZ;IACA;IACA;EACD,CAAC,EAAE,CAAEZ,KAAK,EAAEE,MAAM,EAAEC,OAAO,CAAG,CAAC;EAE/B7C,SAAS,CAAE,MAAM;IAChBsD,UAAU,CAAE,IAAK,CAAC;IAClB;IACA;IACA;EACD,CAAC,EAAE,CAAEb,IAAI,EAAEE,IAAI,CAAG,CAAC;EAEnB,OACCgB,aAAA;IACCZ,GAAG,EAAG7C,YAAY,CAAE,CAAE6C,GAAG,EAAE9C,kBAAkB,CAAC,CAAC,CAAG,CAAG;IACrDyC,KAAK,EAAGA,KAAO;IACfoB,SAAS,EAAC,oBAAoB;IAC9BsB,OAAO,EAAC,oDAAoD;IAC5DtC,OAAO,EAAGA,OAAS;IACnBhC,KAAK,EAAGuE,IAAI,CAACC,IAAI,CAAExE,KAAM,CAAG;IAC5BC,MAAM,EAAGsE,IAAI,CAACC,IAAI,CAAEvE,MAAO;EAAG,CAC9B,CAAC;AAEJ;AAEA,eAAeyB,OAAO"}
|
|
@@ -12,7 +12,7 @@ const SlotFillContext = createContext({
|
|
|
12
12
|
slots: proxyMap(),
|
|
13
13
|
fills: proxyMap(),
|
|
14
14
|
registerSlot: () => {
|
|
15
|
-
typeof
|
|
15
|
+
typeof SCRIPT_DEBUG !== "undefined" && SCRIPT_DEBUG === true ? warning('Components must be wrapped within `SlotFillProvider`. ' + 'See https://developer.wordpress.org/block-editor/components/slot-fill/') : void 0;
|
|
16
16
|
},
|
|
17
17
|
updateSlot: () => {},
|
|
18
18
|
unregisterSlot: () => {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["proxyMap","createContext","warning","SlotFillContext","slots","fills","registerSlot","
|
|
1
|
+
{"version":3,"names":["proxyMap","createContext","warning","SlotFillContext","slots","fills","registerSlot","SCRIPT_DEBUG","updateSlot","unregisterSlot","registerFill","unregisterFill"],"sources":["@wordpress/components/src/slot-fill/bubbles-virtually/slot-fill-context.js"],"sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport { proxyMap } from 'valtio/utils';\n/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\nimport warning from '@wordpress/warning';\n\nconst SlotFillContext = createContext( {\n\tslots: proxyMap(),\n\tfills: proxyMap(),\n\tregisterSlot: () => {\n\t\twarning(\n\t\t\t'Components must be wrapped within `SlotFillProvider`. ' +\n\t\t\t\t'See https://developer.wordpress.org/block-editor/components/slot-fill/'\n\t\t);\n\t},\n\tupdateSlot: () => {},\n\tunregisterSlot: () => {},\n\tregisterFill: () => {},\n\tunregisterFill: () => {},\n} );\n\nexport default SlotFillContext;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,cAAc;AACvC;AACA;AACA;AACA,SAASC,aAAa,QAAQ,oBAAoB;AAClD,OAAOC,OAAO,MAAM,oBAAoB;AAExC,MAAMC,eAAe,GAAGF,aAAa,CAAE;EACtCG,KAAK,EAAEJ,QAAQ,CAAC,CAAC;EACjBK,KAAK,EAAEL,QAAQ,CAAC,CAAC;EACjBM,YAAY,EAAEA,CAAA,KAAM;IACnB,OAAAC,YAAA,oBAAAA,YAAA,YAAAL,OAAO,CACN,wDAAwD,GACvD,wEACF,CAAC;EACF,CAAC;EACDM,UAAU,EAAEA,CAAA,KAAM,CAAC,CAAC;EACpBC,cAAc,EAAEA,CAAA,KAAM,CAAC,CAAC;EACxBC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,cAAc,EAAEA,CAAA,KAAM,CAAC;AACxB,CAAE,CAAC;AAEH,eAAeR,eAAe"}
|
|
@@ -83,7 +83,7 @@ function UnforwardedSnackbar({
|
|
|
83
83
|
});
|
|
84
84
|
if (actions && actions.length > 1) {
|
|
85
85
|
// We need to inform developers that snackbar only accepts 1 action.
|
|
86
|
-
typeof
|
|
86
|
+
typeof SCRIPT_DEBUG !== "undefined" && SCRIPT_DEBUG === true ? warning('Snackbar can only have 1 action, use Notice if your message require many messages') : void 0;
|
|
87
87
|
// return first element only while keeping it inside an array
|
|
88
88
|
actions = [actions[0]];
|
|
89
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","speak","useEffect","forwardRef","renderToString","__","warning","Button","NOTICE_TIMEOUT","useSpokenMessage","message","politeness","spokenMessage","UnforwardedSnackbar","className","children","actions","onRemove","icon","explicitDismiss","onDismiss","listRef","ref","dismissMe","event","preventDefault","current","focus","onActionClick","onClick","stopPropagation","timeoutHandle","setTimeout","clearTimeout","classes","length","
|
|
1
|
+
{"version":3,"names":["classnames","speak","useEffect","forwardRef","renderToString","__","warning","Button","NOTICE_TIMEOUT","useSpokenMessage","message","politeness","spokenMessage","UnforwardedSnackbar","className","children","actions","onRemove","icon","explicitDismiss","onDismiss","listRef","ref","dismissMe","event","preventDefault","current","focus","onActionClick","onClick","stopPropagation","timeoutHandle","setTimeout","clearTimeout","classes","length","SCRIPT_DEBUG","snackbarContentClassnames","createElement","undefined","tabIndex","role","onKeyPress","map","label","url","index","key","href","variant","Snackbar"],"sources":["@wordpress/components/src/snackbar/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, KeyboardEvent, MouseEvent } from 'react';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { useEffect, forwardRef, renderToString } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport type { SnackbarProps } from './types';\nimport type { NoticeAction } from '../notice/types';\nimport type { WordPressComponentProps } from '../ui/context';\n\nconst NOTICE_TIMEOUT = 10000;\n\n/**\n * Custom hook which announces the message with the given politeness, if a\n * valid message is provided.\n *\n * @param message Message to announce.\n * @param politeness Politeness to announce.\n */\nfunction useSpokenMessage(\n\tmessage: SnackbarProps[ 'spokenMessage' ],\n\tpoliteness: NonNullable< SnackbarProps[ 'politeness' ] >\n) {\n\tconst spokenMessage =\n\t\ttypeof message === 'string' ? message : renderToString( message );\n\n\tuseEffect( () => {\n\t\tif ( spokenMessage ) {\n\t\t\tspeak( spokenMessage, politeness );\n\t\t}\n\t}, [ spokenMessage, politeness ] );\n}\n\nfunction UnforwardedSnackbar(\n\t{\n\t\tclassName,\n\t\tchildren,\n\t\tspokenMessage = children,\n\t\tpoliteness = 'polite',\n\t\tactions = [],\n\t\tonRemove,\n\t\ticon = null,\n\t\texplicitDismiss = false,\n\t\t// onDismiss is a callback executed when the snackbar is dismissed.\n\t\t// It is distinct from onRemove, which _looks_ like a callback but is\n\t\t// actually the function to call to remove the snackbar from the UI.\n\t\tonDismiss,\n\t\tlistRef,\n\t}: WordPressComponentProps< SnackbarProps, 'div' >,\n\tref: ForwardedRef< any >\n) {\n\tfunction dismissMe( event: KeyboardEvent | MouseEvent ) {\n\t\tif ( event && event.preventDefault ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\t// Prevent focus loss by moving it to the list element.\n\t\tlistRef?.current?.focus();\n\n\t\tonDismiss?.();\n\t\tonRemove?.();\n\t}\n\n\tfunction onActionClick(\n\t\tevent: MouseEvent< HTMLButtonElement >,\n\t\tonClick: NoticeAction[ 'onClick' ]\n\t) {\n\t\tevent.stopPropagation();\n\n\t\tonRemove?.();\n\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\tuseSpokenMessage( spokenMessage, politeness );\n\n\t// Only set up the timeout dismiss if we're not explicitly dismissing.\n\tuseEffect( () => {\n\t\tconst timeoutHandle = setTimeout( () => {\n\t\t\tif ( ! explicitDismiss ) {\n\t\t\t\tonDismiss?.();\n\t\t\t\tonRemove?.();\n\t\t\t}\n\t\t}, NOTICE_TIMEOUT );\n\n\t\treturn () => clearTimeout( timeoutHandle );\n\t}, [ onDismiss, onRemove, explicitDismiss ] );\n\n\tconst classes = classnames( className, 'components-snackbar', {\n\t\t'components-snackbar-explicit-dismiss': !! explicitDismiss,\n\t} );\n\tif ( actions && actions.length > 1 ) {\n\t\t// We need to inform developers that snackbar only accepts 1 action.\n\t\twarning(\n\t\t\t'Snackbar can only have 1 action, use Notice if your message require many messages'\n\t\t);\n\t\t// return first element only while keeping it inside an array\n\t\tactions = [ actions[ 0 ] ];\n\t}\n\n\tconst snackbarContentClassnames = classnames(\n\t\t'components-snackbar__content',\n\t\t{\n\t\t\t'components-snackbar__content-with-icon': !! icon,\n\t\t}\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName={ classes }\n\t\t\tonClick={ ! explicitDismiss ? dismissMe : undefined }\n\t\t\ttabIndex={ 0 }\n\t\t\trole={ ! explicitDismiss ? 'button' : '' }\n\t\t\tonKeyPress={ ! explicitDismiss ? dismissMe : undefined }\n\t\t\taria-label={ ! explicitDismiss ? __( 'Dismiss this notice' ) : '' }\n\t\t>\n\t\t\t<div className={ snackbarContentClassnames }>\n\t\t\t\t{ icon && (\n\t\t\t\t\t<div className=\"components-snackbar__icon\">{ icon }</div>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ actions.map( ( { label, onClick, url }, index ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ (\n\t\t\t\t\t\t\t\tevent: MouseEvent< HTMLButtonElement >\n\t\t\t\t\t\t\t) => onActionClick( event, onClick ) }\n\t\t\t\t\t\t\tclassName=\"components-snackbar__action\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ explicitDismiss && (\n\t\t\t\t\t<span\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\taria-label=\"Dismiss this notice\"\n\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\tclassName=\"components-snackbar__dismiss-button\"\n\t\t\t\t\t\tonClick={ dismissMe }\n\t\t\t\t\t\tonKeyPress={ dismissMe }\n\t\t\t\t\t>\n\t\t\t\t\t\t✕\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n/**\n * A Snackbar displays a succinct message that is cleared out after a small delay.\n *\n * It can also offer the user options, like viewing a published post.\n * But these options should also be available elsewhere in the UI.\n *\n * ```jsx\n * const MySnackbarNotice = () => (\n * <Snackbar>Post published successfully.</Snackbar>\n * );\n * ```\n */\nexport const Snackbar = forwardRef( UnforwardedSnackbar );\n\nexport default Snackbar;\n"],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ export function generateThemeVariables(inputs) {
|
|
|
30
30
|
function validateInputs(inputs) {
|
|
31
31
|
for (const [key, value] of Object.entries(inputs)) {
|
|
32
32
|
if (typeof value !== 'undefined' && !colord(value).isValid()) {
|
|
33
|
-
typeof
|
|
33
|
+
typeof SCRIPT_DEBUG !== "undefined" && SCRIPT_DEBUG === true ? warning(`wp.components.Theme: "${value}" is not a valid color value for the '${key}' prop.`) : void 0;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -48,7 +48,7 @@ export function checkContrasts(inputs, outputs) {
|
|
|
48
48
|
function warnContrastIssues(issues) {
|
|
49
49
|
for (const error of Object.values(issues)) {
|
|
50
50
|
if (error) {
|
|
51
|
-
typeof
|
|
51
|
+
typeof SCRIPT_DEBUG !== "undefined" && SCRIPT_DEBUG === true ? warning('wp.components.Theme: ' + error) : void 0;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["colord","extend","a11yPlugin","namesPlugin","warning","COLORS","generateThemeVariables","inputs","validateInputs","generatedColors","generateAccentDependentColors","accent","generateBackgroundDependentColors","background","warnContrastIssues","checkContrasts","colors","key","value","Object","entries","isValid","
|
|
1
|
+
{"version":3,"names":["colord","extend","a11yPlugin","namesPlugin","warning","COLORS","generateThemeVariables","inputs","validateInputs","generatedColors","generateAccentDependentColors","accent","generateBackgroundDependentColors","background","warnContrastIssues","checkContrasts","colors","key","value","Object","entries","isValid","SCRIPT_DEBUG","outputs","white","foreground","gray","isReadable","undefined","grays","contrast","issues","error","values","accentDarker10","darken","toHex","accentDarker20","accentInverted","getForegroundForColor","foregroundInverted","generateShades","color","isDark","SHADES","limit","direction","range","Math","abs","toHsl","l","result","forEach","parseInt"],"sources":["@wordpress/components/src/theme/color-algorithms.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport { colord, extend } from 'colord';\nimport a11yPlugin from 'colord/plugins/a11y';\nimport namesPlugin from 'colord/plugins/names';\n\n/**\n * WordPress dependencies\n */\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport type { ThemeInputValues, ThemeOutputValues } from './types';\nimport { COLORS } from '../utils';\n\nextend( [ namesPlugin, a11yPlugin ] );\n\nexport function generateThemeVariables(\n\tinputs: ThemeInputValues\n): ThemeOutputValues {\n\tvalidateInputs( inputs );\n\n\tconst generatedColors = {\n\t\t...generateAccentDependentColors( inputs.accent ),\n\t\t...generateBackgroundDependentColors( inputs.background ),\n\t};\n\n\twarnContrastIssues( checkContrasts( inputs, generatedColors ) );\n\n\treturn { colors: generatedColors };\n}\n\nfunction validateInputs( inputs: ThemeInputValues ) {\n\tfor ( const [ key, value ] of Object.entries( inputs ) ) {\n\t\tif ( typeof value !== 'undefined' && ! colord( value ).isValid() ) {\n\t\t\twarning(\n\t\t\t\t`wp.components.Theme: \"${ value }\" is not a valid color value for the '${ key }' prop.`\n\t\t\t);\n\t\t}\n\t}\n}\n\nexport function checkContrasts(\n\tinputs: ThemeInputValues,\n\toutputs: ThemeOutputValues[ 'colors' ]\n) {\n\tconst background = inputs.background || COLORS.white;\n\tconst accent = inputs.accent || '#3858e9';\n\tconst foreground = outputs.foreground || COLORS.gray[ 900 ];\n\tconst gray = outputs.gray || COLORS.gray;\n\n\treturn {\n\t\taccent: colord( background ).isReadable( accent )\n\t\t\t? undefined\n\t\t\t: `The background color (\"${ background }\") does not have sufficient contrast against the accent color (\"${ accent }\").`,\n\t\tforeground: colord( background ).isReadable( foreground )\n\t\t\t? undefined\n\t\t\t: `The background color provided (\"${ background }\") does not have sufficient contrast against the standard foreground colors.`,\n\t\tgrays:\n\t\t\tcolord( background ).contrast( gray[ 600 ] ) >= 3 &&\n\t\t\tcolord( background ).contrast( gray[ 700 ] ) >= 4.5\n\t\t\t\t? undefined\n\t\t\t\t: `The background color provided (\"${ background }\") cannot generate a set of grayscale foreground colors with sufficient contrast. Try adjusting the color to be lighter or darker.`,\n\t};\n}\n\nfunction warnContrastIssues( issues: ReturnType< typeof checkContrasts > ) {\n\tfor ( const error of Object.values( issues ) ) {\n\t\tif ( error ) {\n\t\t\twarning( 'wp.components.Theme: ' + error );\n\t\t}\n\t}\n}\n\nfunction generateAccentDependentColors( accent?: string ) {\n\tif ( ! accent ) return {};\n\n\treturn {\n\t\taccent,\n\t\taccentDarker10: colord( accent ).darken( 0.1 ).toHex(),\n\t\taccentDarker20: colord( accent ).darken( 0.2 ).toHex(),\n\t\taccentInverted: getForegroundForColor( accent ),\n\t};\n}\n\nfunction generateBackgroundDependentColors( background?: string ) {\n\tif ( ! background ) return {};\n\n\tconst foreground = getForegroundForColor( background );\n\n\treturn {\n\t\tbackground,\n\t\tforeground,\n\t\tforegroundInverted: getForegroundForColor( foreground ),\n\t\tgray: generateShades( background, foreground ),\n\t};\n}\n\nfunction getForegroundForColor( color: string ) {\n\treturn colord( color ).isDark() ? COLORS.white : COLORS.gray[ 900 ];\n}\n\nexport function generateShades( background: string, foreground: string ) {\n\t// How much darkness you need to add to #fff to get the COLORS.gray[n] color\n\tconst SHADES = {\n\t\t100: 0.06,\n\t\t200: 0.121,\n\t\t300: 0.132,\n\t\t400: 0.2,\n\t\t600: 0.42,\n\t\t700: 0.543,\n\t\t800: 0.821,\n\t};\n\n\t// Darkness of COLORS.gray[ 900 ], relative to #fff\n\tconst limit = 0.884;\n\n\tconst direction = colord( background ).isDark() ? 'lighten' : 'darken';\n\n\t// Lightness delta between the background and foreground colors\n\tconst range =\n\t\tMath.abs(\n\t\t\tcolord( background ).toHsl().l - colord( foreground ).toHsl().l\n\t\t) / 100;\n\n\tconst result: Record< number, string > = {};\n\n\tObject.entries( SHADES ).forEach( ( [ key, value ] ) => {\n\t\tresult[ parseInt( key ) ] = colord( background )\n\t\t\t[ direction ]( ( value / limit ) * range )\n\t\t\t.toHex();\n\t} );\n\n\treturn result as NonNullable< ThemeOutputValues[ 'colors' ][ 'gray' ] >;\n}\n"],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ function ToolbarItem({
|
|
|
21
21
|
const accessibleToolbarStore = useContext(ToolbarContext);
|
|
22
22
|
const isRenderProp = typeof children === 'function';
|
|
23
23
|
if (!isRenderProp && !Component) {
|
|
24
|
-
typeof
|
|
24
|
+
typeof SCRIPT_DEBUG !== "undefined" && SCRIPT_DEBUG === true ? warning('`ToolbarItem` is a generic headless component. You must pass either a `children` prop as a function or an `as` prop as a component. ' + 'See https://developer.wordpress.org/block-editor/components/toolbar-item/') : void 0;
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
27
|
const allProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ToolbarItem","BaseToolbarItem","forwardRef","useContext","warning","ToolbarContext","children","as","Component","props","ref","accessibleToolbarStore","isRenderProp","
|
|
1
|
+
{"version":3,"names":["ToolbarItem","BaseToolbarItem","forwardRef","useContext","warning","ToolbarContext","children","as","Component","props","ref","accessibleToolbarStore","isRenderProp","SCRIPT_DEBUG","allProps","createElement","render","store"],"sources":["@wordpress/components/src/toolbar/toolbar-item/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport { ToolbarItem as BaseToolbarItem } from '@ariakit/react/toolbar';\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef, useContext } from '@wordpress/element';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport ToolbarContext from '../toolbar-context';\nimport type { ToolbarItemProps } from './types';\n\nfunction ToolbarItem(\n\t{ children, as: Component, ...props }: ToolbarItemProps,\n\tref: ForwardedRef< any >\n) {\n\tconst accessibleToolbarStore = useContext( ToolbarContext );\n\tconst isRenderProp = typeof children === 'function';\n\n\tif ( ! isRenderProp && ! Component ) {\n\t\twarning(\n\t\t\t'`ToolbarItem` is a generic headless component. You must pass either a `children` prop as a function or an `as` prop as a component. ' +\n\t\t\t\t'See https://developer.wordpress.org/block-editor/components/toolbar-item/'\n\t\t);\n\t\treturn null;\n\t}\n\n\tconst allProps = { ...props, ref, 'data-toolbar-item': true };\n\n\tif ( ! accessibleToolbarStore ) {\n\t\tif ( Component ) {\n\t\t\treturn <Component { ...allProps }>{ children }</Component>;\n\t\t}\n\t\tif ( ! isRenderProp ) {\n\t\t\treturn null;\n\t\t}\n\t\treturn children( allProps );\n\t}\n\n\tconst render = isRenderProp ? children : Component && <Component />;\n\n\treturn (\n\t\t<BaseToolbarItem\n\t\t\t{ ...allProps }\n\t\t\tstore={ accessibleToolbarStore }\n\t\t\trender={ render }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( ToolbarItem );\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,WAAW,IAAIC,eAAe,QAAQ,wBAAwB;AAGvE;AACA;AACA;AACA,SAASC,UAAU,EAAEC,UAAU,QAAQ,oBAAoB;AAC3D,OAAOC,OAAO,MAAM,oBAAoB;;AAExC;AACA;AACA;AACA,OAAOC,cAAc,MAAM,oBAAoB;AAG/C,SAASL,WAAWA,CACnB;EAAEM,QAAQ;EAAEC,EAAE,EAAEC,SAAS;EAAE,GAAGC;AAAwB,CAAC,EACvDC,GAAwB,EACvB;EACD,MAAMC,sBAAsB,GAAGR,UAAU,CAAEE,cAAe,CAAC;EAC3D,MAAMO,YAAY,GAAG,OAAON,QAAQ,KAAK,UAAU;EAEnD,IAAK,CAAEM,YAAY,IAAI,CAAEJ,SAAS,EAAG;IACpC,OAAAK,YAAA,oBAAAA,YAAA,YAAAT,OAAO,CACN,sIAAsI,GACrI,2EACF,CAAC;IACD,OAAO,IAAI;EACZ;EAEA,MAAMU,QAAQ,GAAG;IAAE,GAAGL,KAAK;IAAEC,GAAG;IAAE,mBAAmB,EAAE;EAAK,CAAC;EAE7D,IAAK,CAAEC,sBAAsB,EAAG;IAC/B,IAAKH,SAAS,EAAG;MAChB,OAAOO,aAAA,CAACP,SAAS;QAAA,GAAMM;MAAQ,GAAKR,QAAqB,CAAC;IAC3D;IACA,IAAK,CAAEM,YAAY,EAAG;MACrB,OAAO,IAAI;IACZ;IACA,OAAON,QAAQ,CAAEQ,QAAS,CAAC;EAC5B;EAEA,MAAME,MAAM,GAAGJ,YAAY,GAAGN,QAAQ,GAAGE,SAAS,IAAIO,aAAA,CAACP,SAAS,MAAE,CAAC;EAEnE,OACCO,aAAA,CAACd,eAAe;IAAA,GACVa,QAAQ;IACbG,KAAK,EAAGN,sBAAwB;IAChCK,MAAM,EAAGA;EAAQ,CACjB,CAAC;AAEJ;AAEA,eAAed,UAAU,CAAEF,WAAY,CAAC"}
|
|
@@ -8,7 +8,7 @@ function ToolbarItem({
|
|
|
8
8
|
...props
|
|
9
9
|
}, ref) {
|
|
10
10
|
if (typeof children !== 'function') {
|
|
11
|
-
typeof
|
|
11
|
+
typeof SCRIPT_DEBUG !== "undefined" && SCRIPT_DEBUG === true ? warning('`ToolbarItem` is a generic headless component that accepts only function children props') : void 0;
|
|
12
12
|
return null;
|
|
13
13
|
}
|
|
14
14
|
return children({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","warning","ToolbarItem","children","props","ref","
|
|
1
|
+
{"version":3,"names":["forwardRef","warning","ToolbarItem","children","props","ref","SCRIPT_DEBUG"],"sources":["@wordpress/components/src/toolbar/toolbar-item/index.native.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport warning from '@wordpress/warning';\n\nfunction ToolbarItem( { children, ...props }, ref ) {\n\tif ( typeof children !== 'function' ) {\n\t\twarning(\n\t\t\t'`ToolbarItem` is a generic headless component that accepts only function children props'\n\t\t);\n\t\treturn null;\n\t}\n\treturn children( { ...props, ref } );\n}\n\nexport default forwardRef( ToolbarItem );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,oBAAoB;AAC/C,OAAOC,OAAO,MAAM,oBAAoB;AAExC,SAASC,WAAWA,CAAE;EAAEC,QAAQ;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,EAAG;EACnD,IAAK,OAAOF,QAAQ,KAAK,UAAU,EAAG;IACrC,OAAAG,YAAA,oBAAAA,YAAA,YAAAL,OAAO,CACN,yFACD,CAAC;IACD,OAAO,IAAI;EACZ;EACA,OAAOE,QAAQ,CAAE;IAAE,GAAGC,KAAK;IAAEC;EAAI,CAAE,CAAC;AACrC;AAEA,eAAeL,UAAU,CAAEE,WAAY,CAAC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
export const REACT_TYPEOF_KEY = '$$typeof';
|
|
2
1
|
export const COMPONENT_NAMESPACE = 'data-wp-component';
|
|
3
2
|
export const CONNECTED_NAMESPACE = 'data-wp-c16t';
|
|
4
|
-
export const CONTEXT_COMPONENT_NAMESPACE = 'data-wp-c5tc8t';
|
|
5
3
|
|
|
6
4
|
/**
|
|
7
5
|
* Special key where the connected namespaces are stored.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["COMPONENT_NAMESPACE","CONNECTED_NAMESPACE","CONNECT_STATIC_NAMESPACE"],"sources":["@wordpress/components/src/ui/context/constants.js"],"sourcesContent":["export const COMPONENT_NAMESPACE = 'data-wp-component';\nexport const CONNECTED_NAMESPACE = 'data-wp-c16t';\n\n/**\n * Special key where the connected namespaces are stored.\n * This is attached to Context connected components as a static property.\n */\nexport const CONNECT_STATIC_NAMESPACE = '__contextSystemKey__';\n"],"mappings":"AAAA,OAAO,MAAMA,mBAAmB,GAAG,mBAAmB;AACtD,OAAO,MAAMC,mBAAmB,GAAG,cAAc;;AAEjD;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,GAAG,sBAAsB"}
|
|
@@ -45,7 +45,7 @@ export function contextConnectWithoutRef(Component, namespace) {
|
|
|
45
45
|
function _contextConnect(Component, namespace, options) {
|
|
46
46
|
const WrappedComponent = options?.forwardsRef ? forwardRef(Component) : Component;
|
|
47
47
|
if (typeof namespace === 'undefined') {
|
|
48
|
-
typeof
|
|
48
|
+
typeof SCRIPT_DEBUG !== "undefined" && SCRIPT_DEBUG === true ? warn('contextConnect: Please provide a namespace') : void 0;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
// @ts-expect-error internal property
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","warn","CONNECT_STATIC_NAMESPACE","getStyledClassNameFromKey","contextConnect","Component","namespace","_contextConnect","forwardsRef","contextConnectWithoutRef","options","WrappedComponent","
|
|
1
|
+
{"version":3,"names":["forwardRef","warn","CONNECT_STATIC_NAMESPACE","getStyledClassNameFromKey","contextConnect","Component","namespace","_contextConnect","forwardsRef","contextConnectWithoutRef","options","WrappedComponent","SCRIPT_DEBUG","mergedNamespace","Array","isArray","Object","assign","Set","displayName","selector","getConnectNamespace","namespaces","type","hasConnectNamespace","match","includes","some","result"],"sources":["@wordpress/components/src/ui/context/context-connect.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, ReactChild, ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport warn from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport { CONNECT_STATIC_NAMESPACE } from './constants';\nimport { getStyledClassNameFromKey } from './get-styled-class-name-from-key';\nimport type { WordPressComponentFromProps } from '.';\n\ntype AcceptsTwoArgs<\n\tF extends ( ...args: any ) => any,\n\tErrorMessage = never\n> = Parameters< F >[ 'length' ] extends 2 ? {} : ErrorMessage;\n\ntype ContextConnectOptions = {\n\tforwardsRef?: boolean;\n};\n\n/**\n * Forwards ref (React.ForwardRef) and \"Connects\" (or registers) a component\n * within the Context system under a specified namespace.\n *\n * @param Component The component to register into the Context system.\n * @param namespace The namespace to register the component under.\n * @return The connected WordPressComponent\n */\nexport function contextConnect<\n\tC extends ( props: any, ref: ForwardedRef< any > ) => JSX.Element | null\n>(\n\tComponent: C &\n\t\tAcceptsTwoArgs<\n\t\t\tC,\n\t\t\t'Warning: Your component function does not take a ref as the second argument. Did you mean to use `contextConnectWithoutRef`?'\n\t\t>,\n\tnamespace: string\n) {\n\treturn _contextConnect( Component, namespace, { forwardsRef: true } );\n}\n\n/**\n * \"Connects\" (or registers) a component within the Context system under a specified namespace.\n * Does not forward a ref.\n *\n * @param Component The component to register into the Context system.\n * @param namespace The namespace to register the component under.\n * @return The connected WordPressComponent\n */\nexport function contextConnectWithoutRef< P >(\n\tComponent: ( props: P ) => JSX.Element | null,\n\tnamespace: string\n) {\n\treturn _contextConnect( Component, namespace );\n}\n\n// This is an (experimental) evolution of the initial connect() HOC.\n// The hope is that we can improve render performance by removing functional\n// component wrappers.\nfunction _contextConnect<\n\tC extends ( props: any, ref: ForwardedRef< any > ) => JSX.Element | null,\n\tO extends ContextConnectOptions\n>(\n\tComponent: C,\n\tnamespace: string,\n\toptions?: O\n): WordPressComponentFromProps<\n\tParameters< C >[ 0 ],\n\tO[ 'forwardsRef' ] extends true ? true : false\n> {\n\tconst WrappedComponent = options?.forwardsRef\n\t\t? forwardRef< any, Parameters< C >[ 0 ] >( Component )\n\t\t: Component;\n\n\tif ( typeof namespace === 'undefined' ) {\n\t\twarn( 'contextConnect: Please provide a namespace' );\n\t}\n\n\t// @ts-expect-error internal property\n\tlet mergedNamespace = WrappedComponent[ CONNECT_STATIC_NAMESPACE ] || [\n\t\tnamespace,\n\t];\n\n\t/**\n\t * Consolidate (merge) namespaces before attaching it to the WrappedComponent.\n\t */\n\tif ( Array.isArray( namespace ) ) {\n\t\tmergedNamespace = [ ...mergedNamespace, ...namespace ];\n\t}\n\tif ( typeof namespace === 'string' ) {\n\t\tmergedNamespace = [ ...mergedNamespace, namespace ];\n\t}\n\n\t// @ts-expect-error We can't rely on inferred types here because of the\n\t// `as` prop polymorphism we're handling in https://github.com/WordPress/gutenberg/blob/9620bae6fef4fde7cc2b7833f416e240207cda29/packages/components/src/ui/context/wordpress-component.ts#L32-L33\n\treturn Object.assign( WrappedComponent, {\n\t\t[ CONNECT_STATIC_NAMESPACE ]: [ ...new Set( mergedNamespace ) ],\n\t\tdisplayName: namespace,\n\t\tselector: `.${ getStyledClassNameFromKey( namespace ) }`,\n\t} );\n}\n\n/**\n * Attempts to retrieve the connected namespace from a component.\n *\n * @param Component The component to retrieve a namespace from.\n * @return The connected namespaces.\n */\nexport function getConnectNamespace(\n\tComponent: ReactChild | undefined | {}\n): string[] {\n\tif ( ! Component ) return [];\n\n\tlet namespaces = [];\n\n\t// @ts-ignore internal property\n\tif ( Component[ CONNECT_STATIC_NAMESPACE ] ) {\n\t\t// @ts-ignore internal property\n\t\tnamespaces = Component[ CONNECT_STATIC_NAMESPACE ];\n\t}\n\n\t// @ts-ignore\n\tif ( Component.type && Component.type[ CONNECT_STATIC_NAMESPACE ] ) {\n\t\t// @ts-ignore\n\t\tnamespaces = Component.type[ CONNECT_STATIC_NAMESPACE ];\n\t}\n\n\treturn namespaces;\n}\n\n/**\n * Checks to see if a component is connected within the Context system.\n *\n * @param Component The component to retrieve a namespace from.\n * @param match The namespace to check.\n */\nexport function hasConnectNamespace(\n\tComponent: ReactNode,\n\tmatch: string[] | string\n): boolean {\n\tif ( ! Component ) return false;\n\n\tif ( typeof match === 'string' ) {\n\t\treturn getConnectNamespace( Component ).includes( match );\n\t}\n\tif ( Array.isArray( match ) ) {\n\t\treturn match.some( ( result ) =>\n\t\t\tgetConnectNamespace( Component ).includes( result )\n\t\t);\n\t}\n\n\treturn false;\n}\n"],"mappings":"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"}
|