@snack-uikit/fields 0.31.0 → 0.32.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 (134) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +179 -147
  3. package/dist/cjs/components/FieldDate/FieldDate.d.ts +15 -24
  4. package/dist/cjs/components/FieldDate/FieldDate.js +53 -41
  5. package/dist/cjs/components/FieldDate/index.d.ts +0 -1
  6. package/dist/cjs/components/FieldDate/index.js +1 -9
  7. package/dist/cjs/components/FieldSecure/FieldSecure.d.ts +1 -1
  8. package/dist/cjs/components/FieldSelect/hooks.d.ts +2 -2
  9. package/dist/cjs/components/FieldSelect/hooks.js +7 -3
  10. package/dist/cjs/components/FieldSlider/FieldSlider.d.ts +1 -1
  11. package/dist/cjs/components/FieldText/FieldText.d.ts +1 -1
  12. package/dist/cjs/components/FieldTextArea/FieldTextArea.d.ts +1 -1
  13. package/dist/cjs/components/FieldTime/FieldTime.d.ts +30 -0
  14. package/dist/cjs/components/FieldTime/FieldTime.js +298 -0
  15. package/dist/cjs/components/FieldTime/index.d.ts +1 -0
  16. package/dist/cjs/components/{FieldDate/hooks → FieldTime}/index.js +1 -1
  17. package/dist/cjs/components/FieldTime/styles.module.css +27 -0
  18. package/dist/cjs/components/index.d.ts +6 -5
  19. package/dist/cjs/components/index.js +6 -5
  20. package/dist/cjs/constants/dateFields.d.ts +24 -0
  21. package/dist/cjs/constants/dateFields.js +152 -0
  22. package/dist/cjs/constants/index.d.ts +2 -0
  23. package/dist/cjs/constants/index.js +26 -0
  24. package/dist/cjs/hooks/dateHandlers/index.d.ts +3 -0
  25. package/dist/cjs/hooks/dateHandlers/index.js +27 -0
  26. package/dist/cjs/{components/FieldDate/hooks → hooks/dateHandlers}/useDateField.d.ts +13 -5
  27. package/dist/cjs/{components/FieldDate/hooks → hooks/dateHandlers}/useDateField.js +49 -34
  28. package/dist/cjs/hooks/dateHandlers/useDateFieldHelpersForMode.d.ts +18 -0
  29. package/dist/cjs/hooks/dateHandlers/useDateFieldHelpersForMode.js +113 -0
  30. package/dist/cjs/hooks/index.d.ts +1 -0
  31. package/dist/cjs/hooks/index.js +1 -0
  32. package/dist/cjs/hooks/useCopyButton.js +1 -1
  33. package/dist/cjs/{types.d.ts → types/allFields.d.ts} +1 -1
  34. package/dist/cjs/types/dateFields.d.ts +11 -0
  35. package/dist/cjs/types/index.d.ts +2 -0
  36. package/dist/cjs/types/index.js +26 -0
  37. package/dist/cjs/utils/dateFields.d.ts +10 -0
  38. package/dist/cjs/utils/dateFields.js +71 -0
  39. package/dist/esm/components/FieldDate/FieldDate.d.ts +15 -24
  40. package/dist/esm/components/FieldDate/FieldDate.js +39 -31
  41. package/dist/esm/components/FieldDate/index.d.ts +0 -1
  42. package/dist/esm/components/FieldDate/index.js +0 -1
  43. package/dist/esm/components/FieldSecure/FieldSecure.d.ts +1 -1
  44. package/dist/esm/components/FieldSelect/hooks.d.ts +2 -2
  45. package/dist/esm/components/FieldSelect/hooks.js +9 -3
  46. package/dist/esm/components/FieldSlider/FieldSlider.d.ts +1 -1
  47. package/dist/esm/components/FieldText/FieldText.d.ts +1 -1
  48. package/dist/esm/components/FieldTextArea/FieldTextArea.d.ts +1 -1
  49. package/dist/esm/components/FieldTime/FieldTime.d.ts +30 -0
  50. package/dist/esm/components/FieldTime/FieldTime.js +161 -0
  51. package/dist/esm/components/FieldTime/index.d.ts +1 -0
  52. package/dist/esm/components/FieldTime/index.js +1 -0
  53. package/dist/esm/components/FieldTime/styles.module.css +27 -0
  54. package/dist/esm/components/index.d.ts +6 -5
  55. package/dist/esm/components/index.js +6 -5
  56. package/dist/esm/constants/dateFields.d.ts +24 -0
  57. package/dist/esm/constants/dateFields.js +103 -0
  58. package/dist/esm/constants/index.d.ts +2 -0
  59. package/dist/esm/constants/index.js +2 -0
  60. package/dist/esm/hooks/dateHandlers/index.d.ts +3 -0
  61. package/dist/esm/hooks/dateHandlers/index.js +3 -0
  62. package/dist/esm/{components/FieldDate/hooks → hooks/dateHandlers}/useDateField.d.ts +13 -5
  63. package/dist/esm/{components/FieldDate/hooks → hooks/dateHandlers}/useDateField.js +48 -35
  64. package/dist/esm/hooks/dateHandlers/useDateFieldHelpersForMode.d.ts +18 -0
  65. package/dist/esm/hooks/dateHandlers/useDateFieldHelpersForMode.js +95 -0
  66. package/dist/esm/hooks/index.d.ts +1 -0
  67. package/dist/esm/hooks/index.js +1 -0
  68. package/dist/esm/hooks/useCopyButton.js +1 -1
  69. package/dist/esm/{types.d.ts → types/allFields.d.ts} +1 -1
  70. package/dist/esm/types/dateFields.d.ts +11 -0
  71. package/dist/esm/types/index.d.ts +2 -0
  72. package/dist/esm/types/index.js +2 -0
  73. package/dist/esm/utils/dateFields.d.ts +10 -0
  74. package/dist/esm/utils/dateFields.js +59 -0
  75. package/package.json +10 -10
  76. package/src/components/FieldDate/FieldDate.tsx +72 -52
  77. package/src/components/FieldDate/index.ts +0 -1
  78. package/src/components/FieldSelect/hooks.ts +15 -3
  79. package/src/components/FieldTime/FieldTime.tsx +350 -0
  80. package/src/components/FieldTime/index.ts +1 -0
  81. package/src/components/FieldTime/styles.module.scss +41 -0
  82. package/src/components/index.ts +6 -5
  83. package/src/constants/dateFields.ts +127 -0
  84. package/src/constants/index.ts +2 -0
  85. package/src/hooks/dateHandlers/index.ts +3 -0
  86. package/src/{components/FieldDate/hooks → hooks/dateHandlers}/useDateField.ts +93 -47
  87. package/src/hooks/dateHandlers/useDateFieldHelpersForMode.ts +145 -0
  88. package/src/hooks/index.ts +1 -0
  89. package/src/hooks/useCopyButton.tsx +1 -1
  90. package/src/{types.ts → types/allFields.ts} +1 -1
  91. package/src/types/dateFields.ts +14 -0
  92. package/src/types/index.ts +2 -0
  93. package/src/utils/dateFields.ts +75 -0
  94. package/dist/cjs/components/FieldDate/constants.d.ts +0 -10
  95. package/dist/cjs/components/FieldDate/constants.js +0 -49
  96. package/dist/cjs/components/FieldDate/hooks/index.d.ts +0 -1
  97. package/dist/cjs/components/FieldDate/hooks/useDateFieldHelpers.d.ts +0 -10
  98. package/dist/cjs/components/FieldDate/hooks/useDateFieldHelpers.js +0 -82
  99. package/dist/cjs/components/FieldDate/types.d.ts +0 -6
  100. package/dist/cjs/components/FieldDate/utils.d.ts +0 -9
  101. package/dist/cjs/components/FieldDate/utils.js +0 -56
  102. package/dist/esm/components/FieldDate/constants.d.ts +0 -10
  103. package/dist/esm/components/FieldDate/constants.js +0 -28
  104. package/dist/esm/components/FieldDate/hooks/index.d.ts +0 -1
  105. package/dist/esm/components/FieldDate/hooks/index.js +0 -1
  106. package/dist/esm/components/FieldDate/hooks/useDateFieldHelpers.d.ts +0 -10
  107. package/dist/esm/components/FieldDate/hooks/useDateFieldHelpers.js +0 -66
  108. package/dist/esm/components/FieldDate/types.d.ts +0 -6
  109. package/dist/esm/components/FieldDate/utils.d.ts +0 -9
  110. package/dist/esm/components/FieldDate/utils.js +0 -43
  111. package/src/components/FieldDate/constants.ts +0 -33
  112. package/src/components/FieldDate/hooks/index.ts +0 -1
  113. package/src/components/FieldDate/hooks/useDateFieldHelpers.ts +0 -96
  114. package/src/components/FieldDate/types.ts +0 -6
  115. package/src/components/FieldDate/utils.ts +0 -49
  116. /package/dist/cjs/{constants.d.ts → constants/allFields.d.ts} +0 -0
  117. /package/dist/cjs/{constants.js → constants/allFields.js} +0 -0
  118. /package/dist/cjs/{components/FieldDate/hooks → hooks/dateHandlers}/useFocusHandlers.d.ts +0 -0
  119. /package/dist/cjs/{components/FieldDate/hooks → hooks/dateHandlers}/useFocusHandlers.js +0 -0
  120. /package/dist/cjs/{components/FieldDate/hooks → hooks/dateHandlers}/useHandlers.d.ts +0 -0
  121. /package/dist/cjs/{components/FieldDate/hooks → hooks/dateHandlers}/useHandlers.js +0 -0
  122. /package/dist/cjs/{components/FieldDate/types.js → types/allFields.js} +0 -0
  123. /package/dist/cjs/{types.js → types/dateFields.js} +0 -0
  124. /package/dist/esm/{constants.d.ts → constants/allFields.d.ts} +0 -0
  125. /package/dist/esm/{constants.js → constants/allFields.js} +0 -0
  126. /package/dist/esm/{components/FieldDate/hooks → hooks/dateHandlers}/useFocusHandlers.d.ts +0 -0
  127. /package/dist/esm/{components/FieldDate/hooks → hooks/dateHandlers}/useFocusHandlers.js +0 -0
  128. /package/dist/esm/{components/FieldDate/hooks → hooks/dateHandlers}/useHandlers.d.ts +0 -0
  129. /package/dist/esm/{components/FieldDate/hooks → hooks/dateHandlers}/useHandlers.js +0 -0
  130. /package/dist/esm/{components/FieldDate/types.js → types/allFields.js} +0 -0
  131. /package/dist/esm/{types.js → types/dateFields.js} +0 -0
  132. /package/src/{constants.ts → constants/allFields.ts} +0 -0
  133. /package/src/{components/FieldDate/hooks → hooks/dateHandlers}/useFocusHandlers.ts +0 -0
  134. /package/src/{components/FieldDate/hooks → hooks/dateHandlers}/useHandlers.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,28 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # 0.32.0 (2024-10-31)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **PDS-808:** FieldSelectSingle clear value on input change in searchable mode ([7470936](https://github.com/cloud-ru-tech/snack-uikit/commit/74709365c60535da9ed60c088c412d701af13084))
12
+
13
+
14
+ ### Features
15
+
16
+ * **PDS-438:** add field-time ([a6fb31e](https://github.com/cloud-ru-tech/snack-uikit/commit/a6fb31e6f69c5a1ea57297be791542f5e4b1a106))
17
+
18
+
19
+ ### BREAKING CHANGES
20
+
21
+
22
+ * **PDS-438:** add showSeconds prop, remove locale prop ([0235eb7](https://github.com/cloud-ru-tech/snack-uikit/commit/0235eb7a5a7f7d8ac5e4e7cb03fe6e2408682b54))
23
+ * **PDS-438:** add time selection into field-date, change type of value to Date ([1fe99a6](https://github.com/cloud-ru-tech/snack-uikit/commit/1fe99a6cacaa6bf3a1f53ea95e69f95177d57473))
24
+
25
+
26
+
27
+
6
28
  # 0.31.0 (2024-10-28)
7
29
 
8
30
 
package/README.md CHANGED
@@ -161,6 +161,11 @@ const [isOpen, setIsOpen] = useState(false);
161
161
  enableFuzzySearch={true}
162
162
  />;
163
163
  ```
164
+ ## Особенности работы FieldSlider-a
165
+
166
+ Для корректной работы компонента, свойство `marks` должно быть либо **константой**, либо **мемоизировано**,
167
+ т.к. это на этой свойство завязана логика обновления ui.
168
+
164
169
  ## Особенности работы FieldStepper-a
165
170
 
166
171
  FieldStepper в основном предназначен для работы с небольшими числами,
@@ -186,94 +191,91 @@ FieldStepper в основном предназначен для работы с
186
191
 
187
192
  [//]: DOCUMENTATION_SECTION_START
188
193
  [//]: THIS_SECTION_IS_AUTOGENERATED_PLEASE_DONT_EDIT_IT
189
- ## FieldDecorator
194
+ ## FieldColor
190
195
  ### Props
191
196
  | name | type | default value | description |
192
197
  |------|------|---------------|-------------|
193
- | children* | `ReactNode` | - | Контент |
194
- | className | `string` | - | CSS-класс |
195
- | disabled | `boolean` | - | Деактивирован ли элемент Является ли поле деактивированным |
196
- | readonly | `boolean` | - | Является ли поле доступным только на чтение Доступно ли поле только на чтение |
197
- | error | `string` | - | |
198
+ | open | `boolean` | - | Открыт color-picker |
199
+ | onOpenChange | `(value: boolean) => void` | - | Колбек открытия пикера |
200
+ | showCopyButton | `boolean` | - | Отображение кнопки копирования |
201
+ | showClearButton | `boolean` | true | Отображение кнопки Очистки поля |
202
+ | value | `string` | - | Значение input |
203
+ | onChange | `(value: string) => void` | - | |
204
+ | withAlpha | `boolean` | - | Значение с альфаканалом |
205
+ | autoApply | `boolean` | - | Применять изменения автоматически, если значение false - то изменения происходят по кнопке |
206
+ | className | `string` | - | Класснейм |
207
+ | colorMode | `{ hex?: boolean; rgb?: boolean; hsv?: boolean; }` | - | |
208
+ | id | `string` | - | Значение html-атрибута id |
209
+ | name | `string` | - | Значение html-атрибута name |
210
+ | disabled | `boolean` | - | Является ли поле деактивированным |
211
+ | readonly | `boolean` | - | Является ли поле доступным только для чтения |
212
+ | onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
213
+ | onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
214
+ | placeholder | `string` | - | Значение плейсхолдера |
198
215
  | label | `string` | - | Лейбл |
199
- | caption | `string` | - | Подпись справа от лейбла |
200
216
  | labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
201
- | labelFor | `string` | - | Аттрибут for |
202
217
  | required | `boolean` | - | Является ли поле обязательным |
203
- | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
204
- | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
205
- | length | `{ current: number; max?: number; }` | - | Допустимая длинна текста |
218
+ | caption | `string` | - | Подпись справа от лейбла |
206
219
  | hint | `string` | - | Подсказка внизу |
207
- | validationState | enum ValidationState: `"default"`, `"error"`, `"warning"`, `"success"` | default | Состояние валидации |
208
220
  | showHintIcon | `boolean` | - | Отображать иконку подсказки |
209
- ## FieldText
221
+ | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
222
+ | validationState | enum ValidationState: `"error"`, `"default"`, `"warning"`, `"success"` | default | Состояние валидации |
223
+ | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
224
+ | error | `string` | - | |
225
+ | ref | `LegacyRef<HTMLInputElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} |
226
+ | key | `Key` | - | |
227
+ ## FieldDate
210
228
  ### Props
211
229
  | name | type | default value | description |
212
230
  |------|------|---------------|-------------|
213
- | showCopyButton | `boolean` | - | Отображение кнопки Копировать для поля (актуально только для `readonly = true`) |
214
- | showClearButton | `boolean` | true | Отображение кнопки очистки поля |
215
- | allowMoreThanMaxLength | `boolean` | - | Можно ли вводить больше разрешённого кол-ва символов |
216
- | prefixIcon | `ReactElement<any, string \| JSXElementConstructor<any>>` | - | Иконка-префикс для поля |
217
- | prefix | `ReactNode` | - | Произвольный префикс для поля |
218
- | postfix | `ReactNode` | - | Произвольный постфикс для поля |
219
- | button | `Button` | - | Кнопка действия внутри поля |
220
- | value | `string` | - | Значение input |
221
- | onChange | `(value: string, e?: ChangeEvent<HTMLInputElement>) => void` | - | Колбек смены значения |
222
- | disabled | `boolean` | - | Является ли поле деактивированным |
223
- | readonly | `boolean` | - | Является ли поле доступным только для чтения |
231
+ | mode* | "date" \| "date-time" | - | |
232
+ | open | `boolean` | - | Открыт date-picker |
233
+ | onOpenChange | `(value: boolean) => void` | - | Колбек открытия пикера |
234
+ | value | `Date` | - | Значение поля |
235
+ | onChange | `(value: Date) => void` | - | Колбек смены значения |
236
+ | showCopyButton | `boolean` | - | Отображение кнопки копирования |
237
+ | showClearButton | `boolean` | true | Отображение кнопки Очистки поля |
238
+ | buildCellProps | `(date: Date, viewMode: ViewMode) => { isDisabled?: boolean; isHoliday?: boolean } ;` | - | Колбек установки свойств ячеек календаря. Вызывается на построение каждой ячейки. Принимает два параметра: <br> `Date` - дата ячейки <br> `ViewMode`: <br> - `month` отображение месяца, каждая ячейка - 1 день <br> - `year` отображение года, каждая ячейка - 1 месяц <br> - `decade` отображение декады, каждая ячейка - 1 год <br><br> Колбек должен возвращать объект с полями, отвечающими за отключение и подкраску ячейки. |
224
239
  | id | `string` | - | Значение html-атрибута id |
225
240
  | name | `string` | - | Значение html-атрибута name |
226
- | placeholder | `string` | - | Значение плейсхолдера |
227
- | maxLength | `number` | - | Максимальная длина вводимого значения |
241
+ | disabled | `boolean` | - | Является ли поле деактивированным |
242
+ | readonly | `boolean` | - | Является ли поле доступным только для чтения |
228
243
  | onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
229
244
  | onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
230
- | autoComplete | `string \| boolean` | false | Включен ли автокомплит для поля |
231
- | error | `string` | - | |
232
245
  | className | `string` | - | CSS-класс |
233
246
  | label | `string` | - | Лейбл |
234
- | caption | `string` | - | Подпись справа от лейбла |
235
247
  | labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
236
248
  | required | `boolean` | - | Является ли поле обязательным |
237
- | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
238
- | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
249
+ | caption | `string` | - | Подпись справа от лейбла |
239
250
  | hint | `string` | - | Подсказка внизу |
240
- | validationState | enum ValidationState: `"default"`, `"error"`, `"warning"`, `"success"` | default | Состояние валидации |
241
251
  | showHintIcon | `boolean` | - | Отображать иконку подсказки |
252
+ | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
253
+ | validationState | enum ValidationState: `"error"`, `"default"`, `"warning"`, `"success"` | default | Состояние валидации |
254
+ | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
255
+ | error | `string` | - | |
242
256
  | ref | `LegacyRef<HTMLInputElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} |
243
257
  | key | `Key` | - | |
244
- ## FieldTextArea
258
+ | showSeconds | `boolean` | - | |
259
+ ## FieldDecorator
245
260
  ### Props
246
261
  | name | type | default value | description |
247
262
  |------|------|---------------|-------------|
248
- | minRows | `number` | 3 | Минимальное кол-во строк, до которого размер поля может быть увеличен |
249
- | maxRows | `number` | 1000 | Максимальное кол-во строк, до которого размер поля может быть увеличен |
250
- | resizable | `boolean` | - | Может ли ли пользователь изменять размеры поля (если св-во не включено, поле автоматически меняет свой размер) |
251
- | onChange | `(value: string, e?: ChangeEvent<HTMLTextAreaElement>) => void` | - | Колбек смены значения |
252
- | showCopyButton | `boolean` | - | Отображение кнопки Копировать для поля (актуально только для `readonly = true`) |
253
- | showClearButton | `boolean` | true | Отображение кнопки очистки поля |
254
- | allowMoreThanMaxLength | `boolean` | true | Можно ли вводить больше разрешённого кол-ва символов |
255
- | value | `string` | - | HTML-аттрибут value |
256
- | disabled | `boolean` | - | Является ли поле деактивированным |
257
- | readonly | `boolean` | - | Является ли поле доступным только на чтение |
258
- | id | `string` | - | HTML-аттрибут id |
259
- | name | `string` | - | HTML-аттрибут name |
260
- | placeholder | `string` | - | Плейсхолдер |
261
- | maxLength | `number` | - | Максимальное кол-во символов |
262
- | onFocus | `FocusEventHandler<HTMLTextAreaElement>` | - | Колбек получения фокуса |
263
- | onBlur | `FocusEventHandler<HTMLTextAreaElement>` | - | Колбек потери фокуса |
264
- | error | `string` | - | |
263
+ | children* | `ReactNode` | - | Контент |
265
264
  | className | `string` | - | CSS-класс |
265
+ | disabled | `boolean` | - | Деактивирован ли элемент Является ли поле деактивированным |
266
+ | readonly | `boolean` | - | Является ли поле доступным только на чтение Доступно ли поле только на чтение |
267
+ | error | `string` | - | |
266
268
  | label | `string` | - | Лейбл |
267
269
  | caption | `string` | - | Подпись справа от лейбла |
268
270
  | labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
271
+ | labelFor | `string` | - | Аттрибут for |
269
272
  | required | `boolean` | - | Является ли поле обязательным |
270
273
  | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
271
274
  | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
275
+ | length | `{ current: number; max?: number; }` | - | Допустимая длинна текста |
272
276
  | hint | `string` | - | Подсказка внизу |
273
- | validationState | enum ValidationState: `"default"`, `"error"`, `"warning"`, `"success"` | default | Состояние валидации |
277
+ | validationState | enum ValidationState: `"error"`, `"default"`, `"warning"`, `"success"` | default | Состояние валидации |
274
278
  | showHintIcon | `boolean` | - | Отображать иконку подсказки |
275
- | ref | `LegacyRef<HTMLTextAreaElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} |
276
- | key | `Key` | - | |
277
279
  ## FieldSecure
278
280
  ### Props
279
281
  | name | type | default value | description |
@@ -284,63 +286,28 @@ FieldStepper в основном предназначен для работы с
284
286
  | allowMoreThanMaxLength | `boolean` | - | Можно ли вводить больше разрешённого кол-ва символов |
285
287
  | prefixIcon | `ReactElement<any, string \| JSXElementConstructor<any>>` | - | Иконка-префикс для поля |
286
288
  | asyncValueGetter | `() => Promise<string>` | - | Свойство позволяет грузить данные в поле по требованию |
287
- | value | `string` | - | Значение input |
288
289
  | onChange | `(value: string, e?: ChangeEvent<HTMLInputElement>) => void` | - | Колбек смены значения |
289
- | disabled | `boolean` | - | Является ли поле деактивированным |
290
- | readonly | `boolean` | - | Является ли поле доступным только для чтения |
290
+ | value | `string` | - | Значение input |
291
291
  | id | `string` | - | Значение html-атрибута id |
292
292
  | name | `string` | - | Значение html-атрибута name |
293
- | placeholder | `string` | - | Значение плейсхолдера |
294
- | maxLength | `number` | - | Максимальная длина вводимого значения |
293
+ | disabled | `boolean` | - | Является ли поле деактивированным |
294
+ | readonly | `boolean` | - | Является ли поле доступным только для чтения |
295
295
  | onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
296
296
  | onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
297
+ | placeholder | `string` | - | Значение плейсхолдера |
298
+ | maxLength | `number` | - | Максимальная длина вводимого значения |
297
299
  | autoComplete | `string \| boolean` | false | Включен ли автокомплит для поля |
298
- | error | `string` | - | |
299
300
  | className | `string` | - | CSS-класс |
300
301
  | label | `string` | - | Лейбл |
301
- | caption | `string` | - | Подпись справа от лейбла |
302
302
  | labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
303
303
  | required | `boolean` | - | Является ли поле обязательным |
304
- | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
305
- | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
304
+ | caption | `string` | - | Подпись справа от лейбла |
306
305
  | hint | `string` | - | Подсказка внизу |
307
- | validationState | enum ValidationState: `"default"`, `"error"`, `"warning"`, `"success"` | default | Состояние валидации |
308
306
  | showHintIcon | `boolean` | - | Отображать иконку подсказки |
309
- | ref | `LegacyRef<HTMLInputElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} |
310
- | key | `Key` | - | |
311
- ## parseDate
312
- `helper`
313
-
314
- Преобразует строковое значение поля FieldDate в тип Date
315
- ## FieldDate
316
- ### Props
317
- | name | type | default value | description |
318
- |------|------|---------------|-------------|
319
- | value* | `string` | - | Значение input |
320
- | open | `boolean` | - | Открыт date-picker |
321
- | onOpenChange | `(value: boolean) => void` | - | Колбек открытия пикера |
322
- | onChange | `(value: string) => void` | - | Колбек смены значения |
323
- | showCopyButton | `boolean` | - | Отображение кнопки копирования |
324
- | showClearButton | `boolean` | true | Отображение кнопки Очистки поля |
325
- | locale | `Locale` | new Intl.Locale('ru-RU') | Текущая локаль календаря |
326
- | buildCellProps | `(date: Date, viewMode: ViewMode) => { isDisabled?: boolean; isHoliday?: boolean } ;` | - | Колбек установки свойств ячеек календаря. Вызывается на построение каждой ячейки. Принимает два параметра: <br> `Date` - дата ячейки <br> `ViewMode`: <br> - `month` отображение месяца, каждая ячейка - 1 день <br> - `year` отображение года, каждая ячейка - 1 месяц <br> - `decade` отображение декады, каждая ячейка - 1 год <br><br> Колбек должен возвращать объект с полями, отвечающими за отключение и подкраску ячейки. |
327
- | disabled | `boolean` | - | Является ли поле деактивированным |
328
- | readonly | `boolean` | - | Является ли поле доступным только для чтения |
329
- | id | `string` | - | Значение html-атрибута id |
330
- | name | `string` | - | Значение html-атрибута name |
331
- | onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
332
- | onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
333
- | error | `string` | - | |
334
- | className | `string` | - | CSS-класс |
335
- | label | `string` | - | Лейбл |
336
- | caption | `string` | - | Подпись справа от лейбла |
337
- | labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
338
- | required | `boolean` | - | Является ли поле обязательным |
339
307
  | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
308
+ | validationState | enum ValidationState: `"error"`, `"default"`, `"warning"`, `"success"` | default | Состояние валидации |
340
309
  | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
341
- | hint | `string` | - | Подсказка внизу |
342
- | validationState | enum ValidationState: `"default"`, `"error"`, `"warning"`, `"success"` | default | Состояние валидации |
343
- | showHintIcon | `boolean` | - | Отображать иконку подсказки |
310
+ | error | `string` | - | |
344
311
  | ref | `LegacyRef<HTMLInputElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} |
345
312
  | key | `Key` | - | |
346
313
  ## FieldSelect
@@ -348,35 +315,35 @@ FieldStepper в основном предназначен для работы с
348
315
  | name | type | default value | description |
349
316
  |------|------|---------------|-------------|
350
317
  | options* | `OptionProps[]` | - | |
351
- | disabled | `boolean` | false | Является ли поле деактивированным |
352
- | readonly | `boolean` | false false | Является ли поле доступным только для чтения |
353
318
  | id | `string` | - | Значение html-атрибута id |
354
319
  | name | `string` | - | Значение html-атрибута name |
355
- | placeholder | `string` | - | Значение плейсхолдера |
320
+ | disabled | `boolean` | false | Является ли поле деактивированным |
321
+ | readonly | `boolean` | false false | Является ли поле доступным только для чтения |
356
322
  | onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
357
323
  | onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
324
+ | placeholder | `string` | - | Значение плейсхолдера |
358
325
  | onKeyDown | `KeyboardEventHandler<HTMLInputElement>` | - | Колбек обработки нажатия клавиши клавиатуры |
359
- | error | `string` | - | |
360
326
  | className | `string` | - | CSS-класс |
361
327
  | label | `string` | - | Лейбл |
362
- | caption | `string` | - | Подпись справа от лейбла |
363
328
  | labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
364
329
  | required | `boolean` | - | Является ли поле обязательным |
365
- | size | enum Size: `"s"`, `"m"`, `"l"` | - | Размер |
366
- | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
330
+ | caption | `string` | - | Подпись справа от лейбла |
367
331
  | hint | `string` | - | Подсказка внизу |
368
- | validationState | enum ValidationState: `"default"`, `"error"`, `"warning"`, `"success"` | - | Состояние валидации |
369
332
  | showHintIcon | `boolean` | - | Отображать иконку подсказки |
333
+ | size | enum Size: `"s"`, `"m"`, `"l"` | - | Размер |
334
+ | validationState | enum ValidationState: `"error"`, `"default"`, `"warning"`, `"success"` | - | Состояние валидации |
335
+ | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
336
+ | error | `string` | - | |
370
337
  | loading | `boolean` | - | |
371
338
  | prefix | `ReactNode` | - | Произвольный префикс для поля |
372
339
  | postfix | `ReactNode` | - | Произвольный постфикс для поля |
373
- | value | `ItemId \| ItemId[]` | - | Controlled состояние |
374
340
  | onChange | `OnChangeHandler<any>` | - | Controlled обработчик измения состояния |
341
+ | value | `ItemId \| ItemId[]` | - | Controlled состояние |
375
342
  | defaultValue | `ItemId \| ItemId[]` | - | Начальное состояние |
376
- | open | `boolean` | - | |
377
- | onOpenChange | `(open: boolean) => void` | - | |
378
343
  | showCopyButton | `boolean` | - | Отображение кнопки Копировать для поля (актуально только для `readonly = true`) |
379
344
  | showClearButton | `boolean` | true | Отображение кнопки очистки поля |
345
+ | open | `boolean` | - | |
346
+ | onOpenChange | `(open: boolean) => void` | - | |
380
347
  | prefixIcon | `ReactElement<any, string \| JSXElementConstructor<any>>` | - | Иконка-префикс для поля |
381
348
  | widthStrategy | enum PopoverWidthStrategy: `"auto"`, `"gte"`, `"eq"` | - | |
382
349
  | pinTop | `OptionProps[]` | - | |
@@ -399,6 +366,41 @@ FieldStepper в основном предназначен для работы с
399
366
  | key | `Key` | - | |
400
367
  | removeByBackspace | `boolean` | - | |
401
368
  | resetSearchOnOptionSelection | `boolean` | - | Поведение строки поиска при выборе опции из списка |
369
+ ## FieldSlider
370
+ ### Props
371
+ | name | type | default value | description |
372
+ |------|------|---------------|-------------|
373
+ | postfixIcon | `ReactElement<any, string \| JSXElementConstructor<any>>` | - | Иконка-постфикс для поля |
374
+ | showScaleBar | `boolean` | true | Отображение линейки |
375
+ | textInputFormatter | `TextInputFormatter` | - | Функция для форматирования значений в текстовом поле |
376
+ | unbindInputFromMarks | `boolean` | - | Отвязать текстовое поле от значений на линейке |
377
+ | prefix | `ReactNode` | - | Произвольный префикс для поля |
378
+ | postfix | `ReactNode` | - | Произвольный постфикс для поля |
379
+ | id | `string` | - | Значение html-атрибута id |
380
+ | name | `string` | - | Значение html-атрибута name |
381
+ | disabled | `boolean` | - | Является ли поле деактивированным |
382
+ | readonly | `boolean` | - | Является ли поле доступным только для чтения |
383
+ | onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
384
+ | onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
385
+ | onChange | `(value: number \| number[]) => void` | - | |
386
+ | value | `number \| number[]` | - | |
387
+ | range | `boolean` | - | |
388
+ | tipFormatter | `(value: string \| number) => ReactNode` | - | |
389
+ | step | `number` | - | |
390
+ | min | `number` | - | |
391
+ | max | `number` | - | |
392
+ | marks | `Record<string \| number, ReactNode \| MarkObj>` | - | |
393
+ | className | `string` | - | CSS-класс |
394
+ | label | `string` | - | Лейбл |
395
+ | labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
396
+ | required | `boolean` | - | Является ли поле обязательным |
397
+ | caption | `string` | - | Подпись справа от лейбла |
398
+ | hint | `string` | - | Подсказка внизу |
399
+ | showHintIcon | `boolean` | - | Отображать иконку подсказки |
400
+ | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
401
+ | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
402
+ | ref | `LegacyRef<HTMLInputElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} |
403
+ | key | `Key` | - | |
402
404
  ## FieldStepper
403
405
  ### Props
404
406
  | name | type | default value | description |
@@ -409,93 +411,123 @@ FieldStepper в основном предназначен для работы с
409
411
  | allowMoreThanLimits | `boolean` | true | Можно ли вводить c клавиатуры числа, выходящие за пределы min/max |
410
412
  | prefix | `ReactNode` | - | Произвольный префикс для поля |
411
413
  | postfix | `ReactNode` | - | Произвольный постфикс для поля |
412
- | disabled | `boolean` | - | Является ли поле деактивированным |
413
- | readonly | `boolean` | - | Является ли поле доступным только для чтения |
414
414
  | id | `string` | - | Значение html-атрибута id |
415
415
  | name | `string` | - | Значение html-атрибута name |
416
+ | disabled | `boolean` | - | Является ли поле деактивированным |
417
+ | readonly | `boolean` | - | Является ли поле доступным только для чтения |
416
418
  | onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
417
419
  | onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
418
420
  | min | `number` | Number.NEGATIVE_INFINITY | Минимальное значение поля |
419
421
  | max | `number` | Number.POSITIVE_INFINITY | Максимальное значение поля |
420
- | error | `string` | - | |
421
422
  | className | `string` | - | CSS-класс |
422
423
  | label | `string` | - | Лейбл |
423
- | caption | `string` | - | Подпись справа от лейбла |
424
424
  | labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
425
425
  | required | `boolean` | - | Является ли поле обязательным |
426
- | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
427
- | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
426
+ | caption | `string` | - | Подпись справа от лейбла |
428
427
  | hint | `string` | - | Подсказка внизу |
429
- | validationState | enum ValidationState: `"default"`, `"error"`, `"warning"`, `"success"` | default | Состояние валидации |
430
428
  | showHintIcon | `boolean` | - | Отображать иконку подсказки |
429
+ | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
430
+ | validationState | enum ValidationState: `"error"`, `"default"`, `"warning"`, `"success"` | default | Состояние валидации |
431
+ | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
432
+ | error | `string` | - | |
431
433
  | ref | `LegacyRef<HTMLInputElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} |
432
434
  | key | `Key` | - | |
433
- ## FieldSlider
435
+ ## FieldText
434
436
  ### Props
435
437
  | name | type | default value | description |
436
438
  |------|------|---------------|-------------|
437
- | postfixIcon | `ReactElement<any, string \| JSXElementConstructor<any>>` | - | Иконка-постфикс для поля |
438
- | showScaleBar | `boolean` | true | Отображение линейки |
439
- | textInputFormatter | `TextInputFormatter` | - | Функция для форматирования значений в текстовом поле |
440
- | unbindInputFromMarks | `boolean` | - | Отвязать текстовое поле от значений на линейке |
439
+ | showCopyButton | `boolean` | - | Отображение кнопки Копировать для поля (актуально только для `readonly = true`) |
440
+ | showClearButton | `boolean` | true | Отображение кнопки очистки поля |
441
+ | allowMoreThanMaxLength | `boolean` | - | Можно ли вводить больше разрешённого кол-ва символов |
442
+ | prefixIcon | `ReactElement<any, string \| JSXElementConstructor<any>>` | - | Иконка-префикс для поля |
441
443
  | prefix | `ReactNode` | - | Произвольный префикс для поля |
442
444
  | postfix | `ReactNode` | - | Произвольный постфикс для поля |
443
- | disabled | `boolean` | - | Является ли поле деактивированным |
444
- | readonly | `boolean` | - | Является ли поле доступным только для чтения |
445
+ | button | `Button` | - | Кнопка действия внутри поля |
446
+ | onChange | `(value: string, e?: ChangeEvent<HTMLInputElement>) => void` | - | Колбек смены значения |
447
+ | value | `string` | - | Значение input |
445
448
  | id | `string` | - | Значение html-атрибута id |
446
449
  | name | `string` | - | Значение html-атрибута name |
450
+ | disabled | `boolean` | - | Является ли поле деактивированным |
451
+ | readonly | `boolean` | - | Является ли поле доступным только для чтения |
447
452
  | onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
448
453
  | onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
449
- | value | `number \| number[]` | - | |
450
- | onChange | `(value: number \| number[]) => void` | - | |
451
- | range | `boolean` | - | |
452
- | tipFormatter | `(value: string \| number) => ReactNode` | - | |
453
- | step | `number` | - | |
454
- | min | `number` | - | |
455
- | max | `number` | - | |
456
- | marks | `Record<string \| number, ReactNode \| MarkObj>` | - | |
454
+ | placeholder | `string` | - | Значение плейсхолдера |
455
+ | maxLength | `number` | - | Максимальная длина вводимого значения |
456
+ | autoComplete | `string \| boolean` | false | Включен ли автокомплит для поля |
457
457
  | className | `string` | - | CSS-класс |
458
458
  | label | `string` | - | Лейбл |
459
- | caption | `string` | - | Подпись справа от лейбла |
460
459
  | labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
461
460
  | required | `boolean` | - | Является ли поле обязательным |
461
+ | caption | `string` | - | Подпись справа от лейбла |
462
+ | hint | `string` | - | Подсказка внизу |
463
+ | showHintIcon | `boolean` | - | Отображать иконку подсказки |
462
464
  | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
465
+ | validationState | enum ValidationState: `"error"`, `"default"`, `"warning"`, `"success"` | default | Состояние валидации |
463
466
  | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
467
+ | error | `string` | - | |
468
+ | ref | `LegacyRef<HTMLInputElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} |
469
+ | key | `Key` | - | |
470
+ ## FieldTextArea
471
+ ### Props
472
+ | name | type | default value | description |
473
+ |------|------|---------------|-------------|
474
+ | minRows | `number` | 3 | Минимальное кол-во строк, до которого размер поля может быть увеличен |
475
+ | maxRows | `number` | 1000 | Максимальное кол-во строк, до которого размер поля может быть увеличен |
476
+ | resizable | `boolean` | - | Может ли ли пользователь изменять размеры поля (если св-во не включено, поле автоматически меняет свой размер) |
477
+ | onChange | `(value: string, e?: ChangeEvent<HTMLTextAreaElement>) => void` | - | Колбек смены значения |
478
+ | showCopyButton | `boolean` | - | Отображение кнопки Копировать для поля (актуально только для `readonly = true`) |
479
+ | showClearButton | `boolean` | true | Отображение кнопки очистки поля |
480
+ | allowMoreThanMaxLength | `boolean` | true | Можно ли вводить больше разрешённого кол-ва символов |
481
+ | value | `string` | - | HTML-аттрибут value |
482
+ | id | `string` | - | HTML-аттрибут id |
483
+ | name | `string` | - | HTML-аттрибут name |
484
+ | disabled | `boolean` | - | Является ли поле деактивированным |
485
+ | readonly | `boolean` | - | Является ли поле доступным только на чтение |
486
+ | onFocus | `FocusEventHandler<HTMLTextAreaElement>` | - | Колбек получения фокуса |
487
+ | onBlur | `FocusEventHandler<HTMLTextAreaElement>` | - | Колбек потери фокуса |
488
+ | placeholder | `string` | - | Плейсхолдер |
489
+ | maxLength | `number` | - | Максимальное кол-во символов |
490
+ | className | `string` | - | CSS-класс |
491
+ | label | `string` | - | Лейбл |
492
+ | labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
493
+ | required | `boolean` | - | Является ли поле обязательным |
494
+ | caption | `string` | - | Подпись справа от лейбла |
464
495
  | hint | `string` | - | Подсказка внизу |
465
496
  | showHintIcon | `boolean` | - | Отображать иконку подсказки |
466
- | ref | `LegacyRef<HTMLInputElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} |
497
+ | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
498
+ | validationState | enum ValidationState: `"error"`, `"default"`, `"warning"`, `"success"` | default | Состояние валидации |
499
+ | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
500
+ | error | `string` | - | |
501
+ | ref | `LegacyRef<HTMLTextAreaElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} |
467
502
  | key | `Key` | - | |
468
- ## FieldColor
503
+ ## FieldTime
469
504
  ### Props
470
505
  | name | type | default value | description |
471
506
  |------|------|---------------|-------------|
472
- | open | `boolean` | - | Открыт color-picker |
507
+ | open | `boolean` | - | Открыт time-picker |
473
508
  | onOpenChange | `(value: boolean) => void` | - | Колбек открытия пикера |
509
+ | value | `TimeValue` | - | Значение поля |
510
+ | onChange | `(value?: TimeValue) => void` | - | Колбек смены значения |
474
511
  | showCopyButton | `boolean` | - | Отображение кнопки копирования |
512
+ | showSeconds | `boolean` | true | Показывать ли секунды |
475
513
  | showClearButton | `boolean` | true | Отображение кнопки Очистки поля |
476
- | value | `string` | - | Значение input |
477
- | onChange | `(value: string) => void` | - | |
478
- | className | `string` | - | Класснейм |
479
- | withAlpha | `boolean` | - | Значение с альфаканалом |
480
- | autoApply | `boolean` | - | Применять изменения автоматически, если значение false - то изменения происходят по кнопке |
481
- | colorMode | `{ hex?: boolean; rgb?: boolean; hsv?: boolean; }` | - | |
482
- | disabled | `boolean` | - | Является ли поле деактивированным |
483
- | readonly | `boolean` | - | Является ли поле доступным только для чтения |
484
514
  | id | `string` | - | Значение html-атрибута id |
485
515
  | name | `string` | - | Значение html-атрибута name |
486
- | placeholder | `string` | - | Значение плейсхолдера |
516
+ | disabled | `boolean` | - | Является ли поле деактивированным |
517
+ | readonly | `boolean` | - | Является ли поле доступным только для чтения |
487
518
  | onFocus | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки получения фокуса |
488
519
  | onBlur | `FocusEventHandler<HTMLInputElement>` | - | Колбек обработки потери фокуса |
489
- | error | `string` | - | |
520
+ | className | `string` | - | CSS-класс |
490
521
  | label | `string` | - | Лейбл |
491
- | caption | `string` | - | Подпись справа от лейбла |
492
522
  | labelTooltip | `ReactNode` | - | Всплывающая подсказка лейбла |
493
523
  | required | `boolean` | - | Является ли поле обязательным |
494
- | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
495
- | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
524
+ | caption | `string` | - | Подпись справа от лейбла |
496
525
  | hint | `string` | - | Подсказка внизу |
497
- | validationState | enum ValidationState: `"default"`, `"error"`, `"warning"`, `"success"` | default | Состояние валидации |
498
526
  | showHintIcon | `boolean` | - | Отображать иконку подсказки |
527
+ | size | enum Size: `"s"`, `"m"`, `"l"` | SIZE.S | Размер |
528
+ | validationState | enum ValidationState: `"error"`, `"default"`, `"warning"`, `"success"` | default | Состояние валидации |
529
+ | labelTooltipPlacement | enum Placement: `"left"`, `"left-start"`, `"left-end"`, `"right"`, `"right-start"`, `"right-end"`, `"top"`, `"top-start"`, `"top-end"`, `"bottom"`, `"bottom-start"`, `"bottom-end"` | top | Расположение подсказки лейбла |
530
+ | error | `string` | - | |
499
531
  | ref | `LegacyRef<HTMLInputElement>` | - | Allows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref). @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs} |
500
532
  | key | `Key` | - | |
501
533
 
@@ -1,16 +1,24 @@
1
1
  import { CalendarProps } from '@snack-uikit/calendar';
2
2
  import { InputPrivateProps } from '@snack-uikit/input-private';
3
3
  import { WithSupportProps } from '@snack-uikit/utils';
4
+ import { MODES } from '../../constants';
5
+ import { Mode } from '../../types';
4
6
  import { FieldDecoratorProps } from '../FieldDecorator';
5
- type InputProps = Pick<InputPrivateProps, 'id' | 'name' | 'value' | 'disabled' | 'readonly' | 'onFocus' | 'onBlur'>;
7
+ type InputProps = Pick<InputPrivateProps, 'id' | 'name' | 'disabled' | 'readonly' | 'onFocus' | 'onBlur'>;
6
8
  type WrapperProps = Pick<FieldDecoratorProps, 'className' | 'label' | 'labelTooltip' | 'required' | 'caption' | 'hint' | 'showHintIcon' | 'size' | 'validationState' | 'labelTooltipPlacement' | 'error'>;
9
+ type FieldDateWithSeconds = {
10
+ mode: typeof MODES.DateTime;
11
+ showSeconds?: boolean;
12
+ };
7
13
  type FieldDateOwnProps = {
8
14
  /** Открыт date-picker */
9
15
  open?: boolean;
10
16
  /** Колбек открытия пикера */
11
17
  onOpenChange?(value: boolean): void;
18
+ /** Значение поля */
19
+ value?: Date;
12
20
  /** Колбек смены значения */
13
- onChange?(value: string): void;
21
+ onChange?(value: Date | undefined): void;
14
22
  /** Отображение кнопки копирования */
15
23
  showCopyButton?: boolean;
16
24
  /**
@@ -18,27 +26,10 @@ type FieldDateOwnProps = {
18
26
  * @default true
19
27
  */
20
28
  showClearButton?: boolean;
21
- /** Текущая локаль календаря */
22
- locale?: Intl.Locale;
23
- } & Pick<CalendarProps, 'buildCellProps'>;
29
+ mode: Mode;
30
+ } & Pick<CalendarProps, 'buildCellProps'> & ({
31
+ mode: typeof MODES.Date;
32
+ } | FieldDateWithSeconds);
24
33
  export type FieldDateProps = WithSupportProps<FieldDateOwnProps & InputProps & WrapperProps>;
25
- export declare const FieldDate: import("react").ForwardRefExoticComponent<{
26
- 'data-test-id'?: string;
27
- } & import("react").AriaAttributes & {
28
- /** Открыт date-picker */
29
- open?: boolean;
30
- /** Колбек открытия пикера */
31
- onOpenChange?(value: boolean): void;
32
- /** Колбек смены значения */
33
- onChange?(value: string): void;
34
- /** Отображение кнопки копирования */
35
- showCopyButton?: boolean;
36
- /**
37
- * Отображение кнопки Очистки поля
38
- * @default true
39
- */
40
- showClearButton?: boolean;
41
- /** Текущая локаль календаря */
42
- locale?: Intl.Locale;
43
- } & Pick<CalendarProps, "buildCellProps"> & InputProps & WrapperProps & import("react").RefAttributes<HTMLInputElement>>;
34
+ export declare const FieldDate: import("react").ForwardRefExoticComponent<FieldDateProps & import("react").RefAttributes<HTMLInputElement>>;
44
35
  export {};