@salutejs/plasma-new-hope 0.175.2-dev.0 → 0.176.0-canary.1503.11559892364.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. package/cjs/components/Notification/Notification.css +11 -11
  2. package/cjs/components/Notification/Notification.js +2 -2
  3. package/cjs/components/Notification/Notification.js.map +1 -1
  4. package/cjs/components/Notification/Notification.styles.js +11 -2
  5. package/cjs/components/Notification/Notification.styles.js.map +1 -1
  6. package/cjs/components/Notification/{Notification.styles_7h8hp0.css → Notification.styles_e6274r.css} +2 -2
  7. package/cjs/components/Notification/Notification.tokens.js +2 -1
  8. package/cjs/components/Notification/Notification.tokens.js.map +1 -1
  9. package/cjs/components/Notification/Notification.types.js.map +1 -1
  10. package/cjs/components/Notification/NotificationsPortal.js +8 -4
  11. package/cjs/components/Notification/NotificationsPortal.js.map +1 -1
  12. package/cjs/components/Notification/NotificationsProvider.css +11 -11
  13. package/cjs/components/Notification/NotificationsProvider.js +3 -1
  14. package/cjs/components/Notification/NotificationsProvider.js.map +1 -1
  15. package/cjs/index.css +11 -11
  16. package/cjs/index.js +1 -1
  17. package/cjs/utils/index.js.map +1 -1
  18. package/emotion/cjs/components/Notification/Notification.js +2 -2
  19. package/emotion/cjs/components/Notification/Notification.styles.js +14 -19
  20. package/emotion/cjs/components/Notification/Notification.template-doc.mdx +17 -8
  21. package/emotion/cjs/components/Notification/Notification.tokens.js +2 -1
  22. package/emotion/cjs/components/Notification/NotificationsPortal.js +9 -5
  23. package/emotion/cjs/components/Notification/NotificationsProvider.js +3 -1
  24. package/emotion/cjs/components/Notification/index.js +4 -4
  25. package/emotion/cjs/examples/plasma_b2c/components/Notification/Notification.js +5 -3
  26. package/emotion/cjs/examples/plasma_b2c/components/Notification/Notification.stories.tsx +25 -4
  27. package/emotion/cjs/examples/plasma_web/components/Notification/Notification.js +5 -3
  28. package/emotion/cjs/examples/plasma_web/components/Notification/Notification.stories.tsx +25 -4
  29. package/emotion/es/components/Notification/Notification.js +1 -1
  30. package/emotion/es/components/Notification/Notification.styles.js +14 -19
  31. package/emotion/es/components/Notification/Notification.template-doc.mdx +17 -8
  32. package/emotion/es/components/Notification/Notification.tokens.js +2 -1
  33. package/emotion/es/components/Notification/NotificationsPortal.js +9 -5
  34. package/emotion/es/components/Notification/NotificationsProvider.js +3 -1
  35. package/emotion/es/components/Notification/index.js +1 -1
  36. package/emotion/es/examples/plasma_b2c/components/Notification/Notification.js +6 -4
  37. package/emotion/es/examples/plasma_b2c/components/Notification/Notification.stories.tsx +25 -4
  38. package/emotion/es/examples/plasma_web/components/Notification/Notification.js +6 -4
  39. package/emotion/es/examples/plasma_web/components/Notification/Notification.stories.tsx +25 -4
  40. package/es/components/Notification/Notification.css +11 -11
  41. package/es/components/Notification/Notification.js +2 -2
  42. package/es/components/Notification/Notification.js.map +1 -1
  43. package/es/components/Notification/Notification.styles.js +11 -2
  44. package/es/components/Notification/Notification.styles.js.map +1 -1
  45. package/es/components/Notification/{Notification.styles_7h8hp0.css → Notification.styles_e6274r.css} +2 -2
  46. package/es/components/Notification/Notification.tokens.js +2 -1
  47. package/es/components/Notification/Notification.tokens.js.map +1 -1
  48. package/es/components/Notification/Notification.types.js.map +1 -1
  49. package/es/components/Notification/NotificationsPortal.js +8 -4
  50. package/es/components/Notification/NotificationsPortal.js.map +1 -1
  51. package/es/components/Notification/NotificationsProvider.css +11 -11
  52. package/es/components/Notification/NotificationsProvider.js +3 -1
  53. package/es/components/Notification/NotificationsProvider.js.map +1 -1
  54. package/es/index.css +11 -11
  55. package/es/index.js +1 -1
  56. package/es/utils/index.js.map +1 -1
  57. package/package.json +2 -2
  58. package/styled-components/cjs/components/Notification/Notification.js +2 -2
  59. package/styled-components/cjs/components/Notification/Notification.styles.js +5 -2
  60. package/styled-components/cjs/components/Notification/Notification.template-doc.mdx +17 -8
  61. package/styled-components/cjs/components/Notification/Notification.tokens.js +2 -1
  62. package/styled-components/cjs/components/Notification/NotificationsPortal.js +8 -4
  63. package/styled-components/cjs/components/Notification/NotificationsProvider.js +3 -1
  64. package/styled-components/cjs/components/Notification/index.js +4 -4
  65. package/styled-components/cjs/examples/plasma_b2c/components/Notification/Notification.js +5 -3
  66. package/styled-components/cjs/examples/plasma_b2c/components/Notification/Notification.stories.tsx +25 -4
  67. package/styled-components/cjs/examples/plasma_web/components/Notification/Notification.js +5 -3
  68. package/styled-components/cjs/examples/plasma_web/components/Notification/Notification.stories.tsx +25 -4
  69. package/styled-components/es/components/Notification/Notification.js +1 -1
  70. package/styled-components/es/components/Notification/Notification.styles.js +5 -2
  71. package/styled-components/es/components/Notification/Notification.template-doc.mdx +17 -8
  72. package/styled-components/es/components/Notification/Notification.tokens.js +2 -1
  73. package/styled-components/es/components/Notification/NotificationsPortal.js +8 -4
  74. package/styled-components/es/components/Notification/NotificationsProvider.js +3 -1
  75. package/styled-components/es/components/Notification/index.js +1 -1
  76. package/styled-components/es/examples/plasma_b2c/components/Notification/Notification.js +6 -4
  77. package/styled-components/es/examples/plasma_b2c/components/Notification/Notification.stories.tsx +25 -4
  78. package/styled-components/es/examples/plasma_web/components/Notification/Notification.js +6 -4
  79. package/styled-components/es/examples/plasma_web/components/Notification/Notification.stories.tsx +25 -4
  80. package/types/components/Notification/Notification.d.ts +3 -3
  81. package/types/components/Notification/Notification.d.ts.map +1 -1
  82. package/types/components/Notification/Notification.styles.d.ts +4 -2
  83. package/types/components/Notification/Notification.styles.d.ts.map +1 -1
  84. package/types/components/Notification/Notification.tokens.d.ts +1 -0
  85. package/types/components/Notification/Notification.tokens.d.ts.map +1 -1
  86. package/types/components/Notification/Notification.types.d.ts +11 -5
  87. package/types/components/Notification/Notification.types.d.ts.map +1 -1
  88. package/types/components/Notification/NotificationsPortal.d.ts.map +1 -1
  89. package/types/components/Notification/NotificationsProvider.d.ts +4 -3
  90. package/types/components/Notification/NotificationsProvider.d.ts.map +1 -1
  91. package/types/components/Notification/index.d.ts +2 -2
  92. package/types/components/Notification/index.d.ts.map +1 -1
  93. package/types/examples/plasma_b2c/components/Notification/Notification.d.ts +4 -2
  94. package/types/examples/plasma_b2c/components/Notification/Notification.d.ts.map +1 -1
  95. package/types/examples/plasma_web/components/Notification/Notification.d.ts +4 -13
  96. package/types/examples/plasma_web/components/Notification/Notification.d.ts.map +1 -1
  97. package/types/utils/index.d.ts +1 -1
  98. package/types/utils/index.d.ts.map +1 -1
@@ -5,6 +5,7 @@ import type { StoryObj, Meta } from '@storybook/react';
5
5
  import { Button } from '../Button/Button';
6
6
  import { Modal } from '../Modal/Modal';
7
7
  import {
8
+ NotificationPlacement,
8
9
  NotificationIconPlacement,
9
10
  NotificationLayout,
10
11
  addNotification,
@@ -20,6 +21,7 @@ const titles = ['Выполнено', 'Внимание', 'Ошибка'];
20
21
  const texts = ['SSH ключ успешно скопирован', 'Нельзя скопировать SSH ключ', 'Не удалось скопировать SSH ключ'];
21
22
  const size = ['xs', 'xxs'];
22
23
  const iconPlacement = ['top', 'left'];
24
+ const notificationsPlacements = ['bottom-right', 'bottom-left'];
23
25
 
24
26
  const longText = `JavaScript frameworks are an essential part of modern front-end web development,
25
27
  providing developers with proven tools for building scalable, interactive web applications.
@@ -49,6 +51,7 @@ interface StoryDefaultProps {
49
51
  layout: NotificationLayout;
50
52
  size: 'xs' | 'xxs';
51
53
  iconPlacement: NotificationIconPlacement;
54
+ placement?: NotificationPlacement;
52
55
  }
53
56
 
54
57
  const StoryDefault = ({ title, children, iconPlacement, size, layout, showLeftIcon, ...rest }: StoryDefaultProps) => {
@@ -111,9 +114,10 @@ type StoryLiveDemoProps = ComponentProps<typeof Notification> & {
111
114
  layout: NotificationLayout;
112
115
  size: 'xs' | 'xxs';
113
116
  iconPlacement: NotificationIconPlacement;
117
+ placement?: NotificationPlacement;
114
118
  };
115
119
 
116
- const StoryLiveDemo = ({ timeout, ...rest }: StoryLiveDemoProps) => {
120
+ const StoryLiveDemo = ({ timeout, placement, ...rest }: StoryLiveDemoProps) => {
117
121
  const count = useRef(0);
118
122
  const handleClick = useCallback(() => {
119
123
  addNotification({ icon: <IconDisclosureRight />, ...rest, ...getNotificationProps(count.current) }, timeout);
@@ -121,7 +125,7 @@ const StoryLiveDemo = ({ timeout, ...rest }: StoryLiveDemoProps) => {
121
125
  }, [count, rest]);
122
126
 
123
127
  return (
124
- <NotificationsProvider>
128
+ <NotificationsProvider placement={placement}>
125
129
  <Button text="Добавить уведомление" onClick={handleClick} />
126
130
  </NotificationsProvider>
127
131
  );
@@ -135,20 +139,28 @@ export const LiveDemo: StoryObj<StoryLiveDemoProps> = {
135
139
  type: 'select',
136
140
  },
137
141
  },
142
+ placement: {
143
+ options: notificationsPlacements,
144
+ control: {
145
+ type: 'select',
146
+ },
147
+ },
138
148
  },
139
149
  args: {
140
150
  timeout: 3000,
141
151
  role: 'alert',
142
152
  layout: 'vertical',
153
+ placement: 'bottom-right',
143
154
  },
144
155
  render: (args) => <StoryLiveDemo {...args} />,
145
156
  };
146
157
 
147
158
  type StoryWithModalProps = ComponentProps<typeof Notification> & {
148
159
  timeout: number;
160
+ placement?: NotificationPlacement;
149
161
  };
150
162
 
151
- const StoryWithModal = ({ timeout }: StoryWithModalProps) => {
163
+ const StoryWithModal = ({ timeout, placement }: StoryWithModalProps) => {
152
164
  const [isModalOpen, setIsModalOpen] = useState(false);
153
165
  const count = useRef(0);
154
166
  const handleClick = useCallback(() => {
@@ -157,7 +169,7 @@ const StoryWithModal = ({ timeout }: StoryWithModalProps) => {
157
169
  }, [count]);
158
170
 
159
171
  return (
160
- <NotificationsProvider>
172
+ <NotificationsProvider placement={placement}>
161
173
  <PopupProvider>
162
174
  <Button text="Open modal" onClick={() => setIsModalOpen(true)} />
163
175
  <Modal frame="theme-root" opened={isModalOpen} onClose={() => setIsModalOpen(false)}>
@@ -172,6 +184,15 @@ const StoryWithModal = ({ timeout }: StoryWithModalProps) => {
172
184
  export const WithModal: StoryObj<StoryLiveDemoProps> = {
173
185
  args: {
174
186
  timeout: 3500,
187
+ placement: 'bottom-right',
188
+ },
189
+ argTypes: {
190
+ placement: {
191
+ options: notificationsPlacements,
192
+ control: {
193
+ type: 'select',
194
+ },
195
+ },
175
196
  },
176
197
  render: (args) => <StoryWithModal {...args} />,
177
198
  };
@@ -86,7 +86,7 @@ export var notificationRoot = function notificationRoot(Root) {
86
86
  })))));
87
87
  });
88
88
  };
89
- export var noticationConfig = {
89
+ export var notificationConfig = {
90
90
  name: 'Notification',
91
91
  tag: 'div',
92
92
  layout: notificationRoot,
@@ -58,7 +58,10 @@ export var StyledContent = /*#__PURE__*/styled.div.withConfig({
58
58
  })(["font-family:var(", ");font-size:var(", ");font-style:var(", ");font-weight:var(", ");letter-spacing:var(", ");line-height:var(", ");", ";color:var(", ");"], tokens.contentFontFamily, tokens.contentFontSize, tokens.contentFontStyle, tokens.contentFontWeight, tokens.contentFontLetterSpacing, tokens.contentFontLineHeight, /*#__PURE__*/String(applyHyphens), tokens.contentColor);
59
59
  export var StyledItemWrapper = /*#__PURE__*/styled.div.withConfig({
60
60
  componentId: "plasma-new-hope__sc-1iufy9r-8"
61
- })(["margin-top:1rem;opacity:1;&&.", "{animation:0.4s showAnimation ease-out;}&&.", "{animation:0.4s hideAnimation ease-out;}@keyframes showAnimation{0%{transform:translateX(100%);opacity:0;}100%{transform:translateX(0);opacity:1;}}@keyframes hideAnimation{0%{transform:translateX(0);opacity:1;}100%{transform:translateX(100%);opacity:0;}}"], classes.notificationItemOpened, classes.notificationItemHidden);
61
+ })(["margin-top:1rem;opacity:1;&&.", "{animation:0.4s showAnimation ease-out;&.", "{animation:0.4s showLeftToRightAnimation ease-out;}}&&.", "{animation:0.4s hideAnimation ease-out;&.", "{animation:0.4s hideLeftToRightAnimation ease-out;}}@keyframes showLeftToRightAnimation{0%{transform:translateX(-100%);opacity:0;}100%{transform:translateX(0);opacity:1;}}@keyframes hideLeftToRightAnimation{0%{transform:translateX(0);opacity:1;}100%{transform:translateX(-100%);opacity:0;}}@keyframes showAnimation{0%{transform:translateX(100%);opacity:0;}100%{transform:translateX(0);opacity:1;}}@keyframes hideAnimation{0%{transform:translateX(0);opacity:1;}100%{transform:translateX(100%);opacity:0;}}"], classes.notificationItemOpened, classes.notificationLeftToRightAnimation, classes.notificationItemHidden, classes.notificationLeftToRightAnimation);
62
62
  export var StyledRoot = /*#__PURE__*/styled.div.withConfig({
63
63
  componentId: "plasma-new-hope__sc-1iufy9r-9"
64
- })(["display:flex;flex-direction:column-reverse;box-sizing:border-box;padding:0 1.5rem 1.5rem;max-height:100%;align-items:flex-end;"]);
64
+ })(["display:flex;flex-direction:column-reverse;box-sizing:border-box;padding:0 1.5rem 1.5rem;max-height:100%;align-items:", ";"], function (_ref8) {
65
+ var placement = _ref8.placement;
66
+ return placement === 'bottom-left' ? 'flex-start' : 'flex-end';
67
+ });
@@ -10,14 +10,15 @@ import { PropsTable, Description } from '@site/src/components';
10
10
  <PropsTable name="Notification" />
11
11
 
12
12
  ## Использование
13
- Компонент `Notification` может использоваться для создания собственных систем оповещения.
13
+ Компонент `Notification` может использоваться для создания собственных систем оповещения.
14
14
  Вид компонента контролируется свойствами (props).
15
- Текстовая часть оповещения состоит из `title` и `children`.
15
+ Текстовая часть оповещения состоит из `title` и `children`.
16
16
  Слева или сверху от нее, также можно пробросить иконку через свойство `icon`.
17
17
  Также есть часть `actions`, в которой предполагается отображение кнопок для взаимодействия.
18
18
 
19
19
  ### Провайдер контекста
20
- Поместите `NotificationsProvider` в [корень приложения](../../#корень-приложения) или там, где будете применять модальные окна:
20
+ Поместите `NotificationsProvider` в [корень приложения](../../#корень-приложения) или там, где будете применять модальные окна.
21
+ В качестве свойств можно указать контейнер для оповещений через `frame` и расположение в контейнере через свойство `placement`, как `bottom-right` _(по умолчанию)_ или `bottom-left`.
21
22
 
22
23
  ```tsx title="index.ts"
23
24
  import ReactDOM from 'react-dom';
@@ -34,24 +35,32 @@ ReactDOM.render(
34
35
  ```
35
36
 
36
37
  ### Вызов уведомления
37
- После подключения `NotificationsProvider` станет возможен вызов функции `addNotification`,который приведет к отображению оповещения.
38
- Функция принимает значения свойств компонента `Notification`:
38
+ После подключения `NotificationsProvider` станет возможен вызов функции `addNotification`, который приведет к отображению оповещения.
39
+ Функция принимает значения свойств компонента `Notification`, включая необязательное поле `id`. И возвращает сгенерированный или переданный `id`, по которому можно закрыть оповещение через вызов `closeNotification`.
39
40
 
40
41
  ```tsx live
41
42
  import React from 'react';
42
- import { Button, addNotification, NotificationsProvider } from '@salutejs/{{ package }}';
43
+ import { Button, ButtonGroup, addNotification, closeNotification, NotificationsProvider } from '@salutejs/{{ package }}';
43
44
 
44
45
  export function App() {
45
- const handleClick = React.useCallback(() => {
46
+ const handleShow = React.useCallback(() => {
46
47
  addNotification({
48
+ id: 'incoming-call',
47
49
  title: 'Входящий вызов',
48
50
  children: 'Принять?',
49
51
  }, 1000);
50
52
  }, []);
51
53
 
54
+ const handleHide = React.useCallback(() => {
55
+ closeNotification('incoming-call');
56
+ }, []);
57
+
52
58
  return (
53
59
  <NotificationsProvider>
54
- <Button text="Показать оповещение" onClick={handleClick} />
60
+ <ButtonGroup>
61
+ <Button text="Показать оповещение" onClick={handleShow} />
62
+ <Button text="Скрыть оповещение" onClick={handleHide} />
63
+ </ButtonGroup>
55
64
  </NotificationsProvider>
56
65
  );
57
66
  }
@@ -13,7 +13,8 @@ export var classes = {
13
13
  withoutIcon: 'notification-without-icon',
14
14
  withoutCloseIcon: 'notification-without-close-icon',
15
15
  notificationItemOpened: 'notification-item-opened',
16
- notificationItemHidden: 'notification-item-hidden'
16
+ notificationItemHidden: 'notification-item-hidden',
17
+ notificationLeftToRightAnimation: 'notification-left-to-right-animation'
17
18
  };
18
19
  export var tokens = {
19
20
  background: '--plasma-notification-backgorund',
@@ -24,7 +24,9 @@ var StyledPopup = /*#__PURE__*/styled(Popup).withConfig({
24
24
  */
25
25
  export var NotificationsPortal = function NotificationsPortal(_ref) {
26
26
  var config = _ref.config,
27
- frame = _ref.frame;
27
+ frame = _ref.frame,
28
+ _ref$placement = _ref.placement,
29
+ placement = _ref$placement === void 0 ? 'bottom-right' : _ref$placement;
28
30
  var _useStoreon = useStoreon('notifications'),
29
31
  notifications = _useStoreon.notifications;
30
32
  var Notification = useMemo(function () {
@@ -33,15 +35,17 @@ export var NotificationsPortal = function NotificationsPortal(_ref) {
33
35
  return /*#__PURE__*/React.createElement(PopupProvider, null, notifications.length > 0 && /*#__PURE__*/React.createElement(StyledPopup, {
34
36
  opened: true,
35
37
  frame: frame,
36
- placement: "bottom-right",
38
+ placement: placement,
37
39
  zIndex: "9100"
38
- }, /*#__PURE__*/React.createElement(StyledRoot, null, notifications.map(function (_ref2) {
40
+ }, /*#__PURE__*/React.createElement(StyledRoot, {
41
+ placement: placement
42
+ }, notifications.map(function (_ref2) {
39
43
  var id = _ref2.id,
40
44
  isHidden = _ref2.isHidden,
41
45
  rest = _objectWithoutProperties(_ref2, _excluded);
42
46
  return /*#__PURE__*/React.createElement(StyledItemWrapper, {
43
47
  key: id,
44
- className: cx(isHidden ? classes.notificationItemHidden : classes.notificationItemOpened),
48
+ className: cx(isHidden ? classes.notificationItemHidden : classes.notificationItemOpened, placement === 'bottom-left' && classes.notificationLeftToRightAnimation),
45
49
  isHidden: isHidden || false
46
50
  }, /*#__PURE__*/React.createElement(Notification, _extends({
47
51
  key: id,
@@ -5,11 +5,13 @@ import { NotificationsPortal } from './NotificationsPortal';
5
5
  export var NotificationsProvider = function NotificationsProvider(_ref) {
6
6
  var children = _ref.children,
7
7
  config = _ref.config,
8
- frame = _ref.frame;
8
+ frame = _ref.frame,
9
+ placement = _ref.placement;
9
10
  return /*#__PURE__*/React.createElement(StoreContext.Provider, {
10
11
  value: NotificationsStore
11
12
  }, children, /*#__PURE__*/React.createElement(NotificationsPortal, {
12
13
  frame: frame,
14
+ placement: placement,
13
15
  config: config
14
16
  }));
15
17
  };
@@ -1,4 +1,4 @@
1
1
  export { NotificationsProvider } from './NotificationsProvider';
2
- export { notificationRoot, noticationConfig } from './Notification';
2
+ export { notificationRoot, notificationConfig } from './Notification';
3
3
  export { addNotification, closeNotification } from './NotificationsStore';
4
4
  export { classes as notificationClasses, tokens as notificationTokens } from './Notification.tokens';
@@ -1,16 +1,18 @@
1
1
  import React from 'react';
2
- import { noticationConfig, NotificationsProvider as Provider } from '../../../../components/Notification';
2
+ import { notificationConfig, NotificationsProvider as Provider } from '../../../../components/Notification';
3
3
  import { component, mergeConfig } from '../../../../engines';
4
4
  import { config } from './Notification.config';
5
5
  export { modalClasses } from '../../../../components/Modal';
6
- var mergedConfig = /*#__PURE__*/mergeConfig(noticationConfig, config);
6
+ var mergedConfig = /*#__PURE__*/mergeConfig(notificationConfig, config);
7
7
  export var Notification = /*#__PURE__*/component(mergedConfig);
8
8
  export var NotificationsProvider = function NotificationsProvider(_ref) {
9
9
  var children = _ref.children,
10
10
  _ref$frame = _ref.frame,
11
- frame = _ref$frame === void 0 ? 'theme-root' : _ref$frame;
11
+ frame = _ref$frame === void 0 ? 'theme-root' : _ref$frame,
12
+ placement = _ref.placement;
12
13
  return /*#__PURE__*/React.createElement(Provider, {
13
14
  config: mergedConfig,
14
- frame: frame
15
+ frame: frame,
16
+ placement: placement
15
17
  }, children);
16
18
  };
@@ -5,6 +5,7 @@ import type { StoryObj, Meta } from '@storybook/react';
5
5
  import { Button } from '../Button/Button';
6
6
  import { Modal } from '../Modal/Modal';
7
7
  import {
8
+ NotificationPlacement,
8
9
  NotificationIconPlacement,
9
10
  NotificationLayout,
10
11
  addNotification,
@@ -20,6 +21,7 @@ const titles = ['Выполнено', 'Внимание', 'Ошибка'];
20
21
  const texts = ['SSH ключ успешно скопирован', 'Нельзя скопировать SSH ключ', 'Не удалось скопировать SSH ключ'];
21
22
  const size = ['xs', 'xxs'];
22
23
  const iconPlacement = ['top', 'left'];
24
+ const notificationsPlacements = ['bottom-right', 'bottom-left'];
23
25
 
24
26
  const longText = `JavaScript frameworks are an essential part of modern front-end web development,
25
27
  providing developers with proven tools for building scalable, interactive web applications.
@@ -49,6 +51,7 @@ interface StoryDefaultProps {
49
51
  layout: NotificationLayout;
50
52
  size: 'xs' | 'xxs';
51
53
  iconPlacement: NotificationIconPlacement;
54
+ placement?: NotificationPlacement;
52
55
  }
53
56
 
54
57
  const StoryDefault = ({ title, children, iconPlacement, size, layout, showLeftIcon, ...rest }: StoryDefaultProps) => {
@@ -111,9 +114,10 @@ type StoryLiveDemoProps = ComponentProps<typeof Notification> & {
111
114
  layout: NotificationLayout;
112
115
  size: 'xs' | 'xxs';
113
116
  iconPlacement: NotificationIconPlacement;
117
+ placement?: NotificationPlacement;
114
118
  };
115
119
 
116
- const StoryLiveDemo = ({ timeout, ...rest }: StoryLiveDemoProps) => {
120
+ const StoryLiveDemo = ({ timeout, placement, ...rest }: StoryLiveDemoProps) => {
117
121
  const count = useRef(0);
118
122
  const handleClick = useCallback(() => {
119
123
  addNotification({ icon: <IconDisclosureRight />, ...rest, ...getNotificationProps(count.current) }, timeout);
@@ -121,7 +125,7 @@ const StoryLiveDemo = ({ timeout, ...rest }: StoryLiveDemoProps) => {
121
125
  }, [count, rest]);
122
126
 
123
127
  return (
124
- <NotificationsProvider>
128
+ <NotificationsProvider placement={placement}>
125
129
  <Button text="Добавить уведомление" onClick={handleClick} />
126
130
  </NotificationsProvider>
127
131
  );
@@ -135,20 +139,28 @@ export const LiveDemo: StoryObj<StoryLiveDemoProps> = {
135
139
  type: 'select',
136
140
  },
137
141
  },
142
+ placement: {
143
+ options: notificationsPlacements,
144
+ control: {
145
+ type: 'select',
146
+ },
147
+ },
138
148
  },
139
149
  args: {
140
150
  timeout: 3000,
141
151
  role: 'alert',
142
152
  layout: 'vertical',
153
+ placement: 'bottom-right',
143
154
  },
144
155
  render: (args) => <StoryLiveDemo {...args} />,
145
156
  };
146
157
 
147
158
  type StoryWithModalProps = ComponentProps<typeof Notification> & {
148
159
  timeout: number;
160
+ placement?: NotificationPlacement;
149
161
  };
150
162
 
151
- const StoryWithModal = ({ timeout }: StoryWithModalProps) => {
163
+ const StoryWithModal = ({ timeout, placement }: StoryWithModalProps) => {
152
164
  const [isModalOpen, setIsModalOpen] = useState(false);
153
165
  const count = useRef(0);
154
166
  const handleClick = useCallback(() => {
@@ -157,7 +169,7 @@ const StoryWithModal = ({ timeout }: StoryWithModalProps) => {
157
169
  }, [count]);
158
170
 
159
171
  return (
160
- <NotificationsProvider>
172
+ <NotificationsProvider placement={placement}>
161
173
  <PopupProvider>
162
174
  <Button text="Open modal" onClick={() => setIsModalOpen(true)} />
163
175
  <Modal frame="theme-root" opened={isModalOpen} onClose={() => setIsModalOpen(false)}>
@@ -172,6 +184,15 @@ const StoryWithModal = ({ timeout }: StoryWithModalProps) => {
172
184
  export const WithModal: StoryObj<StoryLiveDemoProps> = {
173
185
  args: {
174
186
  timeout: 3500,
187
+ placement: 'bottom-right',
188
+ },
189
+ argTypes: {
190
+ placement: {
191
+ options: notificationsPlacements,
192
+ control: {
193
+ type: 'select',
194
+ },
195
+ },
175
196
  },
176
197
  render: (args) => <StoryWithModal {...args} />,
177
198
  };
@@ -1,16 +1,18 @@
1
1
  import React from 'react';
2
- import { noticationConfig, NotificationsProvider as Provider } from '../../../../components/Notification';
2
+ import { notificationConfig, NotificationsProvider as Provider } from '../../../../components/Notification';
3
3
  import { component, mergeConfig } from '../../../../engines';
4
4
  import { config } from './Notification.config';
5
5
  export { modalClasses } from '../../../../components/Modal';
6
- var mergedConfig = /*#__PURE__*/mergeConfig(noticationConfig, config);
6
+ var mergedConfig = /*#__PURE__*/mergeConfig(notificationConfig, config);
7
7
  export var Notification = /*#__PURE__*/component(mergedConfig);
8
8
  export var NotificationsProvider = function NotificationsProvider(_ref) {
9
9
  var children = _ref.children,
10
10
  _ref$frame = _ref.frame,
11
- frame = _ref$frame === void 0 ? 'theme-root' : _ref$frame;
11
+ frame = _ref$frame === void 0 ? 'theme-root' : _ref$frame,
12
+ placement = _ref.placement;
12
13
  return /*#__PURE__*/React.createElement(Provider, {
13
14
  config: mergedConfig,
14
- frame: frame
15
+ frame: frame,
16
+ placement: placement
15
17
  }, children);
16
18
  };
@@ -5,6 +5,7 @@ import type { StoryObj, Meta } from '@storybook/react';
5
5
  import { Button } from '../Button/Button';
6
6
  import { Modal } from '../Modal/Modal';
7
7
  import {
8
+ NotificationPlacement,
8
9
  NotificationIconPlacement,
9
10
  NotificationLayout,
10
11
  addNotification,
@@ -20,6 +21,7 @@ const titles = ['Выполнено', 'Внимание', 'Ошибка'];
20
21
  const texts = ['SSH ключ успешно скопирован', 'Нельзя скопировать SSH ключ', 'Не удалось скопировать SSH ключ'];
21
22
  const size = ['xs', 'xxs'];
22
23
  const iconPlacement = ['top', 'left'];
24
+ const notificationsPlacements = ['bottom-right', 'bottom-left'];
23
25
 
24
26
  const longText = `JavaScript frameworks are an essential part of modern front-end web development,
25
27
  providing developers with proven tools for building scalable, interactive web applications.
@@ -49,6 +51,7 @@ interface StoryDefaultProps {
49
51
  layout: NotificationLayout;
50
52
  size: 'xs' | 'xxs';
51
53
  iconPlacement: NotificationIconPlacement;
54
+ placement?: NotificationPlacement;
52
55
  }
53
56
 
54
57
  const StoryDefault = ({ title, children, iconPlacement, size, layout, showLeftIcon, ...rest }: StoryDefaultProps) => {
@@ -111,9 +114,10 @@ type StoryLiveDemoProps = ComponentProps<typeof Notification> & {
111
114
  layout: NotificationLayout;
112
115
  size: 'xs' | 'xxs';
113
116
  iconPlacement: NotificationIconPlacement;
117
+ placement?: NotificationPlacement;
114
118
  };
115
119
 
116
- const StoryLiveDemo = ({ timeout, ...rest }: StoryLiveDemoProps) => {
120
+ const StoryLiveDemo = ({ timeout, placement, ...rest }: StoryLiveDemoProps) => {
117
121
  const count = useRef(0);
118
122
  const handleClick = useCallback(() => {
119
123
  addNotification({ icon: <IconDisclosureRight />, ...rest, ...getNotificationProps(count.current) }, timeout);
@@ -121,7 +125,7 @@ const StoryLiveDemo = ({ timeout, ...rest }: StoryLiveDemoProps) => {
121
125
  }, [count, rest]);
122
126
 
123
127
  return (
124
- <NotificationsProvider>
128
+ <NotificationsProvider placement={placement}>
125
129
  <Button text="Добавить уведомление" onClick={handleClick} />
126
130
  </NotificationsProvider>
127
131
  );
@@ -135,20 +139,28 @@ export const LiveDemo: StoryObj<StoryLiveDemoProps> = {
135
139
  type: 'select',
136
140
  },
137
141
  },
142
+ placement: {
143
+ options: notificationsPlacements,
144
+ control: {
145
+ type: 'select',
146
+ },
147
+ },
138
148
  },
139
149
  args: {
140
150
  timeout: 3000,
141
151
  role: 'alert',
142
152
  layout: 'vertical',
153
+ placement: 'bottom-right',
143
154
  },
144
155
  render: (args) => <StoryLiveDemo {...args} />,
145
156
  };
146
157
 
147
158
  type StoryWithModalProps = ComponentProps<typeof Notification> & {
148
159
  timeout: number;
160
+ placement?: NotificationPlacement;
149
161
  };
150
162
 
151
- const StoryWithModal = ({ timeout }: StoryWithModalProps) => {
163
+ const StoryWithModal = ({ timeout, placement }: StoryWithModalProps) => {
152
164
  const [isModalOpen, setIsModalOpen] = useState(false);
153
165
  const count = useRef(0);
154
166
  const handleClick = useCallback(() => {
@@ -157,7 +169,7 @@ const StoryWithModal = ({ timeout }: StoryWithModalProps) => {
157
169
  }, [count]);
158
170
 
159
171
  return (
160
- <NotificationsProvider>
172
+ <NotificationsProvider placement={placement}>
161
173
  <PopupProvider>
162
174
  <Button text="Open modal" onClick={() => setIsModalOpen(true)} />
163
175
  <Modal frame="theme-root" opened={isModalOpen} onClose={() => setIsModalOpen(false)}>
@@ -172,6 +184,15 @@ const StoryWithModal = ({ timeout }: StoryWithModalProps) => {
172
184
  export const WithModal: StoryObj<StoryLiveDemoProps> = {
173
185
  args: {
174
186
  timeout: 3500,
187
+ placement: 'bottom-right',
188
+ },
189
+ argTypes: {
190
+ placement: {
191
+ options: notificationsPlacements,
192
+ control: {
193
+ type: 'select',
194
+ },
195
+ },
175
196
  },
176
197
  render: (args) => <StoryWithModal {...args} />,
177
198
  };
@@ -4,11 +4,11 @@ import { NotificationProps } from './Notification.types';
4
4
  /**
5
5
  * Компонент для небольших уведомлений пользователя
6
6
  */
7
- export declare const notificationRoot: (Root: RootProps<HTMLDivElement, NotificationProps>) => React.ForwardRefExoticComponent<NotificationProps & React.RefAttributes<HTMLDivElement>>;
8
- export declare const noticationConfig: {
7
+ export declare const notificationRoot: (Root: RootProps<HTMLDivElement, Omit<NotificationProps, 'title'>>) => React.ForwardRefExoticComponent<NotificationProps & React.RefAttributes<HTMLDivElement>>;
8
+ export declare const notificationConfig: {
9
9
  name: string;
10
10
  tag: string;
11
- layout: (Root: RootProps<HTMLDivElement, NotificationProps>) => React.ForwardRefExoticComponent<NotificationProps & React.RefAttributes<HTMLDivElement>>;
11
+ layout: (Root: RootProps<HTMLDivElement, Omit<NotificationProps, 'title'>>) => React.ForwardRefExoticComponent<NotificationProps & React.RefAttributes<HTMLDivElement>>;
12
12
  base: import("@linaria/core").LinariaClassName;
13
13
  variations: {
14
14
  layout: {
@@ -1 +1 @@
1
- {"version":3,"file":"Notification.d.ts","sourceRoot":"","sources":["../../../src/components/Notification/Notification.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAQ1C,OAAO,EAAsB,iBAAiB,EAAW,MAAM,sBAAsB,CAAC;AActF;;GAEG;AACH,eAAO,MAAM,gBAAgB,SAAU,UAAU,cAAc,EAAE,iBAAiB,CAAC,6FAwF7E,CAAC;AAEP,eAAO,MAAM,gBAAgB;;;mBA1FU,UAAU,cAAc,EAAE,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;CA+GlF,CAAC"}
1
+ {"version":3,"file":"Notification.d.ts","sourceRoot":"","sources":["../../../src/components/Notification/Notification.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAQ1C,OAAO,EAAsB,iBAAiB,EAAW,MAAM,sBAAsB,CAAC;AActF;;GAEG;AACH,eAAO,MAAM,gBAAgB,SAAU,UAAU,cAAc,EAAE,KAAK,iBAAiB,EAAE,OAAO,CAAC,CAAC,6FAwF5F,CAAC;AAEP,eAAO,MAAM,kBAAkB;;;mBA1FQ,UAAU,cAAc,EAAE,KAAK,iBAAiB,EAAE,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;CA+GjG,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { CloseIconType, IconPlacementType } from './Notification.types';
2
+ import { CloseIconType, IconPlacementType, NotificationPlacement } from './Notification.types';
3
3
  export declare const StyledNotification: import("@linaria/core").LinariaClassName;
4
4
  export declare const CloseIconWrapper: import("@linaria/react").StyledMeta & import("react").FunctionComponent<import("../../engines/types").PropsType<import("../../engines/types").Variants> & ((Omit<import("react").ButtonHTMLAttributes<HTMLElement>, "value"> & Omit<import("react").AnchorHTMLAttributes<HTMLElement>, "type"> & import("../../types").AsProps<any> & {
5
5
  text?: string | undefined;
@@ -54,5 +54,7 @@ export declare const StyledContent: import("@linaria/react").StyledComponent<imp
54
54
  export declare const StyledItemWrapper: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & {
55
55
  isHidden: boolean;
56
56
  }>;
57
- export declare const StyledRoot: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & Record<never, unknown>>;
57
+ export declare const StyledRoot: import("@linaria/react").StyledComponent<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & {
58
+ placement?: NotificationPlacement | undefined;
59
+ }>;
58
60
  //# sourceMappingURL=Notification.styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Notification.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Notification/Notification.styles.ts"],"names":[],"mappings":";AAQA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAc,MAAM,sBAAsB,CAAC;AAEpF,eAAO,MAAM,kBAAkB,0CAE9B,CAAC;AAKF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAc5B,CAAC;AAEF,eAAO,MAAM,OAAO,qKAYnB,CAAC;AAEF,eAAO,MAAM,cAAc,gKAS1B,CAAC;AAEF,eAAO,MAAM,WAAW,gKAavB,CAAC;AAEF,eAAO,MAAM,UAAU,gKActB,CAAC;AAEF,eAAO,MAAM,OAAO,gLAqBnB,CAAC;AAEF,eAAO,MAAM,WAAW,qKAQvB,CAAC;AAEF,eAAO,MAAM,aAAa,qKAUzB,CAAC;AAEF,eAAO,MAAM,iBAAiB;cAA0B,OAAO;EAmC9D,CAAC;AAEF,eAAO,MAAM,UAAU,qKAOtB,CAAC"}
1
+ {"version":3,"file":"Notification.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Notification/Notification.styles.ts"],"names":[],"mappings":";AAQA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,EAAc,MAAM,sBAAsB,CAAC;AAE3G,eAAO,MAAM,kBAAkB,0CAE9B,CAAC;AAKF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAc5B,CAAC;AAEF,eAAO,MAAM,OAAO,qKAYnB,CAAC;AAEF,eAAO,MAAM,cAAc,gKAS1B,CAAC;AAEF,eAAO,MAAM,WAAW,gKAavB,CAAC;AAEF,eAAO,MAAM,UAAU,gKActB,CAAC;AAEF,eAAO,MAAM,OAAO,gLAqBnB,CAAC;AAEF,eAAO,MAAM,WAAW,qKAQvB,CAAC;AAEF,eAAO,MAAM,aAAa,qKAUzB,CAAC;AAEF,eAAO,MAAM,iBAAiB;cAA0B,OAAO;EAmE9D,CAAC;AAEF,eAAO,MAAM,UAAU;;EAOtB,CAAC"}
@@ -14,6 +14,7 @@ export declare const classes: {
14
14
  withoutCloseIcon: string;
15
15
  notificationItemOpened: string;
16
16
  notificationItemHidden: string;
17
+ notificationLeftToRightAnimation: string;
17
18
  };
18
19
  export declare const tokens: {
19
20
  background: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Notification.tokens.d.ts","sourceRoot":"","sources":["../../../src/components/Notification/Notification.tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;CAkBnB,CAAC;AAEF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DlB,CAAC"}
1
+ {"version":3,"file":"Notification.tokens.d.ts","sourceRoot":"","sources":["../../../src/components/Notification/Notification.tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;CAmBnB,CAAC;AAEF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DlB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { AsProps } from '@salutejs/plasma-core';
2
- import { HTMLAttributes, ReactNode, RefAttributes } from 'react';
2
+ import { HTMLAttributes, ReactNode } from 'react';
3
3
  import { ComponentConfig, PropsType, Variants } from '../../engines/types';
4
4
  export declare const layouts: {
5
5
  horizontal: string;
@@ -11,6 +11,7 @@ export declare const placements: {
11
11
  left: string;
12
12
  };
13
13
  export declare type NotificationIconPlacement = keyof typeof placements;
14
+ export declare type NotificationPlacement = 'bottom-right' | 'bottom-left';
14
15
  export declare type LayoutType = {
15
16
  layout?: NotificationLayout;
16
17
  };
@@ -20,11 +21,11 @@ export declare type IconPlacementType = {
20
21
  export declare type CloseIconType = {
21
22
  showCloseIcon?: boolean;
22
23
  };
23
- export interface NotificationProps extends AsProps, HTMLAttributes<HTMLDivElement> {
24
+ export interface NotificationProps extends AsProps, Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
24
25
  /**
25
26
  * Заголовок.
26
27
  */
27
- title?: string;
28
+ title?: ReactNode;
28
29
  /**
29
30
  * Контент под заголовком.
30
31
  */
@@ -70,14 +71,19 @@ export interface NotificationProps extends AsProps, HTMLAttributes<HTMLDivElemen
70
71
  */
71
72
  size?: string;
72
73
  }
73
- export interface NotificationPortalProps extends HTMLAttributes<HTMLDivElement> {
74
+ export interface NotificationPortalProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
74
75
  /**
75
76
  * Конфиг компонента Notification.
76
77
  */
77
- config: ComponentConfig<string, Variants, PropsType<Variants>, NotificationProps & RefAttributes<HTMLDivElement>>;
78
+ config: ComponentConfig<string, Variants, PropsType<Variants>, NotificationProps & HTMLAttributes<HTMLDivElement>>;
78
79
  /**
79
80
  * В каком контейнере позиционируется(по умолчанию document), можно также указать id элемента или ref для него.
80
81
  */
81
82
  frame?: string;
83
+ /**
84
+ * Расположение компонента Notification во frame
85
+ * @default bottom-right
86
+ */
87
+ placement?: NotificationPlacement;
82
88
  }
83
89
  //# sourceMappingURL=Notification.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Notification.types.d.ts","sourceRoot":"","sources":["../../../src/components/Notification/Notification.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE3E,eAAO,MAAM,OAAO;;;CAGnB,CAAC;AAEF,oBAAY,kBAAkB,GAAG,MAAM,OAAO,OAAO,CAAC;AAEtD,eAAO,MAAM,UAAU;;;CAGtB,CAAC;AAEF,oBAAY,yBAAyB,GAAG,MAAM,OAAO,UAAU,CAAC;AAEhE,oBAAY,UAAU,GAAG;IACrB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC/B,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC5B,aAAa,CAAC,EAAE,yBAAyB,CAAC;CAC7C,CAAC;AAEF,oBAAY,aAAa,GAAG;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,iBAAkB,SAAQ,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC;IAC9E;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAC1C;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAwB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC3E;;OAEG;IACH,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;IAClH;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"Notification.types.d.ts","sourceRoot":"","sources":["../../../src/components/Notification/Notification.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE3E,eAAO,MAAM,OAAO;;;CAGnB,CAAC;AAEF,oBAAY,kBAAkB,GAAG,MAAM,OAAO,OAAO,CAAC;AAEtD,eAAO,MAAM,UAAU;;;CAGtB,CAAC;AAEF,oBAAY,yBAAyB,GAAG,MAAM,OAAO,UAAU,CAAC;AAChE,oBAAY,qBAAqB,GAAG,cAAc,GAAG,aAAa,CAAC;AAEnE,oBAAY,UAAU,GAAG;IACrB,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC/B,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC5B,aAAa,CAAC,EAAE,yBAAyB,CAAC;CAC7C,CAAC;AAEF,oBAAY,aAAa,GAAG;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,iBAAkB,SAAQ,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAC7F;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAC1C;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAC1F;;OAEG;IACH,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;IACnH;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,qBAAqB,CAAC;CACrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationsPortal.d.ts","sourceRoot":"","sources":["../../../src/components/Notification/NotificationsPortal.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAqD,MAAM,OAAO,CAAC;AAUrF,OAAO,EAAE,uBAAuB,EAAqB,MAAM,sBAAsB,CAAC;AAalF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,uBAAuB,CAkC3D,CAAC"}
1
+ {"version":3,"file":"NotificationsPortal.d.ts","sourceRoot":"","sources":["../../../src/components/Notification/NotificationsPortal.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAqD,MAAM,OAAO,CAAC;AAUrF,OAAO,EAAE,uBAAuB,EAAqB,MAAM,sBAAsB,CAAC;AAalF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,uBAAuB,CAmC3D,CAAC"}
@@ -1,10 +1,11 @@
1
- import { FC, ReactNode, RefAttributes } from 'react';
1
+ import { FC, HTMLAttributes, ReactNode } from 'react';
2
2
  import { ComponentConfig } from '../../engines';
3
3
  import { PropsType, Variants } from '../../engines/types';
4
- import { NotificationProps } from './Notification.types';
4
+ import { NotificationPlacement, NotificationProps } from './Notification.types';
5
5
  export declare const NotificationsProvider: FC<{
6
6
  children: ReactNode;
7
- config: ComponentConfig<string, Variants, PropsType<Variants>, NotificationProps & RefAttributes<HTMLDivElement>>;
7
+ config: ComponentConfig<string, Variants, PropsType<Variants>, NotificationProps & HTMLAttributes<HTMLDivElement>>;
8
8
  frame?: string;
9
+ placement?: NotificationPlacement;
9
10
  }>;
10
11
  //# sourceMappingURL=NotificationsProvider.d.ts.map