@salutejs/plasma-new-hope 0.322.0-canary.1933.14596920222.0 → 0.322.0-canary.1938.14660334712.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/cjs/components/Notification/Notification.types.js.map +1 -1
  2. package/cjs/components/Notification/NotificationsStore.js +4 -2
  3. package/cjs/components/Notification/NotificationsStore.js.map +1 -1
  4. package/emotion/cjs/components/Accordion/Accordion.template-doc.mdx +99 -71
  5. package/emotion/cjs/components/Autocomplete/Autocomplete.template-doc.mdx +523 -454
  6. package/emotion/cjs/components/Checkbox/Checkbox.template-doc.mdx +3 -3
  7. package/emotion/cjs/components/Combobox/Combobox.template-doc.mdx +58 -27
  8. package/emotion/cjs/components/DatePicker/DatePicker.template-doc.mdx +5 -0
  9. package/emotion/cjs/components/Dropdown/Dropdown.template-doc.mdx +10 -10
  10. package/emotion/cjs/components/Flow/Flow.template-doc.mdx +2 -2
  11. package/emotion/cjs/components/Notification/Notification.template-doc.mdx +23 -2
  12. package/emotion/cjs/components/Notification/NotificationsStore.js +4 -2
  13. package/emotion/cjs/components/NumberFormat/NumberFormat.template-doc.mdx +4 -4
  14. package/emotion/cjs/components/Radiobox/Radiobox.template-doc.mdx +10 -11
  15. package/emotion/cjs/components/Range/Range.template-doc.mdx +5 -1
  16. package/emotion/cjs/components/Segment/Segment.template-doc.mdx +3 -3
  17. package/emotion/cjs/components/Select/Select.template-doc.mdx +27 -27
  18. package/emotion/cjs/components/Slider/Slider.template-doc.mdx +2 -2
  19. package/emotion/cjs/components/Switch/Switch.template-doc.mdx +3 -3
  20. package/emotion/cjs/components/Table/Table.template-doc.mdx +2 -2
  21. package/emotion/cjs/components/Tabs/Tabs.template-doc.mdx +11 -7
  22. package/emotion/cjs/components/TextArea/TextArea.template-doc.mdx +9 -2
  23. package/emotion/cjs/components/TextField/TextField.template-doc.mdx +117 -32
  24. package/emotion/cjs/components/Toast/Toast.template-doc.mdx +48 -2
  25. package/emotion/cjs/components/Tooltip/Tooltip.template-doc.mdx +19 -4
  26. package/emotion/cjs/components/Tree/Tree.template-doc.mdx +0 -1
  27. package/emotion/cjs/examples/plasma_b2c/components/Notification/Notification.stories.tsx +4 -0
  28. package/emotion/cjs/examples/plasma_web/components/Notification/Notification.stories.tsx +4 -0
  29. package/emotion/es/components/Accordion/Accordion.template-doc.mdx +99 -71
  30. package/emotion/es/components/Autocomplete/Autocomplete.template-doc.mdx +523 -454
  31. package/emotion/es/components/Checkbox/Checkbox.template-doc.mdx +3 -3
  32. package/emotion/es/components/Combobox/Combobox.template-doc.mdx +58 -27
  33. package/emotion/es/components/DatePicker/DatePicker.template-doc.mdx +5 -0
  34. package/emotion/es/components/Dropdown/Dropdown.template-doc.mdx +10 -10
  35. package/emotion/es/components/Flow/Flow.template-doc.mdx +2 -2
  36. package/emotion/es/components/Notification/Notification.template-doc.mdx +23 -2
  37. package/emotion/es/components/Notification/NotificationsStore.js +4 -2
  38. package/emotion/es/components/NumberFormat/NumberFormat.template-doc.mdx +4 -4
  39. package/emotion/es/components/Radiobox/Radiobox.template-doc.mdx +10 -11
  40. package/emotion/es/components/Range/Range.template-doc.mdx +5 -1
  41. package/emotion/es/components/Segment/Segment.template-doc.mdx +3 -3
  42. package/emotion/es/components/Select/Select.template-doc.mdx +27 -27
  43. package/emotion/es/components/Slider/Slider.template-doc.mdx +2 -2
  44. package/emotion/es/components/Switch/Switch.template-doc.mdx +3 -3
  45. package/emotion/es/components/Table/Table.template-doc.mdx +2 -2
  46. package/emotion/es/components/Tabs/Tabs.template-doc.mdx +11 -7
  47. package/emotion/es/components/TextArea/TextArea.template-doc.mdx +9 -2
  48. package/emotion/es/components/TextField/TextField.template-doc.mdx +117 -32
  49. package/emotion/es/components/Toast/Toast.template-doc.mdx +48 -2
  50. package/emotion/es/components/Tooltip/Tooltip.template-doc.mdx +19 -4
  51. package/emotion/es/components/Tree/Tree.template-doc.mdx +0 -1
  52. package/emotion/es/examples/plasma_b2c/components/Notification/Notification.stories.tsx +4 -0
  53. package/emotion/es/examples/plasma_web/components/Notification/Notification.stories.tsx +4 -0
  54. package/es/components/Notification/Notification.types.js.map +1 -1
  55. package/es/components/Notification/NotificationsStore.js +4 -2
  56. package/es/components/Notification/NotificationsStore.js.map +1 -1
  57. package/package.json +4 -4
  58. package/styled-components/cjs/components/Accordion/Accordion.template-doc.mdx +99 -71
  59. package/styled-components/cjs/components/Autocomplete/Autocomplete.template-doc.mdx +523 -454
  60. package/styled-components/cjs/components/Checkbox/Checkbox.template-doc.mdx +3 -3
  61. package/styled-components/cjs/components/Combobox/Combobox.template-doc.mdx +58 -27
  62. package/styled-components/cjs/components/DatePicker/DatePicker.template-doc.mdx +5 -0
  63. package/styled-components/cjs/components/Dropdown/Dropdown.template-doc.mdx +10 -10
  64. package/styled-components/cjs/components/Flow/Flow.template-doc.mdx +2 -2
  65. package/styled-components/cjs/components/Notification/Notification.template-doc.mdx +23 -2
  66. package/styled-components/cjs/components/Notification/NotificationsStore.js +4 -2
  67. package/styled-components/cjs/components/NumberFormat/NumberFormat.template-doc.mdx +4 -4
  68. package/styled-components/cjs/components/Radiobox/Radiobox.template-doc.mdx +10 -11
  69. package/styled-components/cjs/components/Range/Range.template-doc.mdx +5 -1
  70. package/styled-components/cjs/components/Segment/Segment.template-doc.mdx +3 -3
  71. package/styled-components/cjs/components/Select/Select.template-doc.mdx +27 -27
  72. package/styled-components/cjs/components/Slider/Slider.template-doc.mdx +2 -2
  73. package/styled-components/cjs/components/Switch/Switch.template-doc.mdx +3 -3
  74. package/styled-components/cjs/components/Table/Table.template-doc.mdx +2 -2
  75. package/styled-components/cjs/components/Tabs/Tabs.template-doc.mdx +11 -7
  76. package/styled-components/cjs/components/TextArea/TextArea.template-doc.mdx +9 -2
  77. package/styled-components/cjs/components/TextField/TextField.template-doc.mdx +117 -32
  78. package/styled-components/cjs/components/Toast/Toast.template-doc.mdx +48 -2
  79. package/styled-components/cjs/components/Tooltip/Tooltip.template-doc.mdx +19 -4
  80. package/styled-components/cjs/components/Tree/Tree.template-doc.mdx +0 -1
  81. package/styled-components/cjs/examples/plasma_b2c/components/Notification/Notification.stories.tsx +4 -0
  82. package/styled-components/cjs/examples/plasma_web/components/Notification/Notification.stories.tsx +4 -0
  83. package/styled-components/es/components/Accordion/Accordion.template-doc.mdx +99 -71
  84. package/styled-components/es/components/Autocomplete/Autocomplete.template-doc.mdx +523 -454
  85. package/styled-components/es/components/Checkbox/Checkbox.template-doc.mdx +3 -3
  86. package/styled-components/es/components/Combobox/Combobox.template-doc.mdx +58 -27
  87. package/styled-components/es/components/DatePicker/DatePicker.template-doc.mdx +5 -0
  88. package/styled-components/es/components/Dropdown/Dropdown.template-doc.mdx +10 -10
  89. package/styled-components/es/components/Flow/Flow.template-doc.mdx +2 -2
  90. package/styled-components/es/components/Notification/Notification.template-doc.mdx +23 -2
  91. package/styled-components/es/components/Notification/NotificationsStore.js +4 -2
  92. package/styled-components/es/components/NumberFormat/NumberFormat.template-doc.mdx +4 -4
  93. package/styled-components/es/components/Radiobox/Radiobox.template-doc.mdx +10 -11
  94. package/styled-components/es/components/Range/Range.template-doc.mdx +5 -1
  95. package/styled-components/es/components/Segment/Segment.template-doc.mdx +3 -3
  96. package/styled-components/es/components/Select/Select.template-doc.mdx +27 -27
  97. package/styled-components/es/components/Slider/Slider.template-doc.mdx +2 -2
  98. package/styled-components/es/components/Switch/Switch.template-doc.mdx +3 -3
  99. package/styled-components/es/components/Table/Table.template-doc.mdx +2 -2
  100. package/styled-components/es/components/Tabs/Tabs.template-doc.mdx +11 -7
  101. package/styled-components/es/components/TextArea/TextArea.template-doc.mdx +9 -2
  102. package/styled-components/es/components/TextField/TextField.template-doc.mdx +117 -32
  103. package/styled-components/es/components/Toast/Toast.template-doc.mdx +48 -2
  104. package/styled-components/es/components/Tooltip/Tooltip.template-doc.mdx +19 -4
  105. package/styled-components/es/components/Tree/Tree.template-doc.mdx +0 -1
  106. package/styled-components/es/examples/plasma_b2c/components/Notification/Notification.stories.tsx +4 -0
  107. package/styled-components/es/examples/plasma_web/components/Notification/Notification.stories.tsx +4 -0
  108. package/types/components/Notification/Notification.types.d.ts +14 -10
  109. package/types/components/Notification/Notification.types.d.ts.map +1 -1
  110. package/types/components/Notification/NotificationsStore.d.ts +1 -1
  111. package/types/components/Notification/NotificationsStore.d.ts.map +1 -1
  112. /package/emotion/cjs/components/Combobox/ComboboxOld/{Combobox.template-doc.mdx → Combobox.doc.mdx} +0 -0
  113. /package/emotion/es/components/Combobox/ComboboxOld/{Combobox.template-doc.mdx → Combobox.doc.mdx} +0 -0
  114. /package/styled-components/cjs/components/Combobox/ComboboxOld/{Combobox.template-doc.mdx → Combobox.doc.mdx} +0 -0
  115. /package/styled-components/es/components/Combobox/ComboboxOld/{Combobox.template-doc.mdx → Combobox.doc.mdx} +0 -0
@@ -7,12 +7,12 @@ import { PropsTable, Description } from '@site/src/components';
7
7
 
8
8
  # Checkbox
9
9
  <Description name="Checkbox" />
10
- <PropsTable name="Checkbox" exclude={['css', 'focused']} />
10
+ <PropsTable name="Checkbox" exclude={['css', 'focused']} include={['defaultChecked']} />
11
11
 
12
12
  :::caution Устаревшие значения для свойства view
13
- Актуальным значением для свойства `view` - является `accent`.
13
+ Актуальным значением для свойства `view` - является `accent`.
14
14
 
15
- Все остальные значения `deprecated` и будут удалены в ближайшее время!
15
+ Все остальные значения `deprecated` и будут удалены в ближайшее время!
16
16
  :::
17
17
 
18
18
  ## Использование
@@ -26,7 +26,7 @@ type Items = Array<{
26
26
  */
27
27
  label: string;
28
28
  /**
29
- * Сторона открытия вложенного дропдауна относительно текущего элемента
29
+ * Сторона открытия вложенного dropdown относительно текущего элемента
30
30
  * @default right
31
31
  */
32
32
  placement?: Placement;
@@ -49,7 +49,7 @@ type Items = Array<{
49
49
  }>;
50
50
  ```
51
51
 
52
- Тип выбора комбобокса - одиночный или множественный зависит от типа `value` и `onChange`. В одиночном value - `string`, в множественном - `Array<string>`.\
52
+ Тип выбора Combobox - одиночный или множественный зависит от типа `value` и `onChange`. В одиночном value - `string`, в множественном - `Array<string>`.\
53
53
 
54
54
 
55
55
  ## Примеры
@@ -85,8 +85,8 @@ type Items = Array<{
85
85
  ];
86
86
 
87
87
  return (
88
- <div style={{ display: "flex", gap: "30px", height: "300px" }}>
89
- <div style={{ width: "300px" }}>
88
+ <div style=\{{ display: "flex", gap: "30px", height: "300px" }}>
89
+ <div style=\{{ width: "300px" }}>
90
90
  <Combobox
91
91
  items={items}
92
92
  value={value}
@@ -131,8 +131,8 @@ type Items = Array<{
131
131
  ];
132
132
 
133
133
  return (
134
- <div style={{ display: "flex", gap: "30px", height: "300px" }}>
135
- <div style={{ width: "300px" }}>
134
+ <div style=\{{ display: "flex", gap: "30px", height: "300px" }}>
135
+ <div style=\{{ width: "300px" }}>
136
136
  <Combobox
137
137
  multiple
138
138
  items={items}
@@ -180,8 +180,8 @@ type Items = Array<{
180
180
  ];
181
181
 
182
182
  return (
183
- <div style={{ display: "flex", gap: "30px", height: "300px" }}>
184
- <div style={{ width: "300px" }}>
183
+ <div style=\{{ display: "flex", gap: "30px", height: "300px" }}>
184
+ <div style=\{{ width: "300px" }}>
185
185
  <Combobox
186
186
  multiple
187
187
  items={items}
@@ -200,9 +200,9 @@ type Items = Array<{
200
200
  ```
201
201
  </TabItem>
202
202
  <TabItem value="portal" label="Portal">
203
- Иногда возникает необходимость вынесения выпадающего списка на уровни выше в DOM. К примеру, когда у родительского блока имеется скролл, и список будет обрезаться, чего хотелось бы избежать.\
203
+ Иногда возникает необходимость вынесения выпадающего списка на уровни выше в DOM. К примеру, когда у родительского блока имеется scroll, и список будет обрезаться, чего хотелось бы избежать.\
204
204
  Для такой реализации имеется пропс `portal`, который принимает либо `ref` либо `id` html-тега.\
205
- Также нужно прокинуть проп `listWidth`, чтобы явно задать ширину списку. Если этого не сделать, то будет взята ширина 100% от блока, на который ведет ссылка портала.
205
+ Также нужно прокинуть свойство `listWidth`, чтобы явно задать ширину списку. Если этого не сделать, то будет взята ширина 100% от блока, на который ведет ссылка портала.
206
206
 
207
207
  ```tsx live
208
208
  import React, { useRef } from 'react';
@@ -232,11 +232,11 @@ type Items = Array<{
232
232
  },
233
233
  ];
234
234
 
235
- const ref = useRef(null)
235
+ const ref = useRef(null);
236
236
 
237
237
  return (
238
- <div style={{ height: "300px" }} ref={ref}>
239
- <div style={{ width: "300px" }}>
238
+ <div style=\{{ height: "300px" }} ref={ref}>
239
+ <div style=\{{ width: "300px" }}>
240
240
  <Combobox
241
241
  items={items}
242
242
  value={value}
@@ -283,8 +283,8 @@ type Items = Array<{
283
283
  ];
284
284
 
285
285
  return (
286
- <div style={{ height: "300px" }}>
287
- <div style={{ width: "300px" }}>
286
+ <div style=\{{ height: "300px" }}>
287
+ <div style=\{{ width: "300px" }}>
288
288
  <Combobox
289
289
  items={items}
290
290
  placeholder="Placeholder"
@@ -329,9 +329,9 @@ type Items = Array<{
329
329
  ];
330
330
 
331
331
  return (
332
- <div style={{ height: "300px" }}>
333
- <div style={{width: "300px" }}>
334
- <Button text={ alwaysOpened ? 'По умолчанию' : 'Всегда открыт' } onClick={() => setAlwaysOpened(!alwaysOpened)} style={{ marginBottom: '1rem' }} />
332
+ <div style=\{{ height: "300px" }}>
333
+ <div style=\{{width: "300px" }}>
334
+ <Button text={ alwaysOpened ? 'По умолчанию' : 'Всегда открыт' } onClick={() => setAlwaysOpened(!alwaysOpened)} style=\{{ marginBottom: '1rem' }} />
335
335
  <Combobox
336
336
  items={items}
337
337
  placeholder="Placeholder"
@@ -345,6 +345,37 @@ type Items = Array<{
345
345
  }
346
346
  ```
347
347
  </TabItem>
348
+ <TabItem value="virtual" label="Virtual">
349
+ :::caution
350
+ Работает только в одно-уровневых списках.
351
+ :::
352
+
353
+ Свойство `virtual` позволяет виртуализировать выпадающий список. Для настройки высоты списка можно использовать свойство `listMaxHeight`.
354
+
355
+ ```tsx live
356
+ import React from 'react';
357
+ import { Combobox } from '@salutejs/{{ package }}';
358
+
359
+ export function App() {
360
+ const items = Array(5000).fill(1).map((_, i) => ({ value: i.toString(), label: i.toString() }));
361
+
362
+ return (
363
+ <div style=\{{ height: "300px" }}>
364
+ <div style=\{{width: "300px" }}>
365
+ <Combobox
366
+ items={items}
367
+ virtual
368
+ listMaxHeight="200px"
369
+ placeholder="Placeholder"
370
+ label="Label"
371
+ helperText="Helper text"
372
+ />
373
+ </div>
374
+ </div>
375
+ );
376
+ }
377
+ ```
378
+ </TabItem>
348
379
  <TabItem value="infinite" label="Infinite Loading">
349
380
  Пример с бесконечной загрузкой элементов в списке.
350
381
 
@@ -388,8 +419,8 @@ type Items = Array<{
388
419
  };
389
420
 
390
421
  return (
391
- <div style={{ height: "300px" }}>
392
- <div style={{ width: "300px" }}>
422
+ <div style=\{{ height: "300px" }}>
423
+ <div style=\{{ width: "300px" }}>
393
424
  <Combobox
394
425
  items={items}
395
426
  listMaxHeight="200px"
@@ -411,7 +442,7 @@ type Items = Array<{
411
442
  ## Использование с React Hook Form и нативной формой
412
443
 
413
444
  :::caution Использование атрибута `name`
414
- Используйте свойство `name` только когда это необходимо. Оно влияет на выходной тип в `onChange`.
445
+ Используйте свойство `name` только когда это необходимо. Оно влияет на выходной тип в `onChange`.
415
446
  :::
416
447
 
417
448
  <Tabs>
@@ -462,8 +493,8 @@ type Items = Array<{
462
493
  ];
463
494
 
464
495
  return (
465
- <div style={{ display: "flex", gap: "30px", height: "300px" }}>
466
- <form onSubmit={handleSubmit(onSubmit)} style={{ display: 'flex', flexDirection: 'column', gap: '10px' }}>
496
+ <div style=\{{ display: "flex", gap: "30px", height: "300px" }}>
497
+ <form onSubmit={handleSubmit(onSubmit)} style=\{{ display: 'flex', flexDirection: 'column', gap: '10px' }}>
467
498
  <Combobox
468
499
  items={items}
469
500
  {...register('combobox')}
@@ -525,8 +556,8 @@ type Items = Array<{
525
556
  ];
526
557
 
527
558
  return (
528
- <div style={{ display: "flex", gap: "30px", height: "300px" }}>
529
- <form onSubmit={handleSubmit(onSubmit)} style={{ display: 'flex', flexDirection: 'column', gap: '10px' }}>
559
+ <div style=\{{ display: "flex", gap: "30px", height: "300px" }}>
560
+ <form onSubmit={handleSubmit(onSubmit)} style=\{{ display: 'flex', flexDirection: 'column', gap: '10px' }}>
530
561
  <Controller
531
562
  control={control}
532
563
  name="combobox"
@@ -598,8 +629,8 @@ type Items = Array<{
598
629
  ];
599
630
 
600
631
  return (
601
- <div style={{ display: "flex", gap: "30px", height: "300px" }}>
602
- <form onSubmit={onSubmit} style={{ display: 'flex', flexDirection: 'column', gap: '20px' }}>
632
+ <div style=\{{ display: "flex", gap: "30px", height: "300px" }}>
633
+ <form onSubmit={onSubmit} style=\{{ display: 'flex', flexDirection: 'column', gap: '20px' }}>
603
634
  <Combobox label="Combobox" name="combobox" defaultValue={"brazil"} items={items} />
604
635
  <Combobox label="Combobox" name="comboboxMulti" defaultValue={["brazil"]} items={items} multiple />
605
636
  <Button type="submit">Отправить</Button>
@@ -194,6 +194,11 @@ export function App() {
194
194
  ```
195
195
 
196
196
  ### Обязательность поля
197
+
198
+ :::tip
199
+ Наличие индикатора регулируется свойством `hasRequiredIndicator`.
200
+ :::
201
+
197
202
  Обязательность поля задаётся с помощью свойства `required`.
198
203
  Если поле является обязательным, то у компонента появляется специальный индикатор.
199
204
  Изменить расположение индикатора можно с помощью свойства `requiredPlacement`, которое принимает значения `left` и `right`.
@@ -30,7 +30,7 @@ type Items = Array<{
30
30
  */
31
31
  label: string;
32
32
  /**
33
- * Сторона открытия вложенного дропдауна относительно текущего элемента;
33
+ * Сторона открытия вложенного Dropdown относительно текущего элемента;
34
34
  */
35
35
  placement?: DropdownPlacement;
36
36
  /**
@@ -117,7 +117,7 @@ type Items = Array<{
117
117
 
118
118
 
119
119
  return (
120
- <div style={{ height:"300px" }}>
120
+ <div style=\{{ height:"300px" }}>
121
121
  <Dropdown
122
122
  items={items}
123
123
  >
@@ -170,7 +170,7 @@ type Items = Array<{
170
170
  ];
171
171
 
172
172
  return (
173
- <div style={{ height: "300px", display: "flex", gap: "50px" }}>
173
+ <div style=\{{ height: "300px", display: "flex", gap: "50px" }}>
174
174
  <Dropdown
175
175
  items={items}
176
176
  size="l"
@@ -245,7 +245,7 @@ type Items = Array<{
245
245
  ];
246
246
 
247
247
  return (
248
- <div style={{ height: "300px", display: "flex", gap: "50px" }}>
248
+ <div style=\{{ height: "300px", display: "flex", gap: "50px" }}>
249
249
  <Dropdown
250
250
  items={items}
251
251
  >
@@ -327,7 +327,7 @@ type Items = Array<{
327
327
  ];
328
328
 
329
329
  return (
330
- <div style={{ height:"300px" }}>
330
+ <div style=\{{ height:"300px" }}>
331
331
  <Dropdown
332
332
  items={items}
333
333
  trigger="hover"
@@ -380,10 +380,10 @@ type Items = Array<{
380
380
  },
381
381
  ];
382
382
 
383
- const ref = useRef(null)
383
+ const ref = useRef(null);
384
384
 
385
385
  return (
386
- <div style={{ position: "relative", height: "300px" }} ref={ref}>
386
+ <div style=\{{ position: "relative", height: "300px" }} ref={ref}>
387
387
  <Dropdown items={items} portal={ref}>
388
388
  <Button text="Список стран" />
389
389
  </Dropdown>
@@ -399,13 +399,13 @@ type Items = Array<{
399
399
  Данный компонент соответствует требования W3C: [Combobox](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/) и частично [TreeView](https://www.w3.org/WAI/ARIA/apg/patterns/treeview/).
400
400
 
401
401
  - `Tab` - закрывает Dropdown. Перемещает фокус на следующий элемент на странице;
402
- - `Enter` - открывает/закрывает Dropdown. Если на элементе - выбирает его;
403
- - `Space` - открывает/закрывает Dropdown. Если на элементе - выбирает его;
402
+ - `Enter` - открывает/закрывает Dropdown. Если на элементе выбирает его;
403
+ - `Space` - открывает/закрывает Dropdown. Если на элементе выбирает его;
404
404
  - `Home` - открывает Dropdown и перемещает фокус на первый элемент;
405
405
  - `End` - открывает Dropdown и перемещает фокус на последний элемент;
406
406
  - `PageUp` - перемещает фокус на 10 элементов выше либо в начало списка;
407
407
  - `PageDown` - перемещает фокус на 10 элементов ниже либо в конце списка;
408
408
  - `ArrowUp` - открывает Dropdown и перемещает фокус на первый элемент. Перемещает фокус на один элемент выше;
409
409
  - `ArrowDown` - открывает Dropdown и перемещает фокус на первый элемент. Перемещает фокус на один элемент ниже;
410
- - `ArrowRight` - если фокус на элементе вложенного списка - открывает его и перемещает фокус на первый элемент;
410
+ - `ArrowRight` - если фокус на элементе вложенного списка открывает его и перемещает фокус на первый элемент;
411
411
  - `ArrowLeft` - закрывает текущий список и перемещает фокус на предыдущий;
@@ -41,7 +41,7 @@ export function App() {
41
41
 
42
42
  return (
43
43
  <div>
44
- <Flow mainAxisGap="0.5ch" crossAxisGap="1ch" style={{ width: '15ch' }} >
44
+ <Flow mainAxisGap="0.5ch" crossAxisGap="1ch" style=\{{ width: '15ch' }} >
45
45
  {Array(6)
46
46
  .fill(0)
47
47
  .map((_, i) => (<div key={i} style={style(i)}>{numbers[i]}</div>))}
@@ -77,7 +77,7 @@ export function App() {
77
77
  orientation="vertical"
78
78
  mainAxisGap="0.5ch"
79
79
  crossAxisGap="1ch"
80
- style={{ height: '90px' }}
80
+ style=\{{ height: '90px' }}
81
81
  >
82
82
  {Array(6)
83
83
  .fill(0)
@@ -20,7 +20,7 @@ import { PropsTable, Description } from '@site/src/components';
20
20
  <PropsTable name="NotificationsProvider" />
21
21
 
22
22
  Поместите `NotificationsProvider` в [корень приложения](../../#корень-приложения) или там, где будете применять модальные окна.
23
- В качестве свойств можно указать контейнер для оповещений через `frame` и расположение в контейнере через свойство `placement`, как `bottom-right` _(по умолчанию)_ или `bottom-left`.
23
+ В качестве свойств можно указать контейнер для оповещений через `frame`.
24
24
 
25
25
  ```tsx title="index.ts"
26
26
  import ReactDOM from 'react-dom';
@@ -36,10 +36,28 @@ ReactDOM.render(
36
36
  );
37
37
  ```
38
38
 
39
+ ### Позиционирование
40
+
41
+ Позиционирование компонента регулируется с помощью свойства `placement`.
42
+
43
+ ```ts
44
+ type NotificationPlacement = 'center' | 'top' | 'bottom' | 'right' | 'left';
45
+ ````
46
+ И производные комбинации, например `bottom-left` или `top-right`.
47
+
39
48
  ### Вызов уведомления
49
+
50
+ :::info
51
+ Уведомления закрываются автоматически по истечению указанного `timeout` в миллисекундах или если передан `0` или `null` то будут висеть бесконечно.
52
+ :::
53
+
54
+ :::tip
55
+ `onTimeoutClose` - вызывается при автоматическом закрытии по timeout
56
+ :::
57
+
40
58
  После подключения `NotificationsProvider` станет возможен вызов функции `addNotification`, который приведет к отображению оповещения.
41
59
  Функция принимает значения свойств компонента `Notification`, включая необязательное поле `id`. И возвращает сгенерированный или переданный `id`, по которому можно закрыть оповещение через вызов `closeNotification`.
42
- Оповещение закроется автоматически по истечению указанного `timeout` в миллисекундах или будет висеть вечно, если передан `0` или `null`.
60
+
43
61
 
44
62
  ```tsx live
45
63
  import React, { useCallback } from 'react';
@@ -51,6 +69,9 @@ export function App() {
51
69
  id: 'incoming-call',
52
70
  title: 'Входящий вызов',
53
71
  children: 'Принять?',
72
+ onTimeoutClose: () => {
73
+ console.log("Callback, вызываемый при автоматическом закрытии по timeout.")
74
+ },
54
75
  }, 3000);
55
76
  }, []);
56
77
 
@@ -1,4 +1,4 @@
1
- var _excluded = ["id"];
1
+ var _excluded = ["id", "onTimeoutClose"];
2
2
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
3
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
4
4
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
@@ -58,6 +58,7 @@ export var closeNotification = function closeNotification(id) {
58
58
  */
59
59
  export function addNotification(_ref4) {
60
60
  var externalId = _ref4.id,
61
+ onTimeoutClose = _ref4.onTimeoutClose,
61
62
  rest = _objectWithoutProperties(_ref4, _excluded);
62
63
  var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;
63
64
  var id = externalId || "plasma-notification-".concat(Date.now());
@@ -68,7 +69,8 @@ export function addNotification(_ref4) {
68
69
  }));
69
70
  if (timeout !== 0 && timeout !== null) {
70
71
  setTimeout(function () {
71
- return closeNotification(id);
72
+ closeNotification(id);
73
+ onTimeoutClose === null || onTimeoutClose === void 0 || onTimeoutClose();
72
74
  }, timeout);
73
75
  }
74
76
  return id;
@@ -10,8 +10,8 @@ import { PropsTable, Description } from '@site/src/components';
10
10
  <PropsTable name="NumberFormat" exclude={['css']} />
11
11
 
12
12
  ## Использование
13
- Компонент `NumberFormat` представляет собой поле ввода с поле ввода числовых значений.
14
- Он реализован на компоненте [TextField](https://plasma.sberdevices.ru/b2c/components/textfield/)
13
+ Компонент `NumberFormat` представляет собой поле ввода числовых значений.
14
+ Он реализован на компоненте [TextField](https://plasma.sberdevices.ru/{{ name }}/components/textfield/)
15
15
  и наследует практически все его свойства (`size`, `view`, `disabled`, `label` и тд.)
16
16
 
17
17
  ### Разделитель тысяч и десятичных знаков
@@ -146,7 +146,7 @@ export function App() {
146
146
  ```
147
147
 
148
148
  ### Ведущие нули
149
- Чтобы разрешить в числе ведущие нули, нуджно указать свойство `allowLeadingZeros`:
149
+ Чтобы разрешить в числе ведущие нули, нужно указать свойство `allowLeadingZeros`:
150
150
 
151
151
  ```tsx live
152
152
  import React from 'react';
@@ -165,4 +165,4 @@ export function App() {
165
165
  </div>
166
166
  );
167
167
  }
168
- ```
168
+ ```
@@ -7,18 +7,18 @@ import { PropsTable, Description } from '@site/src/components';
7
7
 
8
8
  # Radiobox
9
9
  <Description name="Radiobox" />
10
- <PropsTable name="Radiobox" exclude={['css', 'focused']} />
10
+ <PropsTable name="Radiobox" exclude={['css', 'focused']} include={['defaultChecked']} />
11
11
 
12
12
  :::caution Устаревшие значения для свойства view
13
- Актуальным значением для свойства `view` - является `accent`.
13
+ Актуальным значением для свойства `view` - является `accent`.
14
14
 
15
- Все остальные значения `deprecated` и будут удалены в ближайшее время!
15
+ Все остальные значения `deprecated` и будут удалены в ближайшее время!
16
16
  :::
17
17
 
18
18
  ## Использование
19
19
  Компонент `Radiobox` может содержать лейбл и описание.
20
20
 
21
- По умолчанию, контент внутри лейбла и описания многострочный.
21
+ По умолчанию, контент внутри лейбла и описания многострочный.
22
22
 
23
23
  Для того чтобы стал однострочным, необходимо использовать свойство `singleLine`(по умолчанию `false`).
24
24
 
@@ -34,14 +34,13 @@ export function App() {
34
34
  ```
35
35
 
36
36
  ## RadioGroup
37
+
37
38
  Компоненты `Radiobox` следует объединять в `RadioGroup`
38
39
 
39
40
  ```tsx live
40
- <div>
41
- <RadioGroup aria-labelledby="radiogroup-title-id">
42
- <H3 id="radiogroup-title-id" style=\{{"margin-bottom": "12px"}}>Заголовок</H3>
43
- <Radiobox name="radio-1" label="Радиокнопка 1" description="Описание 1" defaultChecked />
44
- <Radiobox name="radio-1" label="Радиокнопка 2" description="Описание 2" />
45
- </RadioGroup>
46
- </div>
41
+ <RadioGroup aria-labelledby="radiogroup-title-id">
42
+ <H3 id="radiogroup-title-id">Заголовок</H3>
43
+ <Radiobox name="radio-1" label="Радиокнопка 1" description="Описание 1" defaultChecked />
44
+ <Radiobox name="radio-1" label="Радиокнопка 2" description="Описание 2" />
45
+ </RadioGroup>
47
46
  ```
@@ -323,6 +323,10 @@ export function App() {
323
323
  ```
324
324
 
325
325
  ### Обязательность поля
326
+ :::tip
327
+ Наличие индикатора регулируется свойством `hasRequiredIndicator`.
328
+ :::
329
+
326
330
  Обязательность поля задаётся с помощью свойства `required`.
327
331
  Если поле является обязательным, то у компонента появляется специальный индикатор.
328
332
  Изменить расположение индикатора можно с помощью свойства `requiredPlacement`, которое принимает значения `left` и `right`.
@@ -356,4 +360,4 @@ export function App() {
356
360
  </div>
357
361
  );
358
362
  }
359
- ```
363
+ ```
@@ -59,7 +59,7 @@ export function App() {
59
59
  }
60
60
 
61
61
  return (
62
- <div style={{ display: "block" }} >
62
+ <div style=\{{ display: "block" }} >
63
63
  <SegmentProvider defaultSelected={['label_1']}>
64
64
  <SegmentTemplate/>
65
65
  </SegmentProvider>
@@ -103,7 +103,7 @@ export function App() {
103
103
  }
104
104
 
105
105
  return (
106
- <div style={{ display: "block" }} >
106
+ <div style=\{{ display: "block" }} >
107
107
  <SegmentProvider defaultSelected={['label_1']} singleSelectedRequired>
108
108
  <SegmentTemplate/>
109
109
  </SegmentProvider>
@@ -145,7 +145,7 @@ export function App() {
145
145
  }
146
146
 
147
147
  return (
148
- <div style={{ display: "block" }} >
148
+ <div style=\{{ display: "block" }} >
149
149
  <SegmentProvider defaultSelected={['label_1']}>
150
150
  <SegmentTemplate/>
151
151
  </SegmentProvider>