@salutejs/plasma-new-hope 0.322.0-canary.1939.14616445713.0 → 0.322.0-canary.1939.14664752830.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 (186) hide show
  1. package/cjs/components/Calendar/utils/calendarRangeHelper.js.map +1 -1
  2. package/cjs/components/DatePicker/RangeDate/RangeDate.js +17 -19
  3. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  4. package/cjs/components/DatePicker/SingleDate/SingleDate.js +5 -7
  5. package/cjs/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  6. package/cjs/components/DatePicker/hooks/useDatePicker.js +73 -46
  7. package/cjs/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  8. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +3 -1
  9. package/cjs/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
  10. package/cjs/components/DatePicker/utils/dateHelper.js +4 -0
  11. package/cjs/components/DatePicker/utils/dateHelper.js.map +1 -1
  12. package/cjs/components/DatePicker/utils/getFormattedDates.js +2 -1
  13. package/cjs/components/DatePicker/utils/getFormattedDates.js.map +1 -1
  14. package/cjs/components/DatePicker/utils/getMaskedDateOnInput.js +3 -1
  15. package/cjs/components/DatePicker/utils/getMaskedDateOnInput.js.map +1 -1
  16. package/cjs/components/DatePicker/utils/getOriginalDates.js +5 -13
  17. package/cjs/components/DatePicker/utils/getOriginalDates.js.map +1 -1
  18. package/cjs/components/DatePicker/utils/normalizeDates.js +6 -3
  19. package/cjs/components/DatePicker/utils/normalizeDates.js.map +1 -1
  20. package/emotion/cjs/components/Accordion/Accordion.template-doc.mdx +99 -71
  21. package/emotion/cjs/components/Autocomplete/Autocomplete.template-doc.mdx +523 -454
  22. package/emotion/cjs/components/Checkbox/Checkbox.template-doc.mdx +3 -3
  23. package/emotion/cjs/components/Combobox/Combobox.template-doc.mdx +58 -27
  24. package/emotion/cjs/components/DatePicker/DatePicker.template-doc.mdx +5 -0
  25. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +17 -19
  26. package/emotion/cjs/components/DatePicker/SingleDate/SingleDate.js +5 -7
  27. package/emotion/cjs/components/DatePicker/hooks/useDatePicker.js +73 -46
  28. package/emotion/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +2 -1
  29. package/emotion/cjs/components/DatePicker/utils/dateHelper.js +4 -1
  30. package/emotion/cjs/components/DatePicker/utils/getFormattedDates.js +2 -1
  31. package/emotion/cjs/components/DatePicker/utils/getMaskedDateOnInput.js +2 -1
  32. package/emotion/cjs/components/DatePicker/utils/getOriginalDates.js +10 -13
  33. package/emotion/cjs/components/DatePicker/utils/normalizeDates.js +6 -3
  34. package/emotion/cjs/components/Dropdown/Dropdown.template-doc.mdx +10 -10
  35. package/emotion/cjs/components/Flow/Flow.template-doc.mdx +2 -2
  36. package/emotion/cjs/components/Notification/Notification.template-doc.mdx +10 -1
  37. package/emotion/cjs/components/NumberFormat/NumberFormat.template-doc.mdx +4 -4
  38. package/emotion/cjs/components/Radiobox/Radiobox.template-doc.mdx +10 -11
  39. package/emotion/cjs/components/Range/Range.template-doc.mdx +5 -1
  40. package/emotion/cjs/components/Segment/Segment.template-doc.mdx +3 -3
  41. package/emotion/cjs/components/Select/Select.template-doc.mdx +27 -27
  42. package/emotion/cjs/components/Slider/Slider.template-doc.mdx +2 -2
  43. package/emotion/cjs/components/Switch/Switch.template-doc.mdx +3 -3
  44. package/emotion/cjs/components/Table/Table.template-doc.mdx +2 -2
  45. package/emotion/cjs/components/Tabs/Tabs.template-doc.mdx +11 -7
  46. package/emotion/cjs/components/TextArea/TextArea.template-doc.mdx +9 -2
  47. package/emotion/cjs/components/TextField/TextField.template-doc.mdx +117 -32
  48. package/emotion/cjs/components/Toast/Toast.template-doc.mdx +48 -2
  49. package/emotion/cjs/components/Tooltip/Tooltip.template-doc.mdx +19 -4
  50. package/emotion/cjs/components/Tree/Tree.template-doc.mdx +0 -1
  51. package/emotion/es/components/Accordion/Accordion.template-doc.mdx +99 -71
  52. package/emotion/es/components/Autocomplete/Autocomplete.template-doc.mdx +523 -454
  53. package/emotion/es/components/Checkbox/Checkbox.template-doc.mdx +3 -3
  54. package/emotion/es/components/Combobox/Combobox.template-doc.mdx +58 -27
  55. package/emotion/es/components/DatePicker/DatePicker.template-doc.mdx +5 -0
  56. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +17 -19
  57. package/emotion/es/components/DatePicker/SingleDate/SingleDate.js +6 -8
  58. package/emotion/es/components/DatePicker/hooks/useDatePicker.js +73 -46
  59. package/emotion/es/components/DatePicker/hooks/useKeyboardNavigation.js +2 -1
  60. package/emotion/es/components/DatePicker/utils/dateHelper.js +3 -0
  61. package/emotion/es/components/DatePicker/utils/getFormattedDates.js +2 -1
  62. package/emotion/es/components/DatePicker/utils/getMaskedDateOnInput.js +2 -1
  63. package/emotion/es/components/DatePicker/utils/getOriginalDates.js +10 -13
  64. package/emotion/es/components/DatePicker/utils/normalizeDates.js +6 -3
  65. package/emotion/es/components/Dropdown/Dropdown.template-doc.mdx +10 -10
  66. package/emotion/es/components/Flow/Flow.template-doc.mdx +2 -2
  67. package/emotion/es/components/Notification/Notification.template-doc.mdx +10 -1
  68. package/emotion/es/components/NumberFormat/NumberFormat.template-doc.mdx +4 -4
  69. package/emotion/es/components/Radiobox/Radiobox.template-doc.mdx +10 -11
  70. package/emotion/es/components/Range/Range.template-doc.mdx +5 -1
  71. package/emotion/es/components/Segment/Segment.template-doc.mdx +3 -3
  72. package/emotion/es/components/Select/Select.template-doc.mdx +27 -27
  73. package/emotion/es/components/Slider/Slider.template-doc.mdx +2 -2
  74. package/emotion/es/components/Switch/Switch.template-doc.mdx +3 -3
  75. package/emotion/es/components/Table/Table.template-doc.mdx +2 -2
  76. package/emotion/es/components/Tabs/Tabs.template-doc.mdx +11 -7
  77. package/emotion/es/components/TextArea/TextArea.template-doc.mdx +9 -2
  78. package/emotion/es/components/TextField/TextField.template-doc.mdx +117 -32
  79. package/emotion/es/components/Toast/Toast.template-doc.mdx +48 -2
  80. package/emotion/es/components/Tooltip/Tooltip.template-doc.mdx +19 -4
  81. package/emotion/es/components/Tree/Tree.template-doc.mdx +0 -1
  82. package/es/components/Calendar/utils/calendarRangeHelper.js.map +1 -1
  83. package/es/components/DatePicker/RangeDate/RangeDate.js +19 -21
  84. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  85. package/es/components/DatePicker/SingleDate/SingleDate.js +7 -9
  86. package/es/components/DatePicker/SingleDate/SingleDate.js.map +1 -1
  87. package/es/components/DatePicker/hooks/useDatePicker.js +73 -46
  88. package/es/components/DatePicker/hooks/useDatePicker.js.map +1 -1
  89. package/es/components/DatePicker/hooks/useKeyboardNavigation.js +3 -1
  90. package/es/components/DatePicker/hooks/useKeyboardNavigation.js.map +1 -1
  91. package/es/components/DatePicker/utils/dateHelper.js +4 -1
  92. package/es/components/DatePicker/utils/dateHelper.js.map +1 -1
  93. package/es/components/DatePicker/utils/getFormattedDates.js +2 -1
  94. package/es/components/DatePicker/utils/getFormattedDates.js.map +1 -1
  95. package/es/components/DatePicker/utils/getMaskedDateOnInput.js +3 -1
  96. package/es/components/DatePicker/utils/getMaskedDateOnInput.js.map +1 -1
  97. package/es/components/DatePicker/utils/getOriginalDates.js +5 -13
  98. package/es/components/DatePicker/utils/getOriginalDates.js.map +1 -1
  99. package/es/components/DatePicker/utils/normalizeDates.js +6 -3
  100. package/es/components/DatePicker/utils/normalizeDates.js.map +1 -1
  101. package/package.json +4 -4
  102. package/styled-components/cjs/components/Accordion/Accordion.template-doc.mdx +99 -71
  103. package/styled-components/cjs/components/Autocomplete/Autocomplete.template-doc.mdx +523 -454
  104. package/styled-components/cjs/components/Checkbox/Checkbox.template-doc.mdx +3 -3
  105. package/styled-components/cjs/components/Combobox/Combobox.template-doc.mdx +58 -27
  106. package/styled-components/cjs/components/DatePicker/DatePicker.template-doc.mdx +5 -0
  107. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +17 -19
  108. package/styled-components/cjs/components/DatePicker/SingleDate/SingleDate.js +5 -7
  109. package/styled-components/cjs/components/DatePicker/hooks/useDatePicker.js +73 -46
  110. package/styled-components/cjs/components/DatePicker/hooks/useKeyboardNavigation.js +2 -1
  111. package/styled-components/cjs/components/DatePicker/utils/dateHelper.js +4 -1
  112. package/styled-components/cjs/components/DatePicker/utils/getFormattedDates.js +2 -1
  113. package/styled-components/cjs/components/DatePicker/utils/getMaskedDateOnInput.js +2 -1
  114. package/styled-components/cjs/components/DatePicker/utils/getOriginalDates.js +10 -13
  115. package/styled-components/cjs/components/DatePicker/utils/normalizeDates.js +6 -3
  116. package/styled-components/cjs/components/Dropdown/Dropdown.template-doc.mdx +10 -10
  117. package/styled-components/cjs/components/Flow/Flow.template-doc.mdx +2 -2
  118. package/styled-components/cjs/components/Notification/Notification.template-doc.mdx +10 -1
  119. package/styled-components/cjs/components/NumberFormat/NumberFormat.template-doc.mdx +4 -4
  120. package/styled-components/cjs/components/Radiobox/Radiobox.template-doc.mdx +10 -11
  121. package/styled-components/cjs/components/Range/Range.template-doc.mdx +5 -1
  122. package/styled-components/cjs/components/Segment/Segment.template-doc.mdx +3 -3
  123. package/styled-components/cjs/components/Select/Select.template-doc.mdx +27 -27
  124. package/styled-components/cjs/components/Slider/Slider.template-doc.mdx +2 -2
  125. package/styled-components/cjs/components/Switch/Switch.template-doc.mdx +3 -3
  126. package/styled-components/cjs/components/Table/Table.template-doc.mdx +2 -2
  127. package/styled-components/cjs/components/Tabs/Tabs.template-doc.mdx +11 -7
  128. package/styled-components/cjs/components/TextArea/TextArea.template-doc.mdx +9 -2
  129. package/styled-components/cjs/components/TextField/TextField.template-doc.mdx +117 -32
  130. package/styled-components/cjs/components/Toast/Toast.template-doc.mdx +48 -2
  131. package/styled-components/cjs/components/Tooltip/Tooltip.template-doc.mdx +19 -4
  132. package/styled-components/cjs/components/Tree/Tree.template-doc.mdx +0 -1
  133. package/styled-components/es/components/Accordion/Accordion.template-doc.mdx +99 -71
  134. package/styled-components/es/components/Autocomplete/Autocomplete.template-doc.mdx +523 -454
  135. package/styled-components/es/components/Checkbox/Checkbox.template-doc.mdx +3 -3
  136. package/styled-components/es/components/Combobox/Combobox.template-doc.mdx +58 -27
  137. package/styled-components/es/components/DatePicker/DatePicker.template-doc.mdx +5 -0
  138. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +17 -19
  139. package/styled-components/es/components/DatePicker/SingleDate/SingleDate.js +6 -8
  140. package/styled-components/es/components/DatePicker/hooks/useDatePicker.js +73 -46
  141. package/styled-components/es/components/DatePicker/hooks/useKeyboardNavigation.js +2 -1
  142. package/styled-components/es/components/DatePicker/utils/dateHelper.js +3 -0
  143. package/styled-components/es/components/DatePicker/utils/getFormattedDates.js +2 -1
  144. package/styled-components/es/components/DatePicker/utils/getMaskedDateOnInput.js +2 -1
  145. package/styled-components/es/components/DatePicker/utils/getOriginalDates.js +10 -13
  146. package/styled-components/es/components/DatePicker/utils/normalizeDates.js +6 -3
  147. package/styled-components/es/components/Dropdown/Dropdown.template-doc.mdx +10 -10
  148. package/styled-components/es/components/Flow/Flow.template-doc.mdx +2 -2
  149. package/styled-components/es/components/Notification/Notification.template-doc.mdx +10 -1
  150. package/styled-components/es/components/NumberFormat/NumberFormat.template-doc.mdx +4 -4
  151. package/styled-components/es/components/Radiobox/Radiobox.template-doc.mdx +10 -11
  152. package/styled-components/es/components/Range/Range.template-doc.mdx +5 -1
  153. package/styled-components/es/components/Segment/Segment.template-doc.mdx +3 -3
  154. package/styled-components/es/components/Select/Select.template-doc.mdx +27 -27
  155. package/styled-components/es/components/Slider/Slider.template-doc.mdx +2 -2
  156. package/styled-components/es/components/Switch/Switch.template-doc.mdx +3 -3
  157. package/styled-components/es/components/Table/Table.template-doc.mdx +2 -2
  158. package/styled-components/es/components/Tabs/Tabs.template-doc.mdx +11 -7
  159. package/styled-components/es/components/TextArea/TextArea.template-doc.mdx +9 -2
  160. package/styled-components/es/components/TextField/TextField.template-doc.mdx +117 -32
  161. package/styled-components/es/components/Toast/Toast.template-doc.mdx +48 -2
  162. package/styled-components/es/components/Tooltip/Tooltip.template-doc.mdx +19 -4
  163. package/styled-components/es/components/Tree/Tree.template-doc.mdx +0 -1
  164. package/types/components/Calendar/utils/calendarRangeHelper.d.ts +1 -1
  165. package/types/components/Calendar/utils/calendarRangeHelper.d.ts.map +1 -1
  166. package/types/components/DatePicker/DatePickerBase.types.d.ts +3 -3
  167. package/types/components/DatePicker/DatePickerBase.types.d.ts.map +1 -1
  168. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts +2 -2
  169. package/types/components/DatePicker/RangeDate/RangeDate.types.d.ts.map +1 -1
  170. package/types/components/DatePicker/SingleDate/SingleDate.d.ts +5 -4
  171. package/types/components/DatePicker/SingleDate/SingleDate.d.ts.map +1 -1
  172. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts +3 -3
  173. package/types/components/DatePicker/SingleDate/SingleDate.types.d.ts.map +1 -1
  174. package/types/components/DatePicker/hooks/useDatePicker.d.ts +1 -1
  175. package/types/components/DatePicker/hooks/useDatePicker.d.ts.map +1 -1
  176. package/types/components/DatePicker/hooks/useKeyboardNavigation.d.ts.map +1 -1
  177. package/types/components/DatePicker/utils/dateHelper.d.ts +1 -0
  178. package/types/components/DatePicker/utils/dateHelper.d.ts.map +1 -1
  179. package/types/components/DatePicker/utils/getFormattedDates.d.ts.map +1 -1
  180. package/types/components/DatePicker/utils/getMaskedDateOnInput.d.ts.map +1 -1
  181. package/types/components/DatePicker/utils/getOriginalDates.d.ts.map +1 -1
  182. package/types/components/DatePicker/utils/normalizeDates.d.ts.map +1 -1
  183. /package/emotion/cjs/components/Combobox/ComboboxOld/{Combobox.template-doc.mdx → Combobox.doc.mdx} +0 -0
  184. /package/emotion/es/components/Combobox/ComboboxOld/{Combobox.template-doc.mdx → Combobox.doc.mdx} +0 -0
  185. /package/styled-components/cjs/components/Combobox/ComboboxOld/{Combobox.template-doc.mdx → Combobox.doc.mdx} +0 -0
  186. /package/styled-components/es/components/Combobox/ComboboxOld/{Combobox.template-doc.mdx → Combobox.doc.mdx} +0 -0
@@ -37,7 +37,7 @@ export function App() {
37
37
  ```
38
38
 
39
39
  ### Размер поля
40
- Размер поля задаётся с помощью свойства `size`. Свойство принимает значения `"l"` и `"m"`:
40
+ Размер поля задаётся с помощью свойства `size`. Свойство принимает значения `"l" | "m" | "s" | "xs"`:
41
41
 
42
42
  ```tsx live
43
43
  import React from 'react';
@@ -53,8 +53,8 @@ export function App() {
53
53
  />
54
54
  <TextField
55
55
  placeholder="Размер"
56
- size="m"
57
- defaultValue="M48"
56
+ size="s"
57
+ defaultValue="S40"
58
58
  />
59
59
  </div>
60
60
  );
@@ -62,9 +62,9 @@ export function App() {
62
62
  ```
63
63
 
64
64
  ### Статус поля
65
- Статус поля задается с помощью свойства `status`.
66
- Возможные значения свойства: `success`, `warning` и `error`.
67
- На отображение TextField так же влияют свойства `clear` и `hasDivider`:
65
+ Статус поля задается с помощью свойства `view`.
66
+
67
+ Возможные значения свойства: `"positive" | "warning" | "negative"`
68
68
 
69
69
  ```tsx live
70
70
  import React from 'react';
@@ -75,46 +75,61 @@ export function App() {
75
75
  <div style=\{{ display: "flex", flexDirection: "column", gap: "1rem" }}>
76
76
  <div style=\{{ display: "flex", gap: "0.5rem" }}>
77
77
  <TextField
78
- placeholder="Статус"
79
- status="success"
78
+ placeholder="Статус positive"
79
+ view="positive"
80
80
  size="m"
81
- defaultValue="Успех"
81
+ defaultValue="Positive"
82
82
  />
83
83
  <TextField
84
- placeholder="Статус"
85
- status="warning"
84
+ placeholder="Статус warning"
85
+ view="warning"
86
86
  size="m"
87
- defaultValue="Предупреждение"
87
+ defaultValue="Warning"
88
88
  />
89
89
  <TextField
90
- placeholder="Статус"
91
- status="error"
90
+ placeholder="Статус Ошибка"
91
+ view="negative"
92
92
  size="m"
93
- defaultValue="Ошибка"
93
+ defaultValue="Negative"
94
94
  />
95
95
  </div>
96
+ </div>
97
+ );
98
+ }
99
+ ```
100
+
101
+ ### Вариация Clear
102
+ На отображение компонента так же влияют свойства `clear` и `hasDivider`:
103
+
104
+ ```tsx live
105
+ import React from 'react';
106
+ import { TextField } from '@salutejs/{{ package }}';
107
+
108
+ export function App() {
109
+ return (
110
+ <div style=\{{ display: "flex", flexDirection: "column", gap: "1rem" }}>
96
111
  <div style=\{{ display: "flex", gap: "0.5rem" }}>
97
112
  <TextField
98
- placeholder="Статус"
99
- status="success"
113
+ placeholder="Статус positive"
114
+ view="positive"
100
115
  size="m"
101
- defaultValue="Успех"
116
+ defaultValue="Positive"
102
117
  clear
103
118
  hasDivider
104
119
  />
105
120
  <TextField
106
- placeholder="Статус"
107
- status="warning"
121
+ placeholder="Статус warning"
122
+ view="warning"
108
123
  size="m"
109
- defaultValue="Предупреждение"
124
+ defaultValue="Warning"
110
125
  clear
111
126
  hasDivider
112
127
  />
113
128
  <TextField
114
- placeholder="Статус"
115
- status="error"
129
+ placeholder="Статус negative"
130
+ view="negative"
116
131
  size="m"
117
- defaultValue="Ошибка"
132
+ defaultValue="Negative"
118
133
  clear
119
134
  hasDivider
120
135
  />
@@ -125,8 +140,11 @@ export function App() {
125
140
  ```
126
141
 
127
142
  ### Подсказка
128
- Для вывода подсказки снизу от поля используйте свойство `helperText`,
129
- для подсказки в виде Tooltip - `hintText`, для подсказки сверху справа - `titleCaption`:
143
+ Для вывода подсказок:
144
+
145
+ - `leftHelper` внизу слева под компонентом
146
+ - `titleCaption` сверху справа над компонентом
147
+ - `hintText` для подсказки в виде `Tooltip`
130
148
 
131
149
  ```tsx live
132
150
  import React from 'react';
@@ -138,7 +156,7 @@ export function App() {
138
156
  <TextField
139
157
  placeholder="Введите значение"
140
158
  defaultValue="Значение"
141
- helperText="Подсказка снизу"
159
+ leftHelper="Подсказка снизу"
142
160
  titleCaption="Подсказка сверху"
143
161
  hintText="Подсказка в виде Tooltip"
144
162
  hintView="default"
@@ -151,7 +169,9 @@ export function App() {
151
169
 
152
170
  ### Режим ввода
153
171
  С помощью свойства `enumerationType` можно вводить элементы как теги. Свойство `chipType` изменяет внешний вид чипа.
154
- С помощью `chipView` можно задать общий вид Chip. Валидация Chip происходит с помощью функции chipValidator.
172
+
173
+ С помощью `chipView` можно задать общий вид `Chip`. Валидация `Chip` происходит с помощью функции `chipValidator`.
174
+
155
175
  По нажатию Enter, после ввода нужного текста, он преобразуется в Chip.
156
176
 
157
177
  ```tsx live
@@ -168,7 +188,7 @@ export function App() {
168
188
  defaultValue="Значение"
169
189
  size="l"
170
190
  enumerationType="chip"
171
- helperText="Подсказка снизу"
191
+ leftHelper="Подсказка снизу"
172
192
  chips={["Значение 1", "Значение 2"]}
173
193
  chipView="positive"
174
194
  chipValidator={validateChip}
@@ -179,7 +199,7 @@ export function App() {
179
199
  defaultValue="Значение"
180
200
  size="l"
181
201
  enumerationType="chip"
182
- helperText="Подсказка снизу"
202
+ leftHelper="Подсказка снизу"
183
203
  chips={["Значение 1"]}
184
204
  chipType="text"
185
205
  />
@@ -188,9 +208,15 @@ export function App() {
188
208
  }
189
209
  ```
190
210
 
191
-
192
211
  ### Обязательность поля
193
- Обязательность поля задаётся с помощью свойств `required` и `requiredPlacement`. Где `requiredPlacement` отвечает за выравнивание и принимает значения `"left"` и `"right"`:
212
+
213
+ :::tip
214
+ Наличие индикатора регулируется свойством `hasRequiredIndicator`.
215
+ :::
216
+
217
+ Обязательность поля задаётся с помощью свойств `required` и `requiredPlacement`.
218
+
219
+ Где `requiredPlacement` отвечает за выравнивание и принимает значения `"left"` и `"right"`:
194
220
 
195
221
  ```tsx live
196
222
  import React from 'react';
@@ -209,7 +235,66 @@ export function App() {
209
235
  required
210
236
  requiredPlacement="right"
211
237
  />
238
+ <TextField
239
+ placeholder="Введите значение"
240
+ label="Поле обязательное, но не имеет визуального индикатора"
241
+ required
242
+ requiredPlacement="right"
243
+ hasRequiredIndicator={false}
244
+ />
212
245
  </div>
213
246
  );
214
247
  }
215
248
  ```
249
+
250
+ ## Примеры
251
+
252
+ ### TextField + очистка поля
253
+
254
+ ```tsx live
255
+ import React, { useState } from "react";
256
+ import { TextField } from "@salutejs/{{ package }}";
257
+ import { IconClose } from "@salutejs/plasma-icons";
258
+
259
+ export function App() {
260
+ const [value, setValue] = useState("");
261
+
262
+ const ControlClear = (props: { onClick: () => void }) => {
263
+ return (
264
+ <div {...props}>
265
+ <IconClose size="xs" color="inherit" />
266
+ </div>
267
+ );
268
+ };
269
+
270
+ return (
271
+ <div>
272
+ <TextField
273
+ placeholder="Положение иконки"
274
+ value={value}
275
+ onChange={(e) => {
276
+ setValue(e.target.value);
277
+ }}
278
+ contentRight={
279
+ <ControlClear
280
+ onClick={() => {
281
+ setValue("");
282
+ }}
283
+ />
284
+ }
285
+ />
286
+ </div>
287
+ );
288
+ }
289
+ ```
290
+
291
+ ## Клавиатурная навигация
292
+
293
+ Данный компонент может полностью управляться с помощью клавиатуры, используя следующие клавиши:
294
+ - по нажатию `Tab` фокусируемся на input
295
+ - если enumeratinType=`chip` после ввода текста, по нажатию `Enter`, input очистится и появится Chip
296
+ - если введен текст в input по нажатию `ArrowLeft` или `ArrowRight` каретка передвигается по тексту
297
+ - при достижении левой границы текста или отсутствии текста в input, при нажатии `Backspace` удаляем последний Chip, если он есть
298
+ - при достижении левой границы текста или отсутствии текста в input, при нажатии `ArrowLeft` переключаемся на последний Chip, если он есть
299
+ - при фокусе на Chip работает переключение фокуса на другие Chip по нажатию `ArrowLeft`, `ArrowRight`; если же Chip крайний правый, при нажатии `ArrowRight` фокус переходит на input
300
+
@@ -9,6 +9,11 @@ import { PropsTable, Description } from '@site/src/components';
9
9
  <Description name="Toast" />
10
10
  <PropsTable name="Toast" />
11
11
 
12
+ :::caution Устаревшие значения свойства `view`
13
+ Значения `dark` и `light` являются устаревшими.<br/>
14
+ Для изменения фона `Toast` используйте компонент `ViewContainer` (см. <a href="#пример-использования">пример использования</a>)
15
+ :::
16
+
12
17
  ## Система подсказок
13
18
  Существует готовая система текстовых подсказок, для использования которой необходимо обернуть приложение в `ToastProvider`:
14
19
 
@@ -120,7 +125,6 @@ export interface ShowToastArgs {
120
125
  ```
121
126
 
122
127
  ## Пример использования
123
-
124
128
  Для изменения цветовой темы компонента `Toast` используйте свойство `view` компонента `ViewContainer`.
125
129
 
126
130
  ```jsx live
@@ -130,7 +134,7 @@ import { useToast, ToastProvider, Button, ViewContainer } from '@salutejs/{{ pac
130
134
  export function App() {
131
135
 
132
136
  const ToastExample = () => {
133
- const { showToast, hideToast } = useToast()
137
+ const { showToast } = useToast()
134
138
 
135
139
  const onShow = () => {}
136
140
  const onHide = () => {}
@@ -168,3 +172,45 @@ export function App() {
168
172
  )
169
173
  }
170
174
  ```
175
+
176
+ ## Вид иконки
177
+ Значения `positive` и `negative` свойства `view` изменяют цвет иконки.<br/>
178
+ Чтобы цвет применился, установите в иконке свойство `color` со значением `inherit`:
179
+
180
+ ```jsx live
181
+ import React from 'react'
182
+ import { IconBell } from '@salutejs/plasma-icons';
183
+ import { useToast, ToastProvider, Button } from '@salutejs/{{ package }}'
184
+
185
+ export function App() {
186
+ const Icon = () => <IconBell color="inherit" size="xs" />;
187
+
188
+ const ToastExample = () => {
189
+ const { showToast } = useToast()
190
+
191
+ const onShow = () => {}
192
+ const onHide = () => {}
193
+ const toastData = {
194
+ contentLeft: <Icon />,
195
+ text: 'Подсказка c иконкой',
196
+ position: 'bottom',
197
+ role: 'status',
198
+ hasClose: true,
199
+ fade: false,
200
+ size: 'm',
201
+ view: 'positive',
202
+ timeout: 3000,
203
+ onShow,
204
+ onHide
205
+ }
206
+
207
+ return <Button onClick={() => showToast(toastData)} text="Вызвать подсказку" />
208
+ }
209
+
210
+ return (
211
+ <ToastProvider>
212
+ <ToastExample />
213
+ </ToastProvider>
214
+ )
215
+ }
216
+ ```
@@ -17,13 +17,28 @@ import { PropsTable, Description } from '@site/src/components';
17
17
 
18
18
  ```tsx live
19
19
  import React from 'react';
20
- import { Tooltip } from '@salutejs/{{ package }}';
21
- import { IconApps } from '@salutejs/plasma-icons';
20
+ import { Tooltip, Button } from '@salutejs/{{ package }}';
22
21
 
23
22
  export function App() {
24
23
  return (
25
- <div style=\{{marginLeft: '100px',marginBottom: '35px'}}>
26
- <Tooltip target={( <IconApps />)} text="Высокое качество воспроизведения" placement="bottom" hasArrow opened />
24
+ <div style=\{{display: 'grid', gridTemplateColumns: 'repeat(3, max-content)', gridGap: '1rem 3.5rem', padding: '3.5rem'}}>
25
+ <Tooltip
26
+ target={<Tooltip target={<Button>Btn</Button>} placement="left" opened text="left" />}
27
+ placement="top-start"
28
+ opened
29
+ text="top-start"
30
+ view="default"
31
+ />
32
+ <Tooltip target={<Button>Btn</Button>} placement="top" opened text="top" />
33
+ <Tooltip
34
+ target={<Tooltip target={<Button>Btn</Button>} placement="right" opened text="right" />}
35
+ placement="top-end"
36
+ opened
37
+ text="top-end"
38
+ />
39
+ <Tooltip target={<Button>Btn</Button>} placement="bottom-start" opened text="bottom-start" />
40
+ <Tooltip target={<Button>Btn</Button>} placement="bottom" opened text="bottom" />
41
+ <Tooltip target={<Button>Btn</Button>} placement="bottom-end" opened text="bottom-end" />
27
42
  </div>
28
43
  );
29
44
  }
@@ -218,4 +218,3 @@ type TreeItem = {
218
218
  ```
219
219
  </TabItem>
220
220
  </Tabs>
221
-
@@ -1 +1 @@
1
- {"version":3,"file":"calendarRangeHelper.js","sources":["../../../../src/components/Calendar/utils/calendarRangeHelper.ts"],"sourcesContent":["import { CalendarValueType, DateObject, DateType } from '../Calendar.types';\n\nexport const getSortedValues = (values: [DateType, DateType?]) =>\n values.sort((start, end) => {\n if (!start || !end) {\n return -1;\n }\n\n return start.getTime() - end.getTime();\n });\n\nexport const isDateInRange = (year: number, monthIndex: number, currentDay: number, values: [DateType, DateType]) => {\n const [startValue, endValue] = getSortedValues(values);\n\n if (!endValue || !startValue) {\n return false;\n }\n\n const day = new Date(year, monthIndex, currentDay);\n return startValue < day && day <= endValue;\n};\n\nexport const isSameDay = (firstDate: DateObject, secondDate?: DateObject) =>\n secondDate &&\n firstDate.day === secondDate.day &&\n firstDate.monthIndex === secondDate.monthIndex &&\n firstDate.year === secondDate.year;\n\nexport const isValueUpdate = (value: DateType | [DateType, DateType], prevValue: DateType | [DateType, DateType]) => {\n if (!Array.isArray(value) && !Array.isArray(prevValue)) {\n return prevValue?.getTime() !== value?.getTime();\n }\n\n if (Array.isArray(value) && Array.isArray(prevValue)) {\n return prevValue[0]?.getTime() !== value[0]?.getTime() || prevValue[1]?.getTime() !== value[1]?.getTime();\n }\n\n return false;\n};\n\n/**\n * Метод проверяет, находится ли календарь в режиме выбора второго значения.\n */\nexport const isSelectProcess = (array: unknown | unknown[]): array is [Date, Date?] =>\n Array.isArray(array) && !array[1];\n\n/**\n * Метод возвращает сторону, когда выбор второго значения диапазона завершён.\n */\nexport const getSideForSelected = (date: DateObject, startValue: Date, endValue: Date) => {\n const currentDateTime = new Date(date.year, date.monthIndex, date.day).getTime();\n const startValueTime = startValue.getTime();\n const endValueTime = endValue.getTime();\n\n if (currentDateTime === startValueTime) {\n return 'right';\n }\n\n if (currentDateTime === endValueTime) {\n return 'left';\n }\n\n return undefined;\n};\n\n/**\n * Метод возвращает сторону, во время выбора второго значения диапазона.\n */\nexport const getSideForHovered = (date: DateObject, hoveredDay: DateObject, startValue: Date, isSelected?: boolean) => {\n const dateHover = new Date(hoveredDay.year, hoveredDay.monthIndex, hoveredDay.day);\n const isHovered = isSameDay(date, hoveredDay);\n\n if ((isSelected && startValue > dateHover) || (isHovered && startValue < dateHover)) {\n return 'left';\n }\n\n if ((isSelected && startValue < dateHover) || (isHovered && startValue > dateHover)) {\n return 'right';\n }\n\n return undefined;\n};\n\n/**\n * Метод возвращает сторону, с которой нужно отрисовать направление полоски диапазона.\n */\nexport const getSideInRange = (\n value: CalendarValueType,\n date: DateObject,\n hoveredDay?: DateObject,\n isSelected?: boolean,\n) => {\n if (!Array.isArray(value)) {\n return undefined;\n }\n\n const [startValue, endValue] = value;\n\n if (startValue && isSelected && endValue) {\n return getSideForSelected(date, startValue, endValue);\n }\n\n if (startValue && hoveredDay) {\n return getSideForHovered(date, hoveredDay, startValue, isSelected);\n }\n\n return undefined;\n};\n\n/**\n * Метод проверяет, находится ли выбранный день в диапазоне.\n */\nexport const getInRange = (value: CalendarValueType, date: DateObject, hoveredDay?: DateObject, inRange?: boolean) => {\n if (!isSelectProcess(value) || !hoveredDay) {\n return inRange;\n }\n\n const dateSelected = value[0];\n const dateHover = new Date(hoveredDay.year, hoveredDay.monthIndex, hoveredDay.day);\n const dateCurrent = new Date(date.year, date.monthIndex, date.day);\n\n if (\n (dateSelected < dateCurrent && dateCurrent < dateHover) ||\n (dateSelected > dateCurrent && dateCurrent > dateHover)\n ) {\n return true;\n }\n\n return inRange;\n};\n"],"names":["getSortedValues","values","sort","start","end","getTime","isDateInRange","year","monthIndex","currentDay","_getSortedValues","_getSortedValues2","_slicedToArray","startValue","endValue","day","Date","isSameDay","firstDate","secondDate","isValueUpdate","value","prevValue","Array","isArray","_prevValue$","_value$","_prevValue$2","_value$2","isSelectProcess","array","getSideForSelected","date","currentDateTime","startValueTime","endValueTime","undefined","getSideForHovered","hoveredDay","isSelected","dateHover","isHovered","getSideInRange","_value","getInRange","inRange","dateSelected","dateCurrent"],"mappings":"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"}
1
+ {"version":3,"file":"calendarRangeHelper.js","sources":["../../../../src/components/Calendar/utils/calendarRangeHelper.ts"],"sourcesContent":["import { CalendarValueType, DateObject, DateType } from '../Calendar.types';\n\nexport const getSortedValues = (values: [DateType, DateType]) =>\n values.sort((start, end) => {\n if (!start || !end) {\n return -1;\n }\n\n return start.getTime() - end.getTime();\n });\n\nexport const isDateInRange = (year: number, monthIndex: number, currentDay: number, values: [DateType, DateType]) => {\n const [startValue, endValue] = getSortedValues(values);\n\n if (!endValue || !startValue) {\n return false;\n }\n\n const day = new Date(year, monthIndex, currentDay);\n return startValue < day && day <= endValue;\n};\n\nexport const isSameDay = (firstDate: DateObject, secondDate?: DateObject) =>\n secondDate &&\n firstDate.day === secondDate.day &&\n firstDate.monthIndex === secondDate.monthIndex &&\n firstDate.year === secondDate.year;\n\nexport const isValueUpdate = (value: DateType | [DateType, DateType], prevValue: DateType | [DateType, DateType]) => {\n if (!Array.isArray(value) && !Array.isArray(prevValue)) {\n return prevValue?.getTime() !== value?.getTime();\n }\n\n if (Array.isArray(value) && Array.isArray(prevValue)) {\n return prevValue[0]?.getTime() !== value[0]?.getTime() || prevValue[1]?.getTime() !== value[1]?.getTime();\n }\n\n return false;\n};\n\n/**\n * Метод проверяет, находится ли календарь в режиме выбора второго значения.\n */\nexport const isSelectProcess = (array: unknown | unknown[]): array is [Date, Date?] =>\n Array.isArray(array) && !array[1];\n\n/**\n * Метод возвращает сторону, когда выбор второго значения диапазона завершён.\n */\nexport const getSideForSelected = (date: DateObject, startValue: Date, endValue: Date) => {\n const currentDateTime = new Date(date.year, date.monthIndex, date.day).getTime();\n const startValueTime = startValue.getTime();\n const endValueTime = endValue.getTime();\n\n if (currentDateTime === startValueTime) {\n return 'right';\n }\n\n if (currentDateTime === endValueTime) {\n return 'left';\n }\n\n return undefined;\n};\n\n/**\n * Метод возвращает сторону, во время выбора второго значения диапазона.\n */\nexport const getSideForHovered = (date: DateObject, hoveredDay: DateObject, startValue: Date, isSelected?: boolean) => {\n const dateHover = new Date(hoveredDay.year, hoveredDay.monthIndex, hoveredDay.day);\n const isHovered = isSameDay(date, hoveredDay);\n\n if ((isSelected && startValue > dateHover) || (isHovered && startValue < dateHover)) {\n return 'left';\n }\n\n if ((isSelected && startValue < dateHover) || (isHovered && startValue > dateHover)) {\n return 'right';\n }\n\n return undefined;\n};\n\n/**\n * Метод возвращает сторону, с которой нужно отрисовать направление полоски диапазона.\n */\nexport const getSideInRange = (\n value: CalendarValueType,\n date: DateObject,\n hoveredDay?: DateObject,\n isSelected?: boolean,\n) => {\n if (!Array.isArray(value)) {\n return undefined;\n }\n\n const [startValue, endValue] = value;\n\n if (startValue && isSelected && endValue) {\n return getSideForSelected(date, startValue, endValue);\n }\n\n if (startValue && hoveredDay) {\n return getSideForHovered(date, hoveredDay, startValue, isSelected);\n }\n\n return undefined;\n};\n\n/**\n * Метод проверяет, находится ли выбранный день в диапазоне.\n */\nexport const getInRange = (value: CalendarValueType, date: DateObject, hoveredDay?: DateObject, inRange?: boolean) => {\n if (!isSelectProcess(value) || !hoveredDay) {\n return inRange;\n }\n\n const dateSelected = value[0];\n const dateHover = new Date(hoveredDay.year, hoveredDay.monthIndex, hoveredDay.day);\n const dateCurrent = new Date(date.year, date.monthIndex, date.day);\n\n if (\n (dateSelected < dateCurrent && dateCurrent < dateHover) ||\n (dateSelected > dateCurrent && dateCurrent > dateHover)\n ) {\n return true;\n }\n\n return inRange;\n};\n"],"names":["getSortedValues","values","sort","start","end","getTime","isDateInRange","year","monthIndex","currentDay","_getSortedValues","_getSortedValues2","_slicedToArray","startValue","endValue","day","Date","isSameDay","firstDate","secondDate","isValueUpdate","value","prevValue","Array","isArray","_prevValue$","_value$","_prevValue$2","_value$2","isSelectProcess","array","getSideForSelected","date","currentDateTime","startValueTime","endValueTime","undefined","getSideForHovered","hoveredDay","isSelected","dateHover","isHovered","getSideInRange","_value","getInRange","inRange","dateSelected","dateCurrent"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
- import React, { forwardRef, useRef, useState, useCallback, useEffect, useLayoutEffect, createRef } from 'react';
2
+ import React, { forwardRef, useRef, useState, useEffect, useLayoutEffect, useCallback, createRef } from 'react';
3
3
  import { cx } from '../../../utils/index.js';
4
4
  import { getDateFormatDelimiter } from '../utils/dateHelper.js';
5
5
  import { useDatePicker } from '../hooks/useDatePicker.js';
6
6
  import { classes } from '../DatePicker.tokens.js';
7
- import { useKeyNavigation, keys } from '../hooks/useKeyboardNavigation.js';
7
+ import { keys, useKeyNavigation } from '../hooks/useKeyboardNavigation.js';
8
8
  import { InputHidden } from '../DatePickerBase.styles.js';
9
9
  import { base as base$2 } from './variations/_size/base.js';
10
10
  import { base as base$1 } from './variations/_view/base.js';
@@ -109,7 +109,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
109
109
  _onBlurSecondTextfield = _ref.onBlurSecondTextfield,
110
110
  rest = _objectWithoutProperties(_ref, _excluded);
111
111
  if (externalValue !== null && externalValue !== void 0 && externalValue.length && (defaultFirstDate || defaultSecondDate)) {
112
- console.error("Controlled DatePicker can't have `default{First|Second}Date`, use `value` instead");
112
+ throw new Error("Controlled DatePicker can't have `default{First|Second}Date`, use `value` instead");
113
113
  }
114
114
  var rangeRef = ref && 'current' in ref ? ref : /*#__PURE__*/createRef();
115
115
  var rootRef = useRef(null);
@@ -127,16 +127,14 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
127
127
  _useState6 = _slicedToArray(_useState5, 2),
128
128
  isInnerOpen = _useState6[0],
129
129
  setIsInnerOpen = _useState6[1];
130
- var dateFormatDelimiter = useCallback(function () {
131
- return getDateFormatDelimiter(format);
132
- }, [format]);
130
+ var dateFormatDelimiter = getDateFormatDelimiter(format);
133
131
  var _ref2 = externalValue || [],
134
132
  _ref3 = _slicedToArray(_ref2, 2),
135
133
  startExternalValue = _ref3[0],
136
134
  endExternalValue = _ref3[1];
137
135
  var startInitialValues = getFormattedDates({
138
136
  value: startExternalValue || defaultFirstDate,
139
- delimiter: dateFormatDelimiter(),
137
+ delimiter: dateFormatDelimiter,
140
138
  lang: lang,
141
139
  format: format,
142
140
  includeEdgeDates: includeEdgeDates,
@@ -145,7 +143,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
145
143
  });
146
144
  var endInitialValues = getFormattedDates({
147
145
  value: endExternalValue || defaultSecondDate,
148
- delimiter: dateFormatDelimiter(),
146
+ delimiter: dateFormatDelimiter,
149
147
  lang: lang,
150
148
  format: format,
151
149
  includeEdgeDates: includeEdgeDates,
@@ -222,18 +220,18 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
222
220
  readOnly: readOnly,
223
221
  maskWithFormat: maskWithFormat,
224
222
  valueError: firstValueError,
225
- valueSuccess: firstValueError,
223
+ valueSuccess: firstValueSuccess,
226
224
  name: name,
227
225
  type: type,
228
226
  min: min,
229
227
  max: max,
230
228
  includeEdgeDates: includeEdgeDates,
229
+ dateFormatDelimiter: dateFormatDelimiter,
231
230
  setCorrectDates: setCorrectStartDates,
232
231
  setInputValue: setFirstInputValue,
233
232
  setCalendarValue: setCalendarFirstValue,
234
233
  onChangeValue: onChangeFirstValue,
235
- onCommitDate: onCommitFirstDate,
236
- dateFormatDelimiter: dateFormatDelimiter
234
+ onCommitDate: onCommitFirstDate
237
235
  }),
238
236
  handleChangeFirstValue = _useDatePicker.handleChangeValue,
239
237
  handleFirstCalendarPick = _useDatePicker.handleCalendarPick,
@@ -247,18 +245,18 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
247
245
  readOnly: readOnly,
248
246
  maskWithFormat: maskWithFormat,
249
247
  valueError: secondValueError,
250
- valueSuccess: secondValueError,
248
+ valueSuccess: secondValueSuccess,
251
249
  name: name,
252
250
  type: type,
253
251
  min: min,
254
252
  max: max,
255
253
  includeEdgeDates: includeEdgeDates,
254
+ dateFormatDelimiter: dateFormatDelimiter,
256
255
  setCorrectDates: setCorrectEndDates,
257
256
  setInputValue: setSecondInputValue,
258
257
  setCalendarValue: setCalendarSecondValue,
259
258
  onChangeValue: onChangeSecondValue,
260
- onCommitDate: onCommitSecondDate,
261
- dateFormatDelimiter: dateFormatDelimiter
259
+ onCommitDate: onCommitSecondDate
262
260
  }),
263
261
  handleChangeSecondValue = _useDatePicker2.handleChangeValue,
264
262
  handleSecondCalendarPick = _useDatePicker2.handleCalendarPick,
@@ -303,7 +301,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
303
301
  }
304
302
  var _getFormattedDates = getFormattedDates({
305
303
  value: inputFirstValue,
306
- delimiter: dateFormatDelimiter(),
304
+ delimiter: dateFormatDelimiter,
307
305
  lang: lang,
308
306
  format: format,
309
307
  includeEdgeDates: includeEdgeDates,
@@ -313,7 +311,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
313
311
  startOriginalDate = _getFormattedDates.originalDate;
314
312
  var _getFormattedDates2 = getFormattedDates({
315
313
  value: inputSecondValue,
316
- delimiter: dateFormatDelimiter(),
314
+ delimiter: dateFormatDelimiter,
317
315
  lang: lang,
318
316
  format: format,
319
317
  includeEdgeDates: includeEdgeDates,
@@ -333,7 +331,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
333
331
  endValue = _getSortedValues2[1];
334
332
  var _getFormattedDates3 = getFormattedDates({
335
333
  value: startValue || null,
336
- delimiter: dateFormatDelimiter(),
334
+ delimiter: dateFormatDelimiter,
337
335
  lang: lang,
338
336
  format: format,
339
337
  includeEdgeDates: includeEdgeDates,
@@ -343,7 +341,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
343
341
  startFormattedDate = _getFormattedDates3.formattedDate;
344
342
  var _getFormattedDates4 = getFormattedDates({
345
343
  value: endValue || null,
346
- delimiter: dateFormatDelimiter(),
344
+ delimiter: dateFormatDelimiter,
347
345
  lang: lang,
348
346
  format: format,
349
347
  includeEdgeDates: includeEdgeDates,
@@ -361,7 +359,7 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
361
359
  isCalendarOpen: isInnerOpen,
362
360
  format: format,
363
361
  maskWithFormat: maskWithFormat,
364
- delimiter: dateFormatDelimiter(),
362
+ delimiter: dateFormatDelimiter,
365
363
  closeOnEsc: closeOnEsc,
366
364
  onToggle: handleToggle
367
365
  }),
@@ -475,10 +473,10 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
475
473
  updateExternalSecondDate(endExternalValue || undefined);
476
474
  }, [endExternalValue, format, lang]);
477
475
  useLayoutEffect(function () {
478
- !startExternalValue && updateExternalFirstDate(defaultFirstDate);
476
+ updateExternalFirstDate(defaultFirstDate);
479
477
  }, [defaultFirstDate, format, lang]);
480
478
  useLayoutEffect(function () {
481
- !endExternalValue && updateExternalSecondDate(defaultSecondDate);
479
+ updateExternalSecondDate(defaultSecondDate);
482
480
  }, [defaultSecondDate, format, lang]);
483
481
  var RootWrapper = useCallback(function (_ref6) {
484
482
  var children = _ref6.children;