@laerdal/life-react-components 6.0.0-dev.21.full.full → 6.0.0-dev.23.full
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/dist/Modals/ModalContainer.cjs +96 -83
- package/dist/Modals/ModalContainer.cjs.map +1 -1
- package/dist/Modals/ModalContainer.d.ts +17 -1
- package/dist/Modals/ModalContainer.js +96 -83
- package/dist/Modals/ModalContainer.js.map +1 -1
- package/dist/Toggles/TogglerStyles.cjs +171 -15
- package/dist/Toggles/TogglerStyles.cjs.map +1 -1
- package/dist/Toggles/TogglerStyles.js +171 -15
- package/dist/Toggles/TogglerStyles.js.map +1 -1
- package/package.json +1 -1
|
@@ -79,26 +79,98 @@ const modalTransitions = `
|
|
|
79
79
|
transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);
|
|
80
80
|
}
|
|
81
81
|
`;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
82
|
+
class ModalContainer extends React.Component {
|
|
83
|
+
componentDidMount() {
|
|
84
|
+
if (_reactModal.default.defaultStyles.overlay) {
|
|
85
|
+
_reactModal.default.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
//append style node to override modal transition classes
|
|
89
|
+
if (!document.querySelector('[modal-custom-styling="active"]')) {
|
|
90
|
+
const head = document.head || document.getElementsByTagName('head')[0];
|
|
91
|
+
const style = document.createElement('style');
|
|
92
|
+
style.setAttribute('modal-custom-styling', 'active');
|
|
93
|
+
head.appendChild(style);
|
|
94
|
+
style.appendChild(document.createTextNode(modalTransitions));
|
|
95
|
+
}
|
|
96
|
+
if (this.props.showModal) {
|
|
97
|
+
this.preventScroll(window.scrollY);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
getSnapshotBeforeUpdate(prevProps, prevState) {
|
|
101
|
+
return {
|
|
102
|
+
scroll: window.scrollY
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
componentDidUpdate(prevProps, prevState, snapshot) {
|
|
106
|
+
if (this.props.showModal && !prevProps.showModal) {
|
|
107
|
+
this.preventScroll(snapshot.scroll);
|
|
108
|
+
}
|
|
109
|
+
if (!this.props.showModal && prevProps.showModal) {
|
|
110
|
+
this.resetScroll();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
componentWillUnmount() {
|
|
114
|
+
if (this.props.showModal) {
|
|
115
|
+
this.resetScroll();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
render() {
|
|
119
|
+
const {
|
|
120
|
+
id,
|
|
121
|
+
showModal,
|
|
122
|
+
closeModal,
|
|
123
|
+
children,
|
|
124
|
+
height = 'auto',
|
|
125
|
+
width = 'auto',
|
|
126
|
+
overflow = 'visible',
|
|
127
|
+
padding,
|
|
128
|
+
minWidth = '',
|
|
129
|
+
maxWidth = '',
|
|
130
|
+
zIndex = parseInt(_styles.Z_INDEXES.modal),
|
|
131
|
+
shouldCloseOnOverlayClick = true
|
|
132
|
+
} = this.props;
|
|
133
|
+
|
|
134
|
+
// should be at least z-index of modal and below z-index of toast
|
|
135
|
+
const zIndexValue = Math.min(Math.max(zIndex, +_styles.Z_INDEXES.modal), +_styles.Z_INDEXES.toast - 1);
|
|
136
|
+
const stylesConfiguration = Object.assign(_objectSpread({}, ModalContainerStyles.content), {
|
|
137
|
+
height,
|
|
138
|
+
width,
|
|
139
|
+
padding,
|
|
140
|
+
overflow,
|
|
141
|
+
minWidth,
|
|
142
|
+
maxWidth,
|
|
143
|
+
zIndex: zIndexValue
|
|
144
|
+
});
|
|
145
|
+
const styles = {
|
|
146
|
+
content: stylesConfiguration
|
|
147
|
+
};
|
|
148
|
+
_reactModal.default.setAppElement('body');
|
|
149
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactModal.default, {
|
|
150
|
+
id: id,
|
|
151
|
+
isOpen: showModal,
|
|
152
|
+
closeTimeoutMS: 120,
|
|
153
|
+
onRequestClose: () => closeModal(),
|
|
154
|
+
shouldCloseOnOverlayClick: shouldCloseOnOverlayClick,
|
|
155
|
+
style: styles,
|
|
156
|
+
children: children
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
preventScroll(offset) {
|
|
160
|
+
if (!ModalContainer.openInstances) {
|
|
161
|
+
this.setState({
|
|
162
|
+
scroll: offset
|
|
163
|
+
});
|
|
93
164
|
document.body.style.position = 'fixed';
|
|
94
165
|
document.body.style.left = `0px`;
|
|
95
166
|
document.body.style.right = `0px`;
|
|
96
167
|
document.body.style.top = `-${offset}px`;
|
|
97
168
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
169
|
+
ModalContainer.openInstances++;
|
|
170
|
+
}
|
|
171
|
+
resetScroll() {
|
|
172
|
+
ModalContainer.openInstances--;
|
|
173
|
+
if (!ModalContainer.openInstances) {
|
|
102
174
|
//@ts-ignore
|
|
103
175
|
document.body.style.position = null;
|
|
104
176
|
//@ts-ignore
|
|
@@ -107,74 +179,14 @@ const ModalContainer = props => {
|
|
|
107
179
|
document.body.style.top = null;
|
|
108
180
|
//@ts-ignore
|
|
109
181
|
document.body.style.right = null;
|
|
110
|
-
scroll && window.scrollTo(0, scroll);
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
React.useEffect(() => {
|
|
115
|
-
window && setScroll(window.scrollY);
|
|
116
|
-
});
|
|
117
|
-
React.useEffect(() => {
|
|
118
|
-
//modal was opened
|
|
119
|
-
window && !props.showModal && wasOpened && resetScroll();
|
|
120
|
-
//modal was closed
|
|
121
|
-
window && props.showModal && preventScroll(window.scrollY);
|
|
122
|
-
}, [props.showModal]);
|
|
123
|
-
React.useEffect(() => {
|
|
124
|
-
if (_reactModal.default.defaultStyles.overlay) {
|
|
125
|
-
_reactModal.default.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
//append style node to override modal transition classes
|
|
129
|
-
if (document && !document.querySelector('[modal-custom-styling="active"]')) {
|
|
130
|
-
const head = document.head || document.getElementsByTagName('head')[0];
|
|
131
|
-
const style = document.createElement('style');
|
|
132
|
-
style.setAttribute('modal-custom-styling', 'active');
|
|
133
|
-
head.appendChild(style);
|
|
134
|
-
style.appendChild(document.createTextNode(modalTransitions));
|
|
182
|
+
this.state.scroll && window.scrollTo(0, this.state.scroll);
|
|
183
|
+
this.setState({
|
|
184
|
+
scroll: 0
|
|
185
|
+
});
|
|
135
186
|
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
showModal,
|
|
140
|
-
closeModal,
|
|
141
|
-
children,
|
|
142
|
-
height = 'auto',
|
|
143
|
-
width = 'auto',
|
|
144
|
-
overflow = 'visible',
|
|
145
|
-
padding,
|
|
146
|
-
minWidth = '',
|
|
147
|
-
maxWidth = '',
|
|
148
|
-
zIndex = parseInt(_styles.Z_INDEXES.modal),
|
|
149
|
-
shouldCloseOnOverlayClick = true
|
|
150
|
-
} = props;
|
|
151
|
-
|
|
152
|
-
// should be at least z-index of modal and below z-index of toast
|
|
153
|
-
const zIndexValue = Math.min(Math.max(zIndex, +_styles.Z_INDEXES.modal), +_styles.Z_INDEXES.toast - 1);
|
|
154
|
-
const stylesConfiguration = Object.assign(_objectSpread({}, ModalContainerStyles.content), {
|
|
155
|
-
height,
|
|
156
|
-
width,
|
|
157
|
-
padding,
|
|
158
|
-
overflow,
|
|
159
|
-
minWidth,
|
|
160
|
-
maxWidth,
|
|
161
|
-
zIndex: zIndexValue
|
|
162
|
-
});
|
|
163
|
-
const styles = {
|
|
164
|
-
content: stylesConfiguration
|
|
165
|
-
};
|
|
166
|
-
_reactModal.default.setAppElement('body');
|
|
167
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactModal.default, {
|
|
168
|
-
id: id,
|
|
169
|
-
isOpen: showModal,
|
|
170
|
-
closeTimeoutMS: 120,
|
|
171
|
-
shouldCloseOnOverlayClick: shouldCloseOnOverlayClick,
|
|
172
|
-
onRequestClose: () => closeModal(),
|
|
173
|
-
style: styles,
|
|
174
|
-
children: children
|
|
175
|
-
});
|
|
176
|
-
};
|
|
177
|
-
ModalContainer.propTypes = {
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
(0, _defineProperty2.default)(ModalContainer, "propTypes", {
|
|
178
190
|
id: _propTypes.default.string,
|
|
179
191
|
showModal: _propTypes.default.bool.isRequired,
|
|
180
192
|
closeModal: _propTypes.default.func.isRequired,
|
|
@@ -187,6 +199,7 @@ ModalContainer.propTypes = {
|
|
|
187
199
|
maxWidth: _propTypes.default.string,
|
|
188
200
|
zIndex: _propTypes.default.number,
|
|
189
201
|
shouldCloseOnOverlayClick: _propTypes.default.bool
|
|
190
|
-
};
|
|
202
|
+
});
|
|
203
|
+
(0, _defineProperty2.default)(ModalContainer, "openInstances", 0);
|
|
191
204
|
var _default = exports.default = ModalContainer;
|
|
192
205
|
//# sourceMappingURL=ModalContainer.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalContainer.cjs","names":["React","_interopRequireWildcard","require","_reactModal","_interopRequireDefault","_styles","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOWS","BOXSHADOW_L3","modalTransitions","Z_INDEXES","backdrop","modal","Counter","openInstances","ModalContainer","props","scroll","setScroll","useState","wasOpened","setWasOpened","preventScroll","offset","document","body","style","position","resetScroll","window","scrollTo","useEffect","scrollY","showModal","ReactModal","defaultStyles","overlay","backgroundColor","querySelector","head","getElementsByTagName","createElement","setAttribute","appendChild","createTextNode","id","closeModal","children","padding","minWidth","maxWidth","zIndex","parseInt","shouldCloseOnOverlayClick","zIndexValue","Math","min","max","toast","stylesConfiguration","assign","styles","setAppElement","jsx","isOpen","closeTimeoutMS","onRequestClose","propTypes","_propTypes","string","bool","isRequired","func","any","number","_default","exports"],"sources":["../../src/Modals/ModalContainer.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport {BOXSHADOWS} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport styled, {keyframes} from 'styled-components';\r\n\r\nconst ModalContainerStyles = {\r\n content: {\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n width: '640px',\r\n height: '320px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box' as any,\r\n margin: 0,\r\n overflow: 'auto',\r\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\r\n },\r\n};\r\n\r\n//override modal classes to define the animations\r\nconst modalTransitions = `\r\n\r\n@keyframes modalOpenAnimation {\r\n from{\r\n transform: scale(1.1, 1.1);\r\n }\r\n to {\r\n transform: scale(1, 1);\r\n }\r\n}\r\n\r\n.ReactModal__Overlay {\r\n opacity: 0;\r\n z-index: ${Z_INDEXES.backdrop};\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content{\r\n z-index: ${Z_INDEXES.modal};\r\n opacity:0;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content--after-open{\r\n opacity: 1;\r\n animation: modalOpenAnimation 150ms ease-in-out;\r\n}\r\n\r\n.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n transition: opacity 120ms linear;\r\n}\r\n\r\n.ReactModal__Content--before-close{\r\n opacity: 0;\r\n transform: scale(1.1, 1.1);\r\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\r\n}\r\n`;\r\n\r\n\r\ntype ModalContainerProps = {\r\n id?: string;\r\n showModal: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n height?: any;\r\n width?: any;\r\n overflow?: string;\r\n padding?: string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n zIndex?: number;\r\n shouldCloseOnOverlayClick?: boolean;\r\n};\r\n\r\nconst Counter = { openInstances : 0};\r\nconst ModalContainer: React.FC<ModalContainerProps> = (props: ModalContainerProps) => {\r\n\r\n const [scroll, setScroll] = React.useState<number>();\r\n const [wasOpened, setWasOpened] = React.useState<boolean>(false);\r\n \r\n const preventScroll = (offset: number) => {\r\n Counter.openInstances++;\r\n setWasOpened(true);\r\n if (document) {\r\n setScroll(offset);\r\n document.body.style.position = 'fixed';\r\n document.body.style.left = `0px`;\r\n document.body.style.right = `0px`;\r\n document.body.style.top = `-${offset}px`;\r\n }\r\n }\r\n\r\n const resetScroll = () => {\r\n Counter.openInstances--;\r\n if (!Counter.openInstances && document) {\r\n //@ts-ignore\r\n document.body.style.position = null;\r\n //@ts-ignore\r\n document.body.style.left = null;\r\n //@ts-ignore\r\n document.body.style.top = null;\r\n //@ts-ignore\r\n document.body.style.right = null;\r\n scroll && window.scrollTo(0, scroll);\r\n setScroll(0);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n window && setScroll(window.scrollY);\r\n });\r\n\r\n React.useEffect(() => {\r\n //modal was opened\r\n window && !props.showModal && wasOpened && resetScroll();\r\n //modal was closed\r\n window && props.showModal && preventScroll(window.scrollY);\r\n }, [props.showModal]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (ReactModal.defaultStyles.overlay) {\r\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\r\n }\r\n\r\n //append style node to override modal transition classes\r\n if (document && !document.querySelector('[modal-custom-styling=\"active\"]')) {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.setAttribute('modal-custom-styling', 'active');\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(modalTransitions));\r\n }\r\n \r\n }, []);\r\n\r\n const {\r\n id,\r\n showModal,\r\n closeModal,\r\n children,\r\n height = 'auto',\r\n width = 'auto',\r\n overflow = 'visible',\r\n padding,\r\n minWidth = '',\r\n maxWidth = '',\r\n zIndex = parseInt(Z_INDEXES.modal),\r\n shouldCloseOnOverlayClick = true\r\n } = props;\r\n\r\n // should be at least z-index of modal and below z-index of toast\r\n const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);\r\n const stylesConfiguration = Object.assign({...ModalContainerStyles.content}, {\r\n height,\r\n width,\r\n padding,\r\n overflow,\r\n minWidth,\r\n maxWidth,\r\n zIndex: zIndexValue\r\n });\r\n const styles = {content: stylesConfiguration};\r\n ReactModal.setAppElement('body');\r\n return (\r\n <ReactModal id={id}\r\n isOpen={showModal}\r\n closeTimeoutMS={120}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n onRequestClose={() => closeModal()}\r\n style={styles}>\r\n {children}\r\n </ReactModal>\r\n );\r\n}\r\n\r\nexport default ModalContainer;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ModalContainer.cjs","names":["React","_interopRequireWildcard","require","_reactModal","_interopRequireDefault","_styles","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOWS","BOXSHADOW_L3","modalTransitions","Z_INDEXES","backdrop","modal","ModalContainer","Component","componentDidMount","ReactModal","defaultStyles","overlay","backgroundColor","document","querySelector","head","getElementsByTagName","style","createElement","setAttribute","appendChild","createTextNode","props","showModal","preventScroll","window","scrollY","getSnapshotBeforeUpdate","prevProps","prevState","scroll","componentDidUpdate","snapshot","resetScroll","componentWillUnmount","render","id","closeModal","children","padding","minWidth","maxWidth","zIndex","parseInt","shouldCloseOnOverlayClick","zIndexValue","Math","min","max","toast","stylesConfiguration","assign","styles","setAppElement","jsx","isOpen","closeTimeoutMS","onRequestClose","offset","openInstances","setState","body","position","state","scrollTo","_propTypes","string","bool","isRequired","func","any","number","_default","exports"],"sources":["../../src/Modals/ModalContainer.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport {BOXSHADOWS} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport styled, {keyframes} from 'styled-components';\r\n\r\nconst ModalContainerStyles = {\r\n content: {\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n width: '640px',\r\n height: '320px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box' as any,\r\n margin: 0,\r\n overflow: 'auto',\r\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\r\n },\r\n};\r\n\r\n//override modal classes to define the animations\r\nconst modalTransitions = `\r\n\r\n@keyframes modalOpenAnimation {\r\n from{\r\n transform: scale(1.1, 1.1);\r\n }\r\n to {\r\n transform: scale(1, 1);\r\n }\r\n}\r\n\r\n.ReactModal__Overlay {\r\n opacity: 0;\r\n z-index: ${Z_INDEXES.backdrop};\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content{\r\n z-index: ${Z_INDEXES.modal};\r\n opacity:0;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content--after-open{\r\n opacity: 1;\r\n animation: modalOpenAnimation 150ms ease-in-out;\r\n}\r\n\r\n.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n transition: opacity 120ms linear;\r\n}\r\n\r\n.ReactModal__Content--before-close{\r\n opacity: 0;\r\n transform: scale(1.1, 1.1);\r\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\r\n}\r\n`;\r\n\r\n\r\ntype ModalContainerProps = {\r\n id?: string;\r\n showModal: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n height?: any;\r\n width?: any;\r\n overflow?: string;\r\n padding?: string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n zIndex?: number;\r\n shouldCloseOnOverlayClick?: boolean;\r\n};\r\n\r\ntype ModalContainerState = {\r\n scroll: number;\r\n};\r\n\r\nclass ModalContainer extends React.Component<ModalContainerProps, ModalContainerState> {\r\n private static openInstances = 0;\r\n\r\n componentDidMount() {\r\n if (ReactModal.defaultStyles.overlay) {\r\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\r\n }\r\n\r\n //append style node to override modal transition classes\r\n if (!document.querySelector('[modal-custom-styling=\"active\"]')) {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.setAttribute('modal-custom-styling', 'active');\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(modalTransitions));\r\n }\r\n\r\n if (this.props.showModal) {\r\n this.preventScroll(window.scrollY);\r\n }\r\n }\r\n\r\n getSnapshotBeforeUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>): { scroll: number } {\r\n return {scroll: window.scrollY};\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>, snapshot?: { scroll: number }) {\r\n if (this.props.showModal && !prevProps.showModal) {\r\n this.preventScroll(snapshot!.scroll);\r\n }\r\n if (!this.props.showModal && prevProps.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.props.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n showModal,\r\n closeModal,\r\n children,\r\n height = 'auto',\r\n width = 'auto',\r\n overflow = 'visible',\r\n padding,\r\n minWidth = '',\r\n maxWidth = '',\r\n zIndex = parseInt(Z_INDEXES.modal),\r\n shouldCloseOnOverlayClick = true\r\n } = this.props;\r\n\r\n // should be at least z-index of modal and below z-index of toast\r\n const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);\r\n const stylesConfiguration = Object.assign({...ModalContainerStyles.content}, {\r\n height,\r\n width,\r\n padding,\r\n overflow,\r\n minWidth,\r\n maxWidth,\r\n zIndex: zIndexValue\r\n });\r\n const styles = {content: stylesConfiguration};\r\n\r\n ReactModal.setAppElement('body');\r\n return (\r\n <ReactModal id={id}\r\n isOpen={showModal}\r\n closeTimeoutMS={120}\r\n onRequestClose={() => closeModal()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n style={styles}>\r\n {children}\r\n </ReactModal>\r\n );\r\n }\r\n\r\n private preventScroll(offset: number) {\r\n if (!ModalContainer.openInstances) {\r\n this.setState({scroll: offset});\r\n document.body.style.position = 'fixed';\r\n document.body.style.left = `0px`;\r\n document.body.style.right = `0px`;\r\n document.body.style.top = `-${offset}px`;\r\n }\r\n ModalContainer.openInstances++\r\n }\r\n\r\n private resetScroll() {\r\n ModalContainer.openInstances--;\r\n if (!ModalContainer.openInstances) {\r\n //@ts-ignore\r\n document.body.style.position = null;\r\n //@ts-ignore\r\n document.body.style.left = null;\r\n //@ts-ignore\r\n document.body.style.top = null;\r\n //@ts-ignore\r\n document.body.style.right = null;\r\n this.state.scroll && window.scrollTo(0, this.state.scroll);\r\n this.setState({scroll: 0});\r\n }\r\n }\r\n}\r\n\r\nexport default ModalContainer;"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,5 +13,21 @@ type ModalContainerProps = {
|
|
|
13
13
|
zIndex?: number;
|
|
14
14
|
shouldCloseOnOverlayClick?: boolean;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
type ModalContainerState = {
|
|
17
|
+
scroll: number;
|
|
18
|
+
};
|
|
19
|
+
declare class ModalContainer extends React.Component<ModalContainerProps, ModalContainerState> {
|
|
20
|
+
private static openInstances;
|
|
21
|
+
componentDidMount(): void;
|
|
22
|
+
getSnapshotBeforeUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>): {
|
|
23
|
+
scroll: number;
|
|
24
|
+
};
|
|
25
|
+
componentDidUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>, snapshot?: {
|
|
26
|
+
scroll: number;
|
|
27
|
+
}): void;
|
|
28
|
+
componentWillUnmount(): void;
|
|
29
|
+
render(): React.JSX.Element;
|
|
30
|
+
private preventScroll;
|
|
31
|
+
private resetScroll;
|
|
32
|
+
}
|
|
17
33
|
export default ModalContainer;
|
|
@@ -71,26 +71,98 @@ const modalTransitions = `
|
|
|
71
71
|
transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);
|
|
72
72
|
}
|
|
73
73
|
`;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
74
|
+
class ModalContainer extends React.Component {
|
|
75
|
+
componentDidMount() {
|
|
76
|
+
if (ReactModal.defaultStyles.overlay) {
|
|
77
|
+
ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
//append style node to override modal transition classes
|
|
81
|
+
if (!document.querySelector('[modal-custom-styling="active"]')) {
|
|
82
|
+
const head = document.head || document.getElementsByTagName('head')[0];
|
|
83
|
+
const style = document.createElement('style');
|
|
84
|
+
style.setAttribute('modal-custom-styling', 'active');
|
|
85
|
+
head.appendChild(style);
|
|
86
|
+
style.appendChild(document.createTextNode(modalTransitions));
|
|
87
|
+
}
|
|
88
|
+
if (this.props.showModal) {
|
|
89
|
+
this.preventScroll(window.scrollY);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
getSnapshotBeforeUpdate(prevProps, prevState) {
|
|
93
|
+
return {
|
|
94
|
+
scroll: window.scrollY
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
componentDidUpdate(prevProps, prevState, snapshot) {
|
|
98
|
+
if (this.props.showModal && !prevProps.showModal) {
|
|
99
|
+
this.preventScroll(snapshot.scroll);
|
|
100
|
+
}
|
|
101
|
+
if (!this.props.showModal && prevProps.showModal) {
|
|
102
|
+
this.resetScroll();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
componentWillUnmount() {
|
|
106
|
+
if (this.props.showModal) {
|
|
107
|
+
this.resetScroll();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
render() {
|
|
111
|
+
const {
|
|
112
|
+
id,
|
|
113
|
+
showModal,
|
|
114
|
+
closeModal,
|
|
115
|
+
children,
|
|
116
|
+
height = 'auto',
|
|
117
|
+
width = 'auto',
|
|
118
|
+
overflow = 'visible',
|
|
119
|
+
padding,
|
|
120
|
+
minWidth = '',
|
|
121
|
+
maxWidth = '',
|
|
122
|
+
zIndex = parseInt(Z_INDEXES.modal),
|
|
123
|
+
shouldCloseOnOverlayClick = true
|
|
124
|
+
} = this.props;
|
|
125
|
+
|
|
126
|
+
// should be at least z-index of modal and below z-index of toast
|
|
127
|
+
const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);
|
|
128
|
+
const stylesConfiguration = Object.assign(_objectSpread({}, ModalContainerStyles.content), {
|
|
129
|
+
height,
|
|
130
|
+
width,
|
|
131
|
+
padding,
|
|
132
|
+
overflow,
|
|
133
|
+
minWidth,
|
|
134
|
+
maxWidth,
|
|
135
|
+
zIndex: zIndexValue
|
|
136
|
+
});
|
|
137
|
+
const styles = {
|
|
138
|
+
content: stylesConfiguration
|
|
139
|
+
};
|
|
140
|
+
ReactModal.setAppElement('body');
|
|
141
|
+
return /*#__PURE__*/_jsx(ReactModal, {
|
|
142
|
+
id: id,
|
|
143
|
+
isOpen: showModal,
|
|
144
|
+
closeTimeoutMS: 120,
|
|
145
|
+
onRequestClose: () => closeModal(),
|
|
146
|
+
shouldCloseOnOverlayClick: shouldCloseOnOverlayClick,
|
|
147
|
+
style: styles,
|
|
148
|
+
children: children
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
preventScroll(offset) {
|
|
152
|
+
if (!ModalContainer.openInstances) {
|
|
153
|
+
this.setState({
|
|
154
|
+
scroll: offset
|
|
155
|
+
});
|
|
85
156
|
document.body.style.position = 'fixed';
|
|
86
157
|
document.body.style.left = `0px`;
|
|
87
158
|
document.body.style.right = `0px`;
|
|
88
159
|
document.body.style.top = `-${offset}px`;
|
|
89
160
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
161
|
+
ModalContainer.openInstances++;
|
|
162
|
+
}
|
|
163
|
+
resetScroll() {
|
|
164
|
+
ModalContainer.openInstances--;
|
|
165
|
+
if (!ModalContainer.openInstances) {
|
|
94
166
|
//@ts-ignore
|
|
95
167
|
document.body.style.position = null;
|
|
96
168
|
//@ts-ignore
|
|
@@ -99,74 +171,14 @@ const ModalContainer = props => {
|
|
|
99
171
|
document.body.style.top = null;
|
|
100
172
|
//@ts-ignore
|
|
101
173
|
document.body.style.right = null;
|
|
102
|
-
scroll && window.scrollTo(0, scroll);
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
React.useEffect(() => {
|
|
107
|
-
window && setScroll(window.scrollY);
|
|
108
|
-
});
|
|
109
|
-
React.useEffect(() => {
|
|
110
|
-
//modal was opened
|
|
111
|
-
window && !props.showModal && wasOpened && resetScroll();
|
|
112
|
-
//modal was closed
|
|
113
|
-
window && props.showModal && preventScroll(window.scrollY);
|
|
114
|
-
}, [props.showModal]);
|
|
115
|
-
React.useEffect(() => {
|
|
116
|
-
if (ReactModal.defaultStyles.overlay) {
|
|
117
|
-
ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';
|
|
174
|
+
this.state.scroll && window.scrollTo(0, this.state.scroll);
|
|
175
|
+
this.setState({
|
|
176
|
+
scroll: 0
|
|
177
|
+
});
|
|
118
178
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
const head = document.head || document.getElementsByTagName('head')[0];
|
|
123
|
-
const style = document.createElement('style');
|
|
124
|
-
style.setAttribute('modal-custom-styling', 'active');
|
|
125
|
-
head.appendChild(style);
|
|
126
|
-
style.appendChild(document.createTextNode(modalTransitions));
|
|
127
|
-
}
|
|
128
|
-
}, []);
|
|
129
|
-
const {
|
|
130
|
-
id,
|
|
131
|
-
showModal,
|
|
132
|
-
closeModal,
|
|
133
|
-
children,
|
|
134
|
-
height = 'auto',
|
|
135
|
-
width = 'auto',
|
|
136
|
-
overflow = 'visible',
|
|
137
|
-
padding,
|
|
138
|
-
minWidth = '',
|
|
139
|
-
maxWidth = '',
|
|
140
|
-
zIndex = parseInt(Z_INDEXES.modal),
|
|
141
|
-
shouldCloseOnOverlayClick = true
|
|
142
|
-
} = props;
|
|
143
|
-
|
|
144
|
-
// should be at least z-index of modal and below z-index of toast
|
|
145
|
-
const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);
|
|
146
|
-
const stylesConfiguration = Object.assign(_objectSpread({}, ModalContainerStyles.content), {
|
|
147
|
-
height,
|
|
148
|
-
width,
|
|
149
|
-
padding,
|
|
150
|
-
overflow,
|
|
151
|
-
minWidth,
|
|
152
|
-
maxWidth,
|
|
153
|
-
zIndex: zIndexValue
|
|
154
|
-
});
|
|
155
|
-
const styles = {
|
|
156
|
-
content: stylesConfiguration
|
|
157
|
-
};
|
|
158
|
-
ReactModal.setAppElement('body');
|
|
159
|
-
return /*#__PURE__*/_jsx(ReactModal, {
|
|
160
|
-
id: id,
|
|
161
|
-
isOpen: showModal,
|
|
162
|
-
closeTimeoutMS: 120,
|
|
163
|
-
shouldCloseOnOverlayClick: shouldCloseOnOverlayClick,
|
|
164
|
-
onRequestClose: () => closeModal(),
|
|
165
|
-
style: styles,
|
|
166
|
-
children: children
|
|
167
|
-
});
|
|
168
|
-
};
|
|
169
|
-
ModalContainer.propTypes = {
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
_defineProperty(ModalContainer, "propTypes", {
|
|
170
182
|
id: _pt.string,
|
|
171
183
|
showModal: _pt.bool.isRequired,
|
|
172
184
|
closeModal: _pt.func.isRequired,
|
|
@@ -179,6 +191,7 @@ ModalContainer.propTypes = {
|
|
|
179
191
|
maxWidth: _pt.string,
|
|
180
192
|
zIndex: _pt.number,
|
|
181
193
|
shouldCloseOnOverlayClick: _pt.bool
|
|
182
|
-
};
|
|
194
|
+
});
|
|
195
|
+
_defineProperty(ModalContainer, "openInstances", 0);
|
|
183
196
|
export default ModalContainer;
|
|
184
197
|
//# sourceMappingURL=ModalContainer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalContainer.js","names":["React","ReactModal","BOXSHADOWS","Z_INDEXES","jsx","_jsx","ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOW_L3","modalTransitions","backdrop","modal","Counter","openInstances","ModalContainer","props","scroll","setScroll","useState","wasOpened","setWasOpened","preventScroll","offset","document","body","style","position","resetScroll","window","scrollTo","useEffect","scrollY","showModal","defaultStyles","overlay","backgroundColor","querySelector","head","getElementsByTagName","createElement","setAttribute","appendChild","createTextNode","id","closeModal","children","padding","minWidth","maxWidth","zIndex","parseInt","shouldCloseOnOverlayClick","zIndexValue","Math","min","max","toast","stylesConfiguration","Object","assign","_objectSpread","styles","setAppElement","isOpen","closeTimeoutMS","onRequestClose","propTypes","_pt","string","bool","isRequired","func","any","number"],"sources":["../../src/Modals/ModalContainer.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport {BOXSHADOWS} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport styled, {keyframes} from 'styled-components';\r\n\r\nconst ModalContainerStyles = {\r\n content: {\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n width: '640px',\r\n height: '320px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box' as any,\r\n margin: 0,\r\n overflow: 'auto',\r\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\r\n },\r\n};\r\n\r\n//override modal classes to define the animations\r\nconst modalTransitions = `\r\n\r\n@keyframes modalOpenAnimation {\r\n from{\r\n transform: scale(1.1, 1.1);\r\n }\r\n to {\r\n transform: scale(1, 1);\r\n }\r\n}\r\n\r\n.ReactModal__Overlay {\r\n opacity: 0;\r\n z-index: ${Z_INDEXES.backdrop};\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content{\r\n z-index: ${Z_INDEXES.modal};\r\n opacity:0;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content--after-open{\r\n opacity: 1;\r\n animation: modalOpenAnimation 150ms ease-in-out;\r\n}\r\n\r\n.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n transition: opacity 120ms linear;\r\n}\r\n\r\n.ReactModal__Content--before-close{\r\n opacity: 0;\r\n transform: scale(1.1, 1.1);\r\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\r\n}\r\n`;\r\n\r\n\r\ntype ModalContainerProps = {\r\n id?: string;\r\n showModal: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n height?: any;\r\n width?: any;\r\n overflow?: string;\r\n padding?: string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n zIndex?: number;\r\n shouldCloseOnOverlayClick?: boolean;\r\n};\r\n\r\nconst Counter = { openInstances : 0};\r\nconst ModalContainer: React.FC<ModalContainerProps> = (props: ModalContainerProps) => {\r\n\r\n const [scroll, setScroll] = React.useState<number>();\r\n const [wasOpened, setWasOpened] = React.useState<boolean>(false);\r\n \r\n const preventScroll = (offset: number) => {\r\n Counter.openInstances++;\r\n setWasOpened(true);\r\n if (document) {\r\n setScroll(offset);\r\n document.body.style.position = 'fixed';\r\n document.body.style.left = `0px`;\r\n document.body.style.right = `0px`;\r\n document.body.style.top = `-${offset}px`;\r\n }\r\n }\r\n\r\n const resetScroll = () => {\r\n Counter.openInstances--;\r\n if (!Counter.openInstances && document) {\r\n //@ts-ignore\r\n document.body.style.position = null;\r\n //@ts-ignore\r\n document.body.style.left = null;\r\n //@ts-ignore\r\n document.body.style.top = null;\r\n //@ts-ignore\r\n document.body.style.right = null;\r\n scroll && window.scrollTo(0, scroll);\r\n setScroll(0);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n window && setScroll(window.scrollY);\r\n });\r\n\r\n React.useEffect(() => {\r\n //modal was opened\r\n window && !props.showModal && wasOpened && resetScroll();\r\n //modal was closed\r\n window && props.showModal && preventScroll(window.scrollY);\r\n }, [props.showModal]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (ReactModal.defaultStyles.overlay) {\r\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\r\n }\r\n\r\n //append style node to override modal transition classes\r\n if (document && !document.querySelector('[modal-custom-styling=\"active\"]')) {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.setAttribute('modal-custom-styling', 'active');\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(modalTransitions));\r\n }\r\n \r\n }, []);\r\n\r\n const {\r\n id,\r\n showModal,\r\n closeModal,\r\n children,\r\n height = 'auto',\r\n width = 'auto',\r\n overflow = 'visible',\r\n padding,\r\n minWidth = '',\r\n maxWidth = '',\r\n zIndex = parseInt(Z_INDEXES.modal),\r\n shouldCloseOnOverlayClick = true\r\n } = props;\r\n\r\n // should be at least z-index of modal and below z-index of toast\r\n const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);\r\n const stylesConfiguration = Object.assign({...ModalContainerStyles.content}, {\r\n height,\r\n width,\r\n padding,\r\n overflow,\r\n minWidth,\r\n maxWidth,\r\n zIndex: zIndexValue\r\n });\r\n const styles = {content: stylesConfiguration};\r\n ReactModal.setAppElement('body');\r\n return (\r\n <ReactModal id={id}\r\n isOpen={showModal}\r\n closeTimeoutMS={120}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n onRequestClose={() => closeModal()}\r\n style={styles}>\r\n {children}\r\n </ReactModal>\r\n );\r\n}\r\n\r\nexport default ModalContainer;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ModalContainer.js","names":["React","ReactModal","BOXSHADOWS","Z_INDEXES","jsx","_jsx","ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOW_L3","modalTransitions","backdrop","modal","ModalContainer","Component","componentDidMount","defaultStyles","overlay","backgroundColor","document","querySelector","head","getElementsByTagName","style","createElement","setAttribute","appendChild","createTextNode","props","showModal","preventScroll","window","scrollY","getSnapshotBeforeUpdate","prevProps","prevState","scroll","componentDidUpdate","snapshot","resetScroll","componentWillUnmount","render","id","closeModal","children","padding","minWidth","maxWidth","zIndex","parseInt","shouldCloseOnOverlayClick","zIndexValue","Math","min","max","toast","stylesConfiguration","Object","assign","_objectSpread","styles","setAppElement","isOpen","closeTimeoutMS","onRequestClose","offset","openInstances","setState","body","position","state","scrollTo","_defineProperty","_pt","string","bool","isRequired","func","any","number"],"sources":["../../src/Modals/ModalContainer.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport {BOXSHADOWS} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport styled, {keyframes} from 'styled-components';\r\n\r\nconst ModalContainerStyles = {\r\n content: {\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n width: '640px',\r\n height: '320px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box' as any,\r\n margin: 0,\r\n overflow: 'auto',\r\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\r\n },\r\n};\r\n\r\n//override modal classes to define the animations\r\nconst modalTransitions = `\r\n\r\n@keyframes modalOpenAnimation {\r\n from{\r\n transform: scale(1.1, 1.1);\r\n }\r\n to {\r\n transform: scale(1, 1);\r\n }\r\n}\r\n\r\n.ReactModal__Overlay {\r\n opacity: 0;\r\n z-index: ${Z_INDEXES.backdrop};\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content{\r\n z-index: ${Z_INDEXES.modal};\r\n opacity:0;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content--after-open{\r\n opacity: 1;\r\n animation: modalOpenAnimation 150ms ease-in-out;\r\n}\r\n\r\n.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n transition: opacity 120ms linear;\r\n}\r\n\r\n.ReactModal__Content--before-close{\r\n opacity: 0;\r\n transform: scale(1.1, 1.1);\r\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\r\n}\r\n`;\r\n\r\n\r\ntype ModalContainerProps = {\r\n id?: string;\r\n showModal: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n height?: any;\r\n width?: any;\r\n overflow?: string;\r\n padding?: string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n zIndex?: number;\r\n shouldCloseOnOverlayClick?: boolean;\r\n};\r\n\r\ntype ModalContainerState = {\r\n scroll: number;\r\n};\r\n\r\nclass ModalContainer extends React.Component<ModalContainerProps, ModalContainerState> {\r\n private static openInstances = 0;\r\n\r\n componentDidMount() {\r\n if (ReactModal.defaultStyles.overlay) {\r\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\r\n }\r\n\r\n //append style node to override modal transition classes\r\n if (!document.querySelector('[modal-custom-styling=\"active\"]')) {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.setAttribute('modal-custom-styling', 'active');\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(modalTransitions));\r\n }\r\n\r\n if (this.props.showModal) {\r\n this.preventScroll(window.scrollY);\r\n }\r\n }\r\n\r\n getSnapshotBeforeUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>): { scroll: number } {\r\n return {scroll: window.scrollY};\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>, snapshot?: { scroll: number }) {\r\n if (this.props.showModal && !prevProps.showModal) {\r\n this.preventScroll(snapshot!.scroll);\r\n }\r\n if (!this.props.showModal && prevProps.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.props.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n showModal,\r\n closeModal,\r\n children,\r\n height = 'auto',\r\n width = 'auto',\r\n overflow = 'visible',\r\n padding,\r\n minWidth = '',\r\n maxWidth = '',\r\n zIndex = parseInt(Z_INDEXES.modal),\r\n shouldCloseOnOverlayClick = true\r\n } = this.props;\r\n\r\n // should be at least z-index of modal and below z-index of toast\r\n const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);\r\n const stylesConfiguration = Object.assign({...ModalContainerStyles.content}, {\r\n height,\r\n width,\r\n padding,\r\n overflow,\r\n minWidth,\r\n maxWidth,\r\n zIndex: zIndexValue\r\n });\r\n const styles = {content: stylesConfiguration};\r\n\r\n ReactModal.setAppElement('body');\r\n return (\r\n <ReactModal id={id}\r\n isOpen={showModal}\r\n closeTimeoutMS={120}\r\n onRequestClose={() => closeModal()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n style={styles}>\r\n {children}\r\n </ReactModal>\r\n );\r\n }\r\n\r\n private preventScroll(offset: number) {\r\n if (!ModalContainer.openInstances) {\r\n this.setState({scroll: offset});\r\n document.body.style.position = 'fixed';\r\n document.body.style.left = `0px`;\r\n document.body.style.right = `0px`;\r\n document.body.style.top = `-${offset}px`;\r\n }\r\n ModalContainer.openInstances++\r\n }\r\n\r\n private resetScroll() {\r\n ModalContainer.openInstances--;\r\n if (!ModalContainer.openInstances) {\r\n //@ts-ignore\r\n document.body.style.position = null;\r\n //@ts-ignore\r\n document.body.style.left = null;\r\n //@ts-ignore\r\n document.body.style.top = null;\r\n //@ts-ignore\r\n document.body.style.right = null;\r\n this.state.scroll && window.scrollTo(0, this.state.scroll);\r\n this.setState({scroll: 0});\r\n }\r\n }\r\n}\r\n\r\nexport default ModalContainer;"],"mappings":"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","ignoreList":[]}
|
|
@@ -55,32 +55,100 @@ const StyledSwitch = exports.StyledSwitch = _styledComponents.default.div`
|
|
|
55
55
|
margin-left: 8px;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
|
|
59
|
+
label:first-of-type span.semantic, &[aria-pressed='true'] label:first-of-type span {
|
|
60
|
+
border: none;
|
|
61
|
+
}
|
|
62
|
+
|
|
58
63
|
&:not(.disabled):active label:first-of-type span {
|
|
59
64
|
&:before {
|
|
60
65
|
background-color: ${props => _styles.COLORS.getColor('primary_100', props.theme)};
|
|
61
66
|
}
|
|
62
67
|
}
|
|
63
68
|
|
|
69
|
+
&:not([aria-pressed='true']) label:first-of-type span {
|
|
70
|
+
&.semantic:before {
|
|
71
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
72
|
+
componentType: 'icon',
|
|
73
|
+
isOnFill: true,
|
|
74
|
+
defaultVariant: 'critical'
|
|
75
|
+
}, props.theme)};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&[aria-pressed='true'] label:first-of-type span {
|
|
80
|
+
&.semantic:before {
|
|
81
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
82
|
+
componentType: 'icon',
|
|
83
|
+
isOnFill: true,
|
|
84
|
+
defaultVariant: 'positive'
|
|
85
|
+
}, props.theme)};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
64
89
|
&.disabled[aria-pressed='true'] label:first-of-type span {
|
|
65
|
-
background-color: ${props => _styles.COLORS.
|
|
90
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
91
|
+
componentType: 'bg-fill',
|
|
92
|
+
state: 'disabled'
|
|
93
|
+
}, props.theme)} !important;
|
|
66
94
|
cursor: not-allowed;
|
|
67
95
|
|
|
68
96
|
&:before {
|
|
69
|
-
background-color: ${props => _styles.COLORS.
|
|
97
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
98
|
+
componentType: 'icon',
|
|
99
|
+
state: 'disabled'
|
|
100
|
+
}, props.theme)} !important;
|
|
70
101
|
cursor: not-allowed;
|
|
71
102
|
}
|
|
72
103
|
}
|
|
73
104
|
|
|
74
|
-
&[aria-pressed='true']:hover span {
|
|
105
|
+
&[aria-pressed='true']:hover label:first-of-type span {
|
|
106
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
107
|
+
componentType: 'bg-fill',
|
|
108
|
+
state: 'hover',
|
|
109
|
+
defaultVariant: 'primary'
|
|
110
|
+
}, props.theme)};
|
|
75
111
|
&.semantic {
|
|
76
|
-
background-color: ${props => _styles.COLORS.
|
|
112
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
113
|
+
componentType: 'bg-fill',
|
|
114
|
+
state: 'hover',
|
|
115
|
+
defaultVariant: 'positive'
|
|
116
|
+
}, props.theme)};
|
|
77
117
|
}
|
|
78
118
|
|
|
79
|
-
&:before {
|
|
80
|
-
background-color: ${props => _styles.COLORS.
|
|
119
|
+
&:not(.semantic):before {
|
|
120
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
121
|
+
componentType: 'icon',
|
|
122
|
+
isOnFill: true,
|
|
123
|
+
defaultVariant: 'primary'
|
|
124
|
+
}, props.theme)};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
&[aria-pressed='true']:active label:first-of-type span {
|
|
129
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
130
|
+
componentType: 'bg-fill',
|
|
131
|
+
state: 'active',
|
|
132
|
+
defaultVariant: 'primary'
|
|
133
|
+
}, props.theme)};
|
|
134
|
+
&.semantic {
|
|
135
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
136
|
+
componentType: 'bg-fill',
|
|
137
|
+
state: 'active',
|
|
138
|
+
defaultVariant: 'positive'
|
|
139
|
+
}, props.theme)};
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
&:not(.semantic):before {
|
|
143
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
144
|
+
componentType: 'icon',
|
|
145
|
+
isOnFill: true,
|
|
146
|
+
defaultVariant: 'primary'
|
|
147
|
+
}, props.theme)};
|
|
81
148
|
}
|
|
82
149
|
}
|
|
83
150
|
|
|
151
|
+
|
|
84
152
|
&[aria-pressed='true'] label:first-of-type span {
|
|
85
153
|
background-color: ${props => _styles.COLORS.getColor('primary_500', props.theme)};
|
|
86
154
|
|
|
@@ -88,6 +156,14 @@ const StyledSwitch = exports.StyledSwitch = _styledComponents.default.div`
|
|
|
88
156
|
background-color: ${props => _styles.COLORS.getColor('positive_500', props.theme)};
|
|
89
157
|
}
|
|
90
158
|
|
|
159
|
+
&:not(.semantic):before {
|
|
160
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
161
|
+
componentType: 'icon',
|
|
162
|
+
isOnFill: true,
|
|
163
|
+
defaultVariant: 'primary'
|
|
164
|
+
}, props.theme)};
|
|
165
|
+
}
|
|
166
|
+
|
|
91
167
|
&:before {
|
|
92
168
|
-webkit-transform: translateX(20px);
|
|
93
169
|
-ms-transform: translateX(20px);
|
|
@@ -95,23 +171,96 @@ const StyledSwitch = exports.StyledSwitch = _styledComponents.default.div`
|
|
|
95
171
|
}
|
|
96
172
|
}
|
|
97
173
|
|
|
98
|
-
|
|
99
|
-
background-color: ${props => _styles.COLORS.
|
|
174
|
+
&:not([aria-pressed='true']).disabled label:first-of-type span {
|
|
175
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
176
|
+
componentType: 'bg-surface',
|
|
177
|
+
state: 'disabled'
|
|
178
|
+
}, props.theme)} !important;
|
|
100
179
|
cursor: not-allowed;
|
|
101
180
|
|
|
102
|
-
|
|
103
|
-
background-color: ${props => _styles.COLORS.
|
|
181
|
+
&.semantic {
|
|
182
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
183
|
+
componentType: 'bg-fill',
|
|
184
|
+
state: 'disabled'
|
|
185
|
+
}, props.theme)} !important;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
&:not(.semantic):before {
|
|
189
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
190
|
+
componentType: 'icon',
|
|
191
|
+
state: 'disabled'
|
|
192
|
+
}, props.theme)} !important;
|
|
104
193
|
cursor: not-allowed;
|
|
105
194
|
}
|
|
106
195
|
}
|
|
107
196
|
|
|
108
|
-
|
|
197
|
+
&:not([aria-pressed='true']) label:first-of-type span {
|
|
109
198
|
&.semantic {
|
|
110
|
-
background-color: ${props => _styles.COLORS.
|
|
199
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
200
|
+
componentType: 'bg-fill',
|
|
201
|
+
defaultVariant: 'critical'
|
|
202
|
+
}, props.theme)};
|
|
111
203
|
}
|
|
204
|
+
}
|
|
112
205
|
|
|
113
|
-
|
|
114
|
-
|
|
206
|
+
&.disabled label:first-of-type span {
|
|
207
|
+
border-color: ${props => _styles.COLORS.generateToken({
|
|
208
|
+
componentType: 'border',
|
|
209
|
+
state: 'disabled'
|
|
210
|
+
}, props.theme)} !important;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
&:not([aria-pressed='true']):hover label:first-of-type span {
|
|
214
|
+
|
|
215
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
216
|
+
componentType: 'bg-surface',
|
|
217
|
+
state: 'hover'
|
|
218
|
+
}, props.theme)};
|
|
219
|
+
border-color: ${props => _styles.COLORS.generateToken({
|
|
220
|
+
componentType: 'border',
|
|
221
|
+
state: 'hover'
|
|
222
|
+
}, props.theme)};
|
|
223
|
+
&.semantic {
|
|
224
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
225
|
+
componentType: 'bg-fill',
|
|
226
|
+
defaultVariant: 'critical',
|
|
227
|
+
state: 'hover'
|
|
228
|
+
}, props.theme)};
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
&:not(.semantic):before {
|
|
232
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
233
|
+
componentType: 'icon',
|
|
234
|
+
state: 'hover',
|
|
235
|
+
defaultVariant: 'default'
|
|
236
|
+
}, props.theme)};
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
&:not([aria-pressed='true']):active label:first-of-type span {
|
|
241
|
+
|
|
242
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
243
|
+
componentType: 'bg-surface',
|
|
244
|
+
state: 'active'
|
|
245
|
+
}, props.theme)};
|
|
246
|
+
border-color: ${props => _styles.COLORS.generateToken({
|
|
247
|
+
componentType: 'border',
|
|
248
|
+
state: 'active'
|
|
249
|
+
}, props.theme)};
|
|
250
|
+
&.semantic {
|
|
251
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
252
|
+
componentType: 'bg-fill',
|
|
253
|
+
defaultVariant: 'critical',
|
|
254
|
+
state: 'active'
|
|
255
|
+
}, props.theme)};
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
&:not(.semantic):before {
|
|
259
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
260
|
+
componentType: 'icon',
|
|
261
|
+
state: 'active',
|
|
262
|
+
defaultVariant: 'default'
|
|
263
|
+
}, props.theme)};
|
|
115
264
|
}
|
|
116
265
|
}
|
|
117
266
|
|
|
@@ -140,6 +289,10 @@ const ToggleSwitch = exports.ToggleSwitch = _styledComponents.default.span`
|
|
|
140
289
|
top: 0;
|
|
141
290
|
left: 0;
|
|
142
291
|
right: 0;
|
|
292
|
+
border: 1px solid ${props => _styles.COLORS.generateToken({
|
|
293
|
+
componentType: 'border',
|
|
294
|
+
defaultVariant: 'default'
|
|
295
|
+
}, props.theme)};
|
|
143
296
|
bottom: 0;
|
|
144
297
|
width: 36px;
|
|
145
298
|
height: 16px;
|
|
@@ -163,7 +316,10 @@ const ToggleSwitch = exports.ToggleSwitch = _styledComponents.default.span`
|
|
|
163
316
|
width: 12px;
|
|
164
317
|
left: 2px;
|
|
165
318
|
top: calc(50% - 6px);
|
|
166
|
-
background-color: ${props => _styles.COLORS.
|
|
319
|
+
background-color: ${props => _styles.COLORS.generateToken({
|
|
320
|
+
componentType: 'icon',
|
|
321
|
+
defaultVariant: 'default'
|
|
322
|
+
}, props.theme)};
|
|
167
323
|
-webkit-transition: background-color 0.1s, transform 0.1s;
|
|
168
324
|
transition: 0.1s;
|
|
169
325
|
transition-timing-function: ease-in-out;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TogglerStyles.cjs","names":["_styles","require","_styledComponents","_interopRequireDefault","_typography","StyledSwitch","exports","styled","div","props","COLORS","generateToken","componentType","defaultVariant","theme","ComponentSStyling","ComponentTextStyle","Regular","ComponentMStyling","ComponentLStyling","state","getColor","focusStyles","ToggleSwitchContainer","label","ToggleSwitch","span"],"sources":["../../src/Toggles/TogglerStyles.ts"],"sourcesContent":["/**\r\n * Import custom styles.\r\n */\r\nimport { COLORS, focusStyles } from '../styles';\r\n\r\n/**\r\n * Import third-party libraries.\r\n */\r\nimport styled, { css } from 'styled-components';\r\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\r\n\r\nexport const StyledSwitch = styled.div<{ $selected: boolean | undefined }>`\r\n display: flex;\r\n flex-direction: row;\r\n width: max-content;\r\n min-height: 48px;\r\n min-width: 48px;\r\n align-items: center;\r\n cursor: pointer;\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'default'}, props.theme)};\r\n &.small {\r\n ${props => ComponentSStyling(ComponentTextStyle.Regular, null)}\r\n }\r\n\r\n &.medium {\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n }\r\n\r\n &.large {\r\n ${props => ComponentLStyling(ComponentTextStyle.Regular, null)}\r\n }\r\n\r\n &.disabled {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'disabled'}, props.theme)};\r\n\r\n .label {\r\n cursor: not-allowed;\r\n }\r\n }\r\n .label {\r\n cursor: inherit;\r\n margin-left: 8px;\r\n }\r\n\r\n &:not(.disabled):active label:first-of-type span {\r\n &:before {\r\n background-color: ${props => COLORS.getColor('primary_100', props.theme)};\r\n }\r\n }\r\n\r\n &.disabled[aria-pressed='true'] label:first-of-type span {\r\n background-color: ${props => COLORS.getColor('neutral_300', props.theme)} !important;\r\n cursor: not-allowed;\r\n\r\n &:before {\r\n background-color: ${props => COLORS.getColor('neutral_200', props.theme)} !important;\r\n cursor: not-allowed;\r\n }\r\n }\r\n\r\n &[aria-pressed='true']:hover span {\r\n &.semantic {\r\n background-color: ${props => COLORS.getColor('positive_500', props.theme)};\r\n }\r\n\r\n &:before {\r\n background-color: ${props => COLORS.getColor('primary_20', props.theme)};\r\n }\r\n }\r\n\r\n &[aria-pressed='true'] label:first-of-type span {\r\n background-color: ${props => COLORS.getColor('primary_500', props.theme)};\r\n\r\n &.semantic {\r\n background-color: ${props => COLORS.getColor('positive_500', props.theme)};\r\n }\r\n\r\n &:before {\r\n -webkit-transform: translateX(20px);\r\n -ms-transform: translateX(20px);\r\n transform: translateX(20px);\r\n }\r\n }\r\n\r\n &.disabled[aria-pressed='false'] label:first-of-type span {\r\n background-color: ${props => COLORS.getColor('neutral_300', props.theme)} !important;\r\n cursor: not-allowed;\r\n\r\n &:before {\r\n background-color: ${props => COLORS.getColor('neutral_100', props.theme)} !important;\r\n cursor: not-allowed;\r\n }\r\n }\r\n\r\n &[aria-pressed='false']:hover label:first-of-type span {\r\n &.semantic {\r\n background-color: ${props => COLORS.getColor('critical_500', props.theme)};\r\n }\r\n\r\n &:before {\r\n background-color: ${props => COLORS.getColor('primary_20', props.theme)};\r\n }\r\n }\r\n\r\n &:not(.disabled).focus-visible {\r\n ${focusStyles}\r\n }\r\n\r\n &:not(.disabled) label:first-of-type {\r\n cursor: inherit;\r\n }\r\n`;\r\n\r\nexport const ToggleSwitchContainer = styled.label`\r\n position: relative;\r\n align-items: center;\r\n display: inline-flex;\r\n height: 28px;\r\n width: auto;\r\n padding: 10px 6px;\r\n`;\r\n\r\nexport const ToggleSwitch = styled.span`\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n width: 36px;\r\n height: 16px;\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'subtle' }, props.theme)};\r\n border-radius: 100px;\r\n\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'subtle' }, props.theme)};\r\n }\r\n\r\n &:before {\r\n position: absolute;\r\n content: '';\r\n height: 12px;\r\n width: 12px;\r\n left: 2px;\r\n top: calc(50% - 6px);\r\n background-color: ${props => COLORS.getColor('white', props.theme)};\r\n -webkit-transition: background-color 0.1s, transform 0.1s;\r\n transition: 0.1s;\r\n transition-timing-function: ease-in-out;\r\n border-radius: 50%;\r\n }\r\n`;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TogglerStyles.cjs","names":["_styles","require","_styledComponents","_interopRequireDefault","_typography","StyledSwitch","exports","styled","div","props","COLORS","generateToken","componentType","defaultVariant","theme","ComponentSStyling","ComponentTextStyle","Regular","ComponentMStyling","ComponentLStyling","state","getColor","isOnFill","focusStyles","ToggleSwitchContainer","label","ToggleSwitch","span"],"sources":["../../src/Toggles/TogglerStyles.ts"],"sourcesContent":["/**\r\n * Import custom styles.\r\n */\r\nimport { COLORS, focusStyles } from '../styles';\r\n\r\n/**\r\n * Import third-party libraries.\r\n */\r\nimport styled, { css } from 'styled-components';\r\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\r\n\r\nexport const StyledSwitch = styled.div<{ $selected: boolean | undefined }>`\r\n display: flex;\r\n flex-direction: row;\r\n width: max-content;\r\n min-height: 48px;\r\n min-width: 48px;\r\n align-items: center;\r\n cursor: pointer;\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'default'}, props.theme)};\r\n &.small {\r\n ${props => ComponentSStyling(ComponentTextStyle.Regular, null)}\r\n }\r\n\r\n &.medium {\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n }\r\n\r\n &.large {\r\n ${props => ComponentLStyling(ComponentTextStyle.Regular, null)}\r\n }\r\n\r\n &.disabled {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'disabled'}, props.theme)};\r\n\r\n .label {\r\n cursor: not-allowed;\r\n }\r\n }\r\n .label {\r\n cursor: inherit;\r\n margin-left: 8px;\r\n }\r\n\r\n\r\n label:first-of-type span.semantic, &[aria-pressed='true'] label:first-of-type span {\r\n border: none;\r\n }\r\n\r\n &:not(.disabled):active label:first-of-type span {\r\n &:before {\r\n background-color: ${props => COLORS.getColor('primary_100', props.theme)};\r\n }\r\n }\r\n\r\n &:not([aria-pressed='true']) label:first-of-type span {\r\n &.semantic:before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', isOnFill: true, defaultVariant: 'critical' }, props.theme)};\r\n }\r\n }\r\n\r\n &[aria-pressed='true'] label:first-of-type span {\r\n &.semantic:before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', isOnFill: true, defaultVariant: 'positive' }, props.theme)};\r\n }\r\n }\r\n\r\n &.disabled[aria-pressed='true'] label:first-of-type span {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'disabled' }, props.theme)} !important;\r\n cursor: not-allowed;\r\n\r\n &:before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', state: 'disabled' }, props.theme)} !important;\r\n cursor: not-allowed;\r\n }\r\n }\r\n\r\n &[aria-pressed='true']:hover label:first-of-type span {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'hover', defaultVariant: 'primary' }, props.theme)};\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'hover', defaultVariant: 'positive' }, props.theme)};\r\n }\r\n\r\n &:not(.semantic):before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', isOnFill: true, defaultVariant: 'primary' }, props.theme)};\r\n }\r\n }\r\n\r\n &[aria-pressed='true']:active label:first-of-type span {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'active', defaultVariant: 'primary' }, props.theme)};\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'active', defaultVariant: 'positive' }, props.theme)};\r\n }\r\n\r\n &:not(.semantic):before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', isOnFill: true, defaultVariant: 'primary' }, props.theme)};\r\n }\r\n }\r\n\r\n\r\n &[aria-pressed='true'] label:first-of-type span {\r\n background-color: ${props => COLORS.getColor('primary_500', props.theme)};\r\n\r\n &.semantic {\r\n background-color: ${props => COLORS.getColor('positive_500', props.theme)};\r\n }\r\n\r\n &:not(.semantic):before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', isOnFill: true, defaultVariant: 'primary' }, props.theme)};\r\n }\r\n\r\n &:before {\r\n -webkit-transform: translateX(20px);\r\n -ms-transform: translateX(20px);\r\n transform: translateX(20px);\r\n }\r\n }\r\n\r\n &:not([aria-pressed='true']).disabled label:first-of-type span {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'disabled' }, props.theme)} !important;\r\n cursor: not-allowed;\r\n\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'disabled' }, props.theme)} !important;\r\n }\r\n\r\n &:not(.semantic):before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', state: 'disabled' }, props.theme)} !important;\r\n cursor: not-allowed;\r\n }\r\n }\r\n\r\n &:not([aria-pressed='true']) label:first-of-type span {\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', defaultVariant: 'critical' }, props.theme)};\r\n }\r\n }\r\n\r\n &.disabled label:first-of-type span {\r\n border-color: ${props => COLORS.generateToken({ componentType: 'border', state: 'disabled' }, props.theme)} !important;\r\n }\r\n\r\n &:not([aria-pressed='true']):hover label:first-of-type span {\r\n\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'hover' }, props.theme)};\r\n border-color: ${props => COLORS.generateToken({ componentType: 'border', state: 'hover' }, props.theme)};\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', defaultVariant:'critical', state:'hover' }, props.theme)};\r\n }\r\n\r\n &:not(.semantic):before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', state: 'hover', defaultVariant: 'default' }, props.theme)};\r\n }\r\n }\r\n\r\n &:not([aria-pressed='true']):active label:first-of-type span {\r\n\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'active' }, props.theme)};\r\n border-color: ${props => COLORS.generateToken({ componentType: 'border', state: 'active' }, props.theme)};\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', defaultVariant:'critical', state: 'active' }, props.theme)};\r\n }\r\n\r\n &:not(.semantic):before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', state: 'active', defaultVariant: 'default' }, props.theme)};\r\n }\r\n }\r\n\r\n &:not(.disabled).focus-visible {\r\n ${focusStyles}\r\n }\r\n\r\n &:not(.disabled) label:first-of-type {\r\n cursor: inherit;\r\n }\r\n`;\r\n\r\nexport const ToggleSwitchContainer = styled.label`\r\n position: relative;\r\n align-items: center;\r\n display: inline-flex;\r\n height: 28px;\r\n width: auto;\r\n padding: 10px 6px;\r\n`;\r\n\r\nexport const ToggleSwitch = styled.span`\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n border: 1px solid ${props => COLORS.generateToken({ componentType: 'border', defaultVariant: 'default' }, props.theme)};\r\n bottom: 0;\r\n width: 36px;\r\n height: 16px;\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'subtle' }, props.theme)};\r\n border-radius: 100px;\r\n\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'subtle' }, props.theme)};\r\n }\r\n\r\n &:before {\r\n position: absolute;\r\n content: '';\r\n height: 12px;\r\n width: 12px;\r\n left: 2px;\r\n top: calc(50% - 6px);\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', defaultVariant: 'default' }, props.theme)};\r\n -webkit-transition: background-color 0.1s, transform 0.1s;\r\n transition: 0.1s;\r\n transition-timing-function: ease-in-out;\r\n border-radius: 50%;\r\n }\r\n`;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -47,32 +47,100 @@ export const StyledSwitch = styled.div`
|
|
|
47
47
|
margin-left: 8px;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
|
|
51
|
+
label:first-of-type span.semantic, &[aria-pressed='true'] label:first-of-type span {
|
|
52
|
+
border: none;
|
|
53
|
+
}
|
|
54
|
+
|
|
50
55
|
&:not(.disabled):active label:first-of-type span {
|
|
51
56
|
&:before {
|
|
52
57
|
background-color: ${props => COLORS.getColor('primary_100', props.theme)};
|
|
53
58
|
}
|
|
54
59
|
}
|
|
55
60
|
|
|
61
|
+
&:not([aria-pressed='true']) label:first-of-type span {
|
|
62
|
+
&.semantic:before {
|
|
63
|
+
background-color: ${props => COLORS.generateToken({
|
|
64
|
+
componentType: 'icon',
|
|
65
|
+
isOnFill: true,
|
|
66
|
+
defaultVariant: 'critical'
|
|
67
|
+
}, props.theme)};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&[aria-pressed='true'] label:first-of-type span {
|
|
72
|
+
&.semantic:before {
|
|
73
|
+
background-color: ${props => COLORS.generateToken({
|
|
74
|
+
componentType: 'icon',
|
|
75
|
+
isOnFill: true,
|
|
76
|
+
defaultVariant: 'positive'
|
|
77
|
+
}, props.theme)};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
56
81
|
&.disabled[aria-pressed='true'] label:first-of-type span {
|
|
57
|
-
background-color: ${props => COLORS.
|
|
82
|
+
background-color: ${props => COLORS.generateToken({
|
|
83
|
+
componentType: 'bg-fill',
|
|
84
|
+
state: 'disabled'
|
|
85
|
+
}, props.theme)} !important;
|
|
58
86
|
cursor: not-allowed;
|
|
59
87
|
|
|
60
88
|
&:before {
|
|
61
|
-
background-color: ${props => COLORS.
|
|
89
|
+
background-color: ${props => COLORS.generateToken({
|
|
90
|
+
componentType: 'icon',
|
|
91
|
+
state: 'disabled'
|
|
92
|
+
}, props.theme)} !important;
|
|
62
93
|
cursor: not-allowed;
|
|
63
94
|
}
|
|
64
95
|
}
|
|
65
96
|
|
|
66
|
-
&[aria-pressed='true']:hover span {
|
|
97
|
+
&[aria-pressed='true']:hover label:first-of-type span {
|
|
98
|
+
background-color: ${props => COLORS.generateToken({
|
|
99
|
+
componentType: 'bg-fill',
|
|
100
|
+
state: 'hover',
|
|
101
|
+
defaultVariant: 'primary'
|
|
102
|
+
}, props.theme)};
|
|
67
103
|
&.semantic {
|
|
68
|
-
background-color: ${props => COLORS.
|
|
104
|
+
background-color: ${props => COLORS.generateToken({
|
|
105
|
+
componentType: 'bg-fill',
|
|
106
|
+
state: 'hover',
|
|
107
|
+
defaultVariant: 'positive'
|
|
108
|
+
}, props.theme)};
|
|
69
109
|
}
|
|
70
110
|
|
|
71
|
-
&:before {
|
|
72
|
-
background-color: ${props => COLORS.
|
|
111
|
+
&:not(.semantic):before {
|
|
112
|
+
background-color: ${props => COLORS.generateToken({
|
|
113
|
+
componentType: 'icon',
|
|
114
|
+
isOnFill: true,
|
|
115
|
+
defaultVariant: 'primary'
|
|
116
|
+
}, props.theme)};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
&[aria-pressed='true']:active label:first-of-type span {
|
|
121
|
+
background-color: ${props => COLORS.generateToken({
|
|
122
|
+
componentType: 'bg-fill',
|
|
123
|
+
state: 'active',
|
|
124
|
+
defaultVariant: 'primary'
|
|
125
|
+
}, props.theme)};
|
|
126
|
+
&.semantic {
|
|
127
|
+
background-color: ${props => COLORS.generateToken({
|
|
128
|
+
componentType: 'bg-fill',
|
|
129
|
+
state: 'active',
|
|
130
|
+
defaultVariant: 'positive'
|
|
131
|
+
}, props.theme)};
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
&:not(.semantic):before {
|
|
135
|
+
background-color: ${props => COLORS.generateToken({
|
|
136
|
+
componentType: 'icon',
|
|
137
|
+
isOnFill: true,
|
|
138
|
+
defaultVariant: 'primary'
|
|
139
|
+
}, props.theme)};
|
|
73
140
|
}
|
|
74
141
|
}
|
|
75
142
|
|
|
143
|
+
|
|
76
144
|
&[aria-pressed='true'] label:first-of-type span {
|
|
77
145
|
background-color: ${props => COLORS.getColor('primary_500', props.theme)};
|
|
78
146
|
|
|
@@ -80,6 +148,14 @@ export const StyledSwitch = styled.div`
|
|
|
80
148
|
background-color: ${props => COLORS.getColor('positive_500', props.theme)};
|
|
81
149
|
}
|
|
82
150
|
|
|
151
|
+
&:not(.semantic):before {
|
|
152
|
+
background-color: ${props => COLORS.generateToken({
|
|
153
|
+
componentType: 'icon',
|
|
154
|
+
isOnFill: true,
|
|
155
|
+
defaultVariant: 'primary'
|
|
156
|
+
}, props.theme)};
|
|
157
|
+
}
|
|
158
|
+
|
|
83
159
|
&:before {
|
|
84
160
|
-webkit-transform: translateX(20px);
|
|
85
161
|
-ms-transform: translateX(20px);
|
|
@@ -87,23 +163,96 @@ export const StyledSwitch = styled.div`
|
|
|
87
163
|
}
|
|
88
164
|
}
|
|
89
165
|
|
|
90
|
-
|
|
91
|
-
background-color: ${props => COLORS.
|
|
166
|
+
&:not([aria-pressed='true']).disabled label:first-of-type span {
|
|
167
|
+
background-color: ${props => COLORS.generateToken({
|
|
168
|
+
componentType: 'bg-surface',
|
|
169
|
+
state: 'disabled'
|
|
170
|
+
}, props.theme)} !important;
|
|
92
171
|
cursor: not-allowed;
|
|
93
172
|
|
|
94
|
-
|
|
95
|
-
background-color: ${props => COLORS.
|
|
173
|
+
&.semantic {
|
|
174
|
+
background-color: ${props => COLORS.generateToken({
|
|
175
|
+
componentType: 'bg-fill',
|
|
176
|
+
state: 'disabled'
|
|
177
|
+
}, props.theme)} !important;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
&:not(.semantic):before {
|
|
181
|
+
background-color: ${props => COLORS.generateToken({
|
|
182
|
+
componentType: 'icon',
|
|
183
|
+
state: 'disabled'
|
|
184
|
+
}, props.theme)} !important;
|
|
96
185
|
cursor: not-allowed;
|
|
97
186
|
}
|
|
98
187
|
}
|
|
99
188
|
|
|
100
|
-
|
|
189
|
+
&:not([aria-pressed='true']) label:first-of-type span {
|
|
101
190
|
&.semantic {
|
|
102
|
-
background-color: ${props => COLORS.
|
|
191
|
+
background-color: ${props => COLORS.generateToken({
|
|
192
|
+
componentType: 'bg-fill',
|
|
193
|
+
defaultVariant: 'critical'
|
|
194
|
+
}, props.theme)};
|
|
103
195
|
}
|
|
196
|
+
}
|
|
104
197
|
|
|
105
|
-
|
|
106
|
-
|
|
198
|
+
&.disabled label:first-of-type span {
|
|
199
|
+
border-color: ${props => COLORS.generateToken({
|
|
200
|
+
componentType: 'border',
|
|
201
|
+
state: 'disabled'
|
|
202
|
+
}, props.theme)} !important;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
&:not([aria-pressed='true']):hover label:first-of-type span {
|
|
206
|
+
|
|
207
|
+
background-color: ${props => COLORS.generateToken({
|
|
208
|
+
componentType: 'bg-surface',
|
|
209
|
+
state: 'hover'
|
|
210
|
+
}, props.theme)};
|
|
211
|
+
border-color: ${props => COLORS.generateToken({
|
|
212
|
+
componentType: 'border',
|
|
213
|
+
state: 'hover'
|
|
214
|
+
}, props.theme)};
|
|
215
|
+
&.semantic {
|
|
216
|
+
background-color: ${props => COLORS.generateToken({
|
|
217
|
+
componentType: 'bg-fill',
|
|
218
|
+
defaultVariant: 'critical',
|
|
219
|
+
state: 'hover'
|
|
220
|
+
}, props.theme)};
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
&:not(.semantic):before {
|
|
224
|
+
background-color: ${props => COLORS.generateToken({
|
|
225
|
+
componentType: 'icon',
|
|
226
|
+
state: 'hover',
|
|
227
|
+
defaultVariant: 'default'
|
|
228
|
+
}, props.theme)};
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
&:not([aria-pressed='true']):active label:first-of-type span {
|
|
233
|
+
|
|
234
|
+
background-color: ${props => COLORS.generateToken({
|
|
235
|
+
componentType: 'bg-surface',
|
|
236
|
+
state: 'active'
|
|
237
|
+
}, props.theme)};
|
|
238
|
+
border-color: ${props => COLORS.generateToken({
|
|
239
|
+
componentType: 'border',
|
|
240
|
+
state: 'active'
|
|
241
|
+
}, props.theme)};
|
|
242
|
+
&.semantic {
|
|
243
|
+
background-color: ${props => COLORS.generateToken({
|
|
244
|
+
componentType: 'bg-fill',
|
|
245
|
+
defaultVariant: 'critical',
|
|
246
|
+
state: 'active'
|
|
247
|
+
}, props.theme)};
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
&:not(.semantic):before {
|
|
251
|
+
background-color: ${props => COLORS.generateToken({
|
|
252
|
+
componentType: 'icon',
|
|
253
|
+
state: 'active',
|
|
254
|
+
defaultVariant: 'default'
|
|
255
|
+
}, props.theme)};
|
|
107
256
|
}
|
|
108
257
|
}
|
|
109
258
|
|
|
@@ -132,6 +281,10 @@ export const ToggleSwitch = styled.span`
|
|
|
132
281
|
top: 0;
|
|
133
282
|
left: 0;
|
|
134
283
|
right: 0;
|
|
284
|
+
border: 1px solid ${props => COLORS.generateToken({
|
|
285
|
+
componentType: 'border',
|
|
286
|
+
defaultVariant: 'default'
|
|
287
|
+
}, props.theme)};
|
|
135
288
|
bottom: 0;
|
|
136
289
|
width: 36px;
|
|
137
290
|
height: 16px;
|
|
@@ -155,7 +308,10 @@ export const ToggleSwitch = styled.span`
|
|
|
155
308
|
width: 12px;
|
|
156
309
|
left: 2px;
|
|
157
310
|
top: calc(50% - 6px);
|
|
158
|
-
background-color: ${props => COLORS.
|
|
311
|
+
background-color: ${props => COLORS.generateToken({
|
|
312
|
+
componentType: 'icon',
|
|
313
|
+
defaultVariant: 'default'
|
|
314
|
+
}, props.theme)};
|
|
159
315
|
-webkit-transition: background-color 0.1s, transform 0.1s;
|
|
160
316
|
transition: 0.1s;
|
|
161
317
|
transition-timing-function: ease-in-out;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TogglerStyles.js","names":["COLORS","focusStyles","styled","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","StyledSwitch","div","props","generateToken","componentType","defaultVariant","theme","Regular","state","getColor","ToggleSwitchContainer","label","ToggleSwitch","span"],"sources":["../../src/Toggles/TogglerStyles.ts"],"sourcesContent":["/**\r\n * Import custom styles.\r\n */\r\nimport { COLORS, focusStyles } from '../styles';\r\n\r\n/**\r\n * Import third-party libraries.\r\n */\r\nimport styled, { css } from 'styled-components';\r\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\r\n\r\nexport const StyledSwitch = styled.div<{ $selected: boolean | undefined }>`\r\n display: flex;\r\n flex-direction: row;\r\n width: max-content;\r\n min-height: 48px;\r\n min-width: 48px;\r\n align-items: center;\r\n cursor: pointer;\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'default'}, props.theme)};\r\n &.small {\r\n ${props => ComponentSStyling(ComponentTextStyle.Regular, null)}\r\n }\r\n\r\n &.medium {\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n }\r\n\r\n &.large {\r\n ${props => ComponentLStyling(ComponentTextStyle.Regular, null)}\r\n }\r\n\r\n &.disabled {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'disabled'}, props.theme)};\r\n\r\n .label {\r\n cursor: not-allowed;\r\n }\r\n }\r\n .label {\r\n cursor: inherit;\r\n margin-left: 8px;\r\n }\r\n\r\n &:not(.disabled):active label:first-of-type span {\r\n &:before {\r\n background-color: ${props => COLORS.getColor('primary_100', props.theme)};\r\n }\r\n }\r\n\r\n &.disabled[aria-pressed='true'] label:first-of-type span {\r\n background-color: ${props => COLORS.getColor('neutral_300', props.theme)} !important;\r\n cursor: not-allowed;\r\n\r\n &:before {\r\n background-color: ${props => COLORS.getColor('neutral_200', props.theme)} !important;\r\n cursor: not-allowed;\r\n }\r\n }\r\n\r\n &[aria-pressed='true']:hover span {\r\n &.semantic {\r\n background-color: ${props => COLORS.getColor('positive_500', props.theme)};\r\n }\r\n\r\n &:before {\r\n background-color: ${props => COLORS.getColor('primary_20', props.theme)};\r\n }\r\n }\r\n\r\n &[aria-pressed='true'] label:first-of-type span {\r\n background-color: ${props => COLORS.getColor('primary_500', props.theme)};\r\n\r\n &.semantic {\r\n background-color: ${props => COLORS.getColor('positive_500', props.theme)};\r\n }\r\n\r\n &:before {\r\n -webkit-transform: translateX(20px);\r\n -ms-transform: translateX(20px);\r\n transform: translateX(20px);\r\n }\r\n }\r\n\r\n &.disabled[aria-pressed='false'] label:first-of-type span {\r\n background-color: ${props => COLORS.getColor('neutral_300', props.theme)} !important;\r\n cursor: not-allowed;\r\n\r\n &:before {\r\n background-color: ${props => COLORS.getColor('neutral_100', props.theme)} !important;\r\n cursor: not-allowed;\r\n }\r\n }\r\n\r\n &[aria-pressed='false']:hover label:first-of-type span {\r\n &.semantic {\r\n background-color: ${props => COLORS.getColor('critical_500', props.theme)};\r\n }\r\n\r\n &:before {\r\n background-color: ${props => COLORS.getColor('primary_20', props.theme)};\r\n }\r\n }\r\n\r\n &:not(.disabled).focus-visible {\r\n ${focusStyles}\r\n }\r\n\r\n &:not(.disabled) label:first-of-type {\r\n cursor: inherit;\r\n }\r\n`;\r\n\r\nexport const ToggleSwitchContainer = styled.label`\r\n position: relative;\r\n align-items: center;\r\n display: inline-flex;\r\n height: 28px;\r\n width: auto;\r\n padding: 10px 6px;\r\n`;\r\n\r\nexport const ToggleSwitch = styled.span`\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n width: 36px;\r\n height: 16px;\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'subtle' }, props.theme)};\r\n border-radius: 100px;\r\n\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'subtle' }, props.theme)};\r\n }\r\n\r\n &:before {\r\n position: absolute;\r\n content: '';\r\n height: 12px;\r\n width: 12px;\r\n left: 2px;\r\n top: calc(50% - 6px);\r\n background-color: ${props => COLORS.getColor('white', props.theme)};\r\n -webkit-transition: background-color 0.1s, transform 0.1s;\r\n transition: 0.1s;\r\n transition-timing-function: ease-in-out;\r\n border-radius: 50%;\r\n }\r\n`;\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TogglerStyles.js","names":["COLORS","focusStyles","styled","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","StyledSwitch","div","props","generateToken","componentType","defaultVariant","theme","Regular","state","getColor","isOnFill","ToggleSwitchContainer","label","ToggleSwitch","span"],"sources":["../../src/Toggles/TogglerStyles.ts"],"sourcesContent":["/**\r\n * Import custom styles.\r\n */\r\nimport { COLORS, focusStyles } from '../styles';\r\n\r\n/**\r\n * Import third-party libraries.\r\n */\r\nimport styled, { css } from 'styled-components';\r\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\r\n\r\nexport const StyledSwitch = styled.div<{ $selected: boolean | undefined }>`\r\n display: flex;\r\n flex-direction: row;\r\n width: max-content;\r\n min-height: 48px;\r\n min-width: 48px;\r\n align-items: center;\r\n cursor: pointer;\r\n color: ${props => COLORS.generateToken({ componentType: 'text', defaultVariant: 'default'}, props.theme)};\r\n &.small {\r\n ${props => ComponentSStyling(ComponentTextStyle.Regular, null)}\r\n }\r\n\r\n &.medium {\r\n ${props => ComponentMStyling(ComponentTextStyle.Regular, null)}\r\n }\r\n\r\n &.large {\r\n ${props => ComponentLStyling(ComponentTextStyle.Regular, null)}\r\n }\r\n\r\n &.disabled {\r\n color: ${props => COLORS.generateToken({ componentType: 'text', state: 'disabled'}, props.theme)};\r\n\r\n .label {\r\n cursor: not-allowed;\r\n }\r\n }\r\n .label {\r\n cursor: inherit;\r\n margin-left: 8px;\r\n }\r\n\r\n\r\n label:first-of-type span.semantic, &[aria-pressed='true'] label:first-of-type span {\r\n border: none;\r\n }\r\n\r\n &:not(.disabled):active label:first-of-type span {\r\n &:before {\r\n background-color: ${props => COLORS.getColor('primary_100', props.theme)};\r\n }\r\n }\r\n\r\n &:not([aria-pressed='true']) label:first-of-type span {\r\n &.semantic:before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', isOnFill: true, defaultVariant: 'critical' }, props.theme)};\r\n }\r\n }\r\n\r\n &[aria-pressed='true'] label:first-of-type span {\r\n &.semantic:before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', isOnFill: true, defaultVariant: 'positive' }, props.theme)};\r\n }\r\n }\r\n\r\n &.disabled[aria-pressed='true'] label:first-of-type span {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'disabled' }, props.theme)} !important;\r\n cursor: not-allowed;\r\n\r\n &:before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', state: 'disabled' }, props.theme)} !important;\r\n cursor: not-allowed;\r\n }\r\n }\r\n\r\n &[aria-pressed='true']:hover label:first-of-type span {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'hover', defaultVariant: 'primary' }, props.theme)};\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'hover', defaultVariant: 'positive' }, props.theme)};\r\n }\r\n\r\n &:not(.semantic):before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', isOnFill: true, defaultVariant: 'primary' }, props.theme)};\r\n }\r\n }\r\n\r\n &[aria-pressed='true']:active label:first-of-type span {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'active', defaultVariant: 'primary' }, props.theme)};\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'active', defaultVariant: 'positive' }, props.theme)};\r\n }\r\n\r\n &:not(.semantic):before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', isOnFill: true, defaultVariant: 'primary' }, props.theme)};\r\n }\r\n }\r\n\r\n\r\n &[aria-pressed='true'] label:first-of-type span {\r\n background-color: ${props => COLORS.getColor('primary_500', props.theme)};\r\n\r\n &.semantic {\r\n background-color: ${props => COLORS.getColor('positive_500', props.theme)};\r\n }\r\n\r\n &:not(.semantic):before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', isOnFill: true, defaultVariant: 'primary' }, props.theme)};\r\n }\r\n\r\n &:before {\r\n -webkit-transform: translateX(20px);\r\n -ms-transform: translateX(20px);\r\n transform: translateX(20px);\r\n }\r\n }\r\n\r\n &:not([aria-pressed='true']).disabled label:first-of-type span {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'disabled' }, props.theme)} !important;\r\n cursor: not-allowed;\r\n\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', state: 'disabled' }, props.theme)} !important;\r\n }\r\n\r\n &:not(.semantic):before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', state: 'disabled' }, props.theme)} !important;\r\n cursor: not-allowed;\r\n }\r\n }\r\n\r\n &:not([aria-pressed='true']) label:first-of-type span {\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', defaultVariant: 'critical' }, props.theme)};\r\n }\r\n }\r\n\r\n &.disabled label:first-of-type span {\r\n border-color: ${props => COLORS.generateToken({ componentType: 'border', state: 'disabled' }, props.theme)} !important;\r\n }\r\n\r\n &:not([aria-pressed='true']):hover label:first-of-type span {\r\n\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'hover' }, props.theme)};\r\n border-color: ${props => COLORS.generateToken({ componentType: 'border', state: 'hover' }, props.theme)};\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', defaultVariant:'critical', state:'hover' }, props.theme)};\r\n }\r\n\r\n &:not(.semantic):before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', state: 'hover', defaultVariant: 'default' }, props.theme)};\r\n }\r\n }\r\n\r\n &:not([aria-pressed='true']):active label:first-of-type span {\r\n\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', state: 'active' }, props.theme)};\r\n border-color: ${props => COLORS.generateToken({ componentType: 'border', state: 'active' }, props.theme)};\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-fill', defaultVariant:'critical', state: 'active' }, props.theme)};\r\n }\r\n\r\n &:not(.semantic):before {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', state: 'active', defaultVariant: 'default' }, props.theme)};\r\n }\r\n }\r\n\r\n &:not(.disabled).focus-visible {\r\n ${focusStyles}\r\n }\r\n\r\n &:not(.disabled) label:first-of-type {\r\n cursor: inherit;\r\n }\r\n`;\r\n\r\nexport const ToggleSwitchContainer = styled.label`\r\n position: relative;\r\n align-items: center;\r\n display: inline-flex;\r\n height: 28px;\r\n width: auto;\r\n padding: 10px 6px;\r\n`;\r\n\r\nexport const ToggleSwitch = styled.span`\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n border: 1px solid ${props => COLORS.generateToken({ componentType: 'border', defaultVariant: 'default' }, props.theme)};\r\n bottom: 0;\r\n width: 36px;\r\n height: 16px;\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'subtle' }, props.theme)};\r\n border-radius: 100px;\r\n\r\n &.semantic {\r\n background-color: ${props => COLORS.generateToken({ componentType: 'bg-surface', defaultVariant: 'subtle' }, props.theme)};\r\n }\r\n\r\n &:before {\r\n position: absolute;\r\n content: '';\r\n height: 12px;\r\n width: 12px;\r\n left: 2px;\r\n top: calc(50% - 6px);\r\n background-color: ${props => COLORS.generateToken({ componentType: 'icon', defaultVariant: 'default' }, props.theme)};\r\n -webkit-transition: background-color 0.1s, transform 0.1s;\r\n transition: 0.1s;\r\n transition-timing-function: ease-in-out;\r\n border-radius: 50%;\r\n }\r\n`;\r\n"],"mappings":"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","ignoreList":[]}
|