@wordpress/components 19.8.3 → 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 +42 -0
- package/CONTRIBUTING.md +80 -7
- package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +11 -11
- package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
- 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/heading/hook.js +1 -1
- package/build/heading/hook.js.map +1 -1
- package/build/input-control/index.js +27 -4
- 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/navigation/styles/navigation-styles.js +12 -12
- package/build/navigation/styles/navigation-styles.js.map +1 -1
- package/build/notice/index.native.js +44 -40
- package/build/notice/index.native.js.map +1 -1
- package/build/notice/list.native.js +27 -45
- package/build/notice/list.native.js.map +1 -1
- package/build/popover/index.js +6 -52
- package/build/popover/index.js.map +1 -1
- package/build/sandbox/index.js +2 -2
- package/build/sandbox/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/surface/styles.js +8 -8
- package/build/surface/styles.js.map +1 -1
- package/build/text/hook.js +5 -5
- package/build/text/hook.js.map +1 -1
- package/build/text/styles/text-mixins.native.js +1 -1
- package/build/text/styles/text-mixins.native.js.map +1 -1
- package/build/text/styles.js +7 -7
- package/build/text/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/ui/spinner/component.js +1 -1
- package/build/ui/spinner/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/utils/colors-values.js +9 -24
- package/build/utils/colors-values.js.map +1 -1
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +11 -11
- package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.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/heading/hook.js +1 -1
- package/build-module/heading/hook.js.map +1 -1
- package/build-module/input-control/index.js +24 -3
- 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/navigation/styles/navigation-styles.js +13 -13
- package/build-module/navigation/styles/navigation-styles.js.map +1 -1
- package/build-module/notice/index.native.js +45 -41
- package/build-module/notice/index.native.js.map +1 -1
- package/build-module/notice/list.native.js +28 -46
- package/build-module/notice/list.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/sandbox/index.js +2 -2
- package/build-module/sandbox/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/surface/styles.js +8 -8
- package/build-module/surface/styles.js.map +1 -1
- package/build-module/text/hook.js +5 -5
- package/build-module/text/hook.js.map +1 -1
- package/build-module/text/styles/text-mixins.native.js +2 -2
- package/build-module/text/styles/text-mixins.native.js.map +1 -1
- package/build-module/text/styles.js +7 -7
- package/build-module/text/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/ui/spinner/component.js +1 -1
- package/build-module/ui/spinner/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-module/utils/colors-values.js +19 -23
- package/build-module/utils/colors-values.js.map +1 -1
- package/build-style/style-rtl.css +24 -0
- package/build-style/style.css +24 -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 +23 -3
- package/build-types/input-control/index.d.ts.map +1 -1
- package/build-types/input-control/input-field.d.ts +1 -1
- package/build-types/input-control/input-field.d.ts.map +1 -1
- package/build-types/input-control/stories/index.d.ts +5 -5
- 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 +79 -3
- 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/build-types/utils/colors-values.d.ts +6 -146
- package/build-types/utils/colors-values.d.ts.map +1 -1
- package/package.json +17 -17
- package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.js +5 -3
- 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/heading/hook.ts +1 -1
- package/src/heading/test/__snapshots__/index.js.snap +3 -3
- package/src/input-control/README.md +3 -3
- package/src/input-control/index.tsx +23 -3
- package/src/input-control/stories/index.tsx +63 -0
- package/src/input-control/styles/input-control-styles.tsx +20 -7
- package/src/input-control/types.ts +79 -2
- 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/navigation/styles/navigation-styles.js +5 -5
- package/src/notice/index.native.js +44 -54
- package/src/notice/list.native.js +27 -51
- package/src/notice/style.native.scss +1 -0
- package/src/popover/index.js +5 -51
- package/src/query-controls/README.md +2 -2
- package/src/sandbox/index.js +2 -2
- 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 +10 -9
- package/src/select-control/test/{select-control.js → select-control.tsx} +2 -2
- package/src/select-control/types.ts +66 -1
- package/src/surface/styles.js +1 -1
- package/src/text/hook.js +1 -1
- package/src/text/styles/text-mixins.native.js +2 -2
- package/src/text/styles.js +1 -1
- package/src/text/test/__snapshots__/{index.js.snap → index.tsx.snap} +16 -0
- package/src/text/test/{index.js → index.tsx} +12 -6
- 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/toolbar-group/style.scss +20 -0
- package/src/tools-panel/test/__snapshots__/index.js.snap +2 -2
- 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/ui/spinner/component.js +1 -1
- package/src/ui/spinner/test/__snapshots__/index.js.snap +3 -3
- 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/src/utils/colors-values.js +18 -22
- package/tsconfig.json +9 -2
- 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/input-control/stories/index.js +0 -71
- 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/navigation/styles/navigation-styles.js"],"names":["isRTL","
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/navigation/styles/navigation-styles.js"],"names":["isRTL","COLORS","Button","Text","Heading","reduceMotion","rtl","space","SearchControl","NavigationUI","MenuUI","MenuBackButtonUI","MenuTitleUI","MenuTitleActionsUI","MenuTitleSearchUI","GroupTitleUI","ItemBaseUI","textAlign","ui","theme","white","gray","ItemUI","ItemIconUI","ItemBadgeUI","ItemTitleUI"],"mappings":";;;;AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,SAASA,KAAT,QAAsB,iBAAtB;AAEA;AACA;AACA;;AACA,SAASC,MAAT,QAAuB,2BAAvB;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,SAASC,IAAT,QAAqB,YAArB;AACA,SAASC,OAAT,QAAwB,eAAxB;AACA,SAASC,YAAT,EAAuBC,GAAvB,QAAkC,aAAlC;AACA,SAASC,KAAT,QAAsB,sBAAtB;AACA,OAAOC,aAAP,MAA0B,sBAA1B;AAEA,OAAO,MAAMC,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA,kDAGVF,KAAK,CAAE,CAAF,CAHK,i9MAAlB;AAOP,OAAO,MAAMG,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,kBACHH,KAAK,CAAE,CAAF,CADF,qBAEAA,KAAK,CAAE,CAAF,CAFL,mIAWCA,KAAK,CAAE,CAAF,CAXN,+EAeFA,KAAK,CAAE,CAAF,CAfH,k8MAAZ;AAmBP,OAAO,MAAMI,gBAAgB,GAAG,qBAAQT,MAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAtB;AAmBP,OAAO,MAAMU,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAjB;AAKP,OAAO,MAAMC,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,cACnBN,KAAK,CAAE,CAAF,CADc,0EAMZA,KAAK,CAAE,CAAF,CANO,ilNAAxB;AAsBP,OAAO,MAAMO,iBAAiB,GAAG,qBAAQN,aAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAvB;AA0BP,OAAO,MAAMO,YAAY,GAAG,qBAAQX,OAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,gBACTG,KAAK,CAAE,EAAF,CADI,iGAMNA,KAAK,CAAE,CAAF,CANC,eAOZ,MACXP,KAAK,KACD,GAAGO,KAAK,CAAE,CAAF,CAAO,IAAIA,KAAK,CAAE,CAAF,CAAO,IAAIA,KAAK,CAAE,CAAF,CAAO,IAAIA,KAAK,CAAE,CAAF,CAAO,EAD9D,GAED,GAAGA,KAAK,CAAE,CAAF,CAAO,IAAIA,KAAK,CAAE,CAAF,CAAO,IAAIA,KAAK,CAAE,CAAF,CAAO,IAAIA,KAAK,CACzD,CADyD,CAEtD,EAZiB,i8MAAlB;AAeP,OAAO,MAAMS,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,oIAWTT,KAAK,CAAE,CAAF,CAXI,OAWOA,KAAK,CAAE,CAAF,CAXZ,OAYlBD,GAAG,CAAE;AAAEW,EAAAA,SAAS,EAAE;AAAb,CAAF,EAAyB;AAAEA,EAAAA,SAAS,EAAE;AAAb,CAAzB,CAZe,iKAuBAhB,MAAM,CAACiB,EAAP,CAAUC,KAvBV,aAwBXlB,MAAM,CAACmB,KAxBI,wBA4BVnB,MAAM,CAACmB,KA5BG,mCAkCXnB,MAAM,CAACoB,IAAP,CAAa,GAAb,CAlCW,k8MAAhB;AAsCP,OAAO,MAAMC,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,oFAMNf,KAAK,CAAE,GAAF,CANC,OAMYA,KAAK,CAAE,CAAF,CANjB,ugNAAZ;AAcP,OAAO,MAAMgB,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,iCAELhB,KAAK,CAAE,CAAF,CAFA,i8MAAhB;AAKP,OAAO,MAAMiB,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,mBACP,MAAQxB,KAAK,KAAK,GAAL,GAAWO,KAAK,CAAE,CAAF,CADtB,oBAEN,MAAQP,KAAK,KAAKO,KAAK,CAAE,CAAF,CAAV,GAAkB,GAFzB,mCAIXA,KAAK,CAAE,CAAF,CAJM,OAIKA,KAAK,CAAE,CAAF,CAJV,4GAiBpBF,YAAY,CAAE,WAAF,CAjBQ,i8MAAjB;AAoBP,OAAO,MAAMoB,WAAW,GAAG,qBAAQtB,IAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,CACpB,MAAQH,KAAK,KAAK,oBAAL,GAA4B,qBADrB,++MAAjB","sourcesContent":["/**\n * External dependencies\n */\nimport styled from '@emotion/styled';\n\n/**\n * WordPress dependencies\n */\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { COLORS } from '../../utils/colors-values';\nimport Button from '../../button';\nimport { Text } from '../../text';\nimport { Heading } from '../../heading';\nimport { reduceMotion, rtl } from '../../utils';\nimport { space } from '../../ui/utils/space';\nimport SearchControl from '../../search-control';\n\nexport const NavigationUI = styled.div`\n\twidth: 100%;\n\tbox-sizing: border-box;\n\tpadding: 0 ${ space( 4 ) };\n\toverflow: hidden;\n`;\n\nexport const MenuUI = styled.div`\n\tmargin-top: ${ space( 6 ) };\n\tmargin-bottom: ${ space( 6 ) };\n\tdisplay: flex;\n\tflex-direction: column;\n\tul {\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\tlist-style: none;\n\t}\n\t.components-navigation__back-button {\n\t\tmargin-bottom: ${ space( 6 ) };\n\t}\n\n\t.components-navigation__group + .components-navigation__group {\n\t\tmargin-top: ${ space( 6 ) };\n\t}\n`;\n\nexport const MenuBackButtonUI = styled( Button )`\n\t&.is-tertiary {\n\t\tcolor: inherit;\n\t\topacity: 0.7;\n\n\t\t&:hover:not( :disabled ) {\n\t\t\topacity: 1;\n\t\t\tbox-shadow: none;\n\t\t\tcolor: inherit;\n\t\t}\n\n\t\t&:active:not( :disabled ) {\n\t\t\tbackground: transparent;\n\t\t\topacity: 1;\n\t\t\tcolor: inherit;\n\t\t}\n\t}\n`;\n\nexport const MenuTitleUI = styled.div`\n\toverflow: hidden;\n\twidth: 100%;\n`;\n\nexport const MenuTitleActionsUI = styled.span`\n\theight: ${ space( 6 ) }; // 24px, same height as the buttons inside\n\n\t.components-button.is-small {\n\t\tcolor: inherit;\n\t\topacity: 0.7;\n\t\tmargin-right: ${ space( 1 ) }; // Avoid hiding the focus outline\n\t\tpadding: 0;\n\n\t\t&:active:not( :disabled ) {\n\t\t\tbackground: none;\n\t\t\topacity: 1;\n\t\t\tcolor: inherit;\n\t\t}\n\t\t&:hover:not( :disabled ) {\n\t\t\tbox-shadow: none;\n\t\t\topacity: 1;\n\t\t\tcolor: inherit;\n\t\t}\n\t}\n`;\n\nexport const MenuTitleSearchUI = styled( SearchControl )`\n\tinput[type='search'].components-search-control__input {\n\t\tmargin: 0;\n\t\tbackground: #303030;\n\t\tcolor: #fff;\n\n\t\t&:focus {\n\t\t\tbackground: #434343;\n\t\t\tcolor: #fff;\n\t\t}\n\n\t\t&::placeholder {\n\t\t\tcolor: rgba( 255, 255, 255, 0.6 );\n\t\t}\n\t}\n\n\tsvg {\n\t\tfill: white;\n\t}\n\n\t.components-button.has-icon {\n\t\tpadding: 0;\n\t\tmin-width: auto;\n\t}\n`;\n\nexport const GroupTitleUI = styled( Heading )`\n\tmin-height: ${ space( 12 ) };\n\talign-items: center;\n\tcolor: inherit;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tmargin-bottom: ${ space( 2 ) };\n\tpadding: ${ () =>\n\t\tisRTL()\n\t\t\t? `${ space( 1 ) } ${ space( 4 ) } ${ space( 1 ) } ${ space( 2 ) }`\n\t\t\t: `${ space( 1 ) } ${ space( 2 ) } ${ space( 1 ) } ${ space(\n\t\t\t\t\t4\n\t\t\t ) }` };\n`;\n\nexport const ItemBaseUI = styled.li`\n\tborder-radius: 2px;\n\tcolor: inherit;\n\tmargin-bottom: 0;\n\n\t> button,\n\t> a.components-button,\n\t> a {\n\t\twidth: 100%;\n\t\tcolor: inherit;\n\t\topacity: 0.7;\n\t\tpadding: ${ space( 2 ) } ${ space( 4 ) }; /* 8px 16px */\n\t\t${ rtl( { textAlign: 'left' }, { textAlign: 'right' } ) }\n\n\t\t&:hover,\n\t\t&:focus:not( [aria-disabled='true'] ):active,\n\t\t&:active:not( [aria-disabled='true'] ):active {\n\t\t\tcolor: inherit;\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t&.is-active {\n\t\tbackground-color: ${ COLORS.ui.theme };\n\t\tcolor: ${ COLORS.white };\n\n\t\t> button,\n\t\t> a {\n\t\t\tcolor: ${ COLORS.white };\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t> svg path {\n\t\tcolor: ${ COLORS.gray[ 600 ] };\n\t}\n`;\n\nexport const ItemUI = styled.div`\n\tdisplay: flex;\n\talign-items: center;\n\theight: auto;\n\tmin-height: 40px;\n\tmargin: 0;\n\tpadding: ${ space( 1.5 ) } ${ space( 4 ) };\n\tfont-weight: 400;\n\tline-height: 20px;\n\twidth: 100%;\n\tcolor: inherit;\n\topacity: 0.7;\n`;\n\nexport const ItemIconUI = styled.span`\n\tdisplay: flex;\n\tmargin-right: ${ space( 2 ) };\n`;\n\nexport const ItemBadgeUI = styled.span`\n\tmargin-left: ${ () => ( isRTL() ? '0' : space( 2 ) ) };\n\tmargin-right: ${ () => ( isRTL() ? space( 2 ) : '0' ) };\n\tdisplay: inline-flex;\n\tpadding: ${ space( 1 ) } ${ space( 3 ) };\n\tborder-radius: 2px;\n\tanimation: fade-in 250ms ease-out;\n\n\t@keyframes fade-in {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t}\n\t\tto {\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t${ reduceMotion( 'animation' ) };\n`;\n\nexport const ItemTitleUI = styled( Text )`\n\t${ () => ( isRTL() ? 'margin-left: auto;' : 'margin-right: auto;' ) }\n\tfont-size: 14px;\n\tline-height: 20px;\n\tcolor: inherit;\n`;\n"]}
|
|
@@ -3,19 +3,20 @@ import { createElement, Fragment } from "@wordpress/element";
|
|
|
3
3
|
/**
|
|
4
4
|
* External dependencies
|
|
5
5
|
*/
|
|
6
|
-
import { Animated, Easing, Text, TouchableWithoutFeedback, View,
|
|
6
|
+
import { Animated, Easing, Text, TouchableWithoutFeedback, View, useWindowDimensions } from 'react-native';
|
|
7
7
|
import { BlurView } from '@react-native-community/blur';
|
|
8
8
|
/**
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import { useEffect, useRef,
|
|
12
|
+
import { useEffect, useRef, Platform } from '@wordpress/element';
|
|
13
13
|
import { usePreferredColorSchemeStyle } from '@wordpress/compose';
|
|
14
14
|
/**
|
|
15
15
|
* Internal dependencies
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import styles from './style.scss';
|
|
19
|
+
const HIDE_TIMER = 3000;
|
|
19
20
|
|
|
20
21
|
const Notice = _ref => {
|
|
21
22
|
let {
|
|
@@ -24,66 +25,69 @@ const Notice = _ref => {
|
|
|
24
25
|
id,
|
|
25
26
|
status
|
|
26
27
|
} = _ref;
|
|
27
|
-
const
|
|
28
|
-
|
|
28
|
+
const {
|
|
29
|
+
width
|
|
30
|
+
} = useWindowDimensions();
|
|
29
31
|
const animationValue = useRef(new Animated.Value(0)).current;
|
|
30
32
|
const timer = useRef(null);
|
|
31
|
-
const isIOS = Platform.OS === 'ios';
|
|
32
|
-
|
|
33
|
-
const onDimensionsChange = () => {
|
|
34
|
-
setWidth(Dimensions.get('window').width);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
useEffect(() => {
|
|
38
|
-
const dimensionsChangeSubscription = Dimensions.addEventListener('change', onDimensionsChange);
|
|
39
|
-
return () => {
|
|
40
|
-
dimensionsChangeSubscription.remove();
|
|
41
|
-
};
|
|
42
|
-
}, []);
|
|
43
33
|
useEffect(() => {
|
|
44
34
|
startAnimation();
|
|
45
35
|
return () => {
|
|
46
36
|
clearTimeout(timer === null || timer === void 0 ? void 0 : timer.current);
|
|
47
37
|
};
|
|
48
|
-
}, [
|
|
38
|
+
}, []);
|
|
39
|
+
|
|
40
|
+
function onHide() {
|
|
41
|
+
Animated.timing(animationValue, {
|
|
42
|
+
toValue: 0,
|
|
43
|
+
duration: 150,
|
|
44
|
+
useNativeDriver: true,
|
|
45
|
+
easing: Easing.out(Easing.quad)
|
|
46
|
+
}).start(_ref2 => {
|
|
47
|
+
let {
|
|
48
|
+
finished
|
|
49
|
+
} = _ref2;
|
|
49
50
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
if (finished && onNoticeHidden) {
|
|
52
|
+
onNoticeHidden(id);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
53
56
|
|
|
54
|
-
|
|
57
|
+
function startAnimation() {
|
|
55
58
|
Animated.timing(animationValue, {
|
|
56
|
-
toValue:
|
|
57
|
-
duration:
|
|
59
|
+
toValue: 1,
|
|
60
|
+
duration: 300,
|
|
58
61
|
useNativeDriver: true,
|
|
59
62
|
easing: Easing.out(Easing.quad)
|
|
60
|
-
}).start(
|
|
61
|
-
|
|
63
|
+
}).start(_ref3 => {
|
|
64
|
+
let {
|
|
65
|
+
finished
|
|
66
|
+
} = _ref3;
|
|
67
|
+
|
|
68
|
+
if (finished && onNoticeHidden) {
|
|
62
69
|
timer.current = setTimeout(() => {
|
|
63
70
|
onHide();
|
|
64
|
-
},
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (!visible && onNoticeHidden) {
|
|
68
|
-
onNoticeHidden(id);
|
|
71
|
+
}, HIDE_TIMER);
|
|
69
72
|
}
|
|
70
73
|
});
|
|
71
|
-
}
|
|
74
|
+
}
|
|
72
75
|
|
|
73
76
|
const noticeSolidStyles = usePreferredColorSchemeStyle(styles.noticeSolid, styles.noticeSolidDark);
|
|
74
77
|
const successTextStyles = usePreferredColorSchemeStyle(styles.successText, styles.successTextDark);
|
|
75
78
|
const errorTextStyles = usePreferredColorSchemeStyle(styles.errorText, styles.errorTextDark);
|
|
76
79
|
const textStyles = [status === 'success' && successTextStyles, status === 'error' && errorTextStyles];
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
})
|
|
85
|
-
}]
|
|
80
|
+
const containerStyles = [styles.notice, !Platform.isIOS && noticeSolidStyles, {
|
|
81
|
+
width,
|
|
82
|
+
transform: [{
|
|
83
|
+
translateY: animationValue.interpolate({
|
|
84
|
+
inputRange: [0, 1],
|
|
85
|
+
outputRange: [-24, 0]
|
|
86
|
+
})
|
|
86
87
|
}]
|
|
88
|
+
}];
|
|
89
|
+
return createElement(Fragment, null, createElement(Animated.View, {
|
|
90
|
+
style: containerStyles
|
|
87
91
|
}, createElement(TouchableWithoutFeedback, {
|
|
88
92
|
onPress: onHide
|
|
89
93
|
}, createElement(View, {
|
|
@@ -91,7 +95,7 @@ const Notice = _ref => {
|
|
|
91
95
|
}, createElement(Text, {
|
|
92
96
|
numberOfLines: 3,
|
|
93
97
|
style: textStyles
|
|
94
|
-
}, content))), isIOS && createElement(BlurView, {
|
|
98
|
+
}, content))), Platform.isIOS && createElement(BlurView, {
|
|
95
99
|
style: styles.blurBackground,
|
|
96
100
|
blurType: "prominent",
|
|
97
101
|
blurAmount: 10
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/notice/index.native.js"],"names":["Animated","Easing","Text","TouchableWithoutFeedback","View","
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/notice/index.native.js"],"names":["Animated","Easing","Text","TouchableWithoutFeedback","View","useWindowDimensions","BlurView","useEffect","useRef","Platform","usePreferredColorSchemeStyle","styles","HIDE_TIMER","Notice","onNoticeHidden","content","id","status","width","animationValue","Value","current","timer","startAnimation","clearTimeout","onHide","timing","toValue","duration","useNativeDriver","easing","out","quad","start","finished","setTimeout","noticeSolidStyles","noticeSolid","noticeSolidDark","successTextStyles","successText","successTextDark","errorTextStyles","errorText","errorTextDark","textStyles","containerStyles","notice","isIOS","transform","translateY","interpolate","inputRange","outputRange","noticeContent","blurBackground"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tAnimated,\n\tEasing,\n\tText,\n\tTouchableWithoutFeedback,\n\tView,\n\tuseWindowDimensions,\n} from 'react-native';\nimport { BlurView } from '@react-native-community/blur';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, Platform } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst HIDE_TIMER = 3000;\n\nconst Notice = ( { onNoticeHidden, content, id, status } ) => {\n\tconst { width } = useWindowDimensions();\n\tconst animationValue = useRef( new Animated.Value( 0 ) ).current;\n\tconst timer = useRef( null );\n\n\tuseEffect( () => {\n\t\tstartAnimation();\n\n\t\treturn () => {\n\t\t\tclearTimeout( timer?.current );\n\t\t};\n\t}, [] );\n\n\tfunction onHide() {\n\t\tAnimated.timing( animationValue, {\n\t\t\ttoValue: 0,\n\t\t\tduration: 150,\n\t\t\tuseNativeDriver: true,\n\t\t\teasing: Easing.out( Easing.quad ),\n\t\t} ).start( ( { finished } ) => {\n\t\t\tif ( finished && onNoticeHidden ) {\n\t\t\t\tonNoticeHidden( id );\n\t\t\t}\n\t\t} );\n\t}\n\n\tfunction startAnimation() {\n\t\tAnimated.timing( animationValue, {\n\t\t\ttoValue: 1,\n\t\t\tduration: 300,\n\t\t\tuseNativeDriver: true,\n\t\t\teasing: Easing.out( Easing.quad ),\n\t\t} ).start( ( { finished } ) => {\n\t\t\tif ( finished && onNoticeHidden ) {\n\t\t\t\ttimer.current = setTimeout( () => {\n\t\t\t\t\tonHide();\n\t\t\t\t}, HIDE_TIMER );\n\t\t\t}\n\t\t} );\n\t}\n\n\tconst noticeSolidStyles = usePreferredColorSchemeStyle(\n\t\tstyles.noticeSolid,\n\t\tstyles.noticeSolidDark\n\t);\n\n\tconst successTextStyles = usePreferredColorSchemeStyle(\n\t\tstyles.successText,\n\t\tstyles.successTextDark\n\t);\n\n\tconst errorTextStyles = usePreferredColorSchemeStyle(\n\t\tstyles.errorText,\n\t\tstyles.errorTextDark\n\t);\n\n\tconst textStyles = [\n\t\tstatus === 'success' && successTextStyles,\n\t\tstatus === 'error' && errorTextStyles,\n\t];\n\n\tconst containerStyles = [\n\t\tstyles.notice,\n\t\t! Platform.isIOS && noticeSolidStyles,\n\t\t{\n\t\t\twidth,\n\t\t\ttransform: [\n\t\t\t\t{\n\t\t\t\t\ttranslateY: animationValue.interpolate( {\n\t\t\t\t\t\tinputRange: [ 0, 1 ],\n\t\t\t\t\t\toutputRange: [ -24, 0 ],\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t];\n\n\treturn (\n\t\t<>\n\t\t\t<Animated.View style={ containerStyles }>\n\t\t\t\t<TouchableWithoutFeedback onPress={ onHide }>\n\t\t\t\t\t<View style={ styles.noticeContent }>\n\t\t\t\t\t\t<Text numberOfLines={ 3 } style={ textStyles }>\n\t\t\t\t\t\t\t{ content }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</View>\n\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t{ Platform.isIOS && (\n\t\t\t\t\t<BlurView\n\t\t\t\t\t\tstyle={ styles.blurBackground }\n\t\t\t\t\t\tblurType=\"prominent\"\n\t\t\t\t\t\tblurAmount={ 10 }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</Animated.View>\n\t\t</>\n\t);\n};\n\nexport default Notice;\n"]}
|
|
@@ -9,9 +9,8 @@ import { View } from 'react-native';
|
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { compose } from '@wordpress/compose';
|
|
12
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
13
|
+
import { store as noticesStore } from '@wordpress/notices';
|
|
15
14
|
/**
|
|
16
15
|
* Internal dependencies
|
|
17
16
|
*/
|
|
@@ -19,55 +18,38 @@ import { compose } from '@wordpress/compose';
|
|
|
19
18
|
import Notice from './';
|
|
20
19
|
import styles from './style.scss';
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
removeNotice(id) {
|
|
21
|
+
function NoticeList() {
|
|
22
|
+
const {
|
|
23
|
+
notices
|
|
24
|
+
} = useSelect(select => {
|
|
29
25
|
const {
|
|
30
|
-
|
|
31
|
-
} =
|
|
26
|
+
getNotices
|
|
27
|
+
} = select(noticesStore);
|
|
28
|
+
return {
|
|
29
|
+
notices: getNotices()
|
|
30
|
+
};
|
|
31
|
+
}, []);
|
|
32
|
+
const {
|
|
33
|
+
removeNotice
|
|
34
|
+
} = useDispatch(noticesStore);
|
|
35
|
+
|
|
36
|
+
function onRemoveNotice(id) {
|
|
32
37
|
removeNotice(id);
|
|
33
38
|
}
|
|
34
39
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
notices,
|
|
38
|
-
shouldStack
|
|
39
|
-
} = this.props;
|
|
40
|
-
|
|
41
|
-
if (!notices.length) {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return createElement(View, {
|
|
46
|
-
style: styles.list,
|
|
47
|
-
key: notices.length
|
|
48
|
-
}, shouldStack ? notices.reverse().map(notice => createElement(Notice, _extends({}, notice, {
|
|
49
|
-
key: notice.id,
|
|
50
|
-
onNoticeHidden: this.removeNotice
|
|
51
|
-
}))) : createElement(Notice, _extends({}, notices[notices.length - 1], {
|
|
52
|
-
onNoticeHidden: this.removeNotice
|
|
53
|
-
})));
|
|
40
|
+
if (!notices.length) {
|
|
41
|
+
return null;
|
|
54
42
|
}
|
|
55
43
|
|
|
44
|
+
return createElement(View, {
|
|
45
|
+
style: styles.list
|
|
46
|
+
}, notices.map(notice => {
|
|
47
|
+
return createElement(Notice, _extends({}, notice, {
|
|
48
|
+
key: notice.id,
|
|
49
|
+
onNoticeHidden: onRemoveNotice
|
|
50
|
+
}));
|
|
51
|
+
}));
|
|
56
52
|
}
|
|
57
53
|
|
|
58
|
-
export default
|
|
59
|
-
const {
|
|
60
|
-
getNotices
|
|
61
|
-
} = select('core/notices');
|
|
62
|
-
return {
|
|
63
|
-
notices: getNotices()
|
|
64
|
-
};
|
|
65
|
-
}), withDispatch(dispatch => {
|
|
66
|
-
const {
|
|
67
|
-
removeNotice
|
|
68
|
-
} = dispatch('core/notices');
|
|
69
|
-
return {
|
|
70
|
-
removeNotice
|
|
71
|
-
};
|
|
72
|
-
})])(NoticeList);
|
|
54
|
+
export default NoticeList;
|
|
73
55
|
//# sourceMappingURL=list.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/components/src/notice/list.native.js"],"names":["View","
|
|
1
|
+
{"version":3,"sources":["@wordpress/components/src/notice/list.native.js"],"names":["View","useSelect","useDispatch","store","noticesStore","Notice","styles","NoticeList","notices","select","getNotices","removeNotice","onRemoveNotice","id","length","list","map","notice"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,YAAlB,QAAsC,oBAAtC;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,IAAnB;AACA,OAAOC,MAAP,MAAmB,cAAnB;;AAEA,SAASC,UAAT,GAAsB;AACrB,QAAM;AAAEC,IAAAA;AAAF,MAAcP,SAAS,CAAIQ,MAAF,IAAc;AAC5C,UAAM;AAAEC,MAAAA;AAAF,QAAiBD,MAAM,CAAEL,YAAF,CAA7B;AACA,WAAO;AACNI,MAAAA,OAAO,EAAEE,UAAU;AADb,KAAP;AAGA,GAL4B,EAK1B,EAL0B,CAA7B;AAOA,QAAM;AAAEC,IAAAA;AAAF,MAAmBT,WAAW,CAAEE,YAAF,CAApC;;AAEA,WAASQ,cAAT,CAAyBC,EAAzB,EAA8B;AAC7BF,IAAAA,YAAY,CAAEE,EAAF,CAAZ;AACA;;AAED,MAAK,CAAEL,OAAO,CAACM,MAAf,EAAwB;AACvB,WAAO,IAAP;AACA;;AAED,SACC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGR,MAAM,CAACS;AAArB,KACGP,OAAO,CAACQ,GAAR,CAAeC,MAAF,IAAc;AAC5B,WACC,cAAC,MAAD,eACMA,MADN;AAEC,MAAA,GAAG,EAAGA,MAAM,CAACJ,EAFd;AAGC,MAAA,cAAc,EAAGD;AAHlB,OADD;AAOA,GARC,CADH,CADD;AAaA;;AAED,eAAeL,UAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport Notice from './';\nimport styles from './style.scss';\n\nfunction NoticeList() {\n\tconst { notices } = useSelect( ( select ) => {\n\t\tconst { getNotices } = select( noticesStore );\n\t\treturn {\n\t\t\tnotices: getNotices(),\n\t\t};\n\t}, [] );\n\n\tconst { removeNotice } = useDispatch( noticesStore );\n\n\tfunction onRemoveNotice( id ) {\n\t\tremoveNotice( id );\n\t}\n\n\tif ( ! notices.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<View style={ styles.list }>\n\t\t\t{ notices.map( ( notice ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Notice\n\t\t\t\t\t\t{ ...notice }\n\t\t\t\t\t\tkey={ notice.id }\n\t\t\t\t\t\tonNoticeHidden={ onRemoveNotice }\n\t\t\t\t\t></Notice>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</View>\n\t);\n}\n\nexport default NoticeList;\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"]}
|
|
@@ -219,10 +219,10 @@ export default function Sandbox(_ref) {
|
|
|
219
219
|
}, []);
|
|
220
220
|
useEffect(() => {
|
|
221
221
|
trySandbox();
|
|
222
|
-
}, [title,
|
|
222
|
+
}, [title, styles, scripts]);
|
|
223
223
|
useEffect(() => {
|
|
224
224
|
trySandbox(true);
|
|
225
|
-
}, [html]);
|
|
225
|
+
}, [html, type]);
|
|
226
226
|
return createElement("iframe", {
|
|
227
227
|
ref: useMergeRefs([ref, useFocusableIframe()]),
|
|
228
228
|
title: title,
|