@semcore/modal 3.8.1 → 3.8.3
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 +12 -0
- package/lib/cjs/Modal.js +10 -10
- package/lib/cjs/Modal.js.map +1 -1
- package/lib/cjs/modal.vo-test.js +12 -13
- package/lib/cjs/modal.vo-test.js.map +1 -1
- package/lib/es6/Modal.js +10 -10
- package/lib/es6/Modal.js.map +1 -1
- package/lib/es6/modal.vo-test.js +5 -6
- package/lib/es6/modal.vo-test.js.map +1 -1
- package/package.json +4 -8
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
+
## [3.8.3] - 2023-06-28
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Version patch update due to children dependencies update (`@semcore/icon` [3.15.3 ~> 3.16.0]).
|
|
10
|
+
|
|
11
|
+
## [3.8.2] - 2023-06-27
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Version patch update due to children dependencies update (`@semcore/animation` [1.10.19 ~> 1.10.20], `@semcore/flex-box` [4.7.31 ~> 4.7.32], `@semcore/icon` [3.15.2 ~> 3.15.3], `@semcore/utils` [3.53.4 ~> 3.54.0]).
|
|
16
|
+
|
|
5
17
|
## [3.8.1] - 2023-06-14
|
|
6
18
|
|
|
7
19
|
### Changed
|
package/lib/cjs/Modal.js
CHANGED
|
@@ -32,12 +32,12 @@ var _useCssVariable = require("@semcore/utils/lib/useCssVariable");
|
|
|
32
32
|
var _useFocusLock = require("@semcore/utils/lib/use/useFocusLock");
|
|
33
33
|
var _ThemeProvider = require("@semcore/utils/lib/ThemeProvider");
|
|
34
34
|
/*__reshadow-styles__:"./style/modal.shadow.css"*/
|
|
35
|
-
var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".
|
|
36
|
-
"__SWindow": "
|
|
37
|
-
"__SOverlay": "
|
|
38
|
-
"__SClose": "
|
|
39
|
-
"_keyboardFocused": "
|
|
40
|
-
"__STitle": "
|
|
35
|
+
var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SWindow_qv6p3_gg_{position:relative;border-radius:var(--intergalactic-modal-rounded, 12px);background:var(--intergalactic-bg-primary-neutral, #ffffff);box-sizing:border-box;margin:auto;padding:var(--intergalactic-spacing-10x, 40px);box-shadow:var(--intergalactic-box-shadow-modal, 0px 3px 8px 0px rgba(25, 27, 35, 0.2));color:var(--intergalactic-text-primary, #191b23)}.___SWindow_qv6p3_gg_:focus{outline:0}.___SOverlay_qv6p3_gg_{position:fixed;top:0;bottom:0;left:0;right:0;margin:0;display:flex;justify-content:center;align-items:center;padding:var(--intergalactic-spacing-10x, 40px);background:var(--intergalactic-overlay-primary, rgba(25, 27, 35, 0.7));overflow:auto;z-index:var(--intergalactic-z-index-modal, 600);-webkit-overflow-scrolling:touch}.___SOverlay_qv6p3_gg_ .___SOverlay_qv6p3_gg_{background:var(--intergalactic-overlay-secondary, rgba(25, 27, 35, 0.4))}.___SClose_qv6p3_gg_{display:inline-flex;position:absolute;right:0;top:0;padding:var(--intergalactic-spacing-3x, 12px);color:var(--intergalactic-icon-secondary-neutral, #a9abb6);cursor:pointer;z-index:1;border:0;background:0 0;outline:0}@media (hover:hover){.___SClose_qv6p3_gg_:hover{color:var(--intergalactic-icon-secondary-neutral-hover-active, #8a8e9b)}}.___SClose_qv6p3_gg_.__keyboardFocused_qv6p3_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___STitle_qv6p3_gg_{color:var(--intergalactic-text-primary, #191b23);font-size:var(--intergalactic-fs-500, 24px);line-height:var(--intergalactic-lh-500, 117%);font-weight:var(--intergalactic-semi-bold, 600);margin-bottom:var(--intergalactic-spacing-2x, 8px)}@media (max-width:767px){.___SWindow_qv6p3_gg_{min-width:60%}.___SOverlay_qv6p3_gg_{padding:var(--intergalactic-spacing-3x, 12px)}}" /*__inner_css_end__*/, "qv6p3_gg_") /*__reshadow_css_end__*/, {
|
|
36
|
+
"__SWindow": "___SWindow_qv6p3_gg_",
|
|
37
|
+
"__SOverlay": "___SOverlay_qv6p3_gg_",
|
|
38
|
+
"__SClose": "___SClose_qv6p3_gg_",
|
|
39
|
+
"_keyboardFocused": "__keyboardFocused_qv6p3_gg_",
|
|
40
|
+
"__STitle": "___STitle_qv6p3_gg_"
|
|
41
41
|
});
|
|
42
42
|
var ModalRoot = /*#__PURE__*/function (_Component) {
|
|
43
43
|
(0, _inherits2["default"])(ModalRoot, _Component);
|
|
@@ -169,9 +169,9 @@ function Window(props) {
|
|
|
169
169
|
(0, _useFocusLock.useFocusLock)(windowRef, true, 'auto', !visible);
|
|
170
170
|
return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SWindow, _ref6.cn("SWindow", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
|
|
171
171
|
"initialAnimation": true,
|
|
172
|
-
"slideOrigin":
|
|
172
|
+
"slideOrigin": 'top',
|
|
173
173
|
"visible": visible,
|
|
174
|
-
"role":
|
|
174
|
+
"role": 'dialog',
|
|
175
175
|
"aria-modal": true,
|
|
176
176
|
"duration": duration,
|
|
177
177
|
"ref": windowRef
|
|
@@ -205,7 +205,7 @@ function Close(props) {
|
|
|
205
205
|
hasChildren = props.children,
|
|
206
206
|
getI18nText = props.getI18nText;
|
|
207
207
|
return _ref8 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react["default"].createElement(SClose, _ref8.cn("SClose", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
|
|
208
|
-
"tag":
|
|
208
|
+
"tag": 'button',
|
|
209
209
|
"tabIndex": 0,
|
|
210
210
|
"aria-label": getI18nText('close')
|
|
211
211
|
}, _ref4))), hasChildren ? /*#__PURE__*/_react["default"].createElement(Children, _ref8.cn("Children", {})) : /*#__PURE__*/_react["default"].createElement(_l["default"], _ref8.cn("CloseIcon", {
|
|
@@ -223,7 +223,7 @@ function Title(props) {
|
|
|
223
223
|
return setHasTitle();
|
|
224
224
|
});
|
|
225
225
|
return _ref9 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(STitle, _ref9.cn("STitle", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
|
|
226
|
-
"tag":
|
|
226
|
+
"tag": 'h2'
|
|
227
227
|
}, _ref5))));
|
|
228
228
|
}
|
|
229
229
|
var Modal = (0, _core["default"])(ModalRoot, {
|
package/lib/cjs/Modal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["_core","_interopRequireWildcard","require","_react","_animation","_portal","_flexBox","_outsideClick","_interopRequireDefault","_l","_fire","_usePreventScroll","_findComponent","_keyboardFocusEnhance","_intergalacticDynamicLocales","_i18nEnhance","_typography","_uniqueID","_useCssVariable","_useFocusLock","_ThemeProvider","style","sstyled","insert","ModalRoot","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","hasTitle","e","key","stopPropagation","fire","_createClass2","value","getOverlayProps","_this$asProps","asProps","duration","visible","animationsDisabled","disablePreventScroll","onOutsideClick","handleOutsideClick","getWindowProps","_this$asProps2","closable","getI18nText","uid","state","onKeyDown","handleKeyDown","undefined","getCloseProps","onClick","handleIconCloseClick","getTitleProps","_this2","setHasTitle","setState","id","render","_ref","_this$asProps3","Children","disablePortal","advanceMode","isAdvanceMode","Modal","Overlay","displayName","Window","createElement","assignProps","Component","i18nEnhance","localizedMessages","uniqueIDEnhancement","cssVariableEnhance","variable","fallback","map","Number","parseInt","prop","i18n","locale","props","_ref2","arguments[0]","_ref6","SWindow","Slide","styles","windowRef","useRef","useFocusLock","cn","_objectSpread2","PortalProvider","Close","_ref3","_ref7","SOverlay","FadeInOut","overlayRef","usePreventScroll","useContextTheme","_ref4","_ref8","SClose","Box","hasChildren","children","enhance","keyboardFocusEnhance","Title","_ref5","_ref9","STitle","Text","useEffect","createComponent","_default","exports"],"sources":["../../src/Modal.jsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport { FadeInOut, Slide } from '@semcore/animation';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Portal, { PortalProvider } from '@semcore/portal';\nimport { Box } from '@semcore/flex-box';\nimport OutsideClick from '@semcore/outside-click';\nimport CloseIcon from '@semcore/icon/Close/l';\nimport fire from '@semcore/utils/lib/fire';\nimport usePreventScroll from '@semcore/utils/lib/use/usePreventScroll';\nimport { isAdvanceMode } from '@semcore/utils/lib/findComponent';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport style from './style/modal.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { Text } from '@semcore/typography';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { cssVariableEnhance } from '@semcore/utils/lib/useCssVariable';\nimport { useFocusLock } from '@semcore/utils/lib/use/useFocusLock';\nimport { useContextTheme } from '@semcore/utils/lib/ThemeProvider';\n\nclass ModalRoot extends Component {\n static displayName = 'Modal';\n static style = style;\n static enhance = [\n i18nEnhance(localizedMessages),\n uniqueIDEnhancement(),\n cssVariableEnhance({\n variable: '--intergalactic-duration-modal',\n fallback: '200',\n map: Number.parseInt,\n prop: 'duration',\n }),\n ];\n static defaultProps = {\n closable: true,\n i18n: localizedMessages,\n locale: 'en',\n disablePreventScroll: false,\n };\n state = { hasTitle: false };\n\n handleKeyDown = (e) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n fire(this, 'onClose', 'onEscape', e);\n }\n };\n\n handleIconCloseClick = (e) => {\n fire(this, 'onClose', 'onCloseClick', e);\n };\n\n handleOutsideClick = (e) => {\n fire(this, 'onClose', 'onOutsideClick', e);\n };\n\n getOverlayProps() {\n const { duration, visible, animationsDisabled, disablePreventScroll } = this.asProps;\n return {\n duration,\n visible,\n onOutsideClick: this.handleOutsideClick,\n animationsDisabled,\n disablePreventScroll,\n };\n }\n\n getWindowProps() {\n const { visible, closable, getI18nText, uid, duration, animationsDisabled } = this.asProps;\n const { hasTitle } = this.state;\n return {\n visible,\n closable,\n onKeyDown: this.handleKeyDown,\n 'aria-label': hasTitle ? undefined : getI18nText('title'),\n 'aria-labelledby': hasTitle ? `igc-${uid}-title` : undefined,\n duration,\n animationsDisabled,\n };\n }\n\n getCloseProps() {\n const { getI18nText } = this.asProps;\n\n return {\n onClick: this.handleIconCloseClick,\n getI18nText,\n };\n }\n\n getTitleProps() {\n const { uid } = this.asProps;\n const setHasTitle = () => this.setState({ hasTitle: true });\n\n return {\n id: `igc-${uid}-title`,\n setHasTitle,\n };\n }\n\n render() {\n const { Children, disablePortal } = this.asProps;\n\n const advanceMode = isAdvanceMode(Children, [\n Modal.Overlay.displayName,\n Modal.Window.displayName,\n ]);\n\n return (\n <Portal disablePortal={disablePortal}>\n {advanceMode ? (\n <Children />\n ) : (\n <Modal.Overlay>\n <Root render={Modal.Window} />\n </Modal.Overlay>\n )}\n </Portal>\n );\n }\n}\n\nfunction Window(props) {\n const SWindow = Root;\n const { Children, styles, visible, closable, duration } = props;\n const windowRef = useRef(null);\n\n useFocusLock(windowRef, true, 'auto', !visible);\n\n return sstyled(styles)(\n <SWindow\n render={Slide}\n initialAnimation={true}\n slideOrigin=\"top\"\n visible={visible}\n role=\"dialog\"\n aria-modal={true}\n duration={duration}\n ref={windowRef}\n >\n <PortalProvider value={windowRef}>\n {closable && <Modal.Close />}\n <Children />\n </PortalProvider>\n </SWindow>,\n );\n}\n\nfunction Overlay(props) {\n const SOverlay = Root;\n const { Children, styles, onOutsideClick, visible } = props;\n const overlayRef = useRef(null);\n usePreventScroll(visible, props.disablePreventScroll);\n useContextTheme(overlayRef, visible);\n\n return sstyled(styles)(\n <SOverlay render={FadeInOut} ref={overlayRef}>\n <OutsideClick root={overlayRef} onOutsideClick={onOutsideClick}>\n <Children />\n </OutsideClick>\n </SOverlay>,\n );\n}\n\nfunction Close(props) {\n const SClose = Root;\n const { Children, children: hasChildren, getI18nText } = props;\n return sstyled(props.styles)(\n <SClose render={Box} tag=\"button\" tabIndex={0} aria-label={getI18nText('close')}>\n {hasChildren ? <Children /> : <CloseIcon title={getI18nText('close')} />}\n </SClose>,\n );\n}\n\nClose.enhance = [keyboardFocusEnhance()];\n\nfunction Title(props) {\n const { setHasTitle, styles } = props;\n const STitle = Root;\n\n useEffect(() => setHasTitle());\n\n return sstyled(styles)(<STitle render={Text} tag=\"h2\" />);\n}\n\nconst Modal = createComponent(ModalRoot, {\n Window,\n Overlay,\n Close,\n Title,\n});\n\nexport default Modal;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["_core","_interopRequireWildcard","require","_react","_animation","_portal","_flexBox","_outsideClick","_interopRequireDefault","_l","_fire","_usePreventScroll","_findComponent","_keyboardFocusEnhance","_intergalacticDynamicLocales","_i18nEnhance","_typography","_uniqueID","_useCssVariable","_useFocusLock","_ThemeProvider","style","sstyled","insert","ModalRoot","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","hasTitle","e","key","stopPropagation","fire","_createClass2","value","getOverlayProps","_this$asProps","asProps","duration","visible","animationsDisabled","disablePreventScroll","onOutsideClick","handleOutsideClick","getWindowProps","_this$asProps2","closable","getI18nText","uid","state","onKeyDown","handleKeyDown","undefined","getCloseProps","onClick","handleIconCloseClick","getTitleProps","_this2","setHasTitle","setState","id","render","_ref","_this$asProps3","Children","disablePortal","advanceMode","isAdvanceMode","Modal","Overlay","displayName","Window","createElement","assignProps","Component","i18nEnhance","localizedMessages","uniqueIDEnhancement","cssVariableEnhance","variable","fallback","map","Number","parseInt","prop","i18n","locale","props","_ref2","arguments[0]","_ref6","SWindow","Slide","styles","windowRef","useRef","useFocusLock","cn","_objectSpread2","PortalProvider","Close","_ref3","_ref7","SOverlay","FadeInOut","overlayRef","usePreventScroll","useContextTheme","_ref4","_ref8","SClose","Box","hasChildren","children","enhance","keyboardFocusEnhance","Title","_ref5","_ref9","STitle","Text","useEffect","createComponent","_default","exports"],"sources":["../../src/Modal.jsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport { FadeInOut, Slide } from '@semcore/animation';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Portal, { PortalProvider } from '@semcore/portal';\nimport { Box } from '@semcore/flex-box';\nimport OutsideClick from '@semcore/outside-click';\nimport CloseIcon from '@semcore/icon/Close/l';\nimport fire from '@semcore/utils/lib/fire';\nimport usePreventScroll from '@semcore/utils/lib/use/usePreventScroll';\nimport { isAdvanceMode } from '@semcore/utils/lib/findComponent';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport style from './style/modal.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { Text } from '@semcore/typography';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { cssVariableEnhance } from '@semcore/utils/lib/useCssVariable';\nimport { useFocusLock } from '@semcore/utils/lib/use/useFocusLock';\nimport { useContextTheme } from '@semcore/utils/lib/ThemeProvider';\n\nclass ModalRoot extends Component {\n static displayName = 'Modal';\n static style = style;\n static enhance = [\n i18nEnhance(localizedMessages),\n uniqueIDEnhancement(),\n cssVariableEnhance({\n variable: '--intergalactic-duration-modal',\n fallback: '200',\n map: Number.parseInt,\n prop: 'duration',\n }),\n ];\n static defaultProps = {\n closable: true,\n i18n: localizedMessages,\n locale: 'en',\n disablePreventScroll: false,\n };\n state = { hasTitle: false };\n\n handleKeyDown = (e) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n fire(this, 'onClose', 'onEscape', e);\n }\n };\n\n handleIconCloseClick = (e) => {\n fire(this, 'onClose', 'onCloseClick', e);\n };\n\n handleOutsideClick = (e) => {\n fire(this, 'onClose', 'onOutsideClick', e);\n };\n\n getOverlayProps() {\n const { duration, visible, animationsDisabled, disablePreventScroll } = this.asProps;\n return {\n duration,\n visible,\n onOutsideClick: this.handleOutsideClick,\n animationsDisabled,\n disablePreventScroll,\n };\n }\n\n getWindowProps() {\n const { visible, closable, getI18nText, uid, duration, animationsDisabled } = this.asProps;\n const { hasTitle } = this.state;\n return {\n visible,\n closable,\n onKeyDown: this.handleKeyDown,\n 'aria-label': hasTitle ? undefined : getI18nText('title'),\n 'aria-labelledby': hasTitle ? `igc-${uid}-title` : undefined,\n duration,\n animationsDisabled,\n };\n }\n\n getCloseProps() {\n const { getI18nText } = this.asProps;\n\n return {\n onClick: this.handleIconCloseClick,\n getI18nText,\n };\n }\n\n getTitleProps() {\n const { uid } = this.asProps;\n const setHasTitle = () => this.setState({ hasTitle: true });\n\n return {\n id: `igc-${uid}-title`,\n setHasTitle,\n };\n }\n\n render() {\n const { Children, disablePortal } = this.asProps;\n\n const advanceMode = isAdvanceMode(Children, [\n Modal.Overlay.displayName,\n Modal.Window.displayName,\n ]);\n\n return (\n <Portal disablePortal={disablePortal}>\n {advanceMode ? (\n <Children />\n ) : (\n <Modal.Overlay>\n <Root render={Modal.Window} />\n </Modal.Overlay>\n )}\n </Portal>\n );\n }\n}\n\nfunction Window(props) {\n const SWindow = Root;\n const { Children, styles, visible, closable, duration } = props;\n const windowRef = useRef(null);\n\n useFocusLock(windowRef, true, 'auto', !visible);\n\n return sstyled(styles)(\n <SWindow\n render={Slide}\n initialAnimation={true}\n slideOrigin='top'\n visible={visible}\n role='dialog'\n aria-modal={true}\n duration={duration}\n ref={windowRef}\n >\n <PortalProvider value={windowRef}>\n {closable && <Modal.Close />}\n <Children />\n </PortalProvider>\n </SWindow>,\n );\n}\n\nfunction Overlay(props) {\n const SOverlay = Root;\n const { Children, styles, onOutsideClick, visible } = props;\n const overlayRef = useRef(null);\n usePreventScroll(visible, props.disablePreventScroll);\n useContextTheme(overlayRef, visible);\n\n return sstyled(styles)(\n <SOverlay render={FadeInOut} ref={overlayRef}>\n <OutsideClick root={overlayRef} onOutsideClick={onOutsideClick}>\n <Children />\n </OutsideClick>\n </SOverlay>,\n );\n}\n\nfunction Close(props) {\n const SClose = Root;\n const { Children, children: hasChildren, getI18nText } = props;\n return sstyled(props.styles)(\n <SClose render={Box} tag='button' tabIndex={0} aria-label={getI18nText('close')}>\n {hasChildren ? <Children /> : <CloseIcon title={getI18nText('close')} />}\n </SClose>,\n );\n}\n\nClose.enhance = [keyboardFocusEnhance()];\n\nfunction Title(props) {\n const { setHasTitle, styles } = props;\n const STitle = Root;\n\n useEffect(() => setHasTitle());\n\n return sstyled(styles)(<STitle render={Text} tag='h2' />);\n}\n\nconst Modal = createComponent(ModalRoot, {\n Window,\n Overlay,\n Close,\n Title,\n});\n\nexport default Modal;\n"],"mappings":";;;;;;;;;;;;;;;AAEA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAFA,IAAAC,MAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,EAAA,GAAAD,sBAAA,CAAAN,OAAA;AACA,IAAAQ,KAAA,GAAAF,sBAAA,CAAAN,OAAA;AACA,IAAAS,iBAAA,GAAAH,sBAAA,CAAAN,OAAA;AACA,IAAAU,cAAA,GAAAV,OAAA;AACA,IAAAW,qBAAA,GAAAL,sBAAA,CAAAN,OAAA;AAEA,IAAAY,4BAAA,GAAAZ,OAAA;AACA,IAAAa,YAAA,GAAAP,sBAAA,CAAAN,OAAA;AACA,IAAAc,WAAA,GAAAd,OAAA;AACA,IAAAe,SAAA,GAAAT,sBAAA,CAAAN,OAAA;AACA,IAAAgB,eAAA,GAAAhB,OAAA;AACA,IAAAiB,aAAA,GAAAjB,OAAA;AACA,IAAAkB,cAAA,GAAAlB,OAAA;AAAmE;AAAA,IAAAmB,KAAA,+BAAArB,KAAA,CAAAsB,OAAA,CAAAC,MAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAAA,IAE7DC,SAAS,0BAAAC,UAAA;EAAA,IAAAC,UAAA,aAAAF,SAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,OAAAC,aAAA,aAAAJ,SAAA;EAAA,SAAAA,UAAA;IAAA,IAAAK,KAAA;IAAA,IAAAC,gBAAA,mBAAAN,SAAA;IAAA,SAAAO,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAAF,MAAA,CAAAU,IAAA,CAAAC,KAAA,CAAAX,MAAA,SAAAY,MAAA,CAAAL,IAAA;IAAA,IAAAM,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,YAmBL;MAAEa,QAAQ,EAAE;IAAM,CAAC;IAAA,IAAAF,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,oBAEX,UAACc,CAAC,EAAK;MACrB,IAAIA,CAAC,CAACC,GAAG,KAAK,QAAQ,EAAE;QACtBD,CAAC,CAACE,eAAe,EAAE;QACnB,IAAAC,gBAAI,MAAAL,uBAAA,aAAAZ,KAAA,GAAO,SAAS,EAAE,UAAU,EAAEc,CAAC,CAAC;MACtC;IACF,CAAC;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,2BAEsB,UAACc,CAAC,EAAK;MAC5B,IAAAG,gBAAI,MAAAL,uBAAA,aAAAZ,KAAA,GAAO,SAAS,EAAE,cAAc,EAAEc,CAAC,CAAC;IAC1C,CAAC;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,yBAEoB,UAACc,CAAC,EAAK;MAC1B,IAAAG,gBAAI,MAAAL,uBAAA,aAAAZ,KAAA,GAAO,SAAS,EAAE,gBAAgB,EAAEc,CAAC,CAAC;IAC5C,CAAC;IAAA,OAAAd,KAAA;EAAA;EAAA,IAAAkB,aAAA,aAAAvB,SAAA;IAAAoB,GAAA;IAAAI,KAAA,EAED,SAAAC,gBAAA,EAAkB;MAChB,IAAAC,aAAA,GAAwE,IAAI,CAACC,OAAO;QAA5EC,QAAQ,GAAAF,aAAA,CAARE,QAAQ;QAAEC,OAAO,GAAAH,aAAA,CAAPG,OAAO;QAAEC,kBAAkB,GAAAJ,aAAA,CAAlBI,kBAAkB;QAAEC,oBAAoB,GAAAL,aAAA,CAApBK,oBAAoB;MACnE,OAAO;QACLH,QAAQ,EAARA,QAAQ;QACRC,OAAO,EAAPA,OAAO;QACPG,cAAc,EAAE,IAAI,CAACC,kBAAkB;QACvCH,kBAAkB,EAAlBA,kBAAkB;QAClBC,oBAAoB,EAApBA;MACF,CAAC;IACH;EAAC;IAAAX,GAAA;IAAAI,KAAA,EAED,SAAAU,eAAA,EAAiB;MACf,IAAAC,cAAA,GAA8E,IAAI,CAACR,OAAO;QAAlFE,OAAO,GAAAM,cAAA,CAAPN,OAAO;QAAEO,QAAQ,GAAAD,cAAA,CAARC,QAAQ;QAAEC,WAAW,GAAAF,cAAA,CAAXE,WAAW;QAAEC,GAAG,GAAAH,cAAA,CAAHG,GAAG;QAAEV,QAAQ,GAAAO,cAAA,CAARP,QAAQ;QAAEE,kBAAkB,GAAAK,cAAA,CAAlBL,kBAAkB;MACzE,IAAQZ,QAAQ,GAAK,IAAI,CAACqB,KAAK,CAAvBrB,QAAQ;MAChB,OAAO;QACLW,OAAO,EAAPA,OAAO;QACPO,QAAQ,EAARA,QAAQ;QACRI,SAAS,EAAE,IAAI,CAACC,aAAa;QAC7B,YAAY,EAAEvB,QAAQ,GAAGwB,SAAS,GAAGL,WAAW,CAAC,OAAO,CAAC;QACzD,iBAAiB,EAAEnB,QAAQ,UAAAH,MAAA,CAAUuB,GAAG,cAAWI,SAAS;QAC5Dd,QAAQ,EAARA,QAAQ;QACRE,kBAAkB,EAAlBA;MACF,CAAC;IACH;EAAC;IAAAV,GAAA;IAAAI,KAAA,EAED,SAAAmB,cAAA,EAAgB;MACd,IAAQN,WAAW,GAAK,IAAI,CAACV,OAAO,CAA5BU,WAAW;MAEnB,OAAO;QACLO,OAAO,EAAE,IAAI,CAACC,oBAAoB;QAClCR,WAAW,EAAXA;MACF,CAAC;IACH;EAAC;IAAAjB,GAAA;IAAAI,KAAA,EAED,SAAAsB,cAAA,EAAgB;MAAA,IAAAC,MAAA;MACd,IAAQT,GAAG,GAAK,IAAI,CAACX,OAAO,CAApBW,GAAG;MACX,IAAMU,WAAW,GAAG,SAAdA,WAAWA,CAAA;QAAA,OAASD,MAAI,CAACE,QAAQ,CAAC;UAAE/B,QAAQ,EAAE;QAAK,CAAC,CAAC;MAAA;MAE3D,OAAO;QACLgC,EAAE,SAAAnC,MAAA,CAASuB,GAAG,WAAQ;QACtBU,WAAW,EAAXA;MACF,CAAC;IACH;EAAC;IAAA5B,GAAA;IAAAI,KAAA,EAED,SAAA2B,OAAA,EAAS;MAAA,IAAAC,IAAA,QAAAzB,OAAA;MACP,IAAA0B,cAAA,GAAoC,IAAI,CAAC1B,OAAO;QAAxC2B,QAAQ,GAAAD,cAAA,CAARC,QAAQ;QAAEC,aAAa,GAAAF,cAAA,CAAbE,aAAa;MAE/B,IAAMC,WAAW,GAAG,IAAAC,4BAAa,EAACH,QAAQ,EAAE,CAC1CI,KAAK,CAACC,OAAO,CAACC,WAAW,EACzBF,KAAK,CAACG,MAAM,CAACD,WAAW,CACzB,CAAC;MAEF,oBACEjF,MAAA,YAAAmF,aAAA,CAACjF,OAAA,WAAM;QAAC0E,aAAa,EAAEA;MAAc,GAClCC,WAAW,gBACV7E,MAAA,YAAAmF,aAAA,CAACR,QAAQ,OAAG,gBAEZ3E,MAAA,YAAAmF,aAAA,CAACJ,KAAK,CAACC,OAAO,qBACZhF,MAAA,YAAAmF,aAAA,CAAcJ,KAAK,CAACG,MAAM,MAAArF,KAAA,CAAAuF,WAAA,MAAAX,IAAA,EAAI,CAEjC,CACM;IAEb;EAAC;EAAA,OAAApD,SAAA;AAAA,EAnGqBgE,eAAS;AAAA,IAAAhD,gBAAA,aAA3BhB,SAAS,iBACQ,OAAO;AAAA,IAAAgB,gBAAA,aADxBhB,SAAS,WAEEH,KAAK;AAAA,IAAAmB,gBAAA,aAFhBhB,SAAS,aAGI,CACf,IAAAiE,uBAAW,EAACC,8CAAiB,CAAC,EAC9B,IAAAC,oBAAmB,GAAE,EACrB,IAAAC,kCAAkB,EAAC;EACjBC,QAAQ,EAAE,gCAAgC;EAC1CC,QAAQ,EAAE,KAAK;EACfC,GAAG,EAAEC,MAAM,CAACC,QAAQ;EACpBC,IAAI,EAAE;AACR,CAAC,CAAC,CACH;AAAA,IAAA1D,gBAAA,aAZGhB,SAAS,kBAaS;EACpBoC,QAAQ,EAAE,IAAI;EACduC,IAAI,EAAET,8CAAiB;EACvBU,MAAM,EAAE,IAAI;EACZ7C,oBAAoB,EAAE;AACxB,CAAC;AAoFH,SAAS8B,MAAMA,CAACgB,KAAK,EAAE;EAAA,IAAAC,KAAA,GAAAC,YAAA;IAAAC,KAAA;EACrB,IAAMC,OAAO,GAQDC,gBAAK;EAPjB,IAAQ5B,QAAQ,GAA0CuB,KAAK,CAAvDvB,QAAQ;IAAE6B,MAAM,GAAkCN,KAAK,CAA7CM,MAAM;IAAEtD,OAAO,GAAyBgD,KAAK,CAArChD,OAAO;IAAEO,QAAQ,GAAeyC,KAAK,CAA5BzC,QAAQ;IAAER,QAAQ,GAAKiD,KAAK,CAAlBjD,QAAQ;EACrD,IAAMwD,SAAS,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAE9B,IAAAC,0BAAY,EAACF,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAACvD,OAAO,CAAC;EAE/C,OAAAmD,KAAA,GAAO,IAAAlF,aAAO,EAACqF,MAAM,CAAC,eACpBxG,MAAA,YAAAmF,aAAA,CAACmB,OAAO,EAAAD,KAAA,CAAAO,EAAA,gBAAAC,cAAA,qBAAAhH,KAAA,CAAAuF,WAAA;IAAA,oBAEY,IAAI;IAAA,eACV,KAAK;IAAA,WACRlC,OAAO;IAAA,QACX,QAAQ;IAAA,cACD,IAAI;IAAA,YACND,QAAQ;IAAA,OACbwD;EAAS,GAAAN,KAAA,kBAEdnG,MAAA,YAAAmF,aAAA,CAACjF,OAAA,CAAA4G,cAAc,EAAAT,KAAA,CAAAO,EAAA;IAAA,SAAQH;EAAS,IAC7BhD,QAAQ,iBAAIzD,MAAA,YAAAmF,aAAA,CAACJ,KAAK,CAACgC,KAAK,OAAG,eAC5B/G,MAAA,YAAAmF,aAAA,CAACR,QAAQ,EAAA0B,KAAA,CAAAO,EAAA,iBAAG,CACG,CACT;AAEd;AAEA,SAAS5B,OAAOA,CAACkB,KAAK,EAAE;EAAA,IAAAc,KAAA,GAAAZ,YAAA;IAAAa,KAAA;EACtB,IAAMC,QAAQ,GAOMC,oBAAS;EAN7B,IAAQxC,QAAQ,GAAsCuB,KAAK,CAAnDvB,QAAQ;IAAE6B,MAAM,GAA8BN,KAAK,CAAzCM,MAAM;IAAEnD,cAAc,GAAc6C,KAAK,CAAjC7C,cAAc;IAAEH,OAAO,GAAKgD,KAAK,CAAjBhD,OAAO;EACjD,IAAMkE,UAAU,GAAG,IAAAV,aAAM,EAAC,IAAI,CAAC;EAC/B,IAAAW,4BAAgB,EAACnE,OAAO,EAAEgD,KAAK,CAAC9C,oBAAoB,CAAC;EACrD,IAAAkE,8BAAe,EAACF,UAAU,EAAElE,OAAO,CAAC;EAEpC,OAAA+D,KAAA,GAAO,IAAA9F,aAAO,EAACqF,MAAM,CAAC,eACpBxG,MAAA,YAAAmF,aAAA,CAAC+B,QAAQ,EAAAD,KAAA,CAAAL,EAAA,iBAAAC,cAAA,qBAAAhH,KAAA,CAAAuF,WAAA;IAAA,OAAyBgC;EAAU,GAAAJ,KAAA,kBAC1ChH,MAAA,YAAAmF,aAAA,CAAC/E,aAAA,WAAY,EAAA6G,KAAA,CAAAL,EAAA;IAAA,QAAOQ,UAAU;IAAA,kBAAkB/D;EAAc,iBAC5DrD,MAAA,YAAAmF,aAAA,CAACR,QAAQ,EAAAsC,KAAA,CAAAL,EAAA,iBAAG,CACC,CACN;AAEf;AAEA,SAASG,KAAKA,CAACb,KAAK,EAAE;EAAA,IAAAqB,KAAA,GAAAnB,YAAA;IAAAoB,KAAA;EACpB,IAAMC,MAAM,GAGMC,YAAG;EAFrB,IAAQ/C,QAAQ,GAAyCuB,KAAK,CAAtDvB,QAAQ;IAAYgD,WAAW,GAAkBzB,KAAK,CAA5C0B,QAAQ;IAAelE,WAAW,GAAKwC,KAAK,CAArBxC,WAAW;EACpD,OAAA8D,KAAA,GAAO,IAAArG,aAAO,EAAC+E,KAAK,CAACM,MAAM,CAAC,eAC1BxG,MAAA,YAAAmF,aAAA,CAACsC,MAAM,EAAAD,KAAA,CAAAZ,EAAA,eAAAC,cAAA,qBAAAhH,KAAA,CAAAuF,WAAA;IAAA,OAAkB,QAAQ;IAAA,YAAW,CAAC;IAAA,cAAc1B,WAAW,CAAC,OAAO;EAAC,GAAA6D,KAAA,KAC5EI,WAAW,gBAAG3H,MAAA,YAAAmF,aAAA,CAACR,QAAQ,EAAA6C,KAAA,CAAAZ,EAAA,iBAAG,gBAAG5G,MAAA,YAAAmF,aAAA,CAAC7E,EAAA,WAAS,EAAAkH,KAAA,CAAAZ,EAAA;IAAA,SAAQlD,WAAW,CAAC,OAAO;EAAC,GAAI,CACjE;AAEb;AAEAqD,KAAK,CAACc,OAAO,GAAG,CAAC,IAAAC,gCAAoB,GAAE,CAAC;AAExC,SAASC,KAAKA,CAAC7B,KAAK,EAAE;EAAA,IAAA8B,KAAA,GAAA5B,YAAA;IAAA6B,KAAA;EACpB,IAAQ5D,WAAW,GAAa6B,KAAK,CAA7B7B,WAAW;IAAEmC,MAAM,GAAKN,KAAK,CAAhBM,MAAM;EAC3B,IAAM0B,MAAM,GAI2BC,gBAAI;EAF3C,IAAAC,gBAAS,EAAC;IAAA,OAAM/D,WAAW,EAAE;EAAA,EAAC;EAE9B,OAAA4D,KAAA,GAAO,IAAA9G,aAAO,EAACqF,MAAM,CAAC,eAACxG,MAAA,YAAAmF,aAAA,CAAC+C,MAAM,EAAAD,KAAA,CAAArB,EAAA,eAAAC,cAAA,qBAAAhH,KAAA,CAAAuF,WAAA;IAAA,OAAmB;EAAI,GAAA4C,KAAA,IAAG;AAC1D;AAEA,IAAMjD,KAAK,GAAG,IAAAsD,gBAAe,EAAChH,SAAS,EAAE;EACvC6D,MAAM,EAANA,MAAM;EACNF,OAAO,EAAPA,OAAO;EACP+B,KAAK,EAALA,KAAK;EACLgB,KAAK,EAALA;AACF,CAAC,CAAC;AAAC,IAAAO,QAAA,GAEYvD,KAAK;AAAAwD,OAAA,cAAAD,QAAA"}
|
package/lib/cjs/modal.vo-test.js
CHANGED
|
@@ -3,21 +3,20 @@
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
5
5
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var _e2eStand = require("@semcore/
|
|
9
|
-
var _path = require("path");
|
|
6
|
+
var _playwright = require("@semcore/testing-utils/playwright");
|
|
7
|
+
var _playwright2 = require("@guidepup/playwright");
|
|
8
|
+
var _e2eStand = require("@semcore/testing-utils/e2e-stand");
|
|
10
9
|
var _promises = require("fs/promises");
|
|
11
|
-
var _voReporter = require("@semcore/
|
|
12
|
-
(0,
|
|
10
|
+
var _voReporter = require("@semcore/testing-utils/vo-reporter");
|
|
11
|
+
(0, _playwright2.voTest)('Users can interact with Modal via VoiceOver', /*#__PURE__*/function () {
|
|
13
12
|
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee(_ref) {
|
|
14
13
|
var page, pureVoiceOver, standPath, reportPath, htmlContent, _yield$makeVoiceOverR, voiceOver, getReport, report;
|
|
15
14
|
return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
|
|
16
15
|
while (1) switch (_context.prev = _context.next) {
|
|
17
16
|
case 0:
|
|
18
17
|
page = _ref.page, pureVoiceOver = _ref.voiceOver;
|
|
19
|
-
standPath =
|
|
20
|
-
reportPath =
|
|
18
|
+
standPath = 'website/docs/components/modal/examples/modal.tsx';
|
|
19
|
+
reportPath = 'website/docs/components/modal/modal-a11y-report.md';
|
|
21
20
|
_context.next = 5;
|
|
22
21
|
return (0, _e2eStand.e2eStandToHtml)(standPath, 'en');
|
|
23
22
|
case 5:
|
|
@@ -34,7 +33,7 @@ var _voReporter = require("@semcore/jest-preset-ui/vo-reporter");
|
|
|
34
33
|
_context.next = 15;
|
|
35
34
|
return voiceOver.interact();
|
|
36
35
|
case 15:
|
|
37
|
-
_context.t0 =
|
|
36
|
+
_context.t0 = _playwright.expect;
|
|
38
37
|
_context.next = 18;
|
|
39
38
|
return voiceOver.itemText();
|
|
40
39
|
case 18:
|
|
@@ -43,7 +42,7 @@ var _voReporter = require("@semcore/jest-preset-ui/vo-reporter");
|
|
|
43
42
|
_context.next = 22;
|
|
44
43
|
return voiceOver.act();
|
|
45
44
|
case 22:
|
|
46
|
-
_context.t2 =
|
|
45
|
+
_context.t2 = _playwright.expect;
|
|
47
46
|
_context.next = 25;
|
|
48
47
|
return voiceOver.lastSpokenPhrase();
|
|
49
48
|
case 25:
|
|
@@ -52,7 +51,7 @@ var _voReporter = require("@semcore/jest-preset-ui/vo-reporter");
|
|
|
52
51
|
_context.next = 29;
|
|
53
52
|
return voiceOver.next();
|
|
54
53
|
case 29:
|
|
55
|
-
_context.t4 =
|
|
54
|
+
_context.t4 = _playwright.expect;
|
|
56
55
|
_context.next = 32;
|
|
57
56
|
return voiceOver.itemText();
|
|
58
57
|
case 32:
|
|
@@ -64,7 +63,7 @@ var _voReporter = require("@semcore/jest-preset-ui/vo-reporter");
|
|
|
64
63
|
_context.next = 38;
|
|
65
64
|
return voiceOver.next();
|
|
66
65
|
case 38:
|
|
67
|
-
_context.t6 =
|
|
66
|
+
_context.t6 = _playwright.expect;
|
|
68
67
|
_context.next = 41;
|
|
69
68
|
return voiceOver.itemText();
|
|
70
69
|
case 41:
|
|
@@ -76,7 +75,7 @@ var _voReporter = require("@semcore/jest-preset-ui/vo-reporter");
|
|
|
76
75
|
_context.next = 47;
|
|
77
76
|
return voiceOver.act();
|
|
78
77
|
case 47:
|
|
79
|
-
_context.t8 =
|
|
78
|
+
_context.t8 = _playwright.expect;
|
|
80
79
|
_context.next = 50;
|
|
81
80
|
return voiceOver.itemText();
|
|
82
81
|
case 50:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.vo-test.js","names":["
|
|
1
|
+
{"version":3,"file":"modal.vo-test.js","names":["_playwright","require","_playwright2","_e2eStand","_promises","_voReporter","test","_ref2","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","_ref","page","pureVoiceOver","standPath","reportPath","htmlContent","_yield$makeVoiceOverR","voiceOver","getReport","report","wrap","_callee$","_context","prev","next","e2eStandToHtml","sent","setContent","makeVoiceOverReporter","interact","t0","expect","itemText","t1","toBe","act","t2","lastSpokenPhrase","t3","t4","t5","t6","t7","t8","t9","getReportHeader","t10","t11","t12","writeFile","stop","_x","apply","arguments"],"sources":["../../src/modal.vo-test.ts"],"sourcesContent":["import { expect } from '@semcore/testing-utils/playwright';\nimport { voTest as test } from '@guidepup/playwright';\nimport { e2eStandToHtml } from '@semcore/testing-utils/e2e-stand';\nimport { writeFile } from 'fs/promises';\nimport { getReportHeader, makeVoiceOverReporter } from '@semcore/testing-utils/vo-reporter';\n\ntest('Users can interact with Modal via VoiceOver', async ({ page, voiceOver: pureVoiceOver }) => {\n const standPath = 'website/docs/components/modal/examples/modal.tsx';\n const reportPath = 'website/docs/components/modal/modal-a11y-report.md';\n const htmlContent = await e2eStandToHtml(standPath, 'en');\n\n await page.setContent(htmlContent);\n const { voiceOver, getReport } = await makeVoiceOverReporter(pureVoiceOver);\n await voiceOver.interact();\n\n expect(await voiceOver.itemText()).toBe('Open modal button');\n await voiceOver.act();\n expect(await voiceOver.lastSpokenPhrase()).toBe(\n 'Do you want to save your changes? web dialog with 5 items Close button',\n );\n await voiceOver.next();\n expect(await voiceOver.itemText()).toBe('Do you want to save your changes? heading level 2');\n await voiceOver.next();\n await voiceOver.next();\n expect(await voiceOver.itemText()).toBe('Save changes button');\n await voiceOver.act();\n\n await voiceOver.act();\n expect(await voiceOver.itemText()).toBe('Open modal button');\n\n const report = (await getReportHeader()) + '\\n\\n' + (await getReport(standPath));\n\n await writeFile(reportPath, report);\n});\n"],"mappings":"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"}
|
package/lib/es6/Modal.js
CHANGED
|
@@ -23,12 +23,12 @@ import usePreventScroll from '@semcore/utils/lib/use/usePreventScroll';
|
|
|
23
23
|
import { isAdvanceMode } from '@semcore/utils/lib/findComponent';
|
|
24
24
|
import keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
|
|
25
25
|
/*__reshadow-styles__:"./style/modal.shadow.css"*/
|
|
26
|
-
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".
|
|
27
|
-
"__SWindow": "
|
|
28
|
-
"__SOverlay": "
|
|
29
|
-
"__SClose": "
|
|
30
|
-
"_keyboardFocused": "
|
|
31
|
-
"__STitle": "
|
|
26
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SWindow_qv6p3_gg_{position:relative;border-radius:var(--intergalactic-modal-rounded, 12px);background:var(--intergalactic-bg-primary-neutral, #ffffff);box-sizing:border-box;margin:auto;padding:var(--intergalactic-spacing-10x, 40px);box-shadow:var(--intergalactic-box-shadow-modal, 0px 3px 8px 0px rgba(25, 27, 35, 0.2));color:var(--intergalactic-text-primary, #191b23)}.___SWindow_qv6p3_gg_:focus{outline:0}.___SOverlay_qv6p3_gg_{position:fixed;top:0;bottom:0;left:0;right:0;margin:0;display:flex;justify-content:center;align-items:center;padding:var(--intergalactic-spacing-10x, 40px);background:var(--intergalactic-overlay-primary, rgba(25, 27, 35, 0.7));overflow:auto;z-index:var(--intergalactic-z-index-modal, 600);-webkit-overflow-scrolling:touch}.___SOverlay_qv6p3_gg_ .___SOverlay_qv6p3_gg_{background:var(--intergalactic-overlay-secondary, rgba(25, 27, 35, 0.4))}.___SClose_qv6p3_gg_{display:inline-flex;position:absolute;right:0;top:0;padding:var(--intergalactic-spacing-3x, 12px);color:var(--intergalactic-icon-secondary-neutral, #a9abb6);cursor:pointer;z-index:1;border:0;background:0 0;outline:0}@media (hover:hover){.___SClose_qv6p3_gg_:hover{color:var(--intergalactic-icon-secondary-neutral-hover-active, #8a8e9b)}}.___SClose_qv6p3_gg_.__keyboardFocused_qv6p3_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___STitle_qv6p3_gg_{color:var(--intergalactic-text-primary, #191b23);font-size:var(--intergalactic-fs-500, 24px);line-height:var(--intergalactic-lh-500, 117%);font-weight:var(--intergalactic-semi-bold, 600);margin-bottom:var(--intergalactic-spacing-2x, 8px)}@media (max-width:767px){.___SWindow_qv6p3_gg_{min-width:60%}.___SOverlay_qv6p3_gg_{padding:var(--intergalactic-spacing-3x, 12px)}}" /*__inner_css_end__*/, "qv6p3_gg_") /*__reshadow_css_end__*/, {
|
|
27
|
+
"__SWindow": "___SWindow_qv6p3_gg_",
|
|
28
|
+
"__SOverlay": "___SOverlay_qv6p3_gg_",
|
|
29
|
+
"__SClose": "___SClose_qv6p3_gg_",
|
|
30
|
+
"_keyboardFocused": "__keyboardFocused_qv6p3_gg_",
|
|
31
|
+
"__STitle": "___STitle_qv6p3_gg_"
|
|
32
32
|
});
|
|
33
33
|
import { localizedMessages } from './translations/__intergalactic-dynamic-locales';
|
|
34
34
|
import i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';
|
|
@@ -167,9 +167,9 @@ function Window(props) {
|
|
|
167
167
|
useFocusLock(windowRef, true, 'auto', !visible);
|
|
168
168
|
return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(SWindow, _ref6.cn("SWindow", _objectSpread({}, _assignProps2({
|
|
169
169
|
"initialAnimation": true,
|
|
170
|
-
"slideOrigin":
|
|
170
|
+
"slideOrigin": 'top',
|
|
171
171
|
"visible": visible,
|
|
172
|
-
"role":
|
|
172
|
+
"role": 'dialog',
|
|
173
173
|
"aria-modal": true,
|
|
174
174
|
"duration": duration,
|
|
175
175
|
"ref": windowRef
|
|
@@ -203,7 +203,7 @@ function Close(props) {
|
|
|
203
203
|
hasChildren = props.children,
|
|
204
204
|
getI18nText = props.getI18nText;
|
|
205
205
|
return _ref8 = sstyled(props.styles), /*#__PURE__*/React.createElement(SClose, _ref8.cn("SClose", _objectSpread({}, _assignProps4({
|
|
206
|
-
"tag":
|
|
206
|
+
"tag": 'button',
|
|
207
207
|
"tabIndex": 0,
|
|
208
208
|
"aria-label": getI18nText('close')
|
|
209
209
|
}, _ref4))), hasChildren ? /*#__PURE__*/React.createElement(Children, _ref8.cn("Children", {})) : /*#__PURE__*/React.createElement(CloseIcon, _ref8.cn("CloseIcon", {
|
|
@@ -221,7 +221,7 @@ function Title(props) {
|
|
|
221
221
|
return setHasTitle();
|
|
222
222
|
});
|
|
223
223
|
return _ref9 = sstyled(styles), /*#__PURE__*/React.createElement(STitle, _ref9.cn("STitle", _objectSpread({}, _assignProps5({
|
|
224
|
-
"tag":
|
|
224
|
+
"tag": 'h2'
|
|
225
225
|
}, _ref5))));
|
|
226
226
|
}
|
|
227
227
|
var Modal = createComponent(ModalRoot, {
|
package/lib/es6/Modal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["React","useRef","useEffect","FadeInOut","Slide","createComponent","Component","sstyled","Root","Portal","PortalProvider","Box","OutsideClick","CloseIcon","fire","usePreventScroll","isAdvanceMode","keyboardFocusEnhance","style","_sstyled","insert","localizedMessages","i18nEnhance","Text","uniqueIDEnhancement","cssVariableEnhance","useFocusLock","useContextTheme","ModalRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","hasTitle","e","key","stopPropagation","_createClass","value","getOverlayProps","_this$asProps","asProps","duration","visible","animationsDisabled","disablePreventScroll","onOutsideClick","handleOutsideClick","getWindowProps","_this$asProps2","closable","getI18nText","uid","state","onKeyDown","handleKeyDown","undefined","getCloseProps","onClick","handleIconCloseClick","getTitleProps","_this2","setHasTitle","setState","id","render","_ref","_this$asProps3","Children","disablePortal","advanceMode","Modal","Overlay","displayName","Window","createElement","_assignProps","variable","fallback","map","Number","parseInt","prop","i18n","locale","props","_ref2","arguments[0]","_ref6","SWindow","styles","windowRef","cn","_objectSpread","_assignProps2","Close","_ref3","_ref7","SOverlay","overlayRef","_assignProps3","_ref4","_ref8","SClose","hasChildren","children","_assignProps4","enhance","Title","_ref5","_ref9","STitle","_assignProps5"],"sources":["../../src/Modal.jsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport { FadeInOut, Slide } from '@semcore/animation';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Portal, { PortalProvider } from '@semcore/portal';\nimport { Box } from '@semcore/flex-box';\nimport OutsideClick from '@semcore/outside-click';\nimport CloseIcon from '@semcore/icon/Close/l';\nimport fire from '@semcore/utils/lib/fire';\nimport usePreventScroll from '@semcore/utils/lib/use/usePreventScroll';\nimport { isAdvanceMode } from '@semcore/utils/lib/findComponent';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport style from './style/modal.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { Text } from '@semcore/typography';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { cssVariableEnhance } from '@semcore/utils/lib/useCssVariable';\nimport { useFocusLock } from '@semcore/utils/lib/use/useFocusLock';\nimport { useContextTheme } from '@semcore/utils/lib/ThemeProvider';\n\nclass ModalRoot extends Component {\n static displayName = 'Modal';\n static style = style;\n static enhance = [\n i18nEnhance(localizedMessages),\n uniqueIDEnhancement(),\n cssVariableEnhance({\n variable: '--intergalactic-duration-modal',\n fallback: '200',\n map: Number.parseInt,\n prop: 'duration',\n }),\n ];\n static defaultProps = {\n closable: true,\n i18n: localizedMessages,\n locale: 'en',\n disablePreventScroll: false,\n };\n state = { hasTitle: false };\n\n handleKeyDown = (e) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n fire(this, 'onClose', 'onEscape', e);\n }\n };\n\n handleIconCloseClick = (e) => {\n fire(this, 'onClose', 'onCloseClick', e);\n };\n\n handleOutsideClick = (e) => {\n fire(this, 'onClose', 'onOutsideClick', e);\n };\n\n getOverlayProps() {\n const { duration, visible, animationsDisabled, disablePreventScroll } = this.asProps;\n return {\n duration,\n visible,\n onOutsideClick: this.handleOutsideClick,\n animationsDisabled,\n disablePreventScroll,\n };\n }\n\n getWindowProps() {\n const { visible, closable, getI18nText, uid, duration, animationsDisabled } = this.asProps;\n const { hasTitle } = this.state;\n return {\n visible,\n closable,\n onKeyDown: this.handleKeyDown,\n 'aria-label': hasTitle ? undefined : getI18nText('title'),\n 'aria-labelledby': hasTitle ? `igc-${uid}-title` : undefined,\n duration,\n animationsDisabled,\n };\n }\n\n getCloseProps() {\n const { getI18nText } = this.asProps;\n\n return {\n onClick: this.handleIconCloseClick,\n getI18nText,\n };\n }\n\n getTitleProps() {\n const { uid } = this.asProps;\n const setHasTitle = () => this.setState({ hasTitle: true });\n\n return {\n id: `igc-${uid}-title`,\n setHasTitle,\n };\n }\n\n render() {\n const { Children, disablePortal } = this.asProps;\n\n const advanceMode = isAdvanceMode(Children, [\n Modal.Overlay.displayName,\n Modal.Window.displayName,\n ]);\n\n return (\n <Portal disablePortal={disablePortal}>\n {advanceMode ? (\n <Children />\n ) : (\n <Modal.Overlay>\n <Root render={Modal.Window} />\n </Modal.Overlay>\n )}\n </Portal>\n );\n }\n}\n\nfunction Window(props) {\n const SWindow = Root;\n const { Children, styles, visible, closable, duration } = props;\n const windowRef = useRef(null);\n\n useFocusLock(windowRef, true, 'auto', !visible);\n\n return sstyled(styles)(\n <SWindow\n render={Slide}\n initialAnimation={true}\n slideOrigin=\"top\"\n visible={visible}\n role=\"dialog\"\n aria-modal={true}\n duration={duration}\n ref={windowRef}\n >\n <PortalProvider value={windowRef}>\n {closable && <Modal.Close />}\n <Children />\n </PortalProvider>\n </SWindow>,\n );\n}\n\nfunction Overlay(props) {\n const SOverlay = Root;\n const { Children, styles, onOutsideClick, visible } = props;\n const overlayRef = useRef(null);\n usePreventScroll(visible, props.disablePreventScroll);\n useContextTheme(overlayRef, visible);\n\n return sstyled(styles)(\n <SOverlay render={FadeInOut} ref={overlayRef}>\n <OutsideClick root={overlayRef} onOutsideClick={onOutsideClick}>\n <Children />\n </OutsideClick>\n </SOverlay>,\n );\n}\n\nfunction Close(props) {\n const SClose = Root;\n const { Children, children: hasChildren, getI18nText } = props;\n return sstyled(props.styles)(\n <SClose render={Box} tag=\"button\" tabIndex={0} aria-label={getI18nText('close')}>\n {hasChildren ? <Children /> : <CloseIcon title={getI18nText('close')} />}\n </SClose>,\n );\n}\n\nClose.enhance = [keyboardFocusEnhance()];\n\nfunction Title(props) {\n const { setHasTitle, styles } = props;\n const STitle = Root;\n\n useEffect(() => setHasTitle());\n\n return sstyled(styles)(<STitle render={Text} tag=\"h2\" />);\n}\n\nconst Modal = createComponent(ModalRoot, {\n Window,\n Overlay,\n Close,\n Title,\n});\n\nexport default Modal;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["React","useRef","useEffect","FadeInOut","Slide","createComponent","Component","sstyled","Root","Portal","PortalProvider","Box","OutsideClick","CloseIcon","fire","usePreventScroll","isAdvanceMode","keyboardFocusEnhance","style","_sstyled","insert","localizedMessages","i18nEnhance","Text","uniqueIDEnhancement","cssVariableEnhance","useFocusLock","useContextTheme","ModalRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","hasTitle","e","key","stopPropagation","_createClass","value","getOverlayProps","_this$asProps","asProps","duration","visible","animationsDisabled","disablePreventScroll","onOutsideClick","handleOutsideClick","getWindowProps","_this$asProps2","closable","getI18nText","uid","state","onKeyDown","handleKeyDown","undefined","getCloseProps","onClick","handleIconCloseClick","getTitleProps","_this2","setHasTitle","setState","id","render","_ref","_this$asProps3","Children","disablePortal","advanceMode","Modal","Overlay","displayName","Window","createElement","_assignProps","variable","fallback","map","Number","parseInt","prop","i18n","locale","props","_ref2","arguments[0]","_ref6","SWindow","styles","windowRef","cn","_objectSpread","_assignProps2","Close","_ref3","_ref7","SOverlay","overlayRef","_assignProps3","_ref4","_ref8","SClose","hasChildren","children","_assignProps4","enhance","Title","_ref5","_ref9","STitle","_assignProps5"],"sources":["../../src/Modal.jsx"],"sourcesContent":["import React, { useRef, useEffect } from 'react';\nimport { FadeInOut, Slide } from '@semcore/animation';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport Portal, { PortalProvider } from '@semcore/portal';\nimport { Box } from '@semcore/flex-box';\nimport OutsideClick from '@semcore/outside-click';\nimport CloseIcon from '@semcore/icon/Close/l';\nimport fire from '@semcore/utils/lib/fire';\nimport usePreventScroll from '@semcore/utils/lib/use/usePreventScroll';\nimport { isAdvanceMode } from '@semcore/utils/lib/findComponent';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport style from './style/modal.shadow.css';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { Text } from '@semcore/typography';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport { cssVariableEnhance } from '@semcore/utils/lib/useCssVariable';\nimport { useFocusLock } from '@semcore/utils/lib/use/useFocusLock';\nimport { useContextTheme } from '@semcore/utils/lib/ThemeProvider';\n\nclass ModalRoot extends Component {\n static displayName = 'Modal';\n static style = style;\n static enhance = [\n i18nEnhance(localizedMessages),\n uniqueIDEnhancement(),\n cssVariableEnhance({\n variable: '--intergalactic-duration-modal',\n fallback: '200',\n map: Number.parseInt,\n prop: 'duration',\n }),\n ];\n static defaultProps = {\n closable: true,\n i18n: localizedMessages,\n locale: 'en',\n disablePreventScroll: false,\n };\n state = { hasTitle: false };\n\n handleKeyDown = (e) => {\n if (e.key === 'Escape') {\n e.stopPropagation();\n fire(this, 'onClose', 'onEscape', e);\n }\n };\n\n handleIconCloseClick = (e) => {\n fire(this, 'onClose', 'onCloseClick', e);\n };\n\n handleOutsideClick = (e) => {\n fire(this, 'onClose', 'onOutsideClick', e);\n };\n\n getOverlayProps() {\n const { duration, visible, animationsDisabled, disablePreventScroll } = this.asProps;\n return {\n duration,\n visible,\n onOutsideClick: this.handleOutsideClick,\n animationsDisabled,\n disablePreventScroll,\n };\n }\n\n getWindowProps() {\n const { visible, closable, getI18nText, uid, duration, animationsDisabled } = this.asProps;\n const { hasTitle } = this.state;\n return {\n visible,\n closable,\n onKeyDown: this.handleKeyDown,\n 'aria-label': hasTitle ? undefined : getI18nText('title'),\n 'aria-labelledby': hasTitle ? `igc-${uid}-title` : undefined,\n duration,\n animationsDisabled,\n };\n }\n\n getCloseProps() {\n const { getI18nText } = this.asProps;\n\n return {\n onClick: this.handleIconCloseClick,\n getI18nText,\n };\n }\n\n getTitleProps() {\n const { uid } = this.asProps;\n const setHasTitle = () => this.setState({ hasTitle: true });\n\n return {\n id: `igc-${uid}-title`,\n setHasTitle,\n };\n }\n\n render() {\n const { Children, disablePortal } = this.asProps;\n\n const advanceMode = isAdvanceMode(Children, [\n Modal.Overlay.displayName,\n Modal.Window.displayName,\n ]);\n\n return (\n <Portal disablePortal={disablePortal}>\n {advanceMode ? (\n <Children />\n ) : (\n <Modal.Overlay>\n <Root render={Modal.Window} />\n </Modal.Overlay>\n )}\n </Portal>\n );\n }\n}\n\nfunction Window(props) {\n const SWindow = Root;\n const { Children, styles, visible, closable, duration } = props;\n const windowRef = useRef(null);\n\n useFocusLock(windowRef, true, 'auto', !visible);\n\n return sstyled(styles)(\n <SWindow\n render={Slide}\n initialAnimation={true}\n slideOrigin='top'\n visible={visible}\n role='dialog'\n aria-modal={true}\n duration={duration}\n ref={windowRef}\n >\n <PortalProvider value={windowRef}>\n {closable && <Modal.Close />}\n <Children />\n </PortalProvider>\n </SWindow>,\n );\n}\n\nfunction Overlay(props) {\n const SOverlay = Root;\n const { Children, styles, onOutsideClick, visible } = props;\n const overlayRef = useRef(null);\n usePreventScroll(visible, props.disablePreventScroll);\n useContextTheme(overlayRef, visible);\n\n return sstyled(styles)(\n <SOverlay render={FadeInOut} ref={overlayRef}>\n <OutsideClick root={overlayRef} onOutsideClick={onOutsideClick}>\n <Children />\n </OutsideClick>\n </SOverlay>,\n );\n}\n\nfunction Close(props) {\n const SClose = Root;\n const { Children, children: hasChildren, getI18nText } = props;\n return sstyled(props.styles)(\n <SClose render={Box} tag='button' tabIndex={0} aria-label={getI18nText('close')}>\n {hasChildren ? <Children /> : <CloseIcon title={getI18nText('close')} />}\n </SClose>,\n );\n}\n\nClose.enhance = [keyboardFocusEnhance()];\n\nfunction Title(props) {\n const { setHasTitle, styles } = props;\n const STitle = Root;\n\n useEffect(() => setHasTitle());\n\n return sstyled(styles)(<STitle render={Text} tag='h2' />);\n}\n\nconst Modal = createComponent(ModalRoot, {\n Window,\n Overlay,\n Close,\n Title,\n});\n\nexport default Modal;\n"],"mappings":"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"}
|
package/lib/es6/modal.vo-test.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import _regeneratorRuntime from "@babel/runtime/helpers/regeneratorRuntime";
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
|
-
import { expect } from '@playwright
|
|
3
|
+
import { expect } from '@semcore/testing-utils/playwright';
|
|
4
4
|
import { voTest as test } from '@guidepup/playwright';
|
|
5
|
-
import { e2eStandToHtml } from '@semcore/
|
|
6
|
-
import { resolve as resolvePath } from 'path';
|
|
5
|
+
import { e2eStandToHtml } from '@semcore/testing-utils/e2e-stand';
|
|
7
6
|
import { writeFile } from 'fs/promises';
|
|
8
|
-
import { getReportHeader, makeVoiceOverReporter } from '@semcore/
|
|
7
|
+
import { getReportHeader, makeVoiceOverReporter } from '@semcore/testing-utils/vo-reporter';
|
|
9
8
|
test('Users can interact with Modal via VoiceOver', /*#__PURE__*/function () {
|
|
10
9
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
|
|
11
10
|
var page, pureVoiceOver, standPath, reportPath, htmlContent, _yield$makeVoiceOverR, voiceOver, getReport, report;
|
|
@@ -13,8 +12,8 @@ test('Users can interact with Modal via VoiceOver', /*#__PURE__*/function () {
|
|
|
13
12
|
while (1) switch (_context.prev = _context.next) {
|
|
14
13
|
case 0:
|
|
15
14
|
page = _ref.page, pureVoiceOver = _ref.voiceOver;
|
|
16
|
-
standPath =
|
|
17
|
-
reportPath =
|
|
15
|
+
standPath = 'website/docs/components/modal/examples/modal.tsx';
|
|
16
|
+
reportPath = 'website/docs/components/modal/modal-a11y-report.md';
|
|
18
17
|
_context.next = 5;
|
|
19
18
|
return e2eStandToHtml(standPath, 'en');
|
|
20
19
|
case 5:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.vo-test.js","names":["expect","voTest","test","e2eStandToHtml","
|
|
1
|
+
{"version":3,"file":"modal.vo-test.js","names":["expect","voTest","test","e2eStandToHtml","writeFile","getReportHeader","makeVoiceOverReporter","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","page","pureVoiceOver","standPath","reportPath","htmlContent","_yield$makeVoiceOverR","voiceOver","getReport","report","wrap","_callee$","_context","prev","next","sent","setContent","interact","t0","itemText","t1","toBe","act","t2","lastSpokenPhrase","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","stop","_x","apply","arguments"],"sources":["../../src/modal.vo-test.ts"],"sourcesContent":["import { expect } from '@semcore/testing-utils/playwright';\nimport { voTest as test } from '@guidepup/playwright';\nimport { e2eStandToHtml } from '@semcore/testing-utils/e2e-stand';\nimport { writeFile } from 'fs/promises';\nimport { getReportHeader, makeVoiceOverReporter } from '@semcore/testing-utils/vo-reporter';\n\ntest('Users can interact with Modal via VoiceOver', async ({ page, voiceOver: pureVoiceOver }) => {\n const standPath = 'website/docs/components/modal/examples/modal.tsx';\n const reportPath = 'website/docs/components/modal/modal-a11y-report.md';\n const htmlContent = await e2eStandToHtml(standPath, 'en');\n\n await page.setContent(htmlContent);\n const { voiceOver, getReport } = await makeVoiceOverReporter(pureVoiceOver);\n await voiceOver.interact();\n\n expect(await voiceOver.itemText()).toBe('Open modal button');\n await voiceOver.act();\n expect(await voiceOver.lastSpokenPhrase()).toBe(\n 'Do you want to save your changes? web dialog with 5 items Close button',\n );\n await voiceOver.next();\n expect(await voiceOver.itemText()).toBe('Do you want to save your changes? heading level 2');\n await voiceOver.next();\n await voiceOver.next();\n expect(await voiceOver.itemText()).toBe('Save changes button');\n await voiceOver.act();\n\n await voiceOver.act();\n expect(await voiceOver.itemText()).toBe('Open modal button');\n\n const report = (await getReportHeader()) + '\\n\\n' + (await getReport(standPath));\n\n await writeFile(reportPath, report);\n});\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/modal",
|
|
3
3
|
"description": "Semrush Modal Component",
|
|
4
|
-
"version": "3.8.
|
|
4
|
+
"version": "3.8.3",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -22,9 +22,6 @@
|
|
|
22
22
|
"react": "16.8 - 18",
|
|
23
23
|
"react-dom": "16.8 - 18"
|
|
24
24
|
},
|
|
25
|
-
"jest": {
|
|
26
|
-
"preset": "@semcore/jest-preset-ui"
|
|
27
|
-
},
|
|
28
25
|
"repository": {
|
|
29
26
|
"type": "git",
|
|
30
27
|
"url": "https://github.com/semrush/intergalactic.git",
|
|
@@ -33,11 +30,10 @@
|
|
|
33
30
|
"devDependencies": {
|
|
34
31
|
"@guidepup/playwright": "0.6.1",
|
|
35
32
|
"@playwright/test": "1.25.1",
|
|
36
|
-
"@
|
|
37
|
-
"@
|
|
33
|
+
"@types/react": "18.0.21",
|
|
34
|
+
"@semcore/testing-utils": "1.0.0"
|
|
38
35
|
},
|
|
39
36
|
"scripts": {
|
|
40
|
-
"build": "pnpm semcore-builder --source=js"
|
|
41
|
-
"test": "jest"
|
|
37
|
+
"build": "pnpm semcore-builder --source=js"
|
|
42
38
|
}
|
|
43
39
|
}
|