@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.
Files changed (287) hide show
  1. package/dist/components/Accordion/Accordion.cjs +16 -19
  2. package/dist/components/Accordion/Accordion.cjs.map +1 -1
  3. package/dist/components/Accordion/Accordion.js +16 -19
  4. package/dist/components/Accordion/Accordion.js.map +1 -1
  5. package/dist/components/Accordion/styled.cjs +49 -0
  6. package/dist/components/Accordion/styled.cjs.map +1 -0
  7. package/dist/components/Accordion/styled.d.ts +26 -0
  8. package/dist/components/Accordion/styled.js +34 -0
  9. package/dist/components/Accordion/styled.js.map +1 -0
  10. package/dist/components/Action/Action.d.ts +4 -4
  11. package/dist/components/AnimatedDropdown/AnimatedDropdown.cjs +22 -5
  12. package/dist/components/AnimatedDropdown/AnimatedDropdown.cjs.map +1 -1
  13. package/dist/components/AnimatedDropdown/AnimatedDropdown.js +22 -5
  14. package/dist/components/AnimatedDropdown/AnimatedDropdown.js.map +1 -1
  15. package/dist/components/AnimatedDropdown/AnimatedDropdown.module.scss.cjs +9 -0
  16. package/dist/components/AnimatedDropdown/AnimatedDropdown.module.scss.cjs.map +1 -0
  17. package/dist/components/AnimatedDropdown/AnimatedDropdown.module.scss.js +7 -0
  18. package/dist/components/AnimatedDropdown/AnimatedDropdown.module.scss.js.map +1 -0
  19. package/dist/components/AnimatedDropdown/components/BasicDropdown.cjs +5 -3
  20. package/dist/components/AnimatedDropdown/components/BasicDropdown.cjs.map +1 -1
  21. package/dist/components/AnimatedDropdown/components/BasicDropdown.js +5 -3
  22. package/dist/components/AnimatedDropdown/components/BasicDropdown.js.map +1 -1
  23. package/dist/components/AnimatedDropdown/components/BasicDropdown.module.scss.cjs +9 -0
  24. package/dist/components/AnimatedDropdown/components/BasicDropdown.module.scss.cjs.map +1 -0
  25. package/dist/components/AnimatedDropdown/components/BasicDropdown.module.scss.js +7 -0
  26. package/dist/components/AnimatedDropdown/components/BasicDropdown.module.scss.js.map +1 -0
  27. package/dist/components/Card/Card.cjs +9 -36
  28. package/dist/components/Card/Card.cjs.map +1 -1
  29. package/dist/components/Card/Card.d.ts +5 -10
  30. package/dist/components/Card/Card.js +2 -29
  31. package/dist/components/Card/Card.js.map +1 -1
  32. package/dist/components/Card/index.d.ts +0 -1
  33. package/dist/components/Card/styled.cjs +50 -0
  34. package/dist/components/Card/styled.cjs.map +1 -0
  35. package/dist/components/Card/styled.d.ts +16 -0
  36. package/dist/components/Card/styled.js +40 -0
  37. package/dist/components/Card/styled.js.map +1 -0
  38. package/dist/components/CardHeader/CardHeader.cjs +3 -3
  39. package/dist/components/CardHeader/CardHeader.cjs.map +1 -1
  40. package/dist/components/CardHeader/CardHeader.js +3 -3
  41. package/dist/components/CardHeader/CardHeader.js.map +1 -1
  42. package/dist/components/CardHeader/styled.cjs +15 -0
  43. package/dist/components/CardHeader/styled.cjs.map +1 -0
  44. package/dist/components/CardHeader/styled.d.ts +2 -0
  45. package/dist/components/CardHeader/styled.js +8 -0
  46. package/dist/components/CardHeader/styled.js.map +1 -0
  47. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs +0 -1
  48. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs.map +1 -1
  49. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js +0 -1
  50. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js.map +1 -1
  51. package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.cjs +0 -1
  52. package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.cjs.map +1 -1
  53. package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.js +0 -1
  54. package/dist/components/DataGrid/components/Body/LoadingBody/LoadingBodyCell.js.map +1 -1
  55. package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs +0 -1
  56. package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs.map +1 -1
  57. package/dist/components/DataGrid/components/GridContainer/GridContainer.js +0 -1
  58. package/dist/components/DataGrid/components/GridContainer/GridContainer.js.map +1 -1
  59. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs +0 -1
  60. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs.map +1 -1
  61. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js +0 -1
  62. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js.map +1 -1
  63. package/dist/components/DimensionsInput/DimensionsInput.d.ts +10 -10
  64. package/dist/components/Dropdown/Dropdown.module.scss.cjs +9 -0
  65. package/dist/components/Dropdown/Dropdown.module.scss.cjs.map +1 -0
  66. package/dist/components/Dropdown/Dropdown.module.scss.js +7 -0
  67. package/dist/components/Dropdown/Dropdown.module.scss.js.map +1 -0
  68. package/dist/components/Dropdown/DropdownPopover.cjs +4 -2
  69. package/dist/components/Dropdown/DropdownPopover.cjs.map +1 -1
  70. package/dist/components/Dropdown/DropdownPopover.js +5 -3
  71. package/dist/components/Dropdown/DropdownPopover.js.map +1 -1
  72. package/dist/components/FilterTag/styled.cjs +2 -1
  73. package/dist/components/FilterTag/styled.cjs.map +1 -1
  74. package/dist/components/FilterTag/styled.d.ts +1 -1
  75. package/dist/components/FilterTag/styled.js +2 -1
  76. package/dist/components/FilterTag/styled.js.map +1 -1
  77. package/dist/components/Flex/FlexCol/FlexCol.d.ts +1 -1
  78. package/dist/components/Flex/FlexRow/FlexRow.d.ts +1 -1
  79. package/dist/components/Image/Image.cjs +15 -5
  80. package/dist/components/Image/Image.cjs.map +1 -1
  81. package/dist/components/Image/Image.js +15 -5
  82. package/dist/components/Image/Image.js.map +1 -1
  83. package/dist/components/Image/Image.module.scss.cjs +9 -0
  84. package/dist/components/Image/Image.module.scss.cjs.map +1 -0
  85. package/dist/components/Image/Image.module.scss.js +7 -0
  86. package/dist/components/Image/Image.module.scss.js.map +1 -0
  87. package/dist/components/LegacyDataTable/SpecificState/styled.d.ts +2 -2
  88. package/dist/components/Modal/Modal.cjs +28 -3
  89. package/dist/components/Modal/Modal.cjs.map +1 -1
  90. package/dist/components/Modal/Modal.js +28 -3
  91. package/dist/components/Modal/Modal.js.map +1 -1
  92. package/dist/components/Modal/Modal.module.scss.cjs +9 -0
  93. package/dist/components/Modal/Modal.module.scss.cjs.map +1 -0
  94. package/dist/components/Modal/Modal.module.scss.js +7 -0
  95. package/dist/components/Modal/Modal.module.scss.js.map +1 -0
  96. package/dist/components/Modal/components/Dialog/Dialog.cjs +35 -2
  97. package/dist/components/Modal/components/Dialog/Dialog.cjs.map +1 -1
  98. package/dist/components/Modal/components/Dialog/Dialog.d.ts +13 -5
  99. package/dist/components/Modal/components/Dialog/Dialog.js +35 -2
  100. package/dist/components/Modal/components/Dialog/Dialog.js.map +1 -1
  101. package/dist/components/Pagination/styled.d.ts +11 -11
  102. package/dist/components/PhoneInput/index.d.ts +10 -10
  103. package/dist/components/Popover/Popover.cjs +7 -4
  104. package/dist/components/Popover/Popover.cjs.map +1 -1
  105. package/dist/components/Popover/Popover.d.ts +1 -1
  106. package/dist/components/Popover/Popover.js +7 -4
  107. package/dist/components/Popover/Popover.js.map +1 -1
  108. package/dist/components/Popover/Popover.module.scss.cjs +9 -0
  109. package/dist/components/Popover/Popover.module.scss.cjs.map +1 -0
  110. package/dist/components/Popover/Popover.module.scss.js +7 -0
  111. package/dist/components/Popover/Popover.module.scss.js.map +1 -0
  112. package/dist/components/Search/Search.d.ts +10 -10
  113. package/dist/components/Search/styled.d.ts +10 -10
  114. package/dist/components/SimpleTable/SimpleTable.cjs +7 -20
  115. package/dist/components/SimpleTable/SimpleTable.cjs.map +1 -1
  116. package/dist/components/SimpleTable/SimpleTable.d.ts +7 -9
  117. package/dist/components/SimpleTable/SimpleTable.js +2 -15
  118. package/dist/components/SimpleTable/SimpleTable.js.map +1 -1
  119. package/dist/components/SimpleTable/styled.cjs +34 -0
  120. package/dist/components/SimpleTable/styled.cjs.map +1 -0
  121. package/dist/components/SimpleTable/styled.d.ts +15 -0
  122. package/dist/components/SimpleTable/styled.js +23 -0
  123. package/dist/components/SimpleTable/styled.js.map +1 -0
  124. package/dist/components/Text/Text.d.ts +1 -1
  125. package/dist/components/TextField/TextField.d.ts +10 -10
  126. package/dist/components/TextField/index.d.ts +10 -10
  127. package/dist/components/ToastsLayout/ToastsLayout.cjs +45 -9
  128. package/dist/components/ToastsLayout/ToastsLayout.cjs.map +1 -1
  129. package/dist/components/ToastsLayout/ToastsLayout.d.ts +4 -0
  130. package/dist/components/ToastsLayout/ToastsLayout.js +46 -10
  131. package/dist/components/ToastsLayout/ToastsLayout.js.map +1 -1
  132. package/dist/components/ToastsLayout/ToastsLayout.module.scss.cjs +2 -2
  133. package/dist/components/ToastsLayout/ToastsLayout.module.scss.cjs.map +1 -1
  134. package/dist/components/ToastsLayout/ToastsLayout.module.scss.js +2 -2
  135. package/dist/components/ToastsLayout/ToastsLayout.module.scss.js.map +1 -1
  136. package/dist/components/ToastsLayout/components/Toast.cjs +28 -23
  137. package/dist/components/ToastsLayout/components/Toast.cjs.map +1 -1
  138. package/dist/components/ToastsLayout/components/Toast.d.ts +5 -1
  139. package/dist/components/ToastsLayout/components/Toast.js +28 -23
  140. package/dist/components/ToastsLayout/components/Toast.js.map +1 -1
  141. package/dist/components/ToastsLayout/components/Toast.module.scss.cjs +9 -0
  142. package/dist/components/ToastsLayout/components/Toast.module.scss.cjs.map +1 -0
  143. package/dist/components/ToastsLayout/components/Toast.module.scss.js +7 -0
  144. package/dist/components/ToastsLayout/components/Toast.module.scss.js.map +1 -0
  145. package/dist/components/ToastsLayout/index.d.ts +1 -1
  146. package/dist/components/ToastsLayout/types.d.ts +1 -2
  147. package/dist/components/Tooltip/Tooltip.cjs +16 -12
  148. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  149. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  150. package/dist/components/Tooltip/Tooltip.js +16 -12
  151. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  152. package/dist/components/Tooltip/Tooltip.module.scss.cjs +9 -0
  153. package/dist/components/Tooltip/Tooltip.module.scss.cjs.map +1 -0
  154. package/dist/components/Tooltip/Tooltip.module.scss.js +7 -0
  155. package/dist/components/Tooltip/Tooltip.module.scss.js.map +1 -0
  156. package/dist/components/Tooltip/components/TooltipPopover.cjs +13 -10
  157. package/dist/components/Tooltip/components/TooltipPopover.cjs.map +1 -1
  158. package/dist/components/Tooltip/components/TooltipPopover.d.ts +1 -1
  159. package/dist/components/Tooltip/components/TooltipPopover.js +13 -10
  160. package/dist/components/Tooltip/components/TooltipPopover.js.map +1 -1
  161. package/dist/components/Tooltip/components/types.d.ts +7 -12
  162. package/dist/components/Tooltip/types.cjs.map +1 -1
  163. package/dist/components/Tooltip/types.d.ts +3 -1
  164. package/dist/components/Tooltip/types.js.map +1 -1
  165. package/dist/components/UploadFile/UploadFile.cjs +2 -7
  166. package/dist/components/UploadFile/UploadFile.cjs.map +1 -1
  167. package/dist/components/UploadFile/UploadFile.js +2 -7
  168. package/dist/components/UploadFile/UploadFile.js.map +1 -1
  169. package/dist/components/UploadFile/styled.cjs +54 -0
  170. package/dist/components/UploadFile/styled.cjs.map +1 -0
  171. package/dist/components/UploadFile/styled.d.ts +4 -0
  172. package/dist/components/UploadFile/styled.js +48 -0
  173. package/dist/components/UploadFile/styled.js.map +1 -0
  174. package/dist/components/View/View.cjs +9 -37
  175. package/dist/components/View/View.cjs.map +1 -1
  176. package/dist/components/View/View.js +7 -35
  177. package/dist/components/View/View.js.map +1 -1
  178. package/dist/components/View/styled.cjs +53 -0
  179. package/dist/components/View/styled.cjs.map +1 -0
  180. package/dist/components/View/styled.d.ts +37 -0
  181. package/dist/components/View/styled.js +41 -0
  182. package/dist/components/View/styled.js.map +1 -0
  183. package/dist/components/ViewTab/ViewTab.d.ts +1 -1
  184. package/dist/components/index.d.ts +2 -2
  185. package/dist/hoc/withLabels/BlockTooltip.cjs +16 -0
  186. package/dist/hoc/withLabels/BlockTooltip.cjs.map +1 -0
  187. package/dist/hoc/withLabels/BlockTooltip.d.ts +3 -0
  188. package/dist/hoc/withLabels/BlockTooltip.js +10 -0
  189. package/dist/hoc/withLabels/BlockTooltip.js.map +1 -0
  190. package/dist/hoc/withLabels/BlockTooltip.module.scss.cjs +9 -0
  191. package/dist/hoc/withLabels/BlockTooltip.module.scss.cjs.map +1 -0
  192. package/dist/hoc/withLabels/BlockTooltip.module.scss.js +7 -0
  193. package/dist/hoc/withLabels/BlockTooltip.module.scss.js.map +1 -0
  194. package/dist/hoc/withLabels/withLabels.cjs +2 -2
  195. package/dist/hoc/withLabels/withLabels.cjs.map +1 -1
  196. package/dist/hoc/withLabels/withLabels.js +1 -1
  197. package/dist/hoc/withLabels/withLabels.js.map +1 -1
  198. package/package.json +1 -1
  199. package/dist/components/Accordion/Accordion.module.scss.cjs +0 -9
  200. package/dist/components/Accordion/Accordion.module.scss.cjs.map +0 -1
  201. package/dist/components/Accordion/Accordion.module.scss.js +0 -7
  202. package/dist/components/Accordion/Accordion.module.scss.js.map +0 -1
  203. package/dist/components/AnimatedDropdown/components/styled.cjs +0 -13
  204. package/dist/components/AnimatedDropdown/components/styled.cjs.map +0 -1
  205. package/dist/components/AnimatedDropdown/components/styled.d.ts +0 -2
  206. package/dist/components/AnimatedDropdown/components/styled.js +0 -7
  207. package/dist/components/AnimatedDropdown/components/styled.js.map +0 -1
  208. package/dist/components/AnimatedDropdown/styled.cjs +0 -19
  209. package/dist/components/AnimatedDropdown/styled.cjs.map +0 -1
  210. package/dist/components/AnimatedDropdown/styled.d.ts +0 -11
  211. package/dist/components/AnimatedDropdown/styled.js +0 -11
  212. package/dist/components/AnimatedDropdown/styled.js.map +0 -1
  213. package/dist/components/Card/Card.module.scss.cjs +0 -9
  214. package/dist/components/Card/Card.module.scss.cjs.map +0 -1
  215. package/dist/components/Card/Card.module.scss.js +0 -7
  216. package/dist/components/Card/Card.module.scss.js.map +0 -1
  217. package/dist/components/CardHeader/CardHeader.module.scss.cjs +0 -9
  218. package/dist/components/CardHeader/CardHeader.module.scss.cjs.map +0 -1
  219. package/dist/components/CardHeader/CardHeader.module.scss.js +0 -7
  220. package/dist/components/CardHeader/CardHeader.module.scss.js.map +0 -1
  221. package/dist/components/Dropdown/styled.cjs +0 -26
  222. package/dist/components/Dropdown/styled.cjs.map +0 -1
  223. package/dist/components/Dropdown/styled.d.ts +0 -5
  224. package/dist/components/Dropdown/styled.js +0 -20
  225. package/dist/components/Dropdown/styled.js.map +0 -1
  226. package/dist/components/Image/components/styled.cjs +0 -18
  227. package/dist/components/Image/components/styled.cjs.map +0 -1
  228. package/dist/components/Image/components/styled.d.ts +0 -6
  229. package/dist/components/Image/components/styled.js +0 -9
  230. package/dist/components/Image/components/styled.js.map +0 -1
  231. package/dist/components/Modal/components/Dialog/constants.cjs +0 -53
  232. package/dist/components/Modal/components/Dialog/constants.cjs.map +0 -1
  233. package/dist/components/Modal/components/Dialog/constants.d.ts +0 -44
  234. package/dist/components/Modal/components/Dialog/constants.js +0 -49
  235. package/dist/components/Modal/components/Dialog/constants.js.map +0 -1
  236. package/dist/components/Modal/components/Dialog/styled.cjs +0 -47
  237. package/dist/components/Modal/components/Dialog/styled.cjs.map +0 -1
  238. package/dist/components/Modal/components/Dialog/styled.d.ts +0 -6
  239. package/dist/components/Modal/components/Dialog/styled.js +0 -41
  240. package/dist/components/Modal/components/Dialog/styled.js.map +0 -1
  241. package/dist/components/Modal/components/Dialog/styles/baseStyles.cjs +0 -13
  242. package/dist/components/Modal/components/Dialog/styles/baseStyles.cjs.map +0 -1
  243. package/dist/components/Modal/components/Dialog/styles/baseStyles.d.ts +0 -4
  244. package/dist/components/Modal/components/Dialog/styles/baseStyles.js +0 -11
  245. package/dist/components/Modal/components/Dialog/styles/baseStyles.js.map +0 -1
  246. package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.cjs +0 -17
  247. package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.cjs.map +0 -1
  248. package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.d.ts +0 -6
  249. package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.js +0 -13
  250. package/dist/components/Modal/components/Dialog/styles/modalTypeStyles.js.map +0 -1
  251. package/dist/components/Modal/components/styled.cjs +0 -21
  252. package/dist/components/Modal/components/styled.cjs.map +0 -1
  253. package/dist/components/Modal/components/styled.d.ts +0 -5
  254. package/dist/components/Modal/components/styled.js +0 -14
  255. package/dist/components/Modal/components/styled.js.map +0 -1
  256. package/dist/components/Popover/styled.cjs +0 -14
  257. package/dist/components/Popover/styled.cjs.map +0 -1
  258. package/dist/components/Popover/styled.d.ts +0 -5
  259. package/dist/components/Popover/styled.js +0 -7
  260. package/dist/components/Popover/styled.js.map +0 -1
  261. package/dist/components/SimpleTable/SimpleTable.module.scss.cjs +0 -9
  262. package/dist/components/SimpleTable/SimpleTable.module.scss.cjs.map +0 -1
  263. package/dist/components/SimpleTable/SimpleTable.module.scss.js +0 -7
  264. package/dist/components/SimpleTable/SimpleTable.module.scss.js.map +0 -1
  265. package/dist/components/ToastsLayout/components/ToastTransitionItem.cjs +0 -18
  266. package/dist/components/ToastsLayout/components/ToastTransitionItem.cjs.map +0 -1
  267. package/dist/components/ToastsLayout/components/ToastTransitionItem.d.ts +0 -12
  268. package/dist/components/ToastsLayout/components/ToastTransitionItem.js +0 -12
  269. package/dist/components/ToastsLayout/components/ToastTransitionItem.js.map +0 -1
  270. package/dist/components/Tooltip/components/styled.cjs +0 -25
  271. package/dist/components/Tooltip/components/styled.cjs.map +0 -1
  272. package/dist/components/Tooltip/components/styled.d.ts +0 -19
  273. package/dist/components/Tooltip/components/styled.js +0 -16
  274. package/dist/components/Tooltip/components/styled.js.map +0 -1
  275. package/dist/components/UploadFile/UploadFile.module.scss.cjs +0 -9
  276. package/dist/components/UploadFile/UploadFile.module.scss.cjs.map +0 -1
  277. package/dist/components/UploadFile/UploadFile.module.scss.js +0 -7
  278. package/dist/components/UploadFile/UploadFile.module.scss.js.map +0 -1
  279. package/dist/components/View/View.module.scss.cjs +0 -9
  280. package/dist/components/View/View.module.scss.cjs.map +0 -1
  281. package/dist/components/View/View.module.scss.js +0 -7
  282. package/dist/components/View/View.module.scss.js.map +0 -1
  283. package/dist/hoc/withLabels/styled.cjs +0 -17
  284. package/dist/hoc/withLabels/styled.cjs.map +0 -1
  285. package/dist/hoc/withLabels/styled.d.ts +0 -1
  286. package/dist/hoc/withLabels/styled.js +0 -11
  287. 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 ToastTransitionItem = require('./components/ToastTransitionItem.cjs');
7
- var Stack = require('../Stack/Stack.cjs');
8
- var buildClassnames = require('../../utils/buildClassnames.cjs');
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
- onClose(toasts[0].key);
19
- }, [toasts, max, onClose]);
20
- return reactDom.createPortal(React__default.default.createElement(Stack.Stack, { className: buildClassnames.buildClassnames([ToastsLayout_module.container]), direction: "vertical", alignX: "center", spacing: 4 },
21
- React__default.default.createElement(reactTransitionGroup.TransitionGroup, { component: null }, [...toasts].reverse().map((toast, index) => (React__default.default.createElement(ToastTransitionItem.ToastTransitionItem, { key: toast.key, toast: toast, last: index === toasts.length - 1, minWidth: minWidth, className: className, e2eClassName: e2eClassName, onClose: () => onClose(toast.key) }))))), document.body);
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 { TransitionGroup } from 'react-transition-group';\nimport React, { useEffect, FC } from 'react';\nimport { createPortal } from 'react-dom';\nimport { ToastsLayoutPropTypes } from './types';\nimport { ToastTransitionItem } from './components/ToastTransitionItem';\nimport { Stack } from '../Stack';\nimport { buildClassnames } from '../../utils/buildClassnames';\nimport styles from './ToastsLayout.module.scss';\n\nexport const ToastsLayout: FC<ToastsLayoutPropTypes> = ({\n className,\n e2eClassName,\n toasts,\n minWidth = '50vw',\n max = 3,\n onClose,\n}) => {\n useEffect(() => {\n if (max && toasts.length > max) onClose(toasts[0].key);\n }, [toasts, max, onClose]);\n\n return createPortal(\n <Stack\n className={buildClassnames([styles.container])}\n direction=\"vertical\"\n alignX=\"center\"\n spacing={4}\n >\n <TransitionGroup component={null}>\n {[...toasts].reverse().map((toast, index) => (\n <ToastTransitionItem\n key={toast.key}\n toast={toast}\n last={index === toasts.length - 1}\n minWidth={minWidth}\n className={className}\n e2eClassName={e2eClassName}\n onClose={() => onClose(toast.key)}\n />\n ))}\n </TransitionGroup>\n </Stack>,\n document.body,\n );\n};\n"],"names":["useEffect","createPortal","React","Stack","buildClassnames","styles","TransitionGroup","ToastTransitionItem"],"mappings":";;;;;;;;;;;;;;MASa,YAAY,GAA8B,CAAC,EACtD,SAAS,EACT,YAAY,EACZ,MAAM,EACN,QAAQ,GAAG,MAAM,EACjB,GAAG,GAAG,CAAC,EACP,OAAO,GACR,KAAI;IACHA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxD,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAE1B,OAAOC,qBAAY,CACjBC,sBAAA,CAAA,aAAA,CAACC,WAAK,EAAA,EACJ,SAAS,EAAEC,+BAAe,CAAC,CAACC,mBAAM,CAAC,SAAS,CAAC,CAAC,EAC9C,SAAS,EAAC,UAAU,EACpB,MAAM,EAAC,QAAQ,EACf,OAAO,EAAE,CAAC,EAAA;AAEV,QAAAH,sBAAA,CAAA,aAAA,CAACI,oCAAe,EAAA,EAAC,SAAS,EAAE,IAAI,IAC7B,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MACtCJ,sBAAA,CAAA,aAAA,CAACK,uCAAmB,IAClB,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EACjC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAA,CACjC,CACH,CAAC,CACc,CACZ,EACR,QAAQ,CAAC,IAAI,CACd;AACH;;;;"}
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 { TransitionGroup } from 'react-transition-group';
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 { ToastTransitionItem } from './components/ToastTransitionItem.js';
5
- import { Stack } from '../Stack/Stack.js';
6
- import { buildClassnames } from '../../utils/buildClassnames.js';
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
- if (max && toasts.length > max)
12
- onClose(toasts[0].key);
13
- }, [toasts, max, onClose]);
14
- return createPortal(React__default.createElement(Stack, { className: buildClassnames([styles.container]), direction: "vertical", alignX: "center", spacing: 4 },
15
- React__default.createElement(TransitionGroup, { component: null }, [...toasts].reverse().map((toast, index) => (React__default.createElement(ToastTransitionItem, { key: toast.key, toast: toast, last: index === toasts.length - 1, minWidth: minWidth, className: className, e2eClassName: e2eClassName, onClose: () => onClose(toast.key) }))))), document.body);
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 { TransitionGroup } from 'react-transition-group';\nimport React, { useEffect, FC } from 'react';\nimport { createPortal } from 'react-dom';\nimport { ToastsLayoutPropTypes } from './types';\nimport { ToastTransitionItem } from './components/ToastTransitionItem';\nimport { Stack } from '../Stack';\nimport { buildClassnames } from '../../utils/buildClassnames';\nimport styles from './ToastsLayout.module.scss';\n\nexport const ToastsLayout: FC<ToastsLayoutPropTypes> = ({\n className,\n e2eClassName,\n toasts,\n minWidth = '50vw',\n max = 3,\n onClose,\n}) => {\n useEffect(() => {\n if (max && toasts.length > max) onClose(toasts[0].key);\n }, [toasts, max, onClose]);\n\n return createPortal(\n <Stack\n className={buildClassnames([styles.container])}\n direction=\"vertical\"\n alignX=\"center\"\n spacing={4}\n >\n <TransitionGroup component={null}>\n {[...toasts].reverse().map((toast, index) => (\n <ToastTransitionItem\n key={toast.key}\n toast={toast}\n last={index === toasts.length - 1}\n minWidth={minWidth}\n className={className}\n e2eClassName={e2eClassName}\n onClose={() => onClose(toast.key)}\n />\n ))}\n </TransitionGroup>\n </Stack>,\n document.body,\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;MASa,YAAY,GAA8B,CAAC,EACtD,SAAS,EACT,YAAY,EACZ,MAAM,EACN,QAAQ,GAAG,MAAM,EACjB,GAAG,GAAG,CAAC,EACP,OAAO,GACR,KAAI;IACH,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG;YAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxD,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAE1B,OAAO,YAAY,CACjBA,cAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EACJ,SAAS,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAC9C,SAAS,EAAC,UAAU,EACpB,MAAM,EAAC,QAAQ,EACf,OAAO,EAAE,CAAC,EAAA;AAEV,QAAAA,cAAA,CAAA,aAAA,CAAC,eAAe,EAAA,EAAC,SAAS,EAAE,IAAI,IAC7B,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MACtCA,cAAA,CAAA,aAAA,CAAC,mBAAmB,IAClB,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EACjC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAA,CACjC,CACH,CAAC,CACc,CACZ,EACR,QAAQ,CAAC,IAAI,CACd;AACH;;;;"}
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("._container_yulmp_1 {\n position: fixed;\n bottom: 24px;\n width: 100%;\n pointer-events: none;\n z-index: var(--layers-tooltip);\n}\n\n._toast_yulmp_9 {\n background-color: var(--colors-neutral-ink-dark);\n padding: 12px 24px 12px 12px;\n box-shadow: var(--shadows-lg);\n border-radius: var(--radius-md);\n pointer-events: auto;\n /* Below container's tooltip layer; ensures toasts stack above page content but below the fixed container's z-context */\n z-index: 40;\n min-width: var(--toast-min-width);\n max-width: 80vw;\n}\n\n/* CSSTransition class names (applied by react-transition-group at runtime) */\n.veeqo-components-toast-enter {\n transform: translateY(12px);\n opacity: 0;\n}\n\n.veeqo-components-toast-enter-active {\n transform: translateY(0);\n opacity: 1;\n transition: 500ms ease;\n}\n\n.veeqo-components-toast-exit {\n transform: var(--toast-exit-start);\n opacity: 1;\n}\n\n.veeqo-components-toast-exit-active {\n transform: var(--toast-exit-end);\n opacity: 0;\n transition: 500ms ease;\n}\n\n._iconWrap_yulmp_44 {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n height: 40px;\n width: 40px;\n border-radius: var(--radius-md);\n background-color: var(--icon-color);\n color: #fff;\n}\n._iconWrap_yulmp_44 svg {\n width: var(--sizes-md);\n height: var(--sizes-md);\n}\n\n._contentStack_yulmp_60 {\n flex-grow: 1;\n}\n\n._toastText_yulmp_64 {\n color: white;\n font-size: 16px;\n}");
6
- var styles = {"container":"_container_yulmp_1","toast":"_toast_yulmp_9","iconWrap":"_iconWrap_yulmp_44","contentStack":"_contentStack_yulmp_60","toastText":"_toastText_yulmp_64"};
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":[".container {\n position: fixed;\n bottom: 24px;\n width: 100%;\n pointer-events: none;\n z-index: var(--layers-tooltip);\n}\n\n.toast {\n background-color: var(--colors-neutral-ink-dark);\n padding: 12px 24px 12px 12px;\n box-shadow: var(--shadows-lg);\n border-radius: var(--radius-md);\n pointer-events: auto;\n /* Below container's tooltip layer; ensures toasts stack above page content but below the fixed container's z-context */\n z-index: 40;\n min-width: var(--toast-min-width);\n max-width: 80vw;\n}\n\n/* CSSTransition class names (applied by react-transition-group at runtime) */\n:global(.veeqo-components-toast-enter) {\n transform: translateY(12px);\n opacity: 0;\n}\n\n:global(.veeqo-components-toast-enter-active) {\n transform: translateY(0);\n opacity: 1;\n transition: 500ms ease;\n}\n\n:global(.veeqo-components-toast-exit) {\n transform: var(--toast-exit-start);\n opacity: 1;\n}\n\n:global(.veeqo-components-toast-exit-active) {\n transform: var(--toast-exit-end);\n opacity: 0;\n transition: 500ms ease;\n}\n\n.iconWrap {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n height: 40px;\n width: 40px;\n border-radius: var(--radius-md);\n background-color: var(--icon-color);\n color: #fff;\n\n svg {\n width: var(--sizes-md);\n height: var(--sizes-md);\n }\n}\n\n.contentStack {\n flex-grow: 1;\n}\n\n.toastText {\n color: white;\n font-size: 16px;\n}\n"],"names":[],"mappings":";;;;AACE,eAAA,CAAA,48CAAA;AACA,aAAA,CAAA,WAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,oBAAA,CAAA,cAAA,CAAA,wBAAA,CAAA,WAAA,CAAA,qBAAA;;;;"}
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("._container_yulmp_1 {\n position: fixed;\n bottom: 24px;\n width: 100%;\n pointer-events: none;\n z-index: var(--layers-tooltip);\n}\n\n._toast_yulmp_9 {\n background-color: var(--colors-neutral-ink-dark);\n padding: 12px 24px 12px 12px;\n box-shadow: var(--shadows-lg);\n border-radius: var(--radius-md);\n pointer-events: auto;\n /* Below container's tooltip layer; ensures toasts stack above page content but below the fixed container's z-context */\n z-index: 40;\n min-width: var(--toast-min-width);\n max-width: 80vw;\n}\n\n/* CSSTransition class names (applied by react-transition-group at runtime) */\n.veeqo-components-toast-enter {\n transform: translateY(12px);\n opacity: 0;\n}\n\n.veeqo-components-toast-enter-active {\n transform: translateY(0);\n opacity: 1;\n transition: 500ms ease;\n}\n\n.veeqo-components-toast-exit {\n transform: var(--toast-exit-start);\n opacity: 1;\n}\n\n.veeqo-components-toast-exit-active {\n transform: var(--toast-exit-end);\n opacity: 0;\n transition: 500ms ease;\n}\n\n._iconWrap_yulmp_44 {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n height: 40px;\n width: 40px;\n border-radius: var(--radius-md);\n background-color: var(--icon-color);\n color: #fff;\n}\n._iconWrap_yulmp_44 svg {\n width: var(--sizes-md);\n height: var(--sizes-md);\n}\n\n._contentStack_yulmp_60 {\n flex-grow: 1;\n}\n\n._toastText_yulmp_64 {\n color: white;\n font-size: 16px;\n}");
4
- var styles = {"container":"_container_yulmp_1","toast":"_toast_yulmp_9","iconWrap":"_iconWrap_yulmp_44","contentStack":"_contentStack_yulmp_60","toastText":"_toastText_yulmp_64"};
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":[".container {\n position: fixed;\n bottom: 24px;\n width: 100%;\n pointer-events: none;\n z-index: var(--layers-tooltip);\n}\n\n.toast {\n background-color: var(--colors-neutral-ink-dark);\n padding: 12px 24px 12px 12px;\n box-shadow: var(--shadows-lg);\n border-radius: var(--radius-md);\n pointer-events: auto;\n /* Below container's tooltip layer; ensures toasts stack above page content but below the fixed container's z-context */\n z-index: 40;\n min-width: var(--toast-min-width);\n max-width: 80vw;\n}\n\n/* CSSTransition class names (applied by react-transition-group at runtime) */\n:global(.veeqo-components-toast-enter) {\n transform: translateY(12px);\n opacity: 0;\n}\n\n:global(.veeqo-components-toast-enter-active) {\n transform: translateY(0);\n opacity: 1;\n transition: 500ms ease;\n}\n\n:global(.veeqo-components-toast-exit) {\n transform: var(--toast-exit-start);\n opacity: 1;\n}\n\n:global(.veeqo-components-toast-exit-active) {\n transform: var(--toast-exit-end);\n opacity: 0;\n transition: 500ms ease;\n}\n\n.iconWrap {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n height: 40px;\n width: 40px;\n border-radius: var(--radius-md);\n background-color: var(--icon-color);\n color: #fff;\n\n svg {\n width: var(--sizes-md);\n height: var(--sizes-md);\n }\n}\n\n.contentStack {\n flex-grow: 1;\n}\n\n.toastText {\n color: white;\n font-size: 16px;\n}\n"],"names":["___$insertStyle"],"mappings":";;AACEA,WAAA,CAAA,48CAAA;AACA,aAAA,CAAA,WAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,oBAAA,CAAA,cAAA,CAAA,wBAAA,CAAA,WAAA,CAAA,qBAAA;;;;"}
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 ToastsLayout_module = require('../ToastsLayout.module.scss.cjs');
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
- const toastVars = assignCssVars.assignCssVars({
49
- toastMinWidth: typeof minWidth === 'number' ? `${minWidth}px` : minWidth,
50
- toastExitStart: last ? 'translateY(0)' : 'translateX(0)',
51
- toastExitEnd: last ? 'translateY(12px)' : 'translateX(12px)',
52
- iconColor: toastTypes[type].accentColor,
53
- });
54
- return (React__default.default.createElement(Stack.Stack, { ref: ref, className: buildClassnames.buildClassnames([ToastsLayout_module.toast, classNames === null || classNames === void 0 ? void 0 : classNames.container, e2eClassNames === null || e2eClassNames === void 0 ? void 0 : e2eClassNames.container]), style: toastVars, direction: "horizontal", alignY: "center" },
55
- React__default.default.createElement(BaseContainer.BaseContainer, { className: buildClassnames.buildClassnames([ToastsLayout_module.iconWrap, classNames === null || classNames === void 0 ? void 0 : classNames.icon, e2eClassNames === null || e2eClassNames === void 0 ? void 0 : e2eClassNames.icon]) }, iconSlot !== null && iconSlot !== void 0 ? iconSlot : toastTypes[type].icon),
56
- React__default.default.createElement(Stack.Stack, { className: ToastsLayout_module.contentStack, direction: "horizontal", alignY: "center", alignX: "between" },
57
- React__default.default.createElement(Text.Text, { variant: "body", className: ToastsLayout_module.toastText }, text),
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(Button.Button, { variant: "flat", iconSlot: React__default.default.createElement(CrossIcon.ReactComponent, { color: "white" }), onClick: onClose, "aria-label": "Close" })));
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 { colors } from '../../../theme/modules/colors';\nimport { Stack } from '../../Stack';\nimport { Text } from '../../Text';\nimport { BaseContainer } from '../../BaseContainer';\nimport { ToastType, ToastPropTypes, ClassNamesReturnPayload } from '../types';\nimport { buildClassnames } from '../../../utils/buildClassnames';\nimport { assignCssVars } from '../../../utils/assignCssVars';\nimport { Button } from '../../Button';\nimport { SuccessIcon, InfoIcon, AttentionIcon, MergeIcon, CrossIcon } from '../../../icons';\nimport styles from '../ToastsLayout.module.scss';\n\nconst toastTypes: ToastType = {\n info: {\n accentColor: colors.brand.blue.base,\n icon: <InfoIcon />,\n },\n success: {\n accentColor: colors.secondary.green.base,\n icon: <SuccessIcon />,\n },\n error: {\n accentColor: colors.secondary.red.base,\n icon: <AttentionIcon />,\n },\n merge: {\n accentColor: colors.secondary.purple.base,\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\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 const toastVars = assignCssVars({\n toastMinWidth: typeof minWidth === 'number' ? `${minWidth}px` : minWidth,\n toastExitStart: last ? 'translateY(0)' : 'translateX(0)',\n toastExitEnd: last ? 'translateY(12px)' : 'translateX(12px)',\n iconColor: toastTypes[type].accentColor,\n });\n\n return (\n <Stack\n ref={ref}\n className={buildClassnames([styles.toast, classNames?.container, e2eClassNames?.container])}\n style={toastVars}\n direction=\"horizontal\"\n alignY=\"center\"\n >\n <BaseContainer\n className={buildClassnames([styles.iconWrap, classNames?.icon, e2eClassNames?.icon])}\n >\n {iconSlot ?? toastTypes[type].icon}\n </BaseContainer>\n <Stack className={styles.contentStack} direction=\"horizontal\" alignY=\"center\" alignX=\"between\">\n <Text variant=\"body\" className={styles.toastText}>{text}</Text>\n {cta}\n </Stack>\n <Button\n variant=\"flat\"\n iconSlot={<CrossIcon color=\"white\" />}\n onClick={onClose}\n aria-label=\"Close\"\n />\n </Stack>\n );\n },\n);\n\nToast.displayName = 'Toast';\n"],"names":["colors","React","InfoIcon","SuccessIcon","AttentionIcon","MergeIcon","assignCssVars","Stack","buildClassnames","styles","BaseContainer","Text","Button","CrossIcon"],"mappings":"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"}
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":"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"}
@@ -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: string | number;
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 styles from '../ToastsLayout.module.scss.js';
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
- const toastVars = assignCssVars({
43
- toastMinWidth: typeof minWidth === 'number' ? `${minWidth}px` : minWidth,
44
- toastExitStart: last ? 'translateY(0)' : 'translateX(0)',
45
- toastExitEnd: last ? 'translateY(12px)' : 'translateX(12px)',
46
- iconColor: toastTypes[type].accentColor,
47
- });
48
- return (React__default.createElement(Stack, { ref: ref, className: buildClassnames([styles.toast, classNames === null || classNames === void 0 ? void 0 : classNames.container, e2eClassNames === null || e2eClassNames === void 0 ? void 0 : e2eClassNames.container]), style: toastVars, direction: "horizontal", alignY: "center" },
49
- React__default.createElement(BaseContainer, { className: buildClassnames([styles.iconWrap, classNames === null || classNames === void 0 ? void 0 : classNames.icon, e2eClassNames === null || e2eClassNames === void 0 ? void 0 : e2eClassNames.icon]) }, iconSlot !== null && iconSlot !== void 0 ? iconSlot : toastTypes[type].icon),
50
- React__default.createElement(Stack, { className: styles.contentStack, direction: "horizontal", alignY: "center", alignX: "between" },
51
- React__default.createElement(Text, { variant: "body", className: styles.toastText }, text),
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(Button, { variant: "flat", iconSlot: React__default.createElement(CrossIcon, { color: "white" }), onClick: onClose, "aria-label": "Close" })));
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 { colors } from '../../../theme/modules/colors';\nimport { Stack } from '../../Stack';\nimport { Text } from '../../Text';\nimport { BaseContainer } from '../../BaseContainer';\nimport { ToastType, ToastPropTypes, ClassNamesReturnPayload } from '../types';\nimport { buildClassnames } from '../../../utils/buildClassnames';\nimport { assignCssVars } from '../../../utils/assignCssVars';\nimport { Button } from '../../Button';\nimport { SuccessIcon, InfoIcon, AttentionIcon, MergeIcon, CrossIcon } from '../../../icons';\nimport styles from '../ToastsLayout.module.scss';\n\nconst toastTypes: ToastType = {\n info: {\n accentColor: colors.brand.blue.base,\n icon: <InfoIcon />,\n },\n success: {\n accentColor: colors.secondary.green.base,\n icon: <SuccessIcon />,\n },\n error: {\n accentColor: colors.secondary.red.base,\n icon: <AttentionIcon />,\n },\n merge: {\n accentColor: colors.secondary.purple.base,\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\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 const toastVars = assignCssVars({\n toastMinWidth: typeof minWidth === 'number' ? `${minWidth}px` : minWidth,\n toastExitStart: last ? 'translateY(0)' : 'translateX(0)',\n toastExitEnd: last ? 'translateY(12px)' : 'translateX(12px)',\n iconColor: toastTypes[type].accentColor,\n });\n\n return (\n <Stack\n ref={ref}\n className={buildClassnames([styles.toast, classNames?.container, e2eClassNames?.container])}\n style={toastVars}\n direction=\"horizontal\"\n alignY=\"center\"\n >\n <BaseContainer\n className={buildClassnames([styles.iconWrap, classNames?.icon, e2eClassNames?.icon])}\n >\n {iconSlot ?? toastTypes[type].icon}\n </BaseContainer>\n <Stack className={styles.contentStack} direction=\"horizontal\" alignY=\"center\" alignX=\"between\">\n <Text variant=\"body\" className={styles.toastText}>{text}</Text>\n {cta}\n </Stack>\n <Button\n variant=\"flat\"\n iconSlot={<CrossIcon color=\"white\" />}\n onClick={onClose}\n aria-label=\"Close\"\n />\n </Stack>\n );\n },\n);\n\nToast.displayName = 'Toast';\n"],"names":["React"],"mappings":"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"}
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';