@semcore/modal 4.18.1-prerelease.1 → 4.19.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 +7 -1
- package/lib/cjs/Modal.js +16 -12
- package/lib/cjs/Modal.js.map +1 -1
- package/lib/cjs/index.d.js.map +1 -1
- package/lib/cjs/style/modal.shadow.css +15 -0
- package/lib/es6/Modal.js +16 -12
- package/lib/es6/Modal.js.map +1 -1
- package/lib/es6/index.d.js.map +1 -1
- package/lib/es6/style/modal.shadow.css +15 -0
- package/lib/types/index.d.ts +5 -0
- package/package.json +9 -9
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
-
## [4.
|
|
5
|
+
## [4.19.0-prerelease.1] - 2023-11-24
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `Ghost` view for modals.
|
|
10
|
+
|
|
11
|
+
## [4.18.1] - 2023-11-21
|
|
6
12
|
|
|
7
13
|
### Changed
|
|
8
14
|
|
package/lib/cjs/Modal.js
CHANGED
|
@@ -32,12 +32,13 @@ 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
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
35
|
+
var style = ( /*__reshadow_css_start__*/_core.sstyled.insert( /*__inner_css_start__*/".___SWindow_92pk9_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_92pk9_gg_:focus{outline:0}.___SWindow_92pk9_gg_.__ghost_92pk9_gg_{background:0 0;padding:0;box-shadow:none}.___SOverlay_92pk9_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_92pk9_gg_ .___SOverlay_92pk9_gg_{background:var(--intergalactic-overlay-secondary, rgba(25, 27, 35, 0.4))}.___SClose_92pk9_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_92pk9_gg_:hover{color:var(--intergalactic-icon-secondary-neutral-hover-active, #878992)}}.___SClose_92pk9_gg_.__ghost_92pk9_gg_{color:var(--intergalactic-icon-primary-invert, #ffffff);border-radius:4px}@media (hover:hover){.___SClose_92pk9_gg_.__ghost_92pk9_gg_:hover{background-color:var(--intergalactic-control-tertiary-invert-active, rgba(255, 255, 255, 0.3))}}.___SClose_92pk9_gg_.__keyboardFocused_92pk9_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___STitle_92pk9_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_92pk9_gg_{min-width:60%}.___SOverlay_92pk9_gg_{padding:var(--intergalactic-spacing-3x, 12px)}}" /*__inner_css_end__*/, "92pk9_gg_") /*__reshadow_css_end__*/, {
|
|
36
|
+
"__SWindow": "___SWindow_92pk9_gg_",
|
|
37
|
+
"_ghost": "__ghost_92pk9_gg_",
|
|
38
|
+
"__SClose": "___SClose_92pk9_gg_",
|
|
39
|
+
"_keyboardFocused": "__keyboardFocused_92pk9_gg_",
|
|
40
|
+
"__STitle": "___STitle_92pk9_gg_",
|
|
41
|
+
"__SOverlay": "___SOverlay_92pk9_gg_"
|
|
41
42
|
});
|
|
42
43
|
var ModalRoot = /*#__PURE__*/function (_Component) {
|
|
43
44
|
(0, _inherits2["default"])(ModalRoot, _Component);
|
|
@@ -106,10 +107,13 @@ var ModalRoot = /*#__PURE__*/function (_Component) {
|
|
|
106
107
|
}, {
|
|
107
108
|
key: "getCloseProps",
|
|
108
109
|
value: function getCloseProps() {
|
|
109
|
-
var
|
|
110
|
+
var _this$asProps3 = this.asProps,
|
|
111
|
+
getI18nText = _this$asProps3.getI18nText,
|
|
112
|
+
ghost = _this$asProps3.ghost;
|
|
110
113
|
return {
|
|
111
114
|
onClick: this.handleIconCloseClick,
|
|
112
|
-
getI18nText: getI18nText
|
|
115
|
+
getI18nText: getI18nText,
|
|
116
|
+
ghost: ghost
|
|
113
117
|
};
|
|
114
118
|
}
|
|
115
119
|
}, {
|
|
@@ -131,10 +135,10 @@ var ModalRoot = /*#__PURE__*/function (_Component) {
|
|
|
131
135
|
key: "render",
|
|
132
136
|
value: function render() {
|
|
133
137
|
var _ref = this.asProps;
|
|
134
|
-
var _this$
|
|
135
|
-
Children = _this$
|
|
136
|
-
disablePortal = _this$
|
|
137
|
-
forcedAdvancedMode = _this$
|
|
138
|
+
var _this$asProps4 = this.asProps,
|
|
139
|
+
Children = _this$asProps4.Children,
|
|
140
|
+
disablePortal = _this$asProps4.disablePortal,
|
|
141
|
+
forcedAdvancedMode = _this$asProps4.forcedAdvancedMode;
|
|
138
142
|
var advancedMode = forcedAdvancedMode || (0, _findComponent.isAdvanceMode)(Children, [Modal.Overlay.displayName, Modal.Window.displayName]);
|
|
139
143
|
return /*#__PURE__*/_react["default"].createElement(_portal["default"], {
|
|
140
144
|
disablePortal: disablePortal
|
package/lib/cjs/Modal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_animation","_portal","_flexBox","_outsideClick","_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","forcedAdvancedMode","advancedMode","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","React","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 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, forcedAdvancedMode } = this.asProps;\n\n const advancedMode =\n forcedAdvancedMode ||\n isAdvanceMode(Children, [Modal.Overlay.displayName, Modal.Window.displayName]);\n\n return (\n <Portal disablePortal={disablePortal}>\n {advancedMode ? (\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 = React.useRef(null);\n\n useFocusLock(windowRef, true, 'auto', !visible, true);\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 = React.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 React.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","_interopRequireDefault","_animation","_portal","_flexBox","_outsideClick","_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","_this$asProps3","ghost","onClick","handleIconCloseClick","getTitleProps","_this2","setHasTitle","setState","id","render","_ref","_this$asProps4","Children","disablePortal","forcedAdvancedMode","advancedMode","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","React","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 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, ghost } = this.asProps;\n\n return {\n onClick: this.handleIconCloseClick,\n getI18nText,\n ghost,\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, forcedAdvancedMode } = this.asProps;\n\n const advancedMode =\n forcedAdvancedMode ||\n isAdvanceMode(Children, [Modal.Overlay.displayName, Modal.Window.displayName]);\n\n return (\n <Portal disablePortal={disablePortal}>\n {advancedMode ? (\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 = React.useRef(null);\n\n useFocusLock(windowRef, true, 'auto', !visible, true);\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 = React.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 React.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/cjs/index.d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { FadeInOutProps, SlideProps } from '@semcore/animation';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { PortalProps } from '@semcore/portal';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { TextProps } from '@semcore/typography';\n\n/** @deprecated */\nexport interface IModalProps extends ModalProps, UnknownProperties {}\nexport type ModalProps = PortalProps &\n BoxProps &\n FadeInOutProps & {\n /** Duration of animation, ms\n * @default 200\n */\n duration?: number;\n /** This property is responsible for the visibility of the modal window */\n visible?: boolean;\n /** Function called when the component is hidden */\n onClose?: (\n trigger: 'onOutsideClick' | 'onCloseClick' | 'onEscape',\n e?: React.MouseEvent | React.KeyboardEvent,\n ) => void;\n /** Displaying the close button(x) in the upper-right corner of the modal dialog\n * @default true\n * */\n closable?: boolean;\n /**\n * Setting `true` disables mechanism that hides document body scrollbar when Modal is visible\n * @default false\n */\n disablePreventScroll?: boolean;\n\n locale?: string;\n };\n\n/** @deprecated */\nexport interface IWindowProps extends WindowProps, UnknownProperties {}\nexport type WindowProps = BoxProps & SlideProps & {};\n\n/** @deprecated */\nexport interface IModalContext extends ModalContext, UnknownProperties {}\nexport type ModalContext = {\n getOverlayProps: PropGetterFn;\n getWindowProps: PropGetterFn;\n getCloseProps: PropGetterFn;\n};\n\ndeclare const Modal: Intergalactic.Component<'div', ModalProps, ModalContext> & {\n Window: Intergalactic.Component<'div', WindowProps>;\n Overlay: typeof Box;\n Close: typeof Box;\n Title: Intergalactic.Component<'div', TextProps>;\n};\n\nexport default Modal;\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { FadeInOutProps, SlideProps } from '@semcore/animation';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { PortalProps } from '@semcore/portal';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { TextProps } from '@semcore/typography';\n\n/** @deprecated */\nexport interface IModalProps extends ModalProps, UnknownProperties {}\nexport type ModalProps = PortalProps &\n BoxProps &\n FadeInOutProps & {\n /** Duration of animation, ms\n * @default 200\n */\n duration?: number;\n /** This property is responsible for the visibility of the modal window */\n visible?: boolean;\n /** Function called when the component is hidden */\n onClose?: (\n trigger: 'onOutsideClick' | 'onCloseClick' | 'onEscape',\n e?: React.MouseEvent | React.KeyboardEvent,\n ) => void;\n /** Displaying the close button(x) in the upper-right corner of the modal dialog\n * @default true\n * */\n closable?: boolean;\n /**\n * Setting `true` disables mechanism that hides document body scrollbar when Modal is visible\n * @default false\n */\n disablePreventScroll?: boolean;\n\n locale?: string;\n\n /**\n * Props for render modal without background and paddings. Useful in carousel for example\n */\n ghost?: boolean;\n };\n\n/** @deprecated */\nexport interface IWindowProps extends WindowProps, UnknownProperties {}\nexport type WindowProps = BoxProps & SlideProps & {};\n\n/** @deprecated */\nexport interface IModalContext extends ModalContext, UnknownProperties {}\nexport type ModalContext = {\n getOverlayProps: PropGetterFn;\n getWindowProps: PropGetterFn;\n getCloseProps: PropGetterFn;\n};\n\ndeclare const Modal: Intergalactic.Component<'div', ModalProps, ModalContext> & {\n Window: Intergalactic.Component<'div', WindowProps>;\n Overlay: typeof Box;\n Close: typeof Box;\n Title: Intergalactic.Component<'div', TextProps>;\n};\n\nexport default Modal;\n"],"mappings":""}
|
|
@@ -13,6 +13,12 @@ SWindow {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
SWindow[ghost] {
|
|
17
|
+
background: transparent;
|
|
18
|
+
padding: 0;
|
|
19
|
+
box-shadow: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
SOverlay {
|
|
17
23
|
position: fixed;
|
|
18
24
|
top: 0;
|
|
@@ -52,6 +58,15 @@ SClose {
|
|
|
52
58
|
}
|
|
53
59
|
}
|
|
54
60
|
|
|
61
|
+
SClose[ghost] {
|
|
62
|
+
color: var(--intergalactic-icon-primary-invert, #ffffff);
|
|
63
|
+
border-radius: 4px;
|
|
64
|
+
|
|
65
|
+
&:hover {
|
|
66
|
+
background-color: var(--intergalactic-control-tertiary-invert-active, rgba(255, 255, 255, 0.3));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
55
70
|
SClose[keyboardFocused] {
|
|
56
71
|
box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
|
|
57
72
|
}
|
package/lib/es6/Modal.js
CHANGED
|
@@ -23,12 +23,13 @@ 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
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
26
|
+
var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___SWindow_92pk9_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_92pk9_gg_:focus{outline:0}.___SWindow_92pk9_gg_.__ghost_92pk9_gg_{background:0 0;padding:0;box-shadow:none}.___SOverlay_92pk9_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_92pk9_gg_ .___SOverlay_92pk9_gg_{background:var(--intergalactic-overlay-secondary, rgba(25, 27, 35, 0.4))}.___SClose_92pk9_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_92pk9_gg_:hover{color:var(--intergalactic-icon-secondary-neutral-hover-active, #878992)}}.___SClose_92pk9_gg_.__ghost_92pk9_gg_{color:var(--intergalactic-icon-primary-invert, #ffffff);border-radius:4px}@media (hover:hover){.___SClose_92pk9_gg_.__ghost_92pk9_gg_:hover{background-color:var(--intergalactic-control-tertiary-invert-active, rgba(255, 255, 255, 0.3))}}.___SClose_92pk9_gg_.__keyboardFocused_92pk9_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___STitle_92pk9_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_92pk9_gg_{min-width:60%}.___SOverlay_92pk9_gg_{padding:var(--intergalactic-spacing-3x, 12px)}}" /*__inner_css_end__*/, "92pk9_gg_") /*__reshadow_css_end__*/, {
|
|
27
|
+
"__SWindow": "___SWindow_92pk9_gg_",
|
|
28
|
+
"_ghost": "__ghost_92pk9_gg_",
|
|
29
|
+
"__SClose": "___SClose_92pk9_gg_",
|
|
30
|
+
"_keyboardFocused": "__keyboardFocused_92pk9_gg_",
|
|
31
|
+
"__STitle": "___STitle_92pk9_gg_",
|
|
32
|
+
"__SOverlay": "___SOverlay_92pk9_gg_"
|
|
32
33
|
});
|
|
33
34
|
import { localizedMessages } from './translations/__intergalactic-dynamic-locales';
|
|
34
35
|
import i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';
|
|
@@ -104,10 +105,13 @@ var ModalRoot = /*#__PURE__*/function (_Component) {
|
|
|
104
105
|
}, {
|
|
105
106
|
key: "getCloseProps",
|
|
106
107
|
value: function getCloseProps() {
|
|
107
|
-
var
|
|
108
|
+
var _this$asProps3 = this.asProps,
|
|
109
|
+
getI18nText = _this$asProps3.getI18nText,
|
|
110
|
+
ghost = _this$asProps3.ghost;
|
|
108
111
|
return {
|
|
109
112
|
onClick: this.handleIconCloseClick,
|
|
110
|
-
getI18nText: getI18nText
|
|
113
|
+
getI18nText: getI18nText,
|
|
114
|
+
ghost: ghost
|
|
111
115
|
};
|
|
112
116
|
}
|
|
113
117
|
}, {
|
|
@@ -129,10 +133,10 @@ var ModalRoot = /*#__PURE__*/function (_Component) {
|
|
|
129
133
|
key: "render",
|
|
130
134
|
value: function render() {
|
|
131
135
|
var _ref = this.asProps;
|
|
132
|
-
var _this$
|
|
133
|
-
Children = _this$
|
|
134
|
-
disablePortal = _this$
|
|
135
|
-
forcedAdvancedMode = _this$
|
|
136
|
+
var _this$asProps4 = this.asProps,
|
|
137
|
+
Children = _this$asProps4.Children,
|
|
138
|
+
disablePortal = _this$asProps4.disablePortal,
|
|
139
|
+
forcedAdvancedMode = _this$asProps4.forcedAdvancedMode;
|
|
136
140
|
var advancedMode = forcedAdvancedMode || isAdvanceMode(Children, [Modal.Overlay.displayName, Modal.Window.displayName]);
|
|
137
141
|
return /*#__PURE__*/React.createElement(Portal, {
|
|
138
142
|
disablePortal: disablePortal
|
package/lib/es6/Modal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["React","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","forcedAdvancedMode","advancedMode","Modal","Overlay","displayName","Window","createElement","_assignProps","variable","fallback","map","Number","parseInt","prop","i18n","locale","props","_ref2","arguments[0]","_ref6","SWindow","styles","windowRef","useRef","cn","_objectSpread","_assignProps2","Close","_ref3","_ref7","SOverlay","overlayRef","_assignProps3","_ref4","_ref8","SClose","hasChildren","children","_assignProps4","enhance","Title","_ref5","_ref9","STitle","useEffect","_assignProps5"],"sources":["../../src/Modal.jsx"],"sourcesContent":["import React 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, forcedAdvancedMode } = this.asProps;\n\n const advancedMode =\n forcedAdvancedMode ||\n isAdvanceMode(Children, [Modal.Overlay.displayName, Modal.Window.displayName]);\n\n return (\n <Portal disablePortal={disablePortal}>\n {advancedMode ? (\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 = React.useRef(null);\n\n useFocusLock(windowRef, true, 'auto', !visible, true);\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 = React.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 React.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","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","_this$asProps3","ghost","onClick","handleIconCloseClick","getTitleProps","_this2","setHasTitle","setState","id","render","_ref","_this$asProps4","Children","disablePortal","forcedAdvancedMode","advancedMode","Modal","Overlay","displayName","Window","createElement","_assignProps","variable","fallback","map","Number","parseInt","prop","i18n","locale","props","_ref2","arguments[0]","_ref6","SWindow","styles","windowRef","useRef","cn","_objectSpread","_assignProps2","Close","_ref3","_ref7","SOverlay","overlayRef","_assignProps3","_ref4","_ref8","SClose","hasChildren","children","_assignProps4","enhance","Title","_ref5","_ref9","STitle","useEffect","_assignProps5"],"sources":["../../src/Modal.jsx"],"sourcesContent":["import React 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, ghost } = this.asProps;\n\n return {\n onClick: this.handleIconCloseClick,\n getI18nText,\n ghost,\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, forcedAdvancedMode } = this.asProps;\n\n const advancedMode =\n forcedAdvancedMode ||\n isAdvanceMode(Children, [Modal.Overlay.displayName, Modal.Window.displayName]);\n\n return (\n <Portal disablePortal={disablePortal}>\n {advancedMode ? (\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 = React.useRef(null);\n\n useFocusLock(windowRef, true, 'auto', !visible, true);\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 = React.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 React.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/index.d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { FadeInOutProps, SlideProps } from '@semcore/animation';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { PortalProps } from '@semcore/portal';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { TextProps } from '@semcore/typography';\n\n/** @deprecated */\nexport interface IModalProps extends ModalProps, UnknownProperties {}\nexport type ModalProps = PortalProps &\n BoxProps &\n FadeInOutProps & {\n /** Duration of animation, ms\n * @default 200\n */\n duration?: number;\n /** This property is responsible for the visibility of the modal window */\n visible?: boolean;\n /** Function called when the component is hidden */\n onClose?: (\n trigger: 'onOutsideClick' | 'onCloseClick' | 'onEscape',\n e?: React.MouseEvent | React.KeyboardEvent,\n ) => void;\n /** Displaying the close button(x) in the upper-right corner of the modal dialog\n * @default true\n * */\n closable?: boolean;\n /**\n * Setting `true` disables mechanism that hides document body scrollbar when Modal is visible\n * @default false\n */\n disablePreventScroll?: boolean;\n\n locale?: string;\n };\n\n/** @deprecated */\nexport interface IWindowProps extends WindowProps, UnknownProperties {}\nexport type WindowProps = BoxProps & SlideProps & {};\n\n/** @deprecated */\nexport interface IModalContext extends ModalContext, UnknownProperties {}\nexport type ModalContext = {\n getOverlayProps: PropGetterFn;\n getWindowProps: PropGetterFn;\n getCloseProps: PropGetterFn;\n};\n\ndeclare const Modal: Intergalactic.Component<'div', ModalProps, ModalContext> & {\n Window: Intergalactic.Component<'div', WindowProps>;\n Overlay: typeof Box;\n Close: typeof Box;\n Title: Intergalactic.Component<'div', TextProps>;\n};\n\nexport default Modal;\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { FadeInOutProps, SlideProps } from '@semcore/animation';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { PortalProps } from '@semcore/portal';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { TextProps } from '@semcore/typography';\n\n/** @deprecated */\nexport interface IModalProps extends ModalProps, UnknownProperties {}\nexport type ModalProps = PortalProps &\n BoxProps &\n FadeInOutProps & {\n /** Duration of animation, ms\n * @default 200\n */\n duration?: number;\n /** This property is responsible for the visibility of the modal window */\n visible?: boolean;\n /** Function called when the component is hidden */\n onClose?: (\n trigger: 'onOutsideClick' | 'onCloseClick' | 'onEscape',\n e?: React.MouseEvent | React.KeyboardEvent,\n ) => void;\n /** Displaying the close button(x) in the upper-right corner of the modal dialog\n * @default true\n * */\n closable?: boolean;\n /**\n * Setting `true` disables mechanism that hides document body scrollbar when Modal is visible\n * @default false\n */\n disablePreventScroll?: boolean;\n\n locale?: string;\n\n /**\n * Props for render modal without background and paddings. Useful in carousel for example\n */\n ghost?: boolean;\n };\n\n/** @deprecated */\nexport interface IWindowProps extends WindowProps, UnknownProperties {}\nexport type WindowProps = BoxProps & SlideProps & {};\n\n/** @deprecated */\nexport interface IModalContext extends ModalContext, UnknownProperties {}\nexport type ModalContext = {\n getOverlayProps: PropGetterFn;\n getWindowProps: PropGetterFn;\n getCloseProps: PropGetterFn;\n};\n\ndeclare const Modal: Intergalactic.Component<'div', ModalProps, ModalContext> & {\n Window: Intergalactic.Component<'div', WindowProps>;\n Overlay: typeof Box;\n Close: typeof Box;\n Title: Intergalactic.Component<'div', TextProps>;\n};\n\nexport default Modal;\n"],"mappings":""}
|
|
@@ -13,6 +13,12 @@ SWindow {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
SWindow[ghost] {
|
|
17
|
+
background: transparent;
|
|
18
|
+
padding: 0;
|
|
19
|
+
box-shadow: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
16
22
|
SOverlay {
|
|
17
23
|
position: fixed;
|
|
18
24
|
top: 0;
|
|
@@ -52,6 +58,15 @@ SClose {
|
|
|
52
58
|
}
|
|
53
59
|
}
|
|
54
60
|
|
|
61
|
+
SClose[ghost] {
|
|
62
|
+
color: var(--intergalactic-icon-primary-invert, #ffffff);
|
|
63
|
+
border-radius: 4px;
|
|
64
|
+
|
|
65
|
+
&:hover {
|
|
66
|
+
background-color: var(--intergalactic-control-tertiary-invert-active, rgba(255, 255, 255, 0.3));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
55
70
|
SClose[keyboardFocused] {
|
|
56
71
|
box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
|
|
57
72
|
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -32,6 +32,11 @@ export type ModalProps = PortalProps &
|
|
|
32
32
|
disablePreventScroll?: boolean;
|
|
33
33
|
|
|
34
34
|
locale?: string;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Props for render modal without background and paddings. Useful in carousel for example
|
|
38
|
+
*/
|
|
39
|
+
ghost?: boolean;
|
|
35
40
|
};
|
|
36
41
|
|
|
37
42
|
/** @deprecated */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/modal",
|
|
3
3
|
"description": "Semrush Modal Component",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.19.0",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -9,16 +9,16 @@
|
|
|
9
9
|
"author": "UI-kit team <ui-kit-team@semrush.com>",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@semcore/animation": "2.
|
|
13
|
-
"@semcore/flex-box": "5.
|
|
14
|
-
"@semcore/icon": "4.
|
|
15
|
-
"@semcore/outside-click": "3.
|
|
16
|
-
"@semcore/portal": "3.
|
|
17
|
-
"@semcore/typography": "5.
|
|
18
|
-
"@semcore/utils": "4.
|
|
12
|
+
"@semcore/animation": "2.11.0",
|
|
13
|
+
"@semcore/flex-box": "5.11.0",
|
|
14
|
+
"@semcore/icon": "4.17.0",
|
|
15
|
+
"@semcore/outside-click": "3.10.0",
|
|
16
|
+
"@semcore/portal": "3.10.0",
|
|
17
|
+
"@semcore/typography": "5.18.0",
|
|
18
|
+
"@semcore/utils": "4.13.0"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
|
-
"@semcore/core": "^2.
|
|
21
|
+
"@semcore/core": "^2.10.0",
|
|
22
22
|
"react": "16.8 - 18",
|
|
23
23
|
"react-dom": "16.8 - 18"
|
|
24
24
|
},
|