@wordpress/components 19.9.0 → 19.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/CONTRIBUTING.md +80 -7
- package/build/angle-picker-control/angle-circle.js +5 -7
- package/build/angle-picker-control/angle-circle.js.map +1 -1
- package/build/box-control/index.js +0 -21
- package/build/box-control/index.js.map +1 -1
- package/build/box-control/utils.js +1 -8
- package/build/box-control/utils.js.map +1 -1
- package/build/button/index.js +3 -5
- package/build/button/index.js.map +1 -1
- package/build/circular-option-picker/index.js +1 -2
- package/build/circular-option-picker/index.js.map +1 -1
- package/build/disabled/index.js +4 -76
- package/build/disabled/index.js.map +1 -1
- package/build/input-control/index.js +3 -2
- package/build/input-control/index.js.map +1 -1
- package/build/input-control/styles/input-control-styles.js +42 -30
- package/build/input-control/styles/input-control-styles.js.map +1 -1
- package/build/mobile/bottom-sheet-select-control/index.native.js +1 -0
- package/build/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
- package/build/popover/index.js +6 -52
- package/build/popover/index.js.map +1 -1
- package/build/select-control/index.js +31 -4
- package/build/select-control/index.js.map +1 -1
- package/build/select-control/styles/select-control-styles.js +8 -8
- package/build/select-control/styles/select-control-styles.js.map +1 -1
- package/build/text-control/index.js +35 -28
- package/build/text-control/index.js.map +1 -1
- package/build/text-control/types.js +6 -0
- package/build/text-control/types.js.map +1 -0
- package/build/toggle-group-control/toggle-group-control-option-icon/component.js +6 -4
- package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
- package/build/tools-panel/tools-panel-header/component.js +52 -36
- package/build/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build/unit-control/index.js +3 -3
- package/build/unit-control/index.js.map +1 -1
- package/build/unit-control/styles/unit-control-styles.js +11 -20
- package/build/unit-control/styles/unit-control-styles.js.map +1 -1
- package/build/unit-control/utils.js.map +1 -1
- package/build-module/angle-picker-control/angle-circle.js +5 -7
- package/build-module/angle-picker-control/angle-circle.js.map +1 -1
- package/build-module/box-control/index.js +1 -20
- package/build-module/box-control/index.js.map +1 -1
- package/build-module/box-control/utils.js +0 -6
- package/build-module/box-control/utils.js.map +1 -1
- package/build-module/button/index.js +3 -4
- package/build-module/button/index.js.map +1 -1
- package/build-module/circular-option-picker/index.js +1 -2
- package/build-module/circular-option-picker/index.js.map +1 -1
- package/build-module/disabled/index.js +5 -76
- package/build-module/disabled/index.js.map +1 -1
- package/build-module/input-control/index.js +3 -2
- package/build-module/input-control/index.js.map +1 -1
- package/build-module/input-control/styles/input-control-styles.js +42 -30
- package/build-module/input-control/styles/input-control-styles.js.map +1 -1
- package/build-module/mobile/bottom-sheet-select-control/index.native.js +1 -0
- package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
- package/build-module/popover/index.js +6 -52
- package/build-module/popover/index.js.map +1 -1
- package/build-module/select-control/index.js +29 -3
- package/build-module/select-control/index.js.map +1 -1
- package/build-module/select-control/styles/select-control-styles.js +8 -8
- package/build-module/select-control/styles/select-control-styles.js.map +1 -1
- package/build-module/text-control/index.js +35 -27
- package/build-module/text-control/index.js.map +1 -1
- package/build-module/text-control/types.js +2 -0
- package/build-module/text-control/types.js.map +1 -0
- package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +1 -5
- package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -1
- package/build-module/tools-panel/tools-panel-header/component.js +51 -36
- package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
- package/build-module/unit-control/index.js +3 -3
- package/build-module/unit-control/index.js.map +1 -1
- package/build-module/unit-control/styles/unit-control-styles.js +11 -20
- package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
- package/build-module/unit-control/utils.js.map +1 -1
- package/build-style/style-rtl.css +7 -0
- package/build-style/style.css +7 -0
- package/build-types/button/index.d.ts.map +1 -1
- package/build-types/circular-option-picker/index.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +3 -3
- package/build-types/disabled/index.d.ts.map +1 -1
- package/build-types/input-control/index.d.ts +4 -3
- package/build-types/input-control/index.d.ts.map +1 -1
- package/build-types/input-control/stories/index.d.ts +5 -5
- package/build-types/input-control/stories/index.d.ts.map +1 -1
- package/build-types/input-control/styles/input-control-styles.d.ts +1 -0
- package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
- package/build-types/input-control/types.d.ts +6 -0
- package/build-types/input-control/types.d.ts.map +1 -1
- package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
- package/build-types/popover/index.d.ts +0 -1
- package/build-types/popover/index.d.ts.map +1 -1
- package/build-types/select-control/index.d.ts +30 -26
- package/build-types/select-control/index.d.ts.map +1 -1
- package/build-types/select-control/stories/index.d.ts +23 -0
- package/build-types/select-control/stories/index.d.ts.map +1 -0
- package/build-types/select-control/styles/select-control-styles.d.ts +3 -4
- package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
- package/build-types/select-control/test/select-control.d.ts +2 -0
- package/build-types/select-control/test/select-control.d.ts.map +1 -0
- package/build-types/select-control/types.d.ts +52 -1
- package/build-types/select-control/types.d.ts.map +1 -1
- package/build-types/text-control/index.d.ts +32 -0
- package/build-types/text-control/index.d.ts.map +1 -0
- package/build-types/text-control/stories/index.d.ts +13 -0
- package/build-types/text-control/stories/index.d.ts.map +1 -0
- package/build-types/text-control/types.d.ts +25 -0
- package/build-types/text-control/types.d.ts.map +1 -0
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -1
- package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
- package/build-types/tools-panel/types.d.ts +0 -1
- package/build-types/tools-panel/types.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +2 -2
- package/build-types/unit-control/index.d.ts.map +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
- package/build-types/unit-control/test/index.d.ts +2 -0
- package/build-types/unit-control/test/index.d.ts.map +1 -0
- package/build-types/unit-control/test/utils.d.ts +2 -0
- package/build-types/unit-control/test/utils.d.ts.map +1 -0
- package/build-types/unit-control/types.d.ts +1 -1
- package/build-types/unit-control/types.d.ts.map +1 -1
- package/build-types/unit-control/utils.d.ts +3 -3
- package/build-types/unit-control/utils.d.ts.map +1 -1
- package/package.json +17 -17
- package/src/angle-picker-control/angle-circle.js +3 -3
- package/src/box-control/README.md +0 -74
- package/src/box-control/index.js +0 -15
- package/src/box-control/stories/index.js +0 -29
- package/src/box-control/utils.js +0 -7
- package/src/button/index.js +2 -4
- package/src/button/test/index.js +16 -1
- package/src/circular-option-picker/index.js +1 -2
- package/src/color-palette/README.md +0 -1
- package/src/color-palette/test/__snapshots__/index.js.snap +2 -3
- package/src/confirm-dialog/stories/index.js +87 -99
- package/src/date-time/stories/index.js +19 -0
- package/src/date-time/test/date.js +107 -78
- package/src/dimension-control/test/__snapshots__/index.test.js.snap +4 -4
- package/src/disabled/index.js +5 -90
- package/src/form-file-upload/test/index.js +15 -12
- package/src/input-control/README.md +1 -1
- package/src/input-control/index.tsx +3 -2
- package/src/input-control/stories/index.tsx +1 -1
- package/src/input-control/styles/input-control-styles.tsx +19 -5
- package/src/input-control/types.ts +6 -0
- package/src/menu-item/style.scss +10 -0
- package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +8 -1
- package/src/mobile/bottom-sheet-select-control/index.native.js +1 -0
- package/src/mobile/html-text-input/style.android.scss +1 -0
- package/src/mobile/html-text-input/style.ios.scss +1 -0
- package/src/mobile/link-settings/test/link-settings-navigation.native.js +9 -1
- package/src/popover/index.js +5 -51
- package/src/select-control/README.md +2 -2
- package/src/select-control/index.tsx +30 -29
- package/src/select-control/stories/index.tsx +90 -0
- package/src/select-control/styles/select-control-styles.ts +9 -8
- package/src/select-control/test/{select-control.js → select-control.tsx} +2 -2
- package/src/select-control/types.ts +66 -1
- package/src/text-control/index.tsx +84 -0
- package/src/text-control/stories/index.tsx +66 -0
- package/src/text-control/types.ts +29 -0
- package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +1 -5
- package/src/tools-panel/test/__snapshots__/index.js.snap +1 -1
- package/src/tools-panel/test/index.js +71 -18
- package/src/tools-panel/tools-panel-header/component.tsx +75 -33
- package/src/tools-panel/types.ts +0 -1
- package/src/tooltip/test/index.js +6 -0
- package/src/unit-control/index.tsx +2 -5
- package/src/unit-control/styles/unit-control-styles.ts +3 -13
- package/src/unit-control/test/__snapshots__/index.tsx.snap +33 -0
- package/src/unit-control/test/{index.js → index.tsx} +214 -165
- package/src/unit-control/test/{utils.js → utils.ts} +38 -19
- package/src/unit-control/types.ts +4 -1
- package/src/unit-control/utils.ts +5 -3
- package/tsconfig.json +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/box-control/visualizer.js +0 -165
- package/build/box-control/visualizer.js.map +0 -1
- package/build-module/box-control/visualizer.js +0 -154
- package/build-module/box-control/visualizer.js.map +0 -1
- package/src/box-control/visualizer.js +0 -116
- package/src/select-control/stories/index.js +0 -104
- package/src/text-control/index.js +0 -72
- package/src/text-control/stories/index.js +0 -46
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/input-control/styles/input-control-styles.tsx"],"names":["css","Flex","FlexItem","Text","COLORS","rtl","rootFocusedStyles","isFocused","rootLabelPositionStyles","labelPosition","Root","containerDisabledStyles","disabled","backgroundColor","ui","backgroundDisabled","background","containerMarginStyles","hideLabel","containerWidthStyles","__unstableInputWidth","flex","width","Container","disabledStyles","color","textDisabled","fontSizeStyles","inputSize","size","sizes","default","small","fontSize","fontSizeMobile","sizeStyles","height","lineHeight","minHeight","paddingLeft","paddingRight","style","dragStyles","isDragging","dragCursor","defaultArrowStyles","activeDragCursorStyles","Input","gray","labelMargin","marginBottom","marginTop","marginRight","marginLeft","BaseLabel","Label","props","LabelWrapper","backdropFocusedStyles","borderColor","borderFocus","border","boxShadow","borderDisabled","borderStyle","borderWidth","BackdropUI","Prefix","Suffix"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { css, SerializedStyles } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport type { CSSProperties, ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../ui/context';\nimport { Flex, FlexItem } from '../../flex';\nimport { Text } from '../../text';\nimport { COLORS, rtl } from '../../utils';\nimport type { LabelPosition, Size } from '../types';\n\ntype ContainerProps = {\n\tdisabled?: boolean;\n\thideLabel?: boolean;\n\t__unstableInputWidth?: CSSProperties[ 'width' ];\n\tlabelPosition?: LabelPosition;\n};\n\ntype RootProps = {\n\tisFocused?: boolean;\n\tlabelPosition?: LabelPosition;\n};\n\nconst rootFocusedStyles = ( { isFocused }: RootProps ) => {\n\tif ( ! isFocused ) return '';\n\n\treturn css( { zIndex: 1 } );\n};\n\nconst rootLabelPositionStyles = ( { labelPosition }: RootProps ) => {\n\tswitch ( labelPosition ) {\n\t\tcase 'top':\n\t\t\treturn css`\n\t\t\t\talign-items: flex-start;\n\t\t\t\tflex-direction: column;\n\t\t\t`;\n\t\tcase 'bottom':\n\t\t\treturn css`\n\t\t\t\talign-items: flex-start;\n\t\t\t\tflex-direction: column-reverse;\n\t\t\t`;\n\t\tcase 'edge':\n\t\t\treturn css`\n\t\t\t\tjustify-content: space-between;\n\t\t\t`;\n\t\tdefault:\n\t\t\treturn '';\n\t}\n};\n\nexport const Root = styled( Flex )< RootProps >`\n\tposition: relative;\n\tborder-radius: 2px;\n\tpadding-top: 0;\n\t${ rootFocusedStyles }\n\t${ rootLabelPositionStyles }\n`;\n\nconst containerDisabledStyles = ( { disabled }: ContainerProps ) => {\n\tconst backgroundColor = disabled\n\t\t? COLORS.ui.backgroundDisabled\n\t\t: COLORS.ui.background;\n\n\treturn css( { backgroundColor } );\n};\n\n// Normalizes the margins from the <Flex /> (components/ui/flex/) container.\nconst containerMarginStyles = ( { hideLabel }: ContainerProps ) => {\n\treturn hideLabel ? css( { margin: '0 !important' } ) : null;\n};\n\nconst containerWidthStyles = ( {\n\t__unstableInputWidth,\n\tlabelPosition,\n}: ContainerProps ) => {\n\tif ( ! __unstableInputWidth ) return css( { width: '100%' } );\n\n\tif ( labelPosition === 'side' ) return '';\n\n\tif ( labelPosition === 'edge' ) {\n\t\treturn css( {\n\t\t\tflex: `0 0 ${ __unstableInputWidth }`,\n\t\t} );\n\t}\n\n\treturn css( { width: __unstableInputWidth } );\n};\n\nexport const Container = styled.div< ContainerProps >`\n\talign-items: center;\n\tbox-sizing: border-box;\n\tborder-radius: inherit;\n\tdisplay: flex;\n\tflex: 1;\n\tposition: relative;\n\n\t${ containerDisabledStyles }\n\t${ containerMarginStyles }\n\t${ containerWidthStyles }\n`;\n\ntype InputProps = {\n\tdisabled?: boolean;\n\tinputSize?: Size;\n\tisDragging?: boolean;\n\tdragCursor?: CSSProperties[ 'cursor' ];\n};\n\nconst disabledStyles = ( { disabled }: InputProps ) => {\n\tif ( ! disabled ) return '';\n\n\treturn css( {\n\t\tcolor: COLORS.ui.textDisabled,\n\t} );\n};\n\nconst fontSizeStyles = ( { inputSize: size }: InputProps ) => {\n\tconst sizes = {\n\t\tdefault: '13px',\n\t\tsmall: '11px',\n\t\t'__unstable-large': '13px',\n\t};\n\n\tconst fontSize = sizes[ size as Size ] || sizes.default;\n\tconst fontSizeMobile = '16px';\n\n\tif ( ! fontSize ) return '';\n\n\treturn css`\n\t\tfont-size: ${ fontSizeMobile };\n\n\t\t@media ( min-width: 600px ) {\n\t\t\tfont-size: ${ fontSize };\n\t\t}\n\t`;\n};\n\nconst sizeStyles = ( { inputSize: size }: InputProps ) => {\n\tconst sizes = {\n\t\tdefault: {\n\t\t\theight: 30,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 30,\n\t\t\tpaddingLeft: 8,\n\t\t\tpaddingRight: 8,\n\t\t},\n\t\tsmall: {\n\t\t\theight: 24,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 24,\n\t\t\tpaddingLeft: 8,\n\t\t\tpaddingRight: 8,\n\t\t},\n\t\t'__unstable-large': {\n\t\t\theight: 40,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 40,\n\t\t\tpaddingLeft: 16,\n\t\t\tpaddingRight: 16,\n\t\t},\n\t};\n\n\tconst style = sizes[ size as Size ] || sizes.default;\n\n\treturn css( style );\n};\n\nconst dragStyles = ( { isDragging, dragCursor }: InputProps ) => {\n\tlet defaultArrowStyles: SerializedStyles | undefined;\n\tlet activeDragCursorStyles: SerializedStyles | undefined;\n\n\tif ( isDragging ) {\n\t\tdefaultArrowStyles = css`\n\t\t\tcursor: ${ dragCursor };\n\t\t\tuser-select: none;\n\n\t\t\t&::-webkit-outer-spin-button,\n\t\t\t&::-webkit-inner-spin-button {\n\t\t\t\t-webkit-appearance: none !important;\n\t\t\t\tmargin: 0 !important;\n\t\t\t}\n\t\t`;\n\t}\n\n\tif ( isDragging && dragCursor ) {\n\t\tactiveDragCursorStyles = css`\n\t\t\t&:active {\n\t\t\t\tcursor: ${ dragCursor };\n\t\t\t}\n\t\t`;\n\t}\n\n\treturn css`\n\t\t${ defaultArrowStyles }\n\t\t${ activeDragCursorStyles }\n\t`;\n};\n\n// TODO: Resolve need to use &&& to increase specificity\n// https://github.com/WordPress/gutenberg/issues/18483\n\nexport const Input = styled.input< InputProps >`\n\t&&& {\n\t\tbackground-color: transparent;\n\t\tbox-sizing: border-box;\n\t\tborder: none;\n\t\tbox-shadow: none !important;\n\t\tcolor: ${ COLORS.gray[ 900 ] };\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\tmargin: 0;\n\t\toutline: none;\n\t\twidth: 100%;\n\n\t\t${ dragStyles }\n\t\t${ disabledStyles }\n\t\t${ fontSizeStyles }\n\t\t${ sizeStyles }\n\n\t\t&::-webkit-input-placeholder {\n\t\t\tline-height: normal;\n\t\t}\n\t}\n`;\n\nconst labelMargin = ( {\n\tlabelPosition,\n}: {\n\tlabelPosition?: LabelPosition;\n} ) => {\n\tlet marginBottom = 8;\n\n\tif ( labelPosition === 'edge' || labelPosition === 'side' ) {\n\t\tmarginBottom = 0;\n\t}\n\n\treturn css( { marginTop: 0, marginRight: 0, marginBottom, marginLeft: 0 } );\n};\n\nconst BaseLabel = styled( Text )< { labelPosition?: LabelPosition } >`\n\t&&& {\n\t\tbox-sizing: border-box;\n\t\tdisplay: block;\n\t\tpadding-top: 0;\n\t\tpadding-bottom: 0;\n\t\tmax-width: 100%;\n\t\tz-index: 1;\n\n\t\t${ labelMargin }\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n`;\n\nexport const Label = (\n\tprops: WordPressComponentProps<\n\t\t{ labelPosition?: LabelPosition; children: ReactNode },\n\t\t'label',\n\t\tfalse\n\t>\n) => <BaseLabel { ...props } as=\"label\" />;\n\nexport const LabelWrapper = styled( FlexItem )`\n\tmax-width: calc( 100% - 10px );\n`;\n\ntype BackdropProps = {\n\tdisabled?: boolean;\n\tisFocused?: boolean;\n};\n\nconst backdropFocusedStyles = ( {\n\tdisabled,\n\tisFocused,\n}: BackdropProps ): SerializedStyles => {\n\tlet borderColor = isFocused ? COLORS.ui.borderFocus : COLORS.ui.border;\n\n\tlet boxShadow;\n\n\tif ( isFocused ) {\n\t\tboxShadow = `0 0 0 1px ${ COLORS.ui.borderFocus } inset`;\n\t}\n\n\tif ( disabled ) {\n\t\tborderColor = COLORS.ui.borderDisabled;\n\t}\n\n\treturn css( {\n\t\tboxShadow,\n\t\tborderColor,\n\t\tborderStyle: 'solid',\n\t\tborderWidth: 1,\n\t} );\n};\n\nexport const BackdropUI = styled.div< BackdropProps >`\n\t&&& {\n\t\tbox-sizing: border-box;\n\t\tborder-radius: inherit;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpointer-events: none;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\n\t\t${ backdropFocusedStyles }\n\t\t${ rtl( { paddingLeft: 2 } ) }\n\t}\n`;\n\nexport const Prefix = styled.span`\n\tbox-sizing: border-box;\n\tdisplay: block;\n`;\n\nexport const Suffix = styled.span`\n\talign-items: center;\n\talign-self: stretch;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n`;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/input-control/styles/input-control-styles.tsx"],"names":["css","Flex","FlexItem","Text","COLORS","rtl","rootFocusedStyles","isFocused","rootLabelPositionStyles","labelPosition","Root","containerDisabledStyles","disabled","backgroundColor","ui","backgroundDisabled","background","containerMarginStyles","hideLabel","containerWidthStyles","__unstableInputWidth","flex","width","Container","disabledStyles","color","textDisabled","fontSizeStyles","inputSize","size","sizes","default","small","fontSize","fontSizeMobile","sizeStyles","__next36pxDefaultSize","height","lineHeight","minHeight","paddingLeft","paddingRight","style","dragStyles","isDragging","dragCursor","defaultArrowStyles","activeDragCursorStyles","Input","gray","labelMargin","marginBottom","marginTop","marginRight","marginLeft","BaseLabel","Label","props","LabelWrapper","backdropFocusedStyles","borderColor","borderFocus","border","boxShadow","borderDisabled","borderStyle","borderWidth","BackdropUI","Prefix","Suffix"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { css, SerializedStyles } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport type { CSSProperties, ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../../ui/context';\nimport { Flex, FlexItem } from '../../flex';\nimport { Text } from '../../text';\nimport { COLORS, rtl } from '../../utils';\nimport type { LabelPosition, Size } from '../types';\n\ntype ContainerProps = {\n\tdisabled?: boolean;\n\thideLabel?: boolean;\n\t__unstableInputWidth?: CSSProperties[ 'width' ];\n\tlabelPosition?: LabelPosition;\n};\n\ntype RootProps = {\n\tisFocused?: boolean;\n\tlabelPosition?: LabelPosition;\n};\n\nconst rootFocusedStyles = ( { isFocused }: RootProps ) => {\n\tif ( ! isFocused ) return '';\n\n\treturn css( { zIndex: 1 } );\n};\n\nconst rootLabelPositionStyles = ( { labelPosition }: RootProps ) => {\n\tswitch ( labelPosition ) {\n\t\tcase 'top':\n\t\t\treturn css`\n\t\t\t\talign-items: flex-start;\n\t\t\t\tflex-direction: column;\n\t\t\t`;\n\t\tcase 'bottom':\n\t\t\treturn css`\n\t\t\t\talign-items: flex-start;\n\t\t\t\tflex-direction: column-reverse;\n\t\t\t`;\n\t\tcase 'edge':\n\t\t\treturn css`\n\t\t\t\tjustify-content: space-between;\n\t\t\t`;\n\t\tdefault:\n\t\t\treturn '';\n\t}\n};\n\nexport const Root = styled( Flex )< RootProps >`\n\tposition: relative;\n\tborder-radius: 2px;\n\tpadding-top: 0;\n\t${ rootFocusedStyles }\n\t${ rootLabelPositionStyles }\n`;\n\nconst containerDisabledStyles = ( { disabled }: ContainerProps ) => {\n\tconst backgroundColor = disabled\n\t\t? COLORS.ui.backgroundDisabled\n\t\t: COLORS.ui.background;\n\n\treturn css( { backgroundColor } );\n};\n\n// Normalizes the margins from the <Flex /> (components/ui/flex/) container.\nconst containerMarginStyles = ( { hideLabel }: ContainerProps ) => {\n\treturn hideLabel ? css( { margin: '0 !important' } ) : null;\n};\n\nconst containerWidthStyles = ( {\n\t__unstableInputWidth,\n\tlabelPosition,\n}: ContainerProps ) => {\n\tif ( ! __unstableInputWidth ) return css( { width: '100%' } );\n\n\tif ( labelPosition === 'side' ) return '';\n\n\tif ( labelPosition === 'edge' ) {\n\t\treturn css( {\n\t\t\tflex: `0 0 ${ __unstableInputWidth }`,\n\t\t} );\n\t}\n\n\treturn css( { width: __unstableInputWidth } );\n};\n\nexport const Container = styled.div< ContainerProps >`\n\talign-items: center;\n\tbox-sizing: border-box;\n\tborder-radius: inherit;\n\tdisplay: flex;\n\tflex: 1;\n\tposition: relative;\n\n\t${ containerDisabledStyles }\n\t${ containerMarginStyles }\n\t${ containerWidthStyles }\n`;\n\ntype InputProps = {\n\t__next36pxDefaultSize?: boolean;\n\tdisabled?: boolean;\n\tinputSize?: Size;\n\tisDragging?: boolean;\n\tdragCursor?: CSSProperties[ 'cursor' ];\n};\n\nconst disabledStyles = ( { disabled }: InputProps ) => {\n\tif ( ! disabled ) return '';\n\n\treturn css( {\n\t\tcolor: COLORS.ui.textDisabled,\n\t} );\n};\n\nconst fontSizeStyles = ( { inputSize: size }: InputProps ) => {\n\tconst sizes = {\n\t\tdefault: '13px',\n\t\tsmall: '11px',\n\t\t'__unstable-large': '13px',\n\t};\n\n\tconst fontSize = sizes[ size as Size ] || sizes.default;\n\tconst fontSizeMobile = '16px';\n\n\tif ( ! fontSize ) return '';\n\n\treturn css`\n\t\tfont-size: ${ fontSizeMobile };\n\n\t\t@media ( min-width: 600px ) {\n\t\t\tfont-size: ${ fontSize };\n\t\t}\n\t`;\n};\n\nconst sizeStyles = ( {\n\tinputSize: size,\n\t__next36pxDefaultSize,\n}: InputProps ) => {\n\tconst sizes = {\n\t\tdefault: {\n\t\t\theight: 36,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 36,\n\t\t\tpaddingLeft: 16,\n\t\t\tpaddingRight: 16,\n\t\t},\n\t\tsmall: {\n\t\t\theight: 24,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 24,\n\t\t\tpaddingLeft: 8,\n\t\t\tpaddingRight: 8,\n\t\t},\n\t\t'__unstable-large': {\n\t\t\theight: 40,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 40,\n\t\t\tpaddingLeft: 16,\n\t\t\tpaddingRight: 16,\n\t\t},\n\t};\n\n\tif ( ! __next36pxDefaultSize ) {\n\t\tsizes.default = {\n\t\t\theight: 30,\n\t\t\tlineHeight: 1,\n\t\t\tminHeight: 30,\n\t\t\tpaddingLeft: 8,\n\t\t\tpaddingRight: 8,\n\t\t};\n\t}\n\n\tconst style = sizes[ size as Size ] || sizes.default;\n\n\treturn css( style );\n};\n\nconst dragStyles = ( { isDragging, dragCursor }: InputProps ) => {\n\tlet defaultArrowStyles: SerializedStyles | undefined;\n\tlet activeDragCursorStyles: SerializedStyles | undefined;\n\n\tif ( isDragging ) {\n\t\tdefaultArrowStyles = css`\n\t\t\tcursor: ${ dragCursor };\n\t\t\tuser-select: none;\n\n\t\t\t&::-webkit-outer-spin-button,\n\t\t\t&::-webkit-inner-spin-button {\n\t\t\t\t-webkit-appearance: none !important;\n\t\t\t\tmargin: 0 !important;\n\t\t\t}\n\t\t`;\n\t}\n\n\tif ( isDragging && dragCursor ) {\n\t\tactiveDragCursorStyles = css`\n\t\t\t&:active {\n\t\t\t\tcursor: ${ dragCursor };\n\t\t\t}\n\t\t`;\n\t}\n\n\treturn css`\n\t\t${ defaultArrowStyles }\n\t\t${ activeDragCursorStyles }\n\t`;\n};\n\n// TODO: Resolve need to use &&& to increase specificity\n// https://github.com/WordPress/gutenberg/issues/18483\n\nexport const Input = styled.input< InputProps >`\n\t&&& {\n\t\tbackground-color: transparent;\n\t\tbox-sizing: border-box;\n\t\tborder: none;\n\t\tbox-shadow: none !important;\n\t\tcolor: ${ COLORS.gray[ 900 ] };\n\t\tdisplay: block;\n\t\tfont-family: inherit;\n\t\tmargin: 0;\n\t\toutline: none;\n\t\twidth: 100%;\n\n\t\t${ dragStyles }\n\t\t${ disabledStyles }\n\t\t${ fontSizeStyles }\n\t\t${ sizeStyles }\n\n\t\t&::-webkit-input-placeholder {\n\t\t\tline-height: normal;\n\t\t}\n\t}\n`;\n\nconst labelMargin = ( {\n\tlabelPosition,\n}: {\n\tlabelPosition?: LabelPosition;\n} ) => {\n\tlet marginBottom = 8;\n\n\tif ( labelPosition === 'edge' || labelPosition === 'side' ) {\n\t\tmarginBottom = 0;\n\t}\n\n\treturn css( { marginTop: 0, marginRight: 0, marginBottom, marginLeft: 0 } );\n};\n\nconst BaseLabel = styled( Text )< { labelPosition?: LabelPosition } >`\n\t&&& {\n\t\tbox-sizing: border-box;\n\t\tdisplay: block;\n\t\tpadding-top: 0;\n\t\tpadding-bottom: 0;\n\t\tmax-width: 100%;\n\t\tz-index: 1;\n\n\t\t${ labelMargin }\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t}\n`;\n\nexport const Label = (\n\tprops: WordPressComponentProps<\n\t\t{ labelPosition?: LabelPosition; children: ReactNode },\n\t\t'label',\n\t\tfalse\n\t>\n) => <BaseLabel { ...props } as=\"label\" />;\n\nexport const LabelWrapper = styled( FlexItem )`\n\tmax-width: calc( 100% - 10px );\n`;\n\ntype BackdropProps = {\n\tdisabled?: boolean;\n\tisFocused?: boolean;\n};\n\nconst backdropFocusedStyles = ( {\n\tdisabled,\n\tisFocused,\n}: BackdropProps ): SerializedStyles => {\n\tlet borderColor = isFocused ? COLORS.ui.borderFocus : COLORS.ui.border;\n\n\tlet boxShadow;\n\n\tif ( isFocused ) {\n\t\tboxShadow = `0 0 0 1px ${ COLORS.ui.borderFocus } inset`;\n\t}\n\n\tif ( disabled ) {\n\t\tborderColor = COLORS.ui.borderDisabled;\n\t}\n\n\treturn css( {\n\t\tboxShadow,\n\t\tborderColor,\n\t\tborderStyle: 'solid',\n\t\tborderWidth: 1,\n\t} );\n};\n\nexport const BackdropUI = styled.div< BackdropProps >`\n\t&&& {\n\t\tbox-sizing: border-box;\n\t\tborder-radius: inherit;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tpointer-events: none;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\n\t\t${ backdropFocusedStyles }\n\t\t${ rtl( { paddingLeft: 2 } ) }\n\t}\n`;\n\nexport const Prefix = styled.span`\n\tbox-sizing: border-box;\n\tdisplay: block;\n`;\n\nexport const Suffix = styled.span`\n\talign-items: center;\n\talign-self: stretch;\n\tbox-sizing: border-box;\n\tdisplay: flex;\n`;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/mobile/bottom-sheet-select-control/index.native.js"],"names":["View","useNavigation","useState","Icon","chevronRight","check","__","sprintf","BottomSheet","styles","BottomSheetSelectControl","label","icon","options","items","onChange","value","selectedValue","showSubSheet","setShowSubSheet","navigation","onChangeValue","goBack","selectedOption","find","option","openSubSheet","navigate","SubSheet","screenName","selectControl","map","item","index"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,SAASC,aAAT,QAA8B,0BAA9B;AACA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,IAAT,EAAeC,YAAf,EAA6BC,KAA7B,QAA0C,kBAA1C;AACA,SAASC,EAAT,EAAaC,OAAb,QAA4B,iBAA5B;AACA,SAASC,WAAT,QAA4B,uBAA5B;AACA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;;AAEA,MAAMC,wBAAwB,GAAG,QAM1B;AAAA,MAN4B;AAClCC,IAAAA,KADkC;AAElCC,IAAAA,IAFkC;AAGlCC,IAAAA,OAAO,EAAEC,KAHyB;AAIlCC,IAAAA,QAJkC;AAKlCC,IAAAA,KAAK,EAAEC;AAL2B,GAM5B;AACN,QAAM,CAAEC,YAAF,EAAgBC,eAAhB,IAAoCjB,QAAQ,CAAE,KAAF,CAAlD;AACA,QAAMkB,UAAU,GAAGnB,aAAa,EAAhC;;AAEA,QAAMoB,aAAa,GAAKL,KAAF,IAAa;AAClC,WAAO,MAAM;AACZM,MAAAA,MAAM;AACNP,MAAAA,QAAQ,CAAEC,KAAF,CAAR;AACA,KAHD;AAIA,GALD;;AAOA,QAAMO,cAAc,GAAGT,KAAK,CAACU,IAAN,CACpBC,MAAF,IAAcA,MAAM,CAACT,KAAP,KAAiBC,aADT,CAAvB;;AAIA,QAAMK,MAAM,GAAG,MAAM;AACpBH,IAAAA,eAAe,CAAE,KAAF,CAAf;AACAC,IAAAA,UAAU,CAACE,MAAX;AACA,GAHD;;AAKA,QAAMI,YAAY,GAAG,MAAM;AAC1BN,IAAAA,UAAU,CAACO,QAAX,CAAqBnB,WAAW,CAACoB,QAAZ,CAAqBC,UAA1C;AACAV,IAAAA,eAAe,CAAE,IAAF,CAAf;AACA,GAHD;;AAKA,SACC,cAAC,WAAD,CAAa,QAAb;AACC,IAAA,gBAAgB,EACf,cAAC,WAAD,CAAa,IAAb;AACC,MAAA,KAAK,EAAGR,KADT;AAEC,MAAA,aAAa,EAAC,MAFf;AAGC,MAAA,IAAI,EAAGC,IAHR;AAIC,MAAA,KAAK,EAAGW,cAAc,CAACZ,KAJxB;AAKC,MAAA,OAAO,EAAGe,YALX;AAMC,MAAA,iBAAiB,EAAG,QANrB;AAOC,MAAA,kBAAkB,EAAGH,cAAc,CAACZ,KAPrC;AAQC,MAAA,iBAAiB,EAAGJ,OAAO,EAC1B;AACAD,MAAAA,EAAE,CAAE,wBAAF,CAFwB,EAG1BiB,cAAc,CAACZ,KAHW;AAR5B,OAcC,cAAC,IAAD;AAAM,MAAA,IAAI,EAAGP;AAAb,MAdD,CAFF;AAmBC,IAAA,SAAS,EAAGc;AAnBb,KAqBC,8BACC,cAAC,WAAD,CAAa,MAAb,QACC,cAAC,WAAD,CAAa,MAAb,CAAoB,UAApB;AAA+B,IAAA,OAAO,EAAGI;AAAzC,IADD,EAEC,cAAC,WAAD,CAAa,MAAb,CAAoB,OAApB,QACGX,KADH,CAFD,CADD,EAOC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGF,MAAM,CAACqB;AAArB,KACGhB,KAAK,CAACiB,GAAN,CAAW,CAAEC,IAAF,EAAQC,KAAR,KACZ,cAAC,WAAD,CAAa,IAAb;AACC,IAAA,kBAAkB,MADnB;AAEC,IAAA,aAAa,EAAC,MAFf;AAGC,IAAA,KAAK,EAAGD,IAAI,CAACrB,KAHd;AAIC,IAAA,OAAO,
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/mobile/bottom-sheet-select-control/index.native.js"],"names":["View","useNavigation","useState","Icon","chevronRight","check","__","sprintf","BottomSheet","styles","BottomSheetSelectControl","label","icon","options","items","onChange","value","selectedValue","showSubSheet","setShowSubSheet","navigation","onChangeValue","goBack","selectedOption","find","option","openSubSheet","navigate","SubSheet","screenName","selectControl","map","item","index"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useNavigation } from '@react-navigation/native';\nimport { useState } from '@wordpress/element';\nimport { Icon, chevronRight, check } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { BottomSheet } from '@wordpress/components';\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst BottomSheetSelectControl = ( {\n\tlabel,\n\ticon,\n\toptions: items,\n\tonChange,\n\tvalue: selectedValue,\n} ) => {\n\tconst [ showSubSheet, setShowSubSheet ] = useState( false );\n\tconst navigation = useNavigation();\n\n\tconst onChangeValue = ( value ) => {\n\t\treturn () => {\n\t\t\tgoBack();\n\t\t\tonChange( value );\n\t\t};\n\t};\n\n\tconst selectedOption = items.find(\n\t\t( option ) => option.value === selectedValue\n\t);\n\n\tconst goBack = () => {\n\t\tsetShowSubSheet( false );\n\t\tnavigation.goBack();\n\t};\n\n\tconst openSubSheet = () => {\n\t\tnavigation.navigate( BottomSheet.SubSheet.screenName );\n\t\tsetShowSubSheet( true );\n\t};\n\n\treturn (\n\t\t<BottomSheet.SubSheet\n\t\t\tnavigationButton={\n\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tseparatorType=\"none\"\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tvalue={ selectedOption.label }\n\t\t\t\t\tonPress={ openSubSheet }\n\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\taccessibilityLabel={ selectedOption.label }\n\t\t\t\t\taccessibilityHint={ sprintf(\n\t\t\t\t\t\t// translators: %s: Select control button label e.g. \"Button width\"\n\t\t\t\t\t\t__( 'Navigates to select %s' ),\n\t\t\t\t\t\tselectedOption.label\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={ chevronRight }></Icon>\n\t\t\t\t</BottomSheet.Cell>\n\t\t\t}\n\t\t\tshowSheet={ showSubSheet }\n\t\t>\n\t\t\t<>\n\t\t\t\t<BottomSheet.NavBar>\n\t\t\t\t\t<BottomSheet.NavBar.BackButton onPress={ goBack } />\n\t\t\t\t\t<BottomSheet.NavBar.Heading>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</BottomSheet.NavBar.Heading>\n\t\t\t\t</BottomSheet.NavBar>\n\t\t\t\t<View style={ styles.selectControl }>\n\t\t\t\t\t{ items.map( ( item, index ) => (\n\t\t\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\t\t\tcustomActionButton\n\t\t\t\t\t\t\tseparatorType=\"none\"\n\t\t\t\t\t\t\tlabel={ item.label }\n\t\t\t\t\t\t\ticon={ item.icon }\n\t\t\t\t\t\t\tonPress={ onChangeValue( item.value ) }\n\t\t\t\t\t\t\tleftAlign={ true }\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\t\t\taccessibilityLabel={\n\t\t\t\t\t\t\t\titem.value === selectedValue\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t// translators: %s: Select control option value e.g: \"Auto, 25%\".\n\t\t\t\t\t\t\t\t\t\t\t__( 'Selected: %s' ),\n\t\t\t\t\t\t\t\t\t\t\titem.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: item.label\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taccessibilityHint={ __( 'Double tap to select' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ item.value === selectedValue && (\n\t\t\t\t\t\t\t\t<Icon icon={ check }></Icon>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BottomSheet.Cell>\n\t\t\t\t\t) ) }\n\t\t\t\t</View>\n\t\t\t</>\n\t\t</BottomSheet.SubSheet>\n\t);\n};\n\nexport default BottomSheetSelectControl;\n"]}
|
|
@@ -34,8 +34,7 @@ const slotNameContext = createContext();
|
|
|
34
34
|
|
|
35
35
|
function computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect) {
|
|
36
36
|
let anchorRef = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
37
|
-
let
|
|
38
|
-
let container = arguments.length > 5 ? arguments[5] : undefined;
|
|
37
|
+
let container = arguments.length > 4 ? arguments[4] : undefined;
|
|
39
38
|
|
|
40
39
|
if (anchorRect) {
|
|
41
40
|
return anchorRect;
|
|
@@ -67,12 +66,7 @@ function computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect) {
|
|
|
67
66
|
|
|
68
67
|
if (typeof (anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.getBoundingClientRect) === 'function') {
|
|
69
68
|
const rect = offsetIframe(anchorRef.getBoundingClientRect(), anchorRef.ownerDocument, container);
|
|
70
|
-
|
|
71
|
-
if (shouldAnchorIncludePadding) {
|
|
72
|
-
return rect;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return withoutPadding(rect, anchorRef);
|
|
69
|
+
return rect;
|
|
76
70
|
}
|
|
77
71
|
|
|
78
72
|
const {
|
|
@@ -81,13 +75,7 @@ function computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect) {
|
|
|
81
75
|
} = anchorRef;
|
|
82
76
|
const topRect = top.getBoundingClientRect();
|
|
83
77
|
const bottomRect = bottom.getBoundingClientRect();
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
if (shouldAnchorIncludePadding) {
|
|
87
|
-
return rect;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
return withoutPadding(rect, anchorRef);
|
|
78
|
+
return offsetIframe(new window.DOMRect(topRect.left, topRect.top, topRect.width, bottomRect.bottom - topRect.top), top.ownerDocument, container);
|
|
91
79
|
}
|
|
92
80
|
|
|
93
81
|
if (!anchorRefFallback.current) {
|
|
@@ -97,40 +85,7 @@ function computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect) {
|
|
|
97
85
|
const {
|
|
98
86
|
parentNode
|
|
99
87
|
} = anchorRefFallback.current;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
if (shouldAnchorIncludePadding) {
|
|
103
|
-
return rect;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
return withoutPadding(rect, parentNode);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
function getComputedStyle(node) {
|
|
110
|
-
return node.ownerDocument.defaultView.getComputedStyle(node);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
function withoutPadding(rect, element) {
|
|
114
|
-
const {
|
|
115
|
-
paddingTop,
|
|
116
|
-
paddingBottom,
|
|
117
|
-
paddingLeft,
|
|
118
|
-
paddingRight
|
|
119
|
-
} = getComputedStyle(element);
|
|
120
|
-
const top = paddingTop ? parseInt(paddingTop, 10) : 0;
|
|
121
|
-
const bottom = paddingBottom ? parseInt(paddingBottom, 10) : 0;
|
|
122
|
-
const left = paddingLeft ? parseInt(paddingLeft, 10) : 0;
|
|
123
|
-
const right = paddingRight ? parseInt(paddingRight, 10) : 0;
|
|
124
|
-
return {
|
|
125
|
-
x: rect.left + left,
|
|
126
|
-
y: rect.top + top,
|
|
127
|
-
width: rect.width - left - right,
|
|
128
|
-
height: rect.height - top - bottom,
|
|
129
|
-
left: rect.left + left,
|
|
130
|
-
right: rect.right - right,
|
|
131
|
-
top: rect.top + top,
|
|
132
|
-
bottom: rect.bottom - bottom
|
|
133
|
-
};
|
|
88
|
+
return offsetIframe(parentNode.getBoundingClientRect(), parentNode.ownerDocument, container);
|
|
134
89
|
}
|
|
135
90
|
/**
|
|
136
91
|
* Sets or removes an element attribute.
|
|
@@ -219,7 +174,6 @@ const Popover = (_ref, ref) => {
|
|
|
219
174
|
range,
|
|
220
175
|
focusOnMount = 'firstElement',
|
|
221
176
|
anchorRef,
|
|
222
|
-
shouldAnchorIncludePadding,
|
|
223
177
|
anchorRect,
|
|
224
178
|
getAnchorRect,
|
|
225
179
|
expandOnMobile,
|
|
@@ -266,7 +220,7 @@ const Popover = (_ref, ref) => {
|
|
|
266
220
|
return;
|
|
267
221
|
}
|
|
268
222
|
|
|
269
|
-
let anchor = computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect, anchorRef,
|
|
223
|
+
let anchor = computeAnchorRect(anchorRefFallback, anchorRect, getAnchorRect, anchorRef, containerRef.current);
|
|
270
224
|
|
|
271
225
|
if (!anchor) {
|
|
272
226
|
return;
|
|
@@ -393,7 +347,7 @@ const Popover = (_ref, ref) => {
|
|
|
393
347
|
observer.disconnect();
|
|
394
348
|
}
|
|
395
349
|
};
|
|
396
|
-
}, [isExpanded, anchorRect, getAnchorRect, anchorRef,
|
|
350
|
+
}, [isExpanded, anchorRect, getAnchorRect, anchorRef, position, contentSize, __unstableStickyBoundaryElement, __unstableObserveElement, __unstableBoundaryParent]);
|
|
397
351
|
|
|
398
352
|
const onDialogClose = (type, event) => {
|
|
399
353
|
// Ideally the popover should have just a single onClose prop and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/popover/index.js"],"names":["classnames","useRef","useState","useLayoutEffect","forwardRef","createContext","useContext","getRectangleFromRange","useViewportMatch","useResizeObserver","useMergeRefs","__experimentalUseDialog","useDialog","close","computePopoverPosition","offsetIframe","Button","ScrollLock","Slot","Fill","useSlot","getAnimateClassName","SLOT_NAME","slotNameContext","computeAnchorRect","anchorRefFallback","anchorRect","getAnchorRect","anchorRef","shouldAnchorIncludePadding","container","current","rect","ownerDocument","window","Range","Element","DOMRect","cloneRange","endContainer","getBoundingClientRect","withoutPadding","top","bottom","topRect","bottomRect","left","width","parentNode","getComputedStyle","node","defaultView","element","paddingTop","paddingBottom","paddingLeft","paddingRight","parseInt","right","x","y","height","setAttribute","name","value","hasAttribute","removeAttribute","getAttribute","setStyle","property","style","setClass","toggle","classList","contains","add","remove","getAnchorDocument","anchor","Popover","ref","headerTitle","onClose","children","className","noArrow","isAlternate","position","range","focusOnMount","expandOnMobile","animate","onFocusOutside","__unstableStickyBoundaryElement","__unstableSlotName","__unstableObserveElement","__unstableBoundaryParent","__unstableForcePosition","__unstableForceXAlignment","__unstableEditorCanvasWrapper","contentProps","contentRef","containerRef","isMobileViewport","animateOrigin","setAnimateOrigin","slotName","slot","isExpanded","containerResizeListener","contentSize","refresh","offsetParent","relativeOffsetTop","body","offsetParentRect","boundaryElement","parentElement","usedContentSize","popoverTop","popoverLeft","xAxis","yAxis","contentHeight","contentWidth","yAxisMapping","xAxisMapping","animateYAxis","animateXAxis","intervalHandle","setInterval","rafId","refreshOnAnimationFrame","cancelAnimationFrame","requestAnimationFrame","addEventListener","anchorDocument","observer","MutationObserver","observe","attributes","clearInterval","removeEventListener","disconnect","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","mergedRefs","animateClassName","Boolean","origin","content","PopoverContainer","PopoverSlot","__unstableSlotNameProvider","Provider"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseState,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport { getRectangleFromRange } from '@wordpress/dom';\nimport {\n\tuseViewportMatch,\n\tuseResizeObserver,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { computePopoverPosition, offsetIframe } from './utils';\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport { getAnimateClassName } from '../animate';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nconst SLOT_NAME = 'Popover';\n\nconst slotNameContext = createContext();\n\nfunction computeAnchorRect(\n\tanchorRefFallback,\n\tanchorRect,\n\tgetAnchorRect,\n\tanchorRef = false,\n\tshouldAnchorIncludePadding,\n\tcontainer\n) {\n\tif ( anchorRect ) {\n\t\treturn anchorRect;\n\t}\n\n\tif ( getAnchorRect ) {\n\t\tif ( ! anchorRefFallback.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst rect = getAnchorRect( anchorRefFallback.current );\n\t\treturn offsetIframe(\n\t\t\trect,\n\t\t\trect.ownerDocument || anchorRefFallback.current.ownerDocument,\n\t\t\tcontainer\n\t\t);\n\t}\n\n\tif ( anchorRef !== false ) {\n\t\tif (\n\t\t\t! anchorRef ||\n\t\t\t! window.Range ||\n\t\t\t! window.Element ||\n\t\t\t! window.DOMRect\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Duck-type to check if `anchorRef` is an instance of Range\n\t\t// `anchorRef instanceof window.Range` checks will break across document boundaries\n\t\t// such as in an iframe.\n\t\tif ( typeof anchorRef?.cloneRange === 'function' ) {\n\t\t\treturn offsetIframe(\n\t\t\t\tgetRectangleFromRange( anchorRef ),\n\t\t\t\tanchorRef.endContainer.ownerDocument,\n\t\t\t\tcontainer\n\t\t\t);\n\t\t}\n\n\t\t// Duck-type to check if `anchorRef` is an instance of Element\n\t\t// `anchorRef instanceof window.Element` checks will break across document boundaries\n\t\t// such as in an iframe.\n\t\tif ( typeof anchorRef?.getBoundingClientRect === 'function' ) {\n\t\t\tconst rect = offsetIframe(\n\t\t\t\tanchorRef.getBoundingClientRect(),\n\t\t\t\tanchorRef.ownerDocument,\n\t\t\t\tcontainer\n\t\t\t);\n\n\t\t\tif ( shouldAnchorIncludePadding ) {\n\t\t\t\treturn rect;\n\t\t\t}\n\n\t\t\treturn withoutPadding( rect, anchorRef );\n\t\t}\n\n\t\tconst { top, bottom } = anchorRef;\n\t\tconst topRect = top.getBoundingClientRect();\n\t\tconst bottomRect = bottom.getBoundingClientRect();\n\t\tconst rect = offsetIframe(\n\t\t\tnew window.DOMRect(\n\t\t\t\ttopRect.left,\n\t\t\t\ttopRect.top,\n\t\t\t\ttopRect.width,\n\t\t\t\tbottomRect.bottom - topRect.top\n\t\t\t),\n\t\t\ttop.ownerDocument,\n\t\t\tcontainer\n\t\t);\n\n\t\tif ( shouldAnchorIncludePadding ) {\n\t\t\treturn rect;\n\t\t}\n\n\t\treturn withoutPadding( rect, anchorRef );\n\t}\n\n\tif ( ! anchorRefFallback.current ) {\n\t\treturn;\n\t}\n\n\tconst { parentNode } = anchorRefFallback.current;\n\tconst rect = offsetIframe(\n\t\tparentNode.getBoundingClientRect(),\n\t\tparentNode.ownerDocument,\n\t\tcontainer\n\t);\n\n\tif ( shouldAnchorIncludePadding ) {\n\t\treturn rect;\n\t}\n\n\treturn withoutPadding( rect, parentNode );\n}\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nfunction withoutPadding( rect, element ) {\n\tconst {\n\t\tpaddingTop,\n\t\tpaddingBottom,\n\t\tpaddingLeft,\n\t\tpaddingRight,\n\t} = getComputedStyle( element );\n\tconst top = paddingTop ? parseInt( paddingTop, 10 ) : 0;\n\tconst bottom = paddingBottom ? parseInt( paddingBottom, 10 ) : 0;\n\tconst left = paddingLeft ? parseInt( paddingLeft, 10 ) : 0;\n\tconst right = paddingRight ? parseInt( paddingRight, 10 ) : 0;\n\n\treturn {\n\t\tx: rect.left + left,\n\t\ty: rect.top + top,\n\t\twidth: rect.width - left - right,\n\t\theight: rect.height - top - bottom,\n\t\tleft: rect.left + left,\n\t\tright: rect.right - right,\n\t\ttop: rect.top + top,\n\t\tbottom: rect.bottom - bottom,\n\t};\n}\n\n/**\n * Sets or removes an element attribute.\n *\n * @param {Element} element The element to modify.\n * @param {string} name The attribute name to set or remove.\n * @param {?string} value The value to set. A falsy value will remove the\n * attribute.\n */\nfunction setAttribute( element, name, value ) {\n\tif ( ! value ) {\n\t\tif ( element.hasAttribute( name ) ) {\n\t\t\telement.removeAttribute( name );\n\t\t}\n\t} else if ( element.getAttribute( name ) !== value ) {\n\t\telement.setAttribute( name, value );\n\t}\n}\n\n/**\n * Sets or removes an element style property.\n *\n * @param {Element} element The element to modify.\n * @param {string} property The property to set or remove.\n * @param {?string} value The value to set. A falsy value will remove the\n * property.\n */\nfunction setStyle( element, property, value = '' ) {\n\tif ( element.style[ property ] !== value ) {\n\t\telement.style[ property ] = value;\n\t}\n}\n\n/**\n * Sets or removes an element class.\n *\n * @param {Element} element The element to modify.\n * @param {string} name The class to set or remove.\n * @param {boolean} toggle True to set the class, false to remove.\n */\nfunction setClass( element, name, toggle ) {\n\tif ( toggle ) {\n\t\tif ( ! element.classList.contains( name ) ) {\n\t\t\telement.classList.add( name );\n\t\t}\n\t} else if ( element.classList.contains( name ) ) {\n\t\telement.classList.remove( name );\n\t}\n}\n\nfunction getAnchorDocument( anchor ) {\n\tif ( ! anchor ) {\n\t\treturn;\n\t}\n\n\tif ( anchor.endContainer ) {\n\t\treturn anchor.endContainer.ownerDocument;\n\t}\n\n\tif ( anchor.top ) {\n\t\treturn anchor.top.ownerDocument;\n\t}\n\n\treturn anchor.ownerDocument;\n}\n\nconst Popover = (\n\t{\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tisAlternate,\n\t\t// Disable reason: We generate the `...contentProps` rest as remainder\n\t\t// of props which aren't explicitly handled by this component.\n\t\t/* eslint-disable no-unused-vars */\n\t\tposition = 'bottom right',\n\t\trange,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchorRef,\n\t\tshouldAnchorIncludePadding,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\texpandOnMobile,\n\t\tanimate = true,\n\t\tonFocusOutside,\n\t\t__unstableStickyBoundaryElement,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\t__unstableObserveElement,\n\t\t__unstableBoundaryParent,\n\t\t__unstableForcePosition,\n\t\t__unstableForceXAlignment,\n\t\t__unstableEditorCanvasWrapper,\n\t\t/* eslint-enable no-unused-vars */\n\t\t...contentProps\n\t},\n\tref\n) => {\n\tconst anchorRefFallback = useRef( null );\n\tconst contentRef = useRef( null );\n\tconst containerRef = useRef();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst [ animateOrigin, setAnimateOrigin ] = useState();\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst [ containerResizeListener, contentSize ] = useResizeObserver();\n\tnoArrow = isExpanded || noArrow;\n\n\tuseLayoutEffect( () => {\n\t\tif ( isExpanded ) {\n\t\t\tsetClass( containerRef.current, 'is-without-arrow', noArrow );\n\t\t\tsetClass( containerRef.current, 'is-alternate', isAlternate );\n\t\t\tsetAttribute( containerRef.current, 'data-x-axis' );\n\t\t\tsetAttribute( containerRef.current, 'data-y-axis' );\n\t\t\tsetStyle( containerRef.current, 'top' );\n\t\t\tsetStyle( containerRef.current, 'left' );\n\t\t\tsetStyle( contentRef.current, 'maxHeight' );\n\t\t\tsetStyle( contentRef.current, 'maxWidth' );\n\t\t\treturn;\n\t\t}\n\n\t\tconst refresh = () => {\n\t\t\tif ( ! containerRef.current || ! contentRef.current ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet anchor = computeAnchorRect(\n\t\t\t\tanchorRefFallback,\n\t\t\t\tanchorRect,\n\t\t\t\tgetAnchorRect,\n\t\t\t\tanchorRef,\n\t\t\t\tshouldAnchorIncludePadding,\n\t\t\t\tcontainerRef.current\n\t\t\t);\n\n\t\t\tif ( ! anchor ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { offsetParent, ownerDocument } = containerRef.current;\n\n\t\t\tlet relativeOffsetTop = 0;\n\n\t\t\t// If there is a positioned ancestor element that is not the body,\n\t\t\t// subtract the position from the anchor rect. If the position of\n\t\t\t// the popover is fixed, the offset parent is null or the body\n\t\t\t// element, in which case the position is relative to the viewport.\n\t\t\t// See https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent\n\t\t\tif ( offsetParent && offsetParent !== ownerDocument.body ) {\n\t\t\t\tconst offsetParentRect = offsetParent.getBoundingClientRect();\n\n\t\t\t\trelativeOffsetTop = offsetParentRect.top;\n\t\t\t\tanchor = new window.DOMRect(\n\t\t\t\t\tanchor.left - offsetParentRect.left,\n\t\t\t\t\tanchor.top - offsetParentRect.top,\n\t\t\t\t\tanchor.width,\n\t\t\t\t\tanchor.height\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tlet boundaryElement;\n\t\t\tif ( __unstableBoundaryParent ) {\n\t\t\t\tboundaryElement = containerRef.current.parentElement;\n\t\t\t}\n\n\t\t\tconst usedContentSize = ! contentSize.height\n\t\t\t\t? contentRef.current.getBoundingClientRect()\n\t\t\t\t: contentSize;\n\n\t\t\tconst {\n\t\t\t\tpopoverTop,\n\t\t\t\tpopoverLeft,\n\t\t\t\txAxis,\n\t\t\t\tyAxis,\n\t\t\t\tcontentHeight,\n\t\t\t\tcontentWidth,\n\t\t\t} = computePopoverPosition(\n\t\t\t\tanchor,\n\t\t\t\tusedContentSize,\n\t\t\t\tposition,\n\t\t\t\t__unstableStickyBoundaryElement,\n\t\t\t\tcontainerRef.current,\n\t\t\t\trelativeOffsetTop,\n\t\t\t\tboundaryElement,\n\t\t\t\t__unstableForcePosition,\n\t\t\t\t__unstableForceXAlignment,\n\t\t\t\t__unstableEditorCanvasWrapper\n\t\t\t);\n\n\t\t\tif (\n\t\t\t\ttypeof popoverTop === 'number' &&\n\t\t\t\ttypeof popoverLeft === 'number'\n\t\t\t) {\n\t\t\t\tsetStyle( containerRef.current, 'top', popoverTop + 'px' );\n\t\t\t\tsetStyle( containerRef.current, 'left', popoverLeft + 'px' );\n\t\t\t}\n\n\t\t\tsetClass(\n\t\t\t\tcontainerRef.current,\n\t\t\t\t'is-without-arrow',\n\t\t\t\tnoArrow || ( xAxis === 'center' && yAxis === 'middle' )\n\t\t\t);\n\t\t\tsetClass( containerRef.current, 'is-alternate', isAlternate );\n\t\t\tsetAttribute( containerRef.current, 'data-x-axis', xAxis );\n\t\t\tsetAttribute( containerRef.current, 'data-y-axis', yAxis );\n\t\t\tsetStyle(\n\t\t\t\tcontentRef.current,\n\t\t\t\t'maxHeight',\n\t\t\t\ttypeof contentHeight === 'number' ? contentHeight + 'px' : ''\n\t\t\t);\n\t\t\tsetStyle(\n\t\t\t\tcontentRef.current,\n\t\t\t\t'maxWidth',\n\t\t\t\ttypeof contentWidth === 'number' ? contentWidth + 'px' : ''\n\t\t\t);\n\n\t\t\t// Compute the animation position.\n\t\t\tconst yAxisMapping = {\n\t\t\t\ttop: 'bottom',\n\t\t\t\tbottom: 'top',\n\t\t\t};\n\t\t\tconst xAxisMapping = {\n\t\t\t\tleft: 'right',\n\t\t\t\tright: 'left',\n\t\t\t};\n\t\t\tconst animateYAxis = yAxisMapping[ yAxis ] || 'middle';\n\t\t\tconst animateXAxis = xAxisMapping[ xAxis ] || 'center';\n\n\t\t\tsetAnimateOrigin( animateXAxis + ' ' + animateYAxis );\n\t\t};\n\n\t\trefresh();\n\n\t\tconst { ownerDocument } = containerRef.current;\n\t\tconst { defaultView } = ownerDocument;\n\n\t\t/*\n\t\t * There are sometimes we need to reposition or resize the popover that\n\t\t * are not handled by the resize/scroll window events (i.e. CSS changes\n\t\t * in the layout that changes the position of the anchor).\n\t\t *\n\t\t * For these situations, we refresh the popover every 0.5s\n\t\t */\n\t\tconst intervalHandle = defaultView.setInterval( refresh, 500 );\n\n\t\tlet rafId;\n\n\t\tconst refreshOnAnimationFrame = () => {\n\t\t\tdefaultView.cancelAnimationFrame( rafId );\n\t\t\trafId = defaultView.requestAnimationFrame( refresh );\n\t\t};\n\n\t\t// Sometimes a click trigger a layout change that affects the popover\n\t\t// position. This is an opportunity to immediately refresh rather than\n\t\t// at the interval.\n\t\tdefaultView.addEventListener( 'click', refreshOnAnimationFrame );\n\t\tdefaultView.addEventListener( 'resize', refresh );\n\t\tdefaultView.addEventListener( 'scroll', refresh, true );\n\n\t\tconst anchorDocument = getAnchorDocument( anchorRef );\n\n\t\t// If the anchor is within an iframe, the popover position also needs\n\t\t// to refrest when the iframe content is scrolled or resized.\n\t\tif ( anchorDocument && anchorDocument !== ownerDocument ) {\n\t\t\tanchorDocument.defaultView.addEventListener( 'resize', refresh );\n\t\t\tanchorDocument.defaultView.addEventListener(\n\t\t\t\t'scroll',\n\t\t\t\trefresh,\n\t\t\t\ttrue\n\t\t\t);\n\t\t}\n\n\t\tlet observer;\n\n\t\tif ( __unstableObserveElement ) {\n\t\t\tobserver = new defaultView.MutationObserver( refresh );\n\t\t\tobserver.observe( __unstableObserveElement, { attributes: true } );\n\t\t}\n\n\t\treturn () => {\n\t\t\tdefaultView.clearInterval( intervalHandle );\n\t\t\tdefaultView.removeEventListener( 'resize', refresh );\n\t\t\tdefaultView.removeEventListener( 'scroll', refresh, true );\n\t\t\tdefaultView.removeEventListener( 'click', refreshOnAnimationFrame );\n\t\t\tdefaultView.cancelAnimationFrame( rafId );\n\n\t\t\tif ( anchorDocument && anchorDocument !== ownerDocument ) {\n\t\t\t\tanchorDocument.defaultView?.removeEventListener(\n\t\t\t\t\t'resize',\n\t\t\t\t\trefresh\n\t\t\t\t);\n\t\t\t\tanchorDocument.defaultView?.removeEventListener(\n\t\t\t\t\t'scroll',\n\t\t\t\t\trefresh,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif ( observer ) {\n\t\t\t\tobserver.disconnect();\n\t\t\t}\n\t\t};\n\t}, [\n\t\tisExpanded,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tanchorRef,\n\t\tshouldAnchorIncludePadding,\n\t\tposition,\n\t\tcontentSize,\n\t\t__unstableStickyBoundaryElement,\n\t\t__unstableObserveElement,\n\t\t__unstableBoundaryParent,\n\t] );\n\n\tconst onDialogClose = ( type, event ) => {\n\t\t// Ideally the popover should have just a single onClose prop and\n\t\t// not three props that potentially do the same thing.\n\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\tonFocusOutside( event );\n\t\t} else if ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst mergedRefs = useMergeRefs( [ containerRef, dialogRef, ref ] );\n\n\t/** @type {false | string} */\n\tconst animateClassName =\n\t\tBoolean( animate && animateOrigin ) &&\n\t\tgetAnimateClassName( {\n\t\t\ttype: 'appear',\n\t\t\torigin: animateOrigin,\n\t\t} );\n\n\t// Disable reason: We care to capture the _bubbled_ events from inputs\n\t// within popover as inferring close intent.\n\n\tlet content = (\n\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-popover',\n\t\t\t\tclassName,\n\t\t\t\tanimateClassName,\n\t\t\t\t{\n\t\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t\t'is-without-arrow': noArrow,\n\t\t\t\t\t'is-alternate': isAlternate,\n\t\t\t\t}\n\t\t\t) }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedRefs }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex=\"-1\"\n\t\t>\n\t\t\t{ isExpanded && <ScrollLock /> }\n\t\t\t{ isExpanded && (\n\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-popover__close\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div ref={ contentRef } className=\"components-popover__content\">\n\t\t\t\t<div style={ { position: 'relative' } }>\n\t\t\t\t\t{ containerResizeListener }\n\t\t\t\t\t{ children }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n\n\tif ( slot.ref ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t}\n\n\tif ( anchorRef || anchorRect ) {\n\t\treturn content;\n\t}\n\n\treturn <span ref={ anchorRefFallback }>{ content }</span>;\n};\n\nconst PopoverContainer = forwardRef( Popover );\n\nfunction PopoverSlot( { name = SLOT_NAME }, ref ) {\n\treturn (\n\t\t<Slot\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nPopoverContainer.Slot = forwardRef( PopoverSlot );\nPopoverContainer.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default PopoverContainer;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/popover/index.js"],"names":["classnames","useRef","useState","useLayoutEffect","forwardRef","createContext","useContext","getRectangleFromRange","useViewportMatch","useResizeObserver","useMergeRefs","__experimentalUseDialog","useDialog","close","computePopoverPosition","offsetIframe","Button","ScrollLock","Slot","Fill","useSlot","getAnimateClassName","SLOT_NAME","slotNameContext","computeAnchorRect","anchorRefFallback","anchorRect","getAnchorRect","anchorRef","container","current","rect","ownerDocument","window","Range","Element","DOMRect","cloneRange","endContainer","getBoundingClientRect","top","bottom","topRect","bottomRect","left","width","parentNode","setAttribute","element","name","value","hasAttribute","removeAttribute","getAttribute","setStyle","property","style","setClass","toggle","classList","contains","add","remove","getAnchorDocument","anchor","Popover","ref","headerTitle","onClose","children","className","noArrow","isAlternate","position","range","focusOnMount","expandOnMobile","animate","onFocusOutside","__unstableStickyBoundaryElement","__unstableSlotName","__unstableObserveElement","__unstableBoundaryParent","__unstableForcePosition","__unstableForceXAlignment","__unstableEditorCanvasWrapper","contentProps","contentRef","containerRef","isMobileViewport","animateOrigin","setAnimateOrigin","slotName","slot","isExpanded","containerResizeListener","contentSize","refresh","offsetParent","relativeOffsetTop","body","offsetParentRect","height","boundaryElement","parentElement","usedContentSize","popoverTop","popoverLeft","xAxis","yAxis","contentHeight","contentWidth","yAxisMapping","xAxisMapping","right","animateYAxis","animateXAxis","defaultView","intervalHandle","setInterval","rafId","refreshOnAnimationFrame","cancelAnimationFrame","requestAnimationFrame","addEventListener","anchorDocument","observer","MutationObserver","observe","attributes","clearInterval","removeEventListener","disconnect","onDialogClose","type","event","dialogRef","dialogProps","__unstableOnClose","mergedRefs","animateClassName","Boolean","origin","content","PopoverContainer","PopoverSlot","__unstableSlotNameProvider","Provider"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseRef,\n\tuseState,\n\tuseLayoutEffect,\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n} from '@wordpress/element';\nimport { getRectangleFromRange } from '@wordpress/dom';\nimport {\n\tuseViewportMatch,\n\tuseResizeObserver,\n\tuseMergeRefs,\n\t__experimentalUseDialog as useDialog,\n} from '@wordpress/compose';\nimport { close } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { computePopoverPosition, offsetIframe } from './utils';\nimport Button from '../button';\nimport ScrollLock from '../scroll-lock';\nimport { Slot, Fill, useSlot } from '../slot-fill';\nimport { getAnimateClassName } from '../animate';\n\n/**\n * Name of slot in which popover should fill.\n *\n * @type {string}\n */\nconst SLOT_NAME = 'Popover';\n\nconst slotNameContext = createContext();\n\nfunction computeAnchorRect(\n\tanchorRefFallback,\n\tanchorRect,\n\tgetAnchorRect,\n\tanchorRef = false,\n\tcontainer\n) {\n\tif ( anchorRect ) {\n\t\treturn anchorRect;\n\t}\n\n\tif ( getAnchorRect ) {\n\t\tif ( ! anchorRefFallback.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst rect = getAnchorRect( anchorRefFallback.current );\n\t\treturn offsetIframe(\n\t\t\trect,\n\t\t\trect.ownerDocument || anchorRefFallback.current.ownerDocument,\n\t\t\tcontainer\n\t\t);\n\t}\n\n\tif ( anchorRef !== false ) {\n\t\tif (\n\t\t\t! anchorRef ||\n\t\t\t! window.Range ||\n\t\t\t! window.Element ||\n\t\t\t! window.DOMRect\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Duck-type to check if `anchorRef` is an instance of Range\n\t\t// `anchorRef instanceof window.Range` checks will break across document boundaries\n\t\t// such as in an iframe.\n\t\tif ( typeof anchorRef?.cloneRange === 'function' ) {\n\t\t\treturn offsetIframe(\n\t\t\t\tgetRectangleFromRange( anchorRef ),\n\t\t\t\tanchorRef.endContainer.ownerDocument,\n\t\t\t\tcontainer\n\t\t\t);\n\t\t}\n\n\t\t// Duck-type to check if `anchorRef` is an instance of Element\n\t\t// `anchorRef instanceof window.Element` checks will break across document boundaries\n\t\t// such as in an iframe.\n\t\tif ( typeof anchorRef?.getBoundingClientRect === 'function' ) {\n\t\t\tconst rect = offsetIframe(\n\t\t\t\tanchorRef.getBoundingClientRect(),\n\t\t\t\tanchorRef.ownerDocument,\n\t\t\t\tcontainer\n\t\t\t);\n\n\t\t\treturn rect;\n\t\t}\n\n\t\tconst { top, bottom } = anchorRef;\n\t\tconst topRect = top.getBoundingClientRect();\n\t\tconst bottomRect = bottom.getBoundingClientRect();\n\n\t\treturn offsetIframe(\n\t\t\tnew window.DOMRect(\n\t\t\t\ttopRect.left,\n\t\t\t\ttopRect.top,\n\t\t\t\ttopRect.width,\n\t\t\t\tbottomRect.bottom - topRect.top\n\t\t\t),\n\t\t\ttop.ownerDocument,\n\t\t\tcontainer\n\t\t);\n\t}\n\n\tif ( ! anchorRefFallback.current ) {\n\t\treturn;\n\t}\n\n\tconst { parentNode } = anchorRefFallback.current;\n\n\treturn offsetIframe(\n\t\tparentNode.getBoundingClientRect(),\n\t\tparentNode.ownerDocument,\n\t\tcontainer\n\t);\n}\n\n/**\n * Sets or removes an element attribute.\n *\n * @param {Element} element The element to modify.\n * @param {string} name The attribute name to set or remove.\n * @param {?string} value The value to set. A falsy value will remove the\n * attribute.\n */\nfunction setAttribute( element, name, value ) {\n\tif ( ! value ) {\n\t\tif ( element.hasAttribute( name ) ) {\n\t\t\telement.removeAttribute( name );\n\t\t}\n\t} else if ( element.getAttribute( name ) !== value ) {\n\t\telement.setAttribute( name, value );\n\t}\n}\n\n/**\n * Sets or removes an element style property.\n *\n * @param {Element} element The element to modify.\n * @param {string} property The property to set or remove.\n * @param {?string} value The value to set. A falsy value will remove the\n * property.\n */\nfunction setStyle( element, property, value = '' ) {\n\tif ( element.style[ property ] !== value ) {\n\t\telement.style[ property ] = value;\n\t}\n}\n\n/**\n * Sets or removes an element class.\n *\n * @param {Element} element The element to modify.\n * @param {string} name The class to set or remove.\n * @param {boolean} toggle True to set the class, false to remove.\n */\nfunction setClass( element, name, toggle ) {\n\tif ( toggle ) {\n\t\tif ( ! element.classList.contains( name ) ) {\n\t\t\telement.classList.add( name );\n\t\t}\n\t} else if ( element.classList.contains( name ) ) {\n\t\telement.classList.remove( name );\n\t}\n}\n\nfunction getAnchorDocument( anchor ) {\n\tif ( ! anchor ) {\n\t\treturn;\n\t}\n\n\tif ( anchor.endContainer ) {\n\t\treturn anchor.endContainer.ownerDocument;\n\t}\n\n\tif ( anchor.top ) {\n\t\treturn anchor.top.ownerDocument;\n\t}\n\n\treturn anchor.ownerDocument;\n}\n\nconst Popover = (\n\t{\n\t\theaderTitle,\n\t\tonClose,\n\t\tchildren,\n\t\tclassName,\n\t\tnoArrow = true,\n\t\tisAlternate,\n\t\t// Disable reason: We generate the `...contentProps` rest as remainder\n\t\t// of props which aren't explicitly handled by this component.\n\t\t/* eslint-disable no-unused-vars */\n\t\tposition = 'bottom right',\n\t\trange,\n\t\tfocusOnMount = 'firstElement',\n\t\tanchorRef,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\texpandOnMobile,\n\t\tanimate = true,\n\t\tonFocusOutside,\n\t\t__unstableStickyBoundaryElement,\n\t\t__unstableSlotName = SLOT_NAME,\n\t\t__unstableObserveElement,\n\t\t__unstableBoundaryParent,\n\t\t__unstableForcePosition,\n\t\t__unstableForceXAlignment,\n\t\t__unstableEditorCanvasWrapper,\n\t\t/* eslint-enable no-unused-vars */\n\t\t...contentProps\n\t},\n\tref\n) => {\n\tconst anchorRefFallback = useRef( null );\n\tconst contentRef = useRef( null );\n\tconst containerRef = useRef();\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\tconst [ animateOrigin, setAnimateOrigin ] = useState();\n\tconst slotName = useContext( slotNameContext ) || __unstableSlotName;\n\tconst slot = useSlot( slotName );\n\tconst isExpanded = expandOnMobile && isMobileViewport;\n\tconst [ containerResizeListener, contentSize ] = useResizeObserver();\n\tnoArrow = isExpanded || noArrow;\n\n\tuseLayoutEffect( () => {\n\t\tif ( isExpanded ) {\n\t\t\tsetClass( containerRef.current, 'is-without-arrow', noArrow );\n\t\t\tsetClass( containerRef.current, 'is-alternate', isAlternate );\n\t\t\tsetAttribute( containerRef.current, 'data-x-axis' );\n\t\t\tsetAttribute( containerRef.current, 'data-y-axis' );\n\t\t\tsetStyle( containerRef.current, 'top' );\n\t\t\tsetStyle( containerRef.current, 'left' );\n\t\t\tsetStyle( contentRef.current, 'maxHeight' );\n\t\t\tsetStyle( contentRef.current, 'maxWidth' );\n\t\t\treturn;\n\t\t}\n\n\t\tconst refresh = () => {\n\t\t\tif ( ! containerRef.current || ! contentRef.current ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet anchor = computeAnchorRect(\n\t\t\t\tanchorRefFallback,\n\t\t\t\tanchorRect,\n\t\t\t\tgetAnchorRect,\n\t\t\t\tanchorRef,\n\t\t\t\tcontainerRef.current\n\t\t\t);\n\n\t\t\tif ( ! anchor ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { offsetParent, ownerDocument } = containerRef.current;\n\n\t\t\tlet relativeOffsetTop = 0;\n\n\t\t\t// If there is a positioned ancestor element that is not the body,\n\t\t\t// subtract the position from the anchor rect. If the position of\n\t\t\t// the popover is fixed, the offset parent is null or the body\n\t\t\t// element, in which case the position is relative to the viewport.\n\t\t\t// See https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent\n\t\t\tif ( offsetParent && offsetParent !== ownerDocument.body ) {\n\t\t\t\tconst offsetParentRect = offsetParent.getBoundingClientRect();\n\n\t\t\t\trelativeOffsetTop = offsetParentRect.top;\n\t\t\t\tanchor = new window.DOMRect(\n\t\t\t\t\tanchor.left - offsetParentRect.left,\n\t\t\t\t\tanchor.top - offsetParentRect.top,\n\t\t\t\t\tanchor.width,\n\t\t\t\t\tanchor.height\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tlet boundaryElement;\n\t\t\tif ( __unstableBoundaryParent ) {\n\t\t\t\tboundaryElement = containerRef.current.parentElement;\n\t\t\t}\n\n\t\t\tconst usedContentSize = ! contentSize.height\n\t\t\t\t? contentRef.current.getBoundingClientRect()\n\t\t\t\t: contentSize;\n\n\t\t\tconst {\n\t\t\t\tpopoverTop,\n\t\t\t\tpopoverLeft,\n\t\t\t\txAxis,\n\t\t\t\tyAxis,\n\t\t\t\tcontentHeight,\n\t\t\t\tcontentWidth,\n\t\t\t} = computePopoverPosition(\n\t\t\t\tanchor,\n\t\t\t\tusedContentSize,\n\t\t\t\tposition,\n\t\t\t\t__unstableStickyBoundaryElement,\n\t\t\t\tcontainerRef.current,\n\t\t\t\trelativeOffsetTop,\n\t\t\t\tboundaryElement,\n\t\t\t\t__unstableForcePosition,\n\t\t\t\t__unstableForceXAlignment,\n\t\t\t\t__unstableEditorCanvasWrapper\n\t\t\t);\n\n\t\t\tif (\n\t\t\t\ttypeof popoverTop === 'number' &&\n\t\t\t\ttypeof popoverLeft === 'number'\n\t\t\t) {\n\t\t\t\tsetStyle( containerRef.current, 'top', popoverTop + 'px' );\n\t\t\t\tsetStyle( containerRef.current, 'left', popoverLeft + 'px' );\n\t\t\t}\n\n\t\t\tsetClass(\n\t\t\t\tcontainerRef.current,\n\t\t\t\t'is-without-arrow',\n\t\t\t\tnoArrow || ( xAxis === 'center' && yAxis === 'middle' )\n\t\t\t);\n\t\t\tsetClass( containerRef.current, 'is-alternate', isAlternate );\n\t\t\tsetAttribute( containerRef.current, 'data-x-axis', xAxis );\n\t\t\tsetAttribute( containerRef.current, 'data-y-axis', yAxis );\n\t\t\tsetStyle(\n\t\t\t\tcontentRef.current,\n\t\t\t\t'maxHeight',\n\t\t\t\ttypeof contentHeight === 'number' ? contentHeight + 'px' : ''\n\t\t\t);\n\t\t\tsetStyle(\n\t\t\t\tcontentRef.current,\n\t\t\t\t'maxWidth',\n\t\t\t\ttypeof contentWidth === 'number' ? contentWidth + 'px' : ''\n\t\t\t);\n\n\t\t\t// Compute the animation position.\n\t\t\tconst yAxisMapping = {\n\t\t\t\ttop: 'bottom',\n\t\t\t\tbottom: 'top',\n\t\t\t};\n\t\t\tconst xAxisMapping = {\n\t\t\t\tleft: 'right',\n\t\t\t\tright: 'left',\n\t\t\t};\n\t\t\tconst animateYAxis = yAxisMapping[ yAxis ] || 'middle';\n\t\t\tconst animateXAxis = xAxisMapping[ xAxis ] || 'center';\n\n\t\t\tsetAnimateOrigin( animateXAxis + ' ' + animateYAxis );\n\t\t};\n\n\t\trefresh();\n\n\t\tconst { ownerDocument } = containerRef.current;\n\t\tconst { defaultView } = ownerDocument;\n\n\t\t/*\n\t\t * There are sometimes we need to reposition or resize the popover that\n\t\t * are not handled by the resize/scroll window events (i.e. CSS changes\n\t\t * in the layout that changes the position of the anchor).\n\t\t *\n\t\t * For these situations, we refresh the popover every 0.5s\n\t\t */\n\t\tconst intervalHandle = defaultView.setInterval( refresh, 500 );\n\n\t\tlet rafId;\n\n\t\tconst refreshOnAnimationFrame = () => {\n\t\t\tdefaultView.cancelAnimationFrame( rafId );\n\t\t\trafId = defaultView.requestAnimationFrame( refresh );\n\t\t};\n\n\t\t// Sometimes a click trigger a layout change that affects the popover\n\t\t// position. This is an opportunity to immediately refresh rather than\n\t\t// at the interval.\n\t\tdefaultView.addEventListener( 'click', refreshOnAnimationFrame );\n\t\tdefaultView.addEventListener( 'resize', refresh );\n\t\tdefaultView.addEventListener( 'scroll', refresh, true );\n\n\t\tconst anchorDocument = getAnchorDocument( anchorRef );\n\n\t\t// If the anchor is within an iframe, the popover position also needs\n\t\t// to refrest when the iframe content is scrolled or resized.\n\t\tif ( anchorDocument && anchorDocument !== ownerDocument ) {\n\t\t\tanchorDocument.defaultView.addEventListener( 'resize', refresh );\n\t\t\tanchorDocument.defaultView.addEventListener(\n\t\t\t\t'scroll',\n\t\t\t\trefresh,\n\t\t\t\ttrue\n\t\t\t);\n\t\t}\n\n\t\tlet observer;\n\n\t\tif ( __unstableObserveElement ) {\n\t\t\tobserver = new defaultView.MutationObserver( refresh );\n\t\t\tobserver.observe( __unstableObserveElement, { attributes: true } );\n\t\t}\n\n\t\treturn () => {\n\t\t\tdefaultView.clearInterval( intervalHandle );\n\t\t\tdefaultView.removeEventListener( 'resize', refresh );\n\t\t\tdefaultView.removeEventListener( 'scroll', refresh, true );\n\t\t\tdefaultView.removeEventListener( 'click', refreshOnAnimationFrame );\n\t\t\tdefaultView.cancelAnimationFrame( rafId );\n\n\t\t\tif ( anchorDocument && anchorDocument !== ownerDocument ) {\n\t\t\t\tanchorDocument.defaultView?.removeEventListener(\n\t\t\t\t\t'resize',\n\t\t\t\t\trefresh\n\t\t\t\t);\n\t\t\t\tanchorDocument.defaultView?.removeEventListener(\n\t\t\t\t\t'scroll',\n\t\t\t\t\trefresh,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif ( observer ) {\n\t\t\t\tobserver.disconnect();\n\t\t\t}\n\t\t};\n\t}, [\n\t\tisExpanded,\n\t\tanchorRect,\n\t\tgetAnchorRect,\n\t\tanchorRef,\n\t\tposition,\n\t\tcontentSize,\n\t\t__unstableStickyBoundaryElement,\n\t\t__unstableObserveElement,\n\t\t__unstableBoundaryParent,\n\t] );\n\n\tconst onDialogClose = ( type, event ) => {\n\t\t// Ideally the popover should have just a single onClose prop and\n\t\t// not three props that potentially do the same thing.\n\t\tif ( type === 'focus-outside' && onFocusOutside ) {\n\t\t\tonFocusOutside( event );\n\t\t} else if ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t};\n\n\tconst [ dialogRef, dialogProps ] = useDialog( {\n\t\tfocusOnMount,\n\t\t__unstableOnClose: onDialogClose,\n\t\tonClose: onDialogClose,\n\t} );\n\n\tconst mergedRefs = useMergeRefs( [ containerRef, dialogRef, ref ] );\n\n\t/** @type {false | string} */\n\tconst animateClassName =\n\t\tBoolean( animate && animateOrigin ) &&\n\t\tgetAnimateClassName( {\n\t\t\ttype: 'appear',\n\t\t\torigin: animateOrigin,\n\t\t} );\n\n\t// Disable reason: We care to capture the _bubbled_ events from inputs\n\t// within popover as inferring close intent.\n\n\tlet content = (\n\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-popover',\n\t\t\t\tclassName,\n\t\t\t\tanimateClassName,\n\t\t\t\t{\n\t\t\t\t\t'is-expanded': isExpanded,\n\t\t\t\t\t'is-without-arrow': noArrow,\n\t\t\t\t\t'is-alternate': isAlternate,\n\t\t\t\t}\n\t\t\t) }\n\t\t\t{ ...contentProps }\n\t\t\tref={ mergedRefs }\n\t\t\t{ ...dialogProps }\n\t\t\ttabIndex=\"-1\"\n\t\t>\n\t\t\t{ isExpanded && <ScrollLock /> }\n\t\t\t{ isExpanded && (\n\t\t\t\t<div className=\"components-popover__header\">\n\t\t\t\t\t<span className=\"components-popover__header-title\">\n\t\t\t\t\t\t{ headerTitle }\n\t\t\t\t\t</span>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"components-popover__close\"\n\t\t\t\t\t\ticon={ close }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<div ref={ contentRef } className=\"components-popover__content\">\n\t\t\t\t<div style={ { position: 'relative' } }>\n\t\t\t\t\t{ containerResizeListener }\n\t\t\t\t\t{ children }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n\n\tif ( slot.ref ) {\n\t\tcontent = <Fill name={ slotName }>{ content }</Fill>;\n\t}\n\n\tif ( anchorRef || anchorRect ) {\n\t\treturn content;\n\t}\n\n\treturn <span ref={ anchorRefFallback }>{ content }</span>;\n};\n\nconst PopoverContainer = forwardRef( Popover );\n\nfunction PopoverSlot( { name = SLOT_NAME }, ref ) {\n\treturn (\n\t\t<Slot\n\t\t\tbubblesVirtually\n\t\t\tname={ name }\n\t\t\tclassName=\"popover-slot\"\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nPopoverContainer.Slot = forwardRef( PopoverSlot );\nPopoverContainer.__unstableSlotNameProvider = slotNameContext.Provider;\n\nexport default PopoverContainer;\n"]}
|
|
@@ -27,7 +27,7 @@ function useUniqueId(idProp) {
|
|
|
27
27
|
return idProp || id;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
function
|
|
30
|
+
function UnforwardedSelectControl(_ref, ref) {
|
|
31
31
|
let {
|
|
32
32
|
className,
|
|
33
33
|
disabled = false,
|
|
@@ -129,7 +129,33 @@ function SelectControl(_ref, ref) {
|
|
|
129
129
|
}))));
|
|
130
130
|
/* eslint-enable jsx-a11y/no-onchange */
|
|
131
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* `SelectControl` allows users to select from a single or multiple option menu.
|
|
134
|
+
* It functions as a wrapper around the browser's native `<select>` element.
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* import { SelectControl } from '@wordpress/components';
|
|
138
|
+
* import { useState } from '@wordpress/element';
|
|
139
|
+
*
|
|
140
|
+
* const MySelectControl = () => {
|
|
141
|
+
* const [ size, setSize ] = useState( '50%' );
|
|
142
|
+
*
|
|
143
|
+
* return (
|
|
144
|
+
* <SelectControl
|
|
145
|
+
* label="Size"
|
|
146
|
+
* value={ size }
|
|
147
|
+
* options={ [
|
|
148
|
+
* { label: 'Big', value: '100%' },
|
|
149
|
+
* { label: 'Medium', value: '50%' },
|
|
150
|
+
* { label: 'Small', value: '25%' },
|
|
151
|
+
* ] }
|
|
152
|
+
* onChange={ setSize }
|
|
153
|
+
* />
|
|
154
|
+
* );
|
|
155
|
+
* };
|
|
156
|
+
*/
|
|
157
|
+
|
|
132
158
|
|
|
133
|
-
const
|
|
134
|
-
export default
|
|
159
|
+
export const SelectControl = forwardRef(UnforwardedSelectControl);
|
|
160
|
+
export default SelectControl;
|
|
135
161
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/select-control/index.tsx"],"names":["isEmpty","noop","classNames","useInstanceId","useState","forwardRef","Icon","chevronDown","BaseControl","InputBase","Select","DownArrowWrapper","useUniqueId","idProp","instanceId","SelectControl","id","ref","className","disabled","help","hideLabelFromVision","label","multiple","onBlur","onChange","onFocus","options","size","value","valueProp","labelPosition","children","prefix","suffix","props","isFocused","setIsFocused","helpId","undefined","handleOnBlur","event","handleOnFocus","handleOnChange","selectedOptions","Array","from","target","filter","selected","newValues","map","classes","option","index","key"
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/select-control/index.tsx"],"names":["isEmpty","noop","classNames","useInstanceId","useState","forwardRef","Icon","chevronDown","BaseControl","InputBase","Select","DownArrowWrapper","useUniqueId","idProp","instanceId","SelectControl","id","UnforwardedSelectControl","ref","className","disabled","help","hideLabelFromVision","label","multiple","onBlur","onChange","onFocus","options","size","value","valueProp","labelPosition","children","prefix","suffix","props","isFocused","setIsFocused","helpId","undefined","handleOnBlur","event","handleOnFocus","handleOnChange","selectedOptions","Array","from","target","filter","selected","newValues","map","classes","option","index","key"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty, noop } from 'lodash';\nimport classNames from 'classnames';\nimport type { ChangeEvent, FocusEvent, ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useState, forwardRef } from '@wordpress/element';\nimport { Icon, chevronDown } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BaseControl from '../base-control';\nimport InputBase from '../input-control/input-base';\nimport { Select, DownArrowWrapper } from './styles/select-control-styles';\nimport type { WordPressComponentProps } from '../ui/context';\nimport type { SelectControlProps } from './types';\n\nfunction useUniqueId( idProp?: string ) {\n\tconst instanceId = useInstanceId( SelectControl );\n\tconst id = `inspector-select-control-${ instanceId }`;\n\n\treturn idProp || id;\n}\n\nfunction UnforwardedSelectControl(\n\t{\n\t\tclassName,\n\t\tdisabled = false,\n\t\thelp,\n\t\thideLabelFromVision,\n\t\tid: idProp,\n\t\tlabel,\n\t\tmultiple = false,\n\t\tonBlur = noop,\n\t\tonChange = noop,\n\t\tonFocus = noop,\n\t\toptions = [],\n\t\tsize = 'default',\n\t\tvalue: valueProp,\n\t\tlabelPosition = 'top',\n\t\tchildren,\n\t\tprefix,\n\t\tsuffix,\n\t\t...props\n\t}: WordPressComponentProps< SelectControlProps, 'select', false >,\n\tref: ForwardedRef< HTMLSelectElement >\n) {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst id = useUniqueId( idProp );\n\tconst helpId = help ? `${ id }__help` : undefined;\n\n\t// Disable reason: A select with an onchange throws a warning.\n\tif ( isEmpty( options ) && ! children ) return null;\n\n\tconst handleOnBlur = ( event: FocusEvent< HTMLSelectElement > ) => {\n\t\tonBlur( event );\n\t\tsetIsFocused( false );\n\t};\n\n\tconst handleOnFocus = ( event: FocusEvent< HTMLSelectElement > ) => {\n\t\tonFocus( event );\n\t\tsetIsFocused( true );\n\t};\n\n\tconst handleOnChange = ( event: ChangeEvent< HTMLSelectElement > ) => {\n\t\tif ( multiple ) {\n\t\t\tconst selectedOptions = Array.from( event.target.options ).filter(\n\t\t\t\t( { selected } ) => selected\n\t\t\t);\n\t\t\tconst newValues = selectedOptions.map( ( { value } ) => value );\n\t\t\tonChange( newValues );\n\t\t\treturn;\n\t\t}\n\n\t\tonChange( event.target.value, { event } );\n\t};\n\n\tconst classes = classNames( 'components-select-control', className );\n\n\t/* eslint-disable jsx-a11y/no-onchange */\n\treturn (\n\t\t<BaseControl help={ help } id={ id }>\n\t\t\t<InputBase\n\t\t\t\tclassName={ classes }\n\t\t\t\tdisabled={ disabled }\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\tid={ id }\n\t\t\t\tisFocused={ isFocused }\n\t\t\t\tlabel={ label }\n\t\t\t\tsize={ size }\n\t\t\t\tsuffix={\n\t\t\t\t\tsuffix || (\n\t\t\t\t\t\t<DownArrowWrapper>\n\t\t\t\t\t\t\t<Icon icon={ chevronDown } size={ 18 } />\n\t\t\t\t\t\t</DownArrowWrapper>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tprefix={ prefix }\n\t\t\t\tlabelPosition={ labelPosition }\n\t\t\t>\n\t\t\t\t<Select\n\t\t\t\t\t{ ...props }\n\t\t\t\t\taria-describedby={ helpId }\n\t\t\t\t\tclassName=\"components-select-control__input\"\n\t\t\t\t\tdisabled={ disabled }\n\t\t\t\t\tid={ id }\n\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\t\tonChange={ handleOnChange }\n\t\t\t\t\tonFocus={ handleOnFocus }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tselectSize={ size }\n\t\t\t\t\tvalue={ valueProp }\n\t\t\t\t>\n\t\t\t\t\t{ children ||\n\t\t\t\t\t\toptions.map( ( option, index ) => {\n\t\t\t\t\t\t\tconst key =\n\t\t\t\t\t\t\t\toption.id ||\n\t\t\t\t\t\t\t\t`${ option.label }-${ option.value }-${ index }`;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<option\n\t\t\t\t\t\t\t\t\tkey={ key }\n\t\t\t\t\t\t\t\t\tvalue={ option.value }\n\t\t\t\t\t\t\t\t\tdisabled={ option.disabled }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ option.label }\n\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t</Select>\n\t\t\t</InputBase>\n\t\t</BaseControl>\n\t);\n\t/* eslint-enable jsx-a11y/no-onchange */\n}\n\n/**\n * `SelectControl` allows users to select from a single or multiple option menu.\n * It functions as a wrapper around the browser's native `<select>` element.\n *\n * @example\n * import { SelectControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MySelectControl = () => {\n * const [ size, setSize ] = useState( '50%' );\n *\n * return (\n * <SelectControl\n * label=\"Size\"\n * value={ size }\n * options={ [\n * { label: 'Big', value: '100%' },\n * { label: 'Medium', value: '50%' },\n * { label: 'Small', value: '25%' },\n * ] }\n * onChange={ setSize }\n * />\n * );\n * };\n */\nexport const SelectControl = forwardRef( UnforwardedSelectControl );\n\nexport default SelectControl;\n"]}
|