@veeqo/ui 14.9.0-beta-2 → 14.9.1
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/components/Accordion/Accordion.cjs +16 -19
- package/dist/components/Accordion/Accordion.cjs.map +1 -1
- package/dist/components/Accordion/Accordion.js +16 -19
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Accordion/styled.cjs +49 -0
- package/dist/components/Accordion/styled.cjs.map +1 -0
- package/dist/components/Accordion/styled.d.ts +26 -0
- package/dist/components/Accordion/styled.js +34 -0
- package/dist/components/Accordion/styled.js.map +1 -0
- package/dist/components/Action/Action.d.ts +4 -4
- package/dist/components/AnimatedDropdown/AnimatedDropdown.cjs +22 -5
- package/dist/components/AnimatedDropdown/AnimatedDropdown.cjs.map +1 -1
- package/dist/components/AnimatedDropdown/AnimatedDropdown.js +22 -5
- package/dist/components/AnimatedDropdown/AnimatedDropdown.js.map +1 -1
- package/dist/components/AnimatedDropdown/AnimatedDropdown.module.scss.cjs +9 -0
- package/dist/components/AnimatedDropdown/AnimatedDropdown.module.scss.cjs.map +1 -0
- package/dist/components/AnimatedDropdown/AnimatedDropdown.module.scss.js +7 -0
- package/dist/components/AnimatedDropdown/AnimatedDropdown.module.scss.js.map +1 -0
- package/dist/components/AnimatedDropdown/components/BasicDropdown.cjs +5 -3
- package/dist/components/AnimatedDropdown/components/BasicDropdown.cjs.map +1 -1
- package/dist/components/AnimatedDropdown/components/BasicDropdown.js +5 -3
- package/dist/components/AnimatedDropdown/components/BasicDropdown.js.map +1 -1
- package/dist/components/AnimatedDropdown/components/BasicDropdown.module.scss.cjs +9 -0
- package/dist/components/AnimatedDropdown/components/BasicDropdown.module.scss.cjs.map +1 -0
- package/dist/components/AnimatedDropdown/components/BasicDropdown.module.scss.js +7 -0
- package/dist/components/AnimatedDropdown/components/BasicDropdown.module.scss.js.map +1 -0
- package/dist/components/Card/Card.cjs +9 -36
- package/dist/components/Card/Card.cjs.map +1 -1
- package/dist/components/Card/Card.d.ts +5 -10
- package/dist/components/Card/Card.js +2 -29
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/Card/index.d.ts +0 -1
- package/dist/components/Card/styled.cjs +50 -0
- package/dist/components/Card/styled.cjs.map +1 -0
- package/dist/components/Card/styled.d.ts +16 -0
- package/dist/components/Card/styled.js +40 -0
- package/dist/components/Card/styled.js.map +1 -0
- package/dist/components/CardHeader/CardHeader.cjs +3 -3
- package/dist/components/CardHeader/CardHeader.cjs.map +1 -1
- package/dist/components/CardHeader/CardHeader.js +3 -3
- package/dist/components/CardHeader/CardHeader.js.map +1 -1
- package/dist/components/CardHeader/styled.cjs +15 -0
- package/dist/components/CardHeader/styled.cjs.map +1 -0
- package/dist/components/CardHeader/styled.d.ts +2 -0
- package/dist/components/CardHeader/styled.js +8 -0
- package/dist/components/CardHeader/styled.js.map +1 -0
- package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs +0 -1
- package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs.map +1 -1
- package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js +0 -1
- package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js.map +1 -1
- package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.cjs +0 -1
- package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.cjs.map +1 -1
- package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.js +0 -1
- package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.js.map +1 -1
- package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs +0 -1
- package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs.map +1 -1
- package/dist/components/DataGrid/components/GridContainer/GridContainer.js +0 -1
- package/dist/components/DataGrid/components/GridContainer/GridContainer.js.map +1 -1
- package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs +0 -1
- package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs.map +1 -1
- package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js +0 -1
- package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js.map +1 -1
- package/dist/components/DimensionsInput/DimensionsInput.d.ts +10 -10
- package/dist/components/Dropdown/Dropdown.module.scss.cjs +9 -0
- package/dist/components/Dropdown/Dropdown.module.scss.cjs.map +1 -0
- package/dist/components/Dropdown/Dropdown.module.scss.js +7 -0
- package/dist/components/Dropdown/Dropdown.module.scss.js.map +1 -0
- package/dist/components/Dropdown/DropdownPopover.cjs +4 -2
- package/dist/components/Dropdown/DropdownPopover.cjs.map +1 -1
- package/dist/components/Dropdown/DropdownPopover.js +5 -3
- package/dist/components/Dropdown/DropdownPopover.js.map +1 -1
- package/dist/components/FilterTag/styled.cjs +2 -1
- package/dist/components/FilterTag/styled.cjs.map +1 -1
- package/dist/components/FilterTag/styled.d.ts +1 -1
- package/dist/components/FilterTag/styled.js +2 -1
- package/dist/components/FilterTag/styled.js.map +1 -1
- package/dist/components/Flex/FlexCol/FlexCol.d.ts +1 -1
- package/dist/components/Flex/FlexRow/FlexRow.d.ts +1 -1
- package/dist/components/Image/Image.cjs +15 -5
- package/dist/components/Image/Image.cjs.map +1 -1
- package/dist/components/Image/Image.js +15 -5
- package/dist/components/Image/Image.js.map +1 -1
- package/dist/components/Image/Image.module.scss.cjs +9 -0
- package/dist/components/Image/Image.module.scss.cjs.map +1 -0
- package/dist/components/Image/Image.module.scss.js +7 -0
- package/dist/components/Image/Image.module.scss.js.map +1 -0
- package/dist/components/LegacyDataTable/SpecificState/styled.d.ts +2 -2
- package/dist/components/Modal/Modal.cjs +28 -3
- package/dist/components/Modal/Modal.cjs.map +1 -1
- package/dist/components/Modal/Modal.js +28 -3
- package/dist/components/Modal/Modal.js.map +1 -1
- package/dist/components/Modal/Modal.module.scss.cjs +9 -0
- package/dist/components/Modal/Modal.module.scss.cjs.map +1 -0
- package/dist/components/Modal/Modal.module.scss.js +7 -0
- package/dist/components/Modal/Modal.module.scss.js.map +1 -0
- package/dist/components/Modal/components/Dialog/Dialog.cjs +35 -2
- package/dist/components/Modal/components/Dialog/Dialog.cjs.map +1 -1
- package/dist/components/Modal/components/Dialog/Dialog.d.ts +13 -5
- package/dist/components/Modal/components/Dialog/Dialog.js +35 -2
- package/dist/components/Modal/components/Dialog/Dialog.js.map +1 -1
- package/dist/components/Pagination/styled.d.ts +11 -11
- package/dist/components/PhoneInput/index.d.ts +10 -10
- package/dist/components/Popover/Popover.cjs +7 -4
- package/dist/components/Popover/Popover.cjs.map +1 -1
- package/dist/components/Popover/Popover.d.ts +1 -1
- package/dist/components/Popover/Popover.js +7 -4
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popover/Popover.module.scss.cjs +9 -0
- package/dist/components/Popover/Popover.module.scss.cjs.map +1 -0
- package/dist/components/Popover/Popover.module.scss.js +7 -0
- package/dist/components/Popover/Popover.module.scss.js.map +1 -0
- package/dist/components/Search/Search.d.ts +10 -10
- package/dist/components/Search/styled.d.ts +10 -10
- package/dist/components/SimpleTable/SimpleTable.cjs +7 -20
- package/dist/components/SimpleTable/SimpleTable.cjs.map +1 -1
- package/dist/components/SimpleTable/SimpleTable.d.ts +7 -9
- package/dist/components/SimpleTable/SimpleTable.js +2 -15
- package/dist/components/SimpleTable/SimpleTable.js.map +1 -1
- package/dist/components/SimpleTable/styled.cjs +34 -0
- package/dist/components/SimpleTable/styled.cjs.map +1 -0
- package/dist/components/SimpleTable/styled.d.ts +15 -0
- package/dist/components/SimpleTable/styled.js +23 -0
- package/dist/components/SimpleTable/styled.js.map +1 -0
- package/dist/components/Text/Text.d.ts +1 -1
- package/dist/components/TextField/TextField.d.ts +10 -10
- package/dist/components/TextField/index.d.ts +10 -10
- package/dist/components/ToastsLayout/ToastsLayout.cjs +45 -9
- package/dist/components/ToastsLayout/ToastsLayout.cjs.map +1 -1
- package/dist/components/ToastsLayout/ToastsLayout.d.ts +4 -0
- package/dist/components/ToastsLayout/ToastsLayout.js +46 -10
- package/dist/components/ToastsLayout/ToastsLayout.js.map +1 -1
- package/dist/components/ToastsLayout/ToastsLayout.module.scss.cjs +2 -2
- package/dist/components/ToastsLayout/ToastsLayout.module.scss.cjs.map +1 -1
- package/dist/components/ToastsLayout/ToastsLayout.module.scss.js +2 -2
- package/dist/components/ToastsLayout/ToastsLayout.module.scss.js.map +1 -1
- package/dist/components/ToastsLayout/components/Toast.cjs +28 -23
- package/dist/components/ToastsLayout/components/Toast.cjs.map +1 -1
- package/dist/components/ToastsLayout/components/Toast.d.ts +5 -1
- package/dist/components/ToastsLayout/components/Toast.js +28 -23
- package/dist/components/ToastsLayout/components/Toast.js.map +1 -1
- package/dist/components/ToastsLayout/components/Toast.module.scss.cjs +9 -0
- package/dist/components/ToastsLayout/components/Toast.module.scss.cjs.map +1 -0
- package/dist/components/ToastsLayout/components/Toast.module.scss.js +7 -0
- package/dist/components/ToastsLayout/components/Toast.module.scss.js.map +1 -0
- package/dist/components/ToastsLayout/index.d.ts +1 -1
- package/dist/components/ToastsLayout/types.d.ts +1 -2
- package/dist/components/Tooltip/Tooltip.cjs +16 -12
- package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.js +16 -12
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.module.scss.cjs +9 -0
- package/dist/components/Tooltip/Tooltip.module.scss.cjs.map +1 -0
- package/dist/components/Tooltip/Tooltip.module.scss.js +7 -0
- package/dist/components/Tooltip/Tooltip.module.scss.js.map +1 -0
- package/dist/components/Tooltip/components/TooltipPopover.cjs +13 -10
- package/dist/components/Tooltip/components/TooltipPopover.cjs.map +1 -1
- package/dist/components/Tooltip/components/TooltipPopover.d.ts +1 -1
- package/dist/components/Tooltip/components/TooltipPopover.js +13 -10
- package/dist/components/Tooltip/components/TooltipPopover.js.map +1 -1
- package/dist/components/Tooltip/components/types.d.ts +7 -12
- package/dist/components/Tooltip/types.cjs.map +1 -1
- package/dist/components/Tooltip/types.d.ts +3 -1
- package/dist/components/Tooltip/types.js.map +1 -1
- package/dist/components/UploadFile/UploadFile.cjs +2 -7
- package/dist/components/UploadFile/UploadFile.cjs.map +1 -1
- package/dist/components/UploadFile/UploadFile.js +2 -7
- package/dist/components/UploadFile/UploadFile.js.map +1 -1
- package/dist/components/UploadFile/styled.cjs +54 -0
- package/dist/components/UploadFile/styled.cjs.map +1 -0
- package/dist/components/UploadFile/styled.d.ts +4 -0
- package/dist/components/UploadFile/styled.js +48 -0
- package/dist/components/UploadFile/styled.js.map +1 -0
- package/dist/components/View/View.cjs +9 -37
- package/dist/components/View/View.cjs.map +1 -1
- package/dist/components/View/View.js +7 -35
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/styled.cjs +53 -0
- package/dist/components/View/styled.cjs.map +1 -0
- package/dist/components/View/styled.d.ts +37 -0
- package/dist/components/View/styled.js +41 -0
- package/dist/components/View/styled.js.map +1 -0
- package/dist/components/ViewTab/ViewTab.d.ts +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/hoc/withLabels/BlockTooltip.cjs +16 -0
- package/dist/hoc/withLabels/BlockTooltip.cjs.map +1 -0
- package/dist/hoc/withLabels/BlockTooltip.d.ts +3 -0
- package/dist/hoc/withLabels/BlockTooltip.js +10 -0
- package/dist/hoc/withLabels/BlockTooltip.js.map +1 -0
- package/dist/hoc/withLabels/BlockTooltip.module.scss.cjs +9 -0
- package/dist/hoc/withLabels/BlockTooltip.module.scss.cjs.map +1 -0
- package/dist/hoc/withLabels/BlockTooltip.module.scss.js +7 -0
- package/dist/hoc/withLabels/BlockTooltip.module.scss.js.map +1 -0
- package/dist/hoc/withLabels/withLabels.cjs +2 -2
- package/dist/hoc/withLabels/withLabels.cjs.map +1 -1
- package/dist/hoc/withLabels/withLabels.js +1 -1
- package/dist/hoc/withLabels/withLabels.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/Accordion/Accordion.module.scss.cjs +0 -9
- package/dist/components/Accordion/Accordion.module.scss.cjs.map +0 -1
- package/dist/components/Accordion/Accordion.module.scss.js +0 -7
- package/dist/components/Accordion/Accordion.module.scss.js.map +0 -1
- package/dist/components/AnimatedDropdown/components/styled.cjs +0 -13
- package/dist/components/AnimatedDropdown/components/styled.cjs.map +0 -1
- package/dist/components/AnimatedDropdown/components/styled.d.ts +0 -2
- package/dist/components/AnimatedDropdown/components/styled.js +0 -7
- package/dist/components/AnimatedDropdown/components/styled.js.map +0 -1
- package/dist/components/AnimatedDropdown/styled.cjs +0 -19
- package/dist/components/AnimatedDropdown/styled.cjs.map +0 -1
- package/dist/components/AnimatedDropdown/styled.d.ts +0 -11
- package/dist/components/AnimatedDropdown/styled.js +0 -11
- package/dist/components/AnimatedDropdown/styled.js.map +0 -1
- package/dist/components/Card/Card.module.scss.cjs +0 -9
- package/dist/components/Card/Card.module.scss.cjs.map +0 -1
- package/dist/components/Card/Card.module.scss.js +0 -7
- package/dist/components/Card/Card.module.scss.js.map +0 -1
- package/dist/components/CardHeader/CardHeader.module.scss.cjs +0 -9
- package/dist/components/CardHeader/CardHeader.module.scss.cjs.map +0 -1
- package/dist/components/CardHeader/CardHeader.module.scss.js +0 -7
- package/dist/components/CardHeader/CardHeader.module.scss.js.map +0 -1
- package/dist/components/Dropdown/styled.cjs +0 -26
- package/dist/components/Dropdown/styled.cjs.map +0 -1
- package/dist/components/Dropdown/styled.d.ts +0 -5
- package/dist/components/Dropdown/styled.js +0 -20
- package/dist/components/Dropdown/styled.js.map +0 -1
- package/dist/components/Image/components/styled.cjs +0 -18
- package/dist/components/Image/components/styled.cjs.map +0 -1
- package/dist/components/Image/components/styled.d.ts +0 -6
- package/dist/components/Image/components/styled.js +0 -9
- package/dist/components/Image/components/styled.js.map +0 -1
- package/dist/components/Modal/components/Dialog/constants.cjs +0 -53
- package/dist/components/Modal/components/Dialog/constants.cjs.map +0 -1
- package/dist/components/Modal/components/Dialog/constants.d.ts +0 -44
- package/dist/components/Modal/components/Dialog/constants.js +0 -49
- package/dist/components/Modal/components/Dialog/constants.js.map +0 -1
- package/dist/components/Modal/components/Dialog/styled.cjs +0 -47
- package/dist/components/Modal/components/Dialog/styled.cjs.map +0 -1
- package/dist/components/Modal/components/Dialog/styled.d.ts +0 -6
- package/dist/components/Modal/components/Dialog/styled.js +0 -41
- package/dist/components/Modal/components/Dialog/styled.js.map +0 -1
- package/dist/components/Modal/components/Dialog/styles/baseStyles.cjs +0 -13
- package/dist/components/Modal/components/Dialog/styles/baseStyles.cjs.map +0 -1
- package/dist/components/Modal/components/Dialog/styles/baseStyles.d.ts +0 -4
- package/dist/components/Modal/components/Dialog/styles/baseStyles.js +0 -11
- package/dist/components/Modal/components/Dialog/styles/baseStyles.js.map +0 -1
- package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.cjs +0 -17
- package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.cjs.map +0 -1
- package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.d.ts +0 -6
- package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.js +0 -13
- package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.js.map +0 -1
- package/dist/components/Modal/components/styled.cjs +0 -21
- package/dist/components/Modal/components/styled.cjs.map +0 -1
- package/dist/components/Modal/components/styled.d.ts +0 -5
- package/dist/components/Modal/components/styled.js +0 -14
- package/dist/components/Modal/components/styled.js.map +0 -1
- package/dist/components/Popover/styled.cjs +0 -14
- package/dist/components/Popover/styled.cjs.map +0 -1
- package/dist/components/Popover/styled.d.ts +0 -5
- package/dist/components/Popover/styled.js +0 -7
- package/dist/components/Popover/styled.js.map +0 -1
- package/dist/components/SimpleTable/SimpleTable.module.scss.cjs +0 -9
- package/dist/components/SimpleTable/SimpleTable.module.scss.cjs.map +0 -1
- package/dist/components/SimpleTable/SimpleTable.module.scss.js +0 -7
- package/dist/components/SimpleTable/SimpleTable.module.scss.js.map +0 -1
- package/dist/components/ToastsLayout/components/ToastTransitionItem.cjs +0 -18
- package/dist/components/ToastsLayout/components/ToastTransitionItem.cjs.map +0 -1
- package/dist/components/ToastsLayout/components/ToastTransitionItem.d.ts +0 -12
- package/dist/components/ToastsLayout/components/ToastTransitionItem.js +0 -12
- package/dist/components/ToastsLayout/components/ToastTransitionItem.js.map +0 -1
- package/dist/components/Tooltip/components/styled.cjs +0 -25
- package/dist/components/Tooltip/components/styled.cjs.map +0 -1
- package/dist/components/Tooltip/components/styled.d.ts +0 -19
- package/dist/components/Tooltip/components/styled.js +0 -16
- package/dist/components/Tooltip/components/styled.js.map +0 -1
- package/dist/components/UploadFile/UploadFile.module.scss.cjs +0 -9
- package/dist/components/UploadFile/UploadFile.module.scss.cjs.map +0 -1
- package/dist/components/UploadFile/UploadFile.module.scss.js +0 -7
- package/dist/components/UploadFile/UploadFile.module.scss.js.map +0 -1
- package/dist/components/View/View.module.scss.cjs +0 -9
- package/dist/components/View/View.module.scss.cjs.map +0 -1
- package/dist/components/View/View.module.scss.js +0 -7
- package/dist/components/View/View.module.scss.js.map +0 -1
- package/dist/hoc/withLabels/styled.cjs +0 -17
- package/dist/hoc/withLabels/styled.cjs.map +0 -1
- package/dist/hoc/withLabels/styled.d.ts +0 -1
- package/dist/hoc/withLabels/styled.js +0 -11
- package/dist/hoc/withLabels/styled.js.map +0 -1
|
@@ -1,24 +1,60 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var reactTransitionGroup = require('react-transition-group');
|
|
4
3
|
var React = require('react');
|
|
5
4
|
var reactDom = require('react-dom');
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
5
|
+
var reactTransitionGroup = require('react-transition-group');
|
|
6
|
+
var FlexCol = require('../Flex/FlexCol/FlexCol.cjs');
|
|
7
|
+
var Toast = require('./components/Toast.cjs');
|
|
8
|
+
var Toast_module = require('./components/Toast.module.scss.cjs');
|
|
9
9
|
var ToastsLayout_module = require('./ToastsLayout.module.scss.cjs');
|
|
10
10
|
|
|
11
11
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
12
12
|
|
|
13
13
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* A fixed-position container that manages stacking, animating, and dismissing toast notifications.
|
|
17
|
+
* Renders into a portal on `document.body`. Only one instance should exist per application.
|
|
18
|
+
*/
|
|
15
19
|
const ToastsLayout = ({ className, e2eClassName, toasts, minWidth = '50vw', max = 3, onClose, }) => {
|
|
20
|
+
const nodeRefs = React.useRef(new Map());
|
|
21
|
+
// Stable ref to avoid re-triggering the dismiss effect when onClose identity changes
|
|
22
|
+
const onCloseRef = React.useRef(onClose);
|
|
23
|
+
React.useEffect(() => {
|
|
24
|
+
onCloseRef.current = onClose;
|
|
25
|
+
}, [onClose]);
|
|
16
26
|
React.useEffect(() => {
|
|
17
|
-
if (max && toasts.length > max)
|
|
18
|
-
|
|
19
|
-
}, [toasts, max
|
|
20
|
-
|
|
21
|
-
|
|
27
|
+
if (typeof max === 'number' && toasts.length > max)
|
|
28
|
+
onCloseRef.current(toasts[0].key);
|
|
29
|
+
}, [toasts, max]);
|
|
30
|
+
// Clean up refs only after exit animation completes (via onExited callback)
|
|
31
|
+
const handleExited = React.useCallback((key) => {
|
|
32
|
+
nodeRefs.current.delete(key);
|
|
33
|
+
}, []);
|
|
34
|
+
let resolvedMinWidth;
|
|
35
|
+
if (!minWidth && minWidth !== 0) {
|
|
36
|
+
resolvedMinWidth = undefined;
|
|
37
|
+
}
|
|
38
|
+
else if (typeof minWidth === 'number' || !isNaN(Number(minWidth))) {
|
|
39
|
+
resolvedMinWidth = `${minWidth}px`;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
resolvedMinWidth = String(minWidth);
|
|
43
|
+
}
|
|
44
|
+
return reactDom.createPortal(React__default.default.createElement(FlexCol.FlexCol, { alignItems: "center", gap: "base", className: ToastsLayout_module.ToastsLayoutContainer, "aria-live": "polite", "aria-atomic": "false" },
|
|
45
|
+
React__default.default.createElement(reactTransitionGroup.TransitionGroup, { component: null }, [...toasts].reverse().map((toast, index) => {
|
|
46
|
+
if (!nodeRefs.current.has(toast.key)) {
|
|
47
|
+
nodeRefs.current.set(toast.key, { current: null });
|
|
48
|
+
}
|
|
49
|
+
const nodeRef = nodeRefs.current.get(toast.key);
|
|
50
|
+
return (React__default.default.createElement(reactTransitionGroup.CSSTransition, { nodeRef: nodeRef, key: toast.key, timeout: 500, classNames: {
|
|
51
|
+
enter: Toast_module.enter,
|
|
52
|
+
enterActive: Toast_module.enterActive,
|
|
53
|
+
exit: Toast_module.exit,
|
|
54
|
+
exitActive: Toast_module.exitActive,
|
|
55
|
+
}, onExited: () => handleExited(toast.key) },
|
|
56
|
+
React__default.default.createElement(Toast.Toast, { ref: nodeRef, className: className, e2eClassName: e2eClassName, minWidth: resolvedMinWidth, last: index === toasts.length - 1, onClose: () => onClose(toast.key), ...toast })));
|
|
57
|
+
}))), document.body);
|
|
22
58
|
};
|
|
23
59
|
|
|
24
60
|
exports.ToastsLayout = ToastsLayout;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastsLayout.cjs","sources":["../../../src/components/ToastsLayout/ToastsLayout.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ToastsLayout.cjs","sources":["../../../src/components/ToastsLayout/ToastsLayout.tsx"],"sourcesContent":["import React, { FC, useCallback, useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { FlexCol } from '../Flex/FlexCol';\nimport { Toast } from './components/Toast';\nimport toastStyles from './components/Toast.module.scss';\nimport styles from './ToastsLayout.module.scss';\nimport { ToastsLayoutPropTypes } from './types';\n\n/**\n * A fixed-position container that manages stacking, animating, and dismissing toast notifications.\n * Renders into a portal on `document.body`. Only one instance should exist per application.\n */\nexport const ToastsLayout: FC<ToastsLayoutPropTypes> = ({\n className,\n e2eClassName,\n toasts,\n minWidth = '50vw',\n max = 3,\n onClose,\n}) => {\n const nodeRefs = useRef(new Map<string, { current: HTMLDivElement | null }>());\n\n // Stable ref to avoid re-triggering the dismiss effect when onClose identity changes\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n useEffect(() => {\n if (typeof max === 'number' && toasts.length > max) onCloseRef.current(toasts[0].key);\n }, [toasts, max]);\n\n // Clean up refs only after exit animation completes (via onExited callback)\n const handleExited = useCallback((key: string) => {\n nodeRefs.current.delete(key);\n }, []);\n\n let resolvedMinWidth: string | undefined;\n if (!minWidth && minWidth !== 0) {\n resolvedMinWidth = undefined;\n } else if (typeof minWidth === 'number' || !isNaN(Number(minWidth))) {\n resolvedMinWidth = `${minWidth}px`;\n } else {\n resolvedMinWidth = String(minWidth);\n }\n\n return createPortal(\n <FlexCol\n alignItems=\"center\"\n gap=\"base\"\n className={styles.ToastsLayoutContainer}\n aria-live=\"polite\"\n aria-atomic=\"false\"\n >\n <TransitionGroup component={null}>\n {[...toasts].reverse().map((toast, index) => {\n if (!nodeRefs.current.has(toast.key)) {\n nodeRefs.current.set(toast.key, { current: null });\n }\n const nodeRef = nodeRefs.current.get(toast.key)!;\n\n return (\n <CSSTransition\n nodeRef={nodeRef}\n key={toast.key}\n timeout={500}\n classNames={{\n enter: toastStyles.enter,\n enterActive: toastStyles.enterActive,\n exit: toastStyles.exit,\n exitActive: toastStyles.exitActive,\n }}\n onExited={() => handleExited(toast.key)}\n >\n <Toast\n ref={nodeRef}\n className={className}\n e2eClassName={e2eClassName}\n minWidth={resolvedMinWidth}\n last={index === toasts.length - 1}\n onClose={() => onClose(toast.key)}\n {...toast}\n />\n </CSSTransition>\n );\n })}\n </TransitionGroup>\n </FlexCol>,\n document.body,\n );\n};\n"],"names":["useRef","useEffect","useCallback","createPortal","React","FlexCol","styles","TransitionGroup","CSSTransition","toastStyles","Toast"],"mappings":"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"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
2
|
import { ToastsLayoutPropTypes } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* A fixed-position container that manages stacking, animating, and dismissing toast notifications.
|
|
5
|
+
* Renders into a portal on `document.body`. Only one instance should exist per application.
|
|
6
|
+
*/
|
|
3
7
|
export declare const ToastsLayout: FC<ToastsLayoutPropTypes>;
|
|
@@ -1,18 +1,54 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import React__default, { useEffect } from 'react';
|
|
1
|
+
import React__default, { useRef, useEffect, useCallback } from 'react';
|
|
3
2
|
import { createPortal } from 'react-dom';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
3
|
+
import { TransitionGroup, CSSTransition } from 'react-transition-group';
|
|
4
|
+
import { FlexCol } from '../Flex/FlexCol/FlexCol.js';
|
|
5
|
+
import { Toast } from './components/Toast.js';
|
|
6
|
+
import toastStyles from './components/Toast.module.scss.js';
|
|
7
7
|
import styles from './ToastsLayout.module.scss.js';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* A fixed-position container that manages stacking, animating, and dismissing toast notifications.
|
|
11
|
+
* Renders into a portal on `document.body`. Only one instance should exist per application.
|
|
12
|
+
*/
|
|
9
13
|
const ToastsLayout = ({ className, e2eClassName, toasts, minWidth = '50vw', max = 3, onClose, }) => {
|
|
14
|
+
const nodeRefs = useRef(new Map());
|
|
15
|
+
// Stable ref to avoid re-triggering the dismiss effect when onClose identity changes
|
|
16
|
+
const onCloseRef = useRef(onClose);
|
|
10
17
|
useEffect(() => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
onCloseRef.current = onClose;
|
|
19
|
+
}, [onClose]);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (typeof max === 'number' && toasts.length > max)
|
|
22
|
+
onCloseRef.current(toasts[0].key);
|
|
23
|
+
}, [toasts, max]);
|
|
24
|
+
// Clean up refs only after exit animation completes (via onExited callback)
|
|
25
|
+
const handleExited = useCallback((key) => {
|
|
26
|
+
nodeRefs.current.delete(key);
|
|
27
|
+
}, []);
|
|
28
|
+
let resolvedMinWidth;
|
|
29
|
+
if (!minWidth && minWidth !== 0) {
|
|
30
|
+
resolvedMinWidth = undefined;
|
|
31
|
+
}
|
|
32
|
+
else if (typeof minWidth === 'number' || !isNaN(Number(minWidth))) {
|
|
33
|
+
resolvedMinWidth = `${minWidth}px`;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
resolvedMinWidth = String(minWidth);
|
|
37
|
+
}
|
|
38
|
+
return createPortal(React__default.createElement(FlexCol, { alignItems: "center", gap: "base", className: styles.ToastsLayoutContainer, "aria-live": "polite", "aria-atomic": "false" },
|
|
39
|
+
React__default.createElement(TransitionGroup, { component: null }, [...toasts].reverse().map((toast, index) => {
|
|
40
|
+
if (!nodeRefs.current.has(toast.key)) {
|
|
41
|
+
nodeRefs.current.set(toast.key, { current: null });
|
|
42
|
+
}
|
|
43
|
+
const nodeRef = nodeRefs.current.get(toast.key);
|
|
44
|
+
return (React__default.createElement(CSSTransition, { nodeRef: nodeRef, key: toast.key, timeout: 500, classNames: {
|
|
45
|
+
enter: toastStyles.enter,
|
|
46
|
+
enterActive: toastStyles.enterActive,
|
|
47
|
+
exit: toastStyles.exit,
|
|
48
|
+
exitActive: toastStyles.exitActive,
|
|
49
|
+
}, onExited: () => handleExited(toast.key) },
|
|
50
|
+
React__default.createElement(Toast, { ref: nodeRef, className: className, e2eClassName: e2eClassName, minWidth: resolvedMinWidth, last: index === toasts.length - 1, onClose: () => onClose(toast.key), ...toast })));
|
|
51
|
+
}))), document.body);
|
|
16
52
|
};
|
|
17
53
|
|
|
18
54
|
export { ToastsLayout };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastsLayout.js","sources":["../../../src/components/ToastsLayout/ToastsLayout.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ToastsLayout.js","sources":["../../../src/components/ToastsLayout/ToastsLayout.tsx"],"sourcesContent":["import React, { FC, useCallback, useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { FlexCol } from '../Flex/FlexCol';\nimport { Toast } from './components/Toast';\nimport toastStyles from './components/Toast.module.scss';\nimport styles from './ToastsLayout.module.scss';\nimport { ToastsLayoutPropTypes } from './types';\n\n/**\n * A fixed-position container that manages stacking, animating, and dismissing toast notifications.\n * Renders into a portal on `document.body`. Only one instance should exist per application.\n */\nexport const ToastsLayout: FC<ToastsLayoutPropTypes> = ({\n className,\n e2eClassName,\n toasts,\n minWidth = '50vw',\n max = 3,\n onClose,\n}) => {\n const nodeRefs = useRef(new Map<string, { current: HTMLDivElement | null }>());\n\n // Stable ref to avoid re-triggering the dismiss effect when onClose identity changes\n const onCloseRef = useRef(onClose);\n useEffect(() => {\n onCloseRef.current = onClose;\n }, [onClose]);\n\n useEffect(() => {\n if (typeof max === 'number' && toasts.length > max) onCloseRef.current(toasts[0].key);\n }, [toasts, max]);\n\n // Clean up refs only after exit animation completes (via onExited callback)\n const handleExited = useCallback((key: string) => {\n nodeRefs.current.delete(key);\n }, []);\n\n let resolvedMinWidth: string | undefined;\n if (!minWidth && minWidth !== 0) {\n resolvedMinWidth = undefined;\n } else if (typeof minWidth === 'number' || !isNaN(Number(minWidth))) {\n resolvedMinWidth = `${minWidth}px`;\n } else {\n resolvedMinWidth = String(minWidth);\n }\n\n return createPortal(\n <FlexCol\n alignItems=\"center\"\n gap=\"base\"\n className={styles.ToastsLayoutContainer}\n aria-live=\"polite\"\n aria-atomic=\"false\"\n >\n <TransitionGroup component={null}>\n {[...toasts].reverse().map((toast, index) => {\n if (!nodeRefs.current.has(toast.key)) {\n nodeRefs.current.set(toast.key, { current: null });\n }\n const nodeRef = nodeRefs.current.get(toast.key)!;\n\n return (\n <CSSTransition\n nodeRef={nodeRef}\n key={toast.key}\n timeout={500}\n classNames={{\n enter: toastStyles.enter,\n enterActive: toastStyles.enterActive,\n exit: toastStyles.exit,\n exitActive: toastStyles.exitActive,\n }}\n onExited={() => handleExited(toast.key)}\n >\n <Toast\n ref={nodeRef}\n className={className}\n e2eClassName={e2eClassName}\n minWidth={resolvedMinWidth}\n last={index === toasts.length - 1}\n onClose={() => onClose(toast.key)}\n {...toast}\n />\n </CSSTransition>\n );\n })}\n </TransitionGroup>\n </FlexCol>,\n document.body,\n );\n};\n"],"names":["React"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var ___$insertStyle = require('../../_virtual/____insertStyle.cjs');
|
|
4
4
|
|
|
5
|
-
___$insertStyle(".
|
|
6
|
-
var styles = {"
|
|
5
|
+
___$insertStyle("._ToastsLayoutContainer_dq7e5_1 {\n position: fixed;\n bottom: var(--sizes-md);\n left: 0;\n width: 100%;\n pointer-events: none;\n z-index: var(--layers-tooltip);\n}");
|
|
6
|
+
var styles = {"ToastsLayoutContainer":"_ToastsLayoutContainer_dq7e5_1"};
|
|
7
7
|
|
|
8
8
|
module.exports = styles;
|
|
9
9
|
//# sourceMappingURL=ToastsLayout.module.scss.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastsLayout.module.scss.cjs","sources":["../../../src/components/ToastsLayout/ToastsLayout.module.scss"],"sourcesContent":[".
|
|
1
|
+
{"version":3,"file":"ToastsLayout.module.scss.cjs","sources":["../../../src/components/ToastsLayout/ToastsLayout.module.scss"],"sourcesContent":[".ToastsLayoutContainer {\n position: fixed;\n bottom: var(--sizes-md);\n left: 0;\n width: 100%;\n pointer-events: none;\n z-index: var(--layers-tooltip);\n}\n"],"names":[],"mappings":";;;;AACE,eAAA,CAAA,8KAAA;AACA,aAAA,CAAA,uBAAA,CAAA,gCAAA;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import insertStyle from '../../_virtual/____insertStyle.js';
|
|
2
2
|
|
|
3
|
-
insertStyle(".
|
|
4
|
-
var styles = {"
|
|
3
|
+
insertStyle("._ToastsLayoutContainer_dq7e5_1 {\n position: fixed;\n bottom: var(--sizes-md);\n left: 0;\n width: 100%;\n pointer-events: none;\n z-index: var(--layers-tooltip);\n}");
|
|
4
|
+
var styles = {"ToastsLayoutContainer":"_ToastsLayoutContainer_dq7e5_1"};
|
|
5
5
|
|
|
6
6
|
export { styles as default };
|
|
7
7
|
//# sourceMappingURL=ToastsLayout.module.scss.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastsLayout.module.scss.js","sources":["../../../src/components/ToastsLayout/ToastsLayout.module.scss"],"sourcesContent":[".
|
|
1
|
+
{"version":3,"file":"ToastsLayout.module.scss.js","sources":["../../../src/components/ToastsLayout/ToastsLayout.module.scss"],"sourcesContent":[".ToastsLayoutContainer {\n position: fixed;\n bottom: var(--sizes-md);\n left: 0;\n width: 100%;\n pointer-events: none;\n z-index: var(--layers-tooltip);\n}\n"],"names":["___$insertStyle"],"mappings":";;AACEA,WAAA,CAAA,8KAAA;AACA,aAAA,CAAA,uBAAA,CAAA,gCAAA;;;;"}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var colors = require('../../../theme/modules/colors.cjs');
|
|
5
|
-
var Stack = require('../../Stack/Stack.cjs');
|
|
6
|
-
var Text = require('../../Text/Text.cjs');
|
|
7
|
-
var BaseContainer = require('../../BaseContainer/BaseContainer.cjs');
|
|
8
|
-
var buildClassnames = require('../../../utils/buildClassnames.cjs');
|
|
9
|
-
var assignCssVars = require('../../../utils/assignCssVars.cjs');
|
|
10
|
-
var Button = require('../../Button/Button.cjs');
|
|
11
4
|
var AttentionIcon = require('../../../icons/design-system/components/AttentionIcon.cjs');
|
|
12
5
|
var CrossIcon = require('../../../icons/design-system/components/CrossIcon.cjs');
|
|
13
6
|
var InfoIcon = require('../../../icons/design-system/components/InfoIcon.cjs');
|
|
14
7
|
var MergeIcon = require('../../../icons/design-system/components/MergeIcon.cjs');
|
|
15
8
|
var SuccessIcon = require('../../../icons/design-system/components/SuccessIcon.cjs');
|
|
16
|
-
var
|
|
9
|
+
var buildClassnames = require('../../../utils/buildClassnames.cjs');
|
|
10
|
+
require('uid/secure');
|
|
11
|
+
var assignCssVars = require('../../../utils/assignCssVars.cjs');
|
|
12
|
+
var Action = require('../../Action/Action.cjs');
|
|
13
|
+
var FlexRow = require('../../Flex/FlexRow/FlexRow.cjs');
|
|
14
|
+
var Text = require('../../Text/Text.cjs');
|
|
15
|
+
var Toast_module = require('./Toast.module.scss.cjs');
|
|
17
16
|
|
|
18
17
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
19
18
|
|
|
@@ -21,19 +20,15 @@ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
|
21
20
|
|
|
22
21
|
const toastTypes = {
|
|
23
22
|
info: {
|
|
24
|
-
accentColor: colors.colors.brand.blue.base,
|
|
25
23
|
icon: React__default.default.createElement(InfoIcon.ReactComponent, null),
|
|
26
24
|
},
|
|
27
25
|
success: {
|
|
28
|
-
accentColor: colors.colors.secondary.green.base,
|
|
29
26
|
icon: React__default.default.createElement(SuccessIcon.ReactComponent, null),
|
|
30
27
|
},
|
|
31
28
|
error: {
|
|
32
|
-
accentColor: colors.colors.secondary.red.base,
|
|
33
29
|
icon: React__default.default.createElement(AttentionIcon.ReactComponent, null),
|
|
34
30
|
},
|
|
35
31
|
merge: {
|
|
36
|
-
accentColor: colors.colors.secondary.purple.base,
|
|
37
32
|
icon: React__default.default.createElement(MergeIcon.ReactComponent, null),
|
|
38
33
|
},
|
|
39
34
|
};
|
|
@@ -42,21 +37,31 @@ const generateClassNames = (prefix) => ({
|
|
|
42
37
|
icon: prefix ? `${prefix}-toast-icon` : undefined,
|
|
43
38
|
closeIcon: prefix ? `${prefix}-toast-close-icon` : undefined,
|
|
44
39
|
});
|
|
40
|
+
/**
|
|
41
|
+
* A dismissible notification bar with a coloured icon, message text, and optional call-to-action.
|
|
42
|
+
* Rendered internally by `ToastsLayout` — not intended for standalone use.
|
|
43
|
+
*/
|
|
45
44
|
const Toast = React__default.default.forwardRef(({ className, e2eClassName, type, iconSlot, text, last, minWidth, cta, onClose }, ref) => {
|
|
46
45
|
const classNames = generateClassNames(className);
|
|
47
46
|
const e2eClassNames = generateClassNames(e2eClassName);
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
React__default.default.createElement(
|
|
56
|
-
React__default.default.createElement(
|
|
57
|
-
React__default.default.createElement(Text.Text, { variant: "
|
|
47
|
+
return (React__default.default.createElement(FlexRow.FlexRow, { ref: ref, alignItems: "center", flexWrap: "nowrap", className: buildClassnames.buildClassnames([
|
|
48
|
+
Toast_module['toast-container'],
|
|
49
|
+
Toast_module[`${type}-variant`],
|
|
50
|
+
last && Toast_module.last,
|
|
51
|
+
classNames.container,
|
|
52
|
+
e2eClassNames.container,
|
|
53
|
+
]), justifyContent: "space-between", style: assignCssVars.assignCssVars({ minWidth }), gap: "base" },
|
|
54
|
+
React__default.default.createElement(FlexRow.FlexRow, { justifyContent: "center", alignItems: "center", flexWrap: "nowrap", className: buildClassnames.buildClassnames([classNames.icon, e2eClassNames.icon, Toast_module['icon-wrap']]) }, iconSlot !== null && iconSlot !== void 0 ? iconSlot : toastTypes[type].icon),
|
|
55
|
+
React__default.default.createElement(FlexRow.FlexRow, { alignItems: "center", justifyContent: "space-between", flexGrow: 1, flexWrap: "nowrap" },
|
|
56
|
+
React__default.default.createElement(Text.Text, { variant: "subheadingMedium", className: Toast_module.text }, text),
|
|
58
57
|
cta),
|
|
59
|
-
React__default.default.createElement(
|
|
58
|
+
React__default.default.createElement(Action.Action, { variant: "flat",
|
|
59
|
+
// Always white on dark toast background
|
|
60
|
+
iconSlot: React__default.default.createElement(CrossIcon.ReactComponent, { color: "white" }), onClick: onClose, "aria-label": "Close", className: buildClassnames.buildClassnames([
|
|
61
|
+
classNames.closeIcon,
|
|
62
|
+
e2eClassNames.closeIcon,
|
|
63
|
+
Toast_module.closeAction,
|
|
64
|
+
]) })));
|
|
60
65
|
});
|
|
61
66
|
Toast.displayName = 'Toast';
|
|
62
67
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.cjs","sources":["../../../../src/components/ToastsLayout/components/Toast.tsx"],"sourcesContent":["import React from 'react';\nimport {
|
|
1
|
+
{"version":3,"file":"Toast.cjs","sources":["../../../../src/components/ToastsLayout/components/Toast.tsx"],"sourcesContent":["import React from 'react';\nimport { AttentionIcon, CrossIcon, InfoIcon, MergeIcon, SuccessIcon } from '../../../icons';\nimport { assignCssVars } from '../../../utils';\nimport { buildClassnames } from '../../../utils/buildClassnames';\nimport { Action } from '../../Action';\nimport { FlexRow } from '../../Flex/FlexRow';\nimport { Text } from '../../Text';\nimport { ClassNamesReturnPayload, ToastPropTypes, ToastType } from '../types';\nimport styles from './Toast.module.scss';\n\nconst toastTypes: ToastType = {\n info: {\n icon: <InfoIcon />,\n },\n success: {\n icon: <SuccessIcon />,\n },\n error: {\n icon: <AttentionIcon />,\n },\n merge: {\n icon: <MergeIcon />,\n },\n};\n\nconst generateClassNames = (prefix?: string): ClassNamesReturnPayload => ({\n container: prefix ? `${prefix}-toast-container` : undefined,\n icon: prefix ? `${prefix}-toast-icon` : undefined,\n closeIcon: prefix ? `${prefix}-toast-close-icon` : undefined,\n});\n\n/**\n * A dismissible notification bar with a coloured icon, message text, and optional call-to-action.\n * Rendered internally by `ToastsLayout` — not intended for standalone use.\n */\nexport const Toast = React.forwardRef<HTMLDivElement, ToastPropTypes>(\n ({ className, e2eClassName, type, iconSlot, text, last, minWidth, cta, onClose }, ref) => {\n const classNames = generateClassNames(className);\n const e2eClassNames = generateClassNames(e2eClassName);\n\n return (\n <FlexRow\n ref={ref}\n alignItems=\"center\"\n flexWrap=\"nowrap\"\n className={buildClassnames([\n styles['toast-container'],\n styles[`${type}-variant`],\n last && styles.last,\n classNames.container,\n e2eClassNames.container,\n ])}\n justifyContent=\"space-between\"\n style={assignCssVars({ minWidth })}\n gap=\"base\"\n >\n <FlexRow\n justifyContent=\"center\"\n alignItems=\"center\"\n flexWrap=\"nowrap\"\n className={buildClassnames([classNames.icon, e2eClassNames.icon, styles['icon-wrap']])}\n >\n {iconSlot ?? toastTypes[type].icon}\n </FlexRow>\n <FlexRow alignItems=\"center\" justifyContent=\"space-between\" flexGrow={1} flexWrap=\"nowrap\">\n <Text variant=\"subheadingMedium\" className={styles.text}>\n {text}\n </Text>\n {cta}\n </FlexRow>\n <Action\n variant=\"flat\"\n // Always white on dark toast background\n iconSlot={<CrossIcon color=\"white\" />}\n onClick={onClose}\n aria-label=\"Close\"\n className={buildClassnames([\n classNames.closeIcon,\n e2eClassNames.closeIcon,\n styles.closeAction,\n ])}\n />\n </FlexRow>\n );\n },\n);\n\nToast.displayName = 'Toast';\n"],"names":["React","InfoIcon","SuccessIcon","AttentionIcon","MergeIcon","FlexRow","buildClassnames","styles","assignCssVars","Text","Action","CrossIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;AAUA,MAAM,UAAU,GAAc;AAC5B,IAAA,IAAI,EAAE;QACJ,IAAI,EAAEA,sBAAA,CAAA,aAAA,CAACC,uBAAQ,EAAA,IAAA,CAAG;AACnB,KAAA;AACD,IAAA,OAAO,EAAE;QACP,IAAI,EAAED,sBAAA,CAAA,aAAA,CAACE,0BAAW,EAAA,IAAA,CAAG;AACtB,KAAA;AACD,IAAA,KAAK,EAAE;QACL,IAAI,EAAEF,sBAAA,CAAA,aAAA,CAACG,4BAAa,EAAA,IAAA,CAAG;AACxB,KAAA;AACD,IAAA,KAAK,EAAE;QACL,IAAI,EAAEH,sBAAA,CAAA,aAAA,CAACI,wBAAS,EAAA,IAAA,CAAG;AACpB,KAAA;CACF;AAED,MAAM,kBAAkB,GAAG,CAAC,MAAe,MAA+B;IACxE,SAAS,EAAE,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,gBAAA,CAAkB,GAAG,SAAS;IAC3D,IAAI,EAAE,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,WAAA,CAAa,GAAG,SAAS;IACjD,SAAS,EAAE,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,iBAAA,CAAmB,GAAG,SAAS;AAC7D,CAAA,CAAC;AAEF;;;AAGG;AACI,MAAM,KAAK,GAAGJ,sBAAK,CAAC,UAAU,CACnC,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,KAAI;AACvF,IAAA,MAAM,UAAU,GAAG,kBAAkB,CAAC,SAAS,CAAC;AAChD,IAAA,MAAM,aAAa,GAAG,kBAAkB,CAAC,YAAY,CAAC;AAEtD,IAAA,QACEA,sBAAA,CAAA,aAAA,CAACK,eAAO,IACN,GAAG,EAAE,GAAG,EACR,UAAU,EAAC,QAAQ,EACnB,QAAQ,EAAC,QAAQ,EACjB,SAAS,EAAEC,+BAAe,CAAC;YACzBC,YAAM,CAAC,iBAAiB,CAAC;AACzB,YAAAA,YAAM,CAAC,CAAA,EAAG,IAAI,CAAA,QAAA,CAAU,CAAC;YACzB,IAAI,IAAIA,YAAM,CAAC,IAAI;AACnB,YAAA,UAAU,CAAC,SAAS;AACpB,YAAA,aAAa,CAAC,SAAS;AACxB,SAAA,CAAC,EACF,cAAc,EAAC,eAAe,EAC9B,KAAK,EAAEC,2BAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,EAClC,GAAG,EAAC,MAAM,EAAA;QAEVR,sBAAA,CAAA,aAAA,CAACK,eAAO,IACN,cAAc,EAAC,QAAQ,EACvB,UAAU,EAAC,QAAQ,EACnB,QAAQ,EAAC,QAAQ,EACjB,SAAS,EAAEC,+BAAe,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAEC,YAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAA,EAErF,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAR,QAAQ,GAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAC1B;AACV,QAAAP,sBAAA,CAAA,aAAA,CAACK,eAAO,EAAA,EAAC,UAAU,EAAC,QAAQ,EAAC,cAAc,EAAC,eAAe,EAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAC,QAAQ,EAAA;AACxF,YAAAL,sBAAA,CAAA,aAAA,CAACS,SAAI,EAAA,EAAC,OAAO,EAAC,kBAAkB,EAAC,SAAS,EAAEF,YAAM,CAAC,IAAI,EAAA,EACpD,IAAI,CACA;AACN,YAAA,GAAG,CACI;AACV,QAAAP,sBAAA,CAAA,aAAA,CAACU,aAAM,EAAA,EACL,OAAO,EAAC,MAAM;;AAEd,YAAA,QAAQ,EAAEV,sBAAA,CAAA,aAAA,CAACW,wBAAS,IAAC,KAAK,EAAC,OAAO,EAAA,CAAG,EACrC,OAAO,EAAE,OAAO,EAAA,YAAA,EACL,OAAO,EAClB,SAAS,EAAEL,+BAAe,CAAC;AACzB,gBAAA,UAAU,CAAC,SAAS;AACpB,gBAAA,aAAa,CAAC,SAAS;AACvB,gBAAAC,YAAM,CAAC,WAAW;aACnB,CAAC,EAAA,CACF,CACM;AAEd,CAAC;AAGH,KAAK,CAAC,WAAW,GAAG,OAAO;;;;"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* A dismissible notification bar with a coloured icon, message text, and optional call-to-action.
|
|
4
|
+
* Rendered internally by `ToastsLayout` — not intended for standalone use.
|
|
5
|
+
*/
|
|
2
6
|
export declare const Toast: React.ForwardRefExoticComponent<Omit<import("../types").Notification, "key"> & {
|
|
3
7
|
className?: string | undefined;
|
|
4
8
|
e2eClassName?: string | undefined;
|
|
5
9
|
last: boolean;
|
|
6
|
-
minWidth
|
|
10
|
+
minWidth?: string | undefined;
|
|
7
11
|
onClose: () => void;
|
|
8
12
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -1,33 +1,28 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
-
import { colors } from '../../../theme/modules/colors.js';
|
|
3
|
-
import { Stack } from '../../Stack/Stack.js';
|
|
4
|
-
import { Text } from '../../Text/Text.js';
|
|
5
|
-
import { BaseContainer } from '../../BaseContainer/BaseContainer.js';
|
|
6
|
-
import { buildClassnames } from '../../../utils/buildClassnames.js';
|
|
7
|
-
import { assignCssVars } from '../../../utils/assignCssVars.js';
|
|
8
|
-
import { Button } from '../../Button/Button.js';
|
|
9
2
|
import { ReactComponent as AttentionIcon } from '../../../icons/design-system/components/AttentionIcon.js';
|
|
10
3
|
import { ReactComponent as CrossIcon } from '../../../icons/design-system/components/CrossIcon.js';
|
|
11
4
|
import { ReactComponent as InfoIcon } from '../../../icons/design-system/components/InfoIcon.js';
|
|
12
5
|
import { ReactComponent as MergeIcon } from '../../../icons/design-system/components/MergeIcon.js';
|
|
13
6
|
import { ReactComponent as SuccessIcon } from '../../../icons/design-system/components/SuccessIcon.js';
|
|
14
|
-
import
|
|
7
|
+
import { buildClassnames } from '../../../utils/buildClassnames.js';
|
|
8
|
+
import 'uid/secure';
|
|
9
|
+
import { assignCssVars } from '../../../utils/assignCssVars.js';
|
|
10
|
+
import { Action } from '../../Action/Action.js';
|
|
11
|
+
import { FlexRow } from '../../Flex/FlexRow/FlexRow.js';
|
|
12
|
+
import { Text } from '../../Text/Text.js';
|
|
13
|
+
import toastStyles from './Toast.module.scss.js';
|
|
15
14
|
|
|
16
15
|
const toastTypes = {
|
|
17
16
|
info: {
|
|
18
|
-
accentColor: colors.brand.blue.base,
|
|
19
17
|
icon: React__default.createElement(InfoIcon, null),
|
|
20
18
|
},
|
|
21
19
|
success: {
|
|
22
|
-
accentColor: colors.secondary.green.base,
|
|
23
20
|
icon: React__default.createElement(SuccessIcon, null),
|
|
24
21
|
},
|
|
25
22
|
error: {
|
|
26
|
-
accentColor: colors.secondary.red.base,
|
|
27
23
|
icon: React__default.createElement(AttentionIcon, null),
|
|
28
24
|
},
|
|
29
25
|
merge: {
|
|
30
|
-
accentColor: colors.secondary.purple.base,
|
|
31
26
|
icon: React__default.createElement(MergeIcon, null),
|
|
32
27
|
},
|
|
33
28
|
};
|
|
@@ -36,21 +31,31 @@ const generateClassNames = (prefix) => ({
|
|
|
36
31
|
icon: prefix ? `${prefix}-toast-icon` : undefined,
|
|
37
32
|
closeIcon: prefix ? `${prefix}-toast-close-icon` : undefined,
|
|
38
33
|
});
|
|
34
|
+
/**
|
|
35
|
+
* A dismissible notification bar with a coloured icon, message text, and optional call-to-action.
|
|
36
|
+
* Rendered internally by `ToastsLayout` — not intended for standalone use.
|
|
37
|
+
*/
|
|
39
38
|
const Toast = React__default.forwardRef(({ className, e2eClassName, type, iconSlot, text, last, minWidth, cta, onClose }, ref) => {
|
|
40
39
|
const classNames = generateClassNames(className);
|
|
41
40
|
const e2eClassNames = generateClassNames(e2eClassName);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
React__default.createElement(
|
|
50
|
-
React__default.createElement(
|
|
51
|
-
React__default.createElement(Text, { variant: "
|
|
41
|
+
return (React__default.createElement(FlexRow, { ref: ref, alignItems: "center", flexWrap: "nowrap", className: buildClassnames([
|
|
42
|
+
toastStyles['toast-container'],
|
|
43
|
+
toastStyles[`${type}-variant`],
|
|
44
|
+
last && toastStyles.last,
|
|
45
|
+
classNames.container,
|
|
46
|
+
e2eClassNames.container,
|
|
47
|
+
]), justifyContent: "space-between", style: assignCssVars({ minWidth }), gap: "base" },
|
|
48
|
+
React__default.createElement(FlexRow, { justifyContent: "center", alignItems: "center", flexWrap: "nowrap", className: buildClassnames([classNames.icon, e2eClassNames.icon, toastStyles['icon-wrap']]) }, iconSlot !== null && iconSlot !== void 0 ? iconSlot : toastTypes[type].icon),
|
|
49
|
+
React__default.createElement(FlexRow, { alignItems: "center", justifyContent: "space-between", flexGrow: 1, flexWrap: "nowrap" },
|
|
50
|
+
React__default.createElement(Text, { variant: "subheadingMedium", className: toastStyles.text }, text),
|
|
52
51
|
cta),
|
|
53
|
-
React__default.createElement(
|
|
52
|
+
React__default.createElement(Action, { variant: "flat",
|
|
53
|
+
// Always white on dark toast background
|
|
54
|
+
iconSlot: React__default.createElement(CrossIcon, { color: "white" }), onClick: onClose, "aria-label": "Close", className: buildClassnames([
|
|
55
|
+
classNames.closeIcon,
|
|
56
|
+
e2eClassNames.closeIcon,
|
|
57
|
+
toastStyles.closeAction,
|
|
58
|
+
]) })));
|
|
54
59
|
});
|
|
55
60
|
Toast.displayName = 'Toast';
|
|
56
61
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.js","sources":["../../../../src/components/ToastsLayout/components/Toast.tsx"],"sourcesContent":["import React from 'react';\nimport {
|
|
1
|
+
{"version":3,"file":"Toast.js","sources":["../../../../src/components/ToastsLayout/components/Toast.tsx"],"sourcesContent":["import React from 'react';\nimport { AttentionIcon, CrossIcon, InfoIcon, MergeIcon, SuccessIcon } from '../../../icons';\nimport { assignCssVars } from '../../../utils';\nimport { buildClassnames } from '../../../utils/buildClassnames';\nimport { Action } from '../../Action';\nimport { FlexRow } from '../../Flex/FlexRow';\nimport { Text } from '../../Text';\nimport { ClassNamesReturnPayload, ToastPropTypes, ToastType } from '../types';\nimport styles from './Toast.module.scss';\n\nconst toastTypes: ToastType = {\n info: {\n icon: <InfoIcon />,\n },\n success: {\n icon: <SuccessIcon />,\n },\n error: {\n icon: <AttentionIcon />,\n },\n merge: {\n icon: <MergeIcon />,\n },\n};\n\nconst generateClassNames = (prefix?: string): ClassNamesReturnPayload => ({\n container: prefix ? `${prefix}-toast-container` : undefined,\n icon: prefix ? `${prefix}-toast-icon` : undefined,\n closeIcon: prefix ? `${prefix}-toast-close-icon` : undefined,\n});\n\n/**\n * A dismissible notification bar with a coloured icon, message text, and optional call-to-action.\n * Rendered internally by `ToastsLayout` — not intended for standalone use.\n */\nexport const Toast = React.forwardRef<HTMLDivElement, ToastPropTypes>(\n ({ className, e2eClassName, type, iconSlot, text, last, minWidth, cta, onClose }, ref) => {\n const classNames = generateClassNames(className);\n const e2eClassNames = generateClassNames(e2eClassName);\n\n return (\n <FlexRow\n ref={ref}\n alignItems=\"center\"\n flexWrap=\"nowrap\"\n className={buildClassnames([\n styles['toast-container'],\n styles[`${type}-variant`],\n last && styles.last,\n classNames.container,\n e2eClassNames.container,\n ])}\n justifyContent=\"space-between\"\n style={assignCssVars({ minWidth })}\n gap=\"base\"\n >\n <FlexRow\n justifyContent=\"center\"\n alignItems=\"center\"\n flexWrap=\"nowrap\"\n className={buildClassnames([classNames.icon, e2eClassNames.icon, styles['icon-wrap']])}\n >\n {iconSlot ?? toastTypes[type].icon}\n </FlexRow>\n <FlexRow alignItems=\"center\" justifyContent=\"space-between\" flexGrow={1} flexWrap=\"nowrap\">\n <Text variant=\"subheadingMedium\" className={styles.text}>\n {text}\n </Text>\n {cta}\n </FlexRow>\n <Action\n variant=\"flat\"\n // Always white on dark toast background\n iconSlot={<CrossIcon color=\"white\" />}\n onClick={onClose}\n aria-label=\"Close\"\n className={buildClassnames([\n classNames.closeIcon,\n e2eClassNames.closeIcon,\n styles.closeAction,\n ])}\n />\n </FlexRow>\n );\n },\n);\n\nToast.displayName = 'Toast';\n"],"names":["React","styles"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ___$insertStyle = require('../../../_virtual/____insertStyle.cjs');
|
|
4
|
+
|
|
5
|
+
___$insertStyle("@charset \"UTF-8\";\n._toast-container_1wwfi_2 {\n --toast-local-z-index: 40;\n background-color: var(--colors-neutral-ink-dark);\n padding: var(--sizes-3);\n box-shadow: var(--shadows-md);\n border-radius: var(--radius-base);\n pointer-events: auto;\n z-index: var(--toast-local-z-index);\n min-width: min(var(--min-width, 50vw), 80vw);\n max-width: 80vw;\n transition: transform 500ms ease, opacity 500ms ease;\n}\n._toast-container_1wwfi_2._merge-variant_1wwfi_14 {\n --variant-color: var(--colors-secondary-purple-base);\n}\n._toast-container_1wwfi_2._info-variant_1wwfi_17 {\n --variant-color: var(--colors-secondary-blue-base);\n}\n._toast-container_1wwfi_2._error-variant_1wwfi_20 {\n --variant-color: var(--colors-secondary-red-base);\n}\n._toast-container_1wwfi_2._success-variant_1wwfi_23 {\n --variant-color: var(--colors-secondary-green-base);\n}\n\n/* Transition classes — co-located with .last so compound selectors hash correctly */\n._enter_1wwfi_28 {\n transform: translateY(var(--sizes-3));\n opacity: 0;\n}\n\n._enterActive_1wwfi_33 {\n transform: translateY(0);\n opacity: 1;\n}\n\n._exit_1wwfi_38 {\n transform: translateX(0);\n opacity: 1;\n}\n\n/*\n * .last modifier — applied to the bottom-most (oldest visible) toast.\n * Non-last toasts exit by sliding right (translateX) so the stack above\n * them collapses gracefully into the freed space. The last toast exits\n * by sliding down (translateY) off the bottom of the viewport since\n * there's nothing below it to displace.\n */\n._last_1wwfi_27._exit_1wwfi_38 {\n transform: translateY(0);\n opacity: 1;\n}\n\n._exitActive_1wwfi_55 {\n transform: translateX(var(--sizes-3));\n opacity: 0;\n}\n\n._last_1wwfi_27._exitActive_1wwfi_55 {\n transform: translateY(var(--sizes-3));\n opacity: 0;\n}\n\n._icon-wrap_1wwfi_65 {\n flex-shrink: 0;\n height: var(--sizes-10);\n width: var(--sizes-10);\n color: white;\n border-radius: var(--radius-base);\n background-color: var(--variant-color);\n}\n._icon-wrap_1wwfi_65 svg {\n width: var(--sizes-md);\n height: var(--sizes-md);\n}\n\n._text_1wwfi_78 {\n color: white;\n}\n\n._closeAction_1wwfi_82 {\n padding-left: var(--sizes-md);\n}\n._closeAction_1wwfi_82 svg {\n width: var(--sizes-md);\n height: var(--sizes-md);\n}\n\n._toast-container_1wwfi_2 ._closeAction_1wwfi_82:hover,\n._toast-container_1wwfi_2 ._closeAction_1wwfi_82:active,\n._toast-container_1wwfi_2 ._closeAction_1wwfi_82:focus-visible {\n background-color: color-mix(in srgb, white 15%, var(--colors-neutral-ink-dark));\n}");
|
|
6
|
+
var toastStyles = {"toast-container":"_toast-container_1wwfi_2","merge-variant":"_merge-variant_1wwfi_14","info-variant":"_info-variant_1wwfi_17","error-variant":"_error-variant_1wwfi_20","success-variant":"_success-variant_1wwfi_23","enter":"_enter_1wwfi_28","enterActive":"_enterActive_1wwfi_33","exit":"_exit_1wwfi_38","last":"_last_1wwfi_27","exitActive":"_exitActive_1wwfi_55","icon-wrap":"_icon-wrap_1wwfi_65","text":"_text_1wwfi_78","closeAction":"_closeAction_1wwfi_82"};
|
|
7
|
+
|
|
8
|
+
module.exports = toastStyles;
|
|
9
|
+
//# sourceMappingURL=Toast.module.scss.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.module.scss.cjs","sources":["../../../../src/components/ToastsLayout/components/Toast.module.scss"],"sourcesContent":[".toast-container {\n --toast-local-z-index: 40;\n\n background-color: var(--colors-neutral-ink-dark);\n padding: var(--sizes-3);\n box-shadow: var(--shadows-md);\n border-radius: var(--radius-base);\n pointer-events: auto;\n z-index: var(--toast-local-z-index);\n min-width: min(var(--min-width, 50vw), 80vw);\n max-width: 80vw;\n transition:\n transform 500ms ease,\n opacity 500ms ease;\n\n &.merge-variant {\n --variant-color: var(--colors-secondary-purple-base);\n }\n &.info-variant {\n --variant-color: var(--colors-secondary-blue-base);\n }\n &.error-variant {\n --variant-color: var(--colors-secondary-red-base);\n }\n &.success-variant {\n --variant-color: var(--colors-secondary-green-base);\n }\n}\n\n/* Transition classes — co-located with .last so compound selectors hash correctly */\n.enter {\n transform: translateY(var(--sizes-3));\n opacity: 0;\n}\n\n.enterActive {\n transform: translateY(0);\n opacity: 1;\n}\n\n.exit {\n transform: translateX(0);\n opacity: 1;\n}\n\n/*\n * .last modifier — applied to the bottom-most (oldest visible) toast.\n * Non-last toasts exit by sliding right (translateX) so the stack above\n * them collapses gracefully into the freed space. The last toast exits\n * by sliding down (translateY) off the bottom of the viewport since\n * there's nothing below it to displace.\n */\n.last.exit {\n transform: translateY(0);\n opacity: 1;\n}\n\n.exitActive {\n transform: translateX(var(--sizes-3));\n opacity: 0;\n}\n\n.last.exitActive {\n transform: translateY(var(--sizes-3));\n opacity: 0;\n}\n\n.icon-wrap {\n flex-shrink: 0;\n height: var(--sizes-10);\n width: var(--sizes-10);\n color: white;\n border-radius: var(--radius-base);\n background-color: var(--variant-color);\n\n svg {\n width: var(--sizes-md);\n height: var(--sizes-md);\n }\n}\n.text {\n color: white;\n}\n.closeAction {\n padding-left: var(--sizes-md);\n\n svg {\n width: var(--sizes-md);\n height: var(--sizes-md);\n }\n}\n\n.toast-container .closeAction:hover,\n.toast-container .closeAction:active,\n.toast-container .closeAction:focus-visible {\n background-color: color-mix(in srgb, white 15%, var(--colors-neutral-ink-dark));\n}\n"],"names":[],"mappings":";;;;AAAA,eAAA,CAAA,q/EAAA;AACE,kBAAA,CAAA,iBAAA,CAAA,0BAAA,CAAA,eAAA,CAAA,yBAAA,CAAA,cAAA,CAAA,wBAAA,CAAA,eAAA,CAAA,yBAAA,CAAA,iBAAA,CAAA,2BAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,YAAA,CAAA,sBAAA,CAAA,WAAA,CAAA,qBAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,aAAA,CAAA,uBAAA;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import insertStyle from '../../../_virtual/____insertStyle.js';
|
|
2
|
+
|
|
3
|
+
insertStyle("@charset \"UTF-8\";\n._toast-container_1wwfi_2 {\n --toast-local-z-index: 40;\n background-color: var(--colors-neutral-ink-dark);\n padding: var(--sizes-3);\n box-shadow: var(--shadows-md);\n border-radius: var(--radius-base);\n pointer-events: auto;\n z-index: var(--toast-local-z-index);\n min-width: min(var(--min-width, 50vw), 80vw);\n max-width: 80vw;\n transition: transform 500ms ease, opacity 500ms ease;\n}\n._toast-container_1wwfi_2._merge-variant_1wwfi_14 {\n --variant-color: var(--colors-secondary-purple-base);\n}\n._toast-container_1wwfi_2._info-variant_1wwfi_17 {\n --variant-color: var(--colors-secondary-blue-base);\n}\n._toast-container_1wwfi_2._error-variant_1wwfi_20 {\n --variant-color: var(--colors-secondary-red-base);\n}\n._toast-container_1wwfi_2._success-variant_1wwfi_23 {\n --variant-color: var(--colors-secondary-green-base);\n}\n\n/* Transition classes — co-located with .last so compound selectors hash correctly */\n._enter_1wwfi_28 {\n transform: translateY(var(--sizes-3));\n opacity: 0;\n}\n\n._enterActive_1wwfi_33 {\n transform: translateY(0);\n opacity: 1;\n}\n\n._exit_1wwfi_38 {\n transform: translateX(0);\n opacity: 1;\n}\n\n/*\n * .last modifier — applied to the bottom-most (oldest visible) toast.\n * Non-last toasts exit by sliding right (translateX) so the stack above\n * them collapses gracefully into the freed space. The last toast exits\n * by sliding down (translateY) off the bottom of the viewport since\n * there's nothing below it to displace.\n */\n._last_1wwfi_27._exit_1wwfi_38 {\n transform: translateY(0);\n opacity: 1;\n}\n\n._exitActive_1wwfi_55 {\n transform: translateX(var(--sizes-3));\n opacity: 0;\n}\n\n._last_1wwfi_27._exitActive_1wwfi_55 {\n transform: translateY(var(--sizes-3));\n opacity: 0;\n}\n\n._icon-wrap_1wwfi_65 {\n flex-shrink: 0;\n height: var(--sizes-10);\n width: var(--sizes-10);\n color: white;\n border-radius: var(--radius-base);\n background-color: var(--variant-color);\n}\n._icon-wrap_1wwfi_65 svg {\n width: var(--sizes-md);\n height: var(--sizes-md);\n}\n\n._text_1wwfi_78 {\n color: white;\n}\n\n._closeAction_1wwfi_82 {\n padding-left: var(--sizes-md);\n}\n._closeAction_1wwfi_82 svg {\n width: var(--sizes-md);\n height: var(--sizes-md);\n}\n\n._toast-container_1wwfi_2 ._closeAction_1wwfi_82:hover,\n._toast-container_1wwfi_2 ._closeAction_1wwfi_82:active,\n._toast-container_1wwfi_2 ._closeAction_1wwfi_82:focus-visible {\n background-color: color-mix(in srgb, white 15%, var(--colors-neutral-ink-dark));\n}");
|
|
4
|
+
var toastStyles = {"toast-container":"_toast-container_1wwfi_2","merge-variant":"_merge-variant_1wwfi_14","info-variant":"_info-variant_1wwfi_17","error-variant":"_error-variant_1wwfi_20","success-variant":"_success-variant_1wwfi_23","enter":"_enter_1wwfi_28","enterActive":"_enterActive_1wwfi_33","exit":"_exit_1wwfi_38","last":"_last_1wwfi_27","exitActive":"_exitActive_1wwfi_55","icon-wrap":"_icon-wrap_1wwfi_65","text":"_text_1wwfi_78","closeAction":"_closeAction_1wwfi_82"};
|
|
5
|
+
|
|
6
|
+
export { toastStyles as default };
|
|
7
|
+
//# sourceMappingURL=Toast.module.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.module.scss.js","sources":["../../../../src/components/ToastsLayout/components/Toast.module.scss"],"sourcesContent":[".toast-container {\n --toast-local-z-index: 40;\n\n background-color: var(--colors-neutral-ink-dark);\n padding: var(--sizes-3);\n box-shadow: var(--shadows-md);\n border-radius: var(--radius-base);\n pointer-events: auto;\n z-index: var(--toast-local-z-index);\n min-width: min(var(--min-width, 50vw), 80vw);\n max-width: 80vw;\n transition:\n transform 500ms ease,\n opacity 500ms ease;\n\n &.merge-variant {\n --variant-color: var(--colors-secondary-purple-base);\n }\n &.info-variant {\n --variant-color: var(--colors-secondary-blue-base);\n }\n &.error-variant {\n --variant-color: var(--colors-secondary-red-base);\n }\n &.success-variant {\n --variant-color: var(--colors-secondary-green-base);\n }\n}\n\n/* Transition classes — co-located with .last so compound selectors hash correctly */\n.enter {\n transform: translateY(var(--sizes-3));\n opacity: 0;\n}\n\n.enterActive {\n transform: translateY(0);\n opacity: 1;\n}\n\n.exit {\n transform: translateX(0);\n opacity: 1;\n}\n\n/*\n * .last modifier — applied to the bottom-most (oldest visible) toast.\n * Non-last toasts exit by sliding right (translateX) so the stack above\n * them collapses gracefully into the freed space. The last toast exits\n * by sliding down (translateY) off the bottom of the viewport since\n * there's nothing below it to displace.\n */\n.last.exit {\n transform: translateY(0);\n opacity: 1;\n}\n\n.exitActive {\n transform: translateX(var(--sizes-3));\n opacity: 0;\n}\n\n.last.exitActive {\n transform: translateY(var(--sizes-3));\n opacity: 0;\n}\n\n.icon-wrap {\n flex-shrink: 0;\n height: var(--sizes-10);\n width: var(--sizes-10);\n color: white;\n border-radius: var(--radius-base);\n background-color: var(--variant-color);\n\n svg {\n width: var(--sizes-md);\n height: var(--sizes-md);\n }\n}\n.text {\n color: white;\n}\n.closeAction {\n padding-left: var(--sizes-md);\n\n svg {\n width: var(--sizes-md);\n height: var(--sizes-md);\n }\n}\n\n.toast-container .closeAction:hover,\n.toast-container .closeAction:active,\n.toast-container .closeAction:focus-visible {\n background-color: color-mix(in srgb, white 15%, var(--colors-neutral-ink-dark));\n}\n"],"names":["___$insertStyle"],"mappings":";;AAAAA,WAAA,CAAA,q/EAAA;AACE,kBAAA,CAAA,iBAAA,CAAA,0BAAA,CAAA,eAAA,CAAA,yBAAA,CAAA,cAAA,CAAA,wBAAA,CAAA,eAAA,CAAA,yBAAA,CAAA,iBAAA,CAAA,2BAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,uBAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,YAAA,CAAA,sBAAA,CAAA,WAAA,CAAA,qBAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,aAAA,CAAA,uBAAA;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { ToastsLayout } from './ToastsLayout';
|
|
2
|
-
export type { Notification } from './types';
|
|
2
|
+
export type { Notification, ToastsLayoutPropTypes } from './types';
|