0.20.5 • Published 3 days ago

@snack-uikit/fields v0.20.5

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 days ago

Fields

Todo

  • сделать режим выбора периода в FieldDate.
  • сделать маску ввода серого цвета в FieldDate
  • сбрасывать состояние tabIndex-ов при потере фокуса c кнопок

Installation

npm i @snack-uikit/fields

Changelog

Поля для форм

Example

import { useState } from 'react';
import { FieldDate, FieldSecure, FieldSelect, FieldText, FieldTextArea } from '@snack-uikit/fields';
import { PlaceholderSVG } from '@snack-uikit/icons';

const [value, setValue] = useState('11.11.1111');
const [isOpen, setIsOpen] = useState(false);

<FieldDate
  value={value}
  onChange={setValue}
  open={isOpen}
  onOpenChange={setIsOpen}
  id='field-1'
  name='field-1'
  disabled={false}
  readonly={false}
  showCopyButton={true}
  onFocus={() => {}}
  onBlur={() => {}}
  label='Select date'
  labelTooltip='You can choose any date'
  required={true}
  hint='You have entered wrong date'
  size='s'
  validationState='default'
/>;

// ...

const [value, setValue] = useState('1234');
const [isHidden, setIsHidden] = useState(false);

<FieldSecure
  value={value}
  onChange={setValue}
  hidden={isHidden}
  onHiddenChange={setIsHidden}
  id='field-1'
  name='field-1'
  placeholder='Enter password'
  maxLength={20}
  allowMoreThanMaxLength={false}
  disabled={false}
  readonly={false}
  showCopyButton={true}
  onFocus={() => {}}
  onBlur={() => {}}
  label='Enter password'
  labelTooltip='You can enter password here'
  required={true}
  hint='You have entered wrong password'
  size='s'
  validationState='error'
  prefixIcon={<PlaceholderSVG />}
/>;

// ...

const [value, setValue] = useState('abc');

<FieldText
  value={value}
  onChange={setValue}
  id='field-1'
  name='field-1'
  placeholder='Enter text'
  maxLength={20}
  allowMoreThanMaxLength={false}
  disabled={false}
  readonly={false}
  showCopyButton={true}
  onFocus={() => {}}
  onBlur={() => {}}
  label='Enter text'
  labelTooltip='You can input any text'
  required={true}
  hint='You have entered wrong answer'
  size='s'
  validationState='error'
  prefixIcon={<PlaceholderSVG />}
/>;

// ...

const [value, setValue] = useState('abc');

<FieldTextArea
  value={value}
  onChange={setValue}
  id='field-1'
  name='field-1'
  placeholder='Enter text'
  maxLength={20}
  maxRows={8}
  resizable={true}
  allowMoreThanMaxLength={true}
  disabled={false}
  readonly={false}
  showCopyButton={true}
  onFocus={() => {}}
  onBlur={() => {}}
  label='Enter text'
  labelTooltip='You can input any text'
  required={true}
  hint='You have entered wrong answer'
  size='s'
  validationState='error'
/>;

// ...

const [value, setValue] = useState('1234');
const [isOpen, setIsOpen] = useState(false);

<FieldSelect
  mode='single'
  value={value}
  onChange={setValue}
  options={[
    { value: 'op1', option: 'Option 1' },
    { value: 'op2', option: 'Option 2' },
  ]}
  open={isHidden}
  onOpenChange={setIsOpen}
  id='field-1'
  name='field-1'
  placeholder='Select an item'
  noDataText={'No data'}
  searchable={true}
  disabled={false}
  readonly={false}
  showCopyButton={true}
  onFocus={() => {}}
  onBlur={() => {}}
  label='Select an item'
  labelTooltip='You can choose any option'
  required={true}
  hint='You have chosen wrong item'
  size='s'
  validationState='error'
  prefixIcon={<PlaceholderSVG />}
/>;

FieldDecorator

Props

nametypedefault valuedescription
children*ReactNode-Контент
classNamestring-CSS-класс
disabledboolean-Деактивирован ли элемент Является ли поле деактивированным
readonlyboolean-Является ли поле доступным только на чтение Доступно ли поле только на чтение
errorstring-
labelstring-Лейбл
labelTooltipstring-Всплывающая подсказка лейбла
labelForstring-Аттрибут for
requiredboolean-Является ли поле обязательным
sizeenum Size: "s", "m", "l"SIZE.SРазмер
labelTooltipPlacementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"topРасположение подсказки лейбла
length{ current: number; max?: number; }-Допустимая длинна текста
hintstring-Подсказка внизу
validationStateenum ValidationState: "default", "error", "warning", "success"defaultСостояние валидации
showHintIconboolean-Отображать иконку подсказки

FieldText

Props

nametypedefault valuedescription
showCopyButtonboolean-Отображение кнопки Копировать для поля (актуально только для readonly = true)
showClearButtonbooleantrueОтображение кнопки очистки поля
allowMoreThanMaxLengthboolean-Можно ли вводить больше разрешённого кол-ва символов
prefixIconReactElement<any, string \| JSXElementConstructor<any>>-Иконка-префикс для поля
valuestring-Значение input
onChange(value: string, e?: ChangeEvent<HTMLInputElement>) => void-Колбек смены значения
disabledboolean-Является ли поле деактивированным
readonlyboolean-Является ли поле доступным только для чтения
idstring-Значение html-атрибута id
namestring-Значение html-атрибута name
placeholderstring-Значение плейсхолдера
maxLengthnumber-Максимальная длина вводимого значения
onFocusFocusEventHandler<HTMLInputElement>-Колбек обработки получения фокуса
onBlurFocusEventHandler<HTMLInputElement>-Колбек обработки потери фокуса
errorstring-
classNamestring-CSS-класс
labelstring-Лейбл
labelTooltipstring-Всплывающая подсказка лейбла
requiredboolean-Является ли поле обязательным
sizeenum Size: "s", "m", "l"SIZE.SРазмер
labelTooltipPlacementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"topРасположение подсказки лейбла
hintstring-Подсказка внизу
validationStateenum ValidationState: "default", "error", "warning", "success"defaultСостояние валидации
showHintIconboolean-Отображать иконку подсказки
refRef<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 https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom
keyKey-

FieldTextArea

Props

nametypedefault valuedescription
maxRowsnumber-Максимальное кол-во строк, до которого размер поля может быть увеличен
resizableboolean-Может ли ли пользователь изменять размеры поля (если св-во не включено, поле автоматически меняет свой размер)
onChange(value: string, e?: ChangeEvent<HTMLTextAreaElement>) => void-Колбек смены значения
showCopyButtonboolean-Отображение кнопки Копировать для поля (актуально только для readonly = true)
showClearButtonbooleantrueОтображение кнопки очистки поля
allowMoreThanMaxLengthbooleantrueМожно ли вводить больше разрешённого кол-ва символов
valuestring-HTML-аттрибут value
disabledboolean-Является ли поле деактивированным
readonlyboolean-Является ли поле доступным только на чтение
idstring-HTML-аттрибут id
namestring-HTML-аттрибут name
placeholderstring-Плейсхолдер
maxLengthnumber-Максимальное кол-во символов
onFocusFocusEventHandler<HTMLTextAreaElement>-Колбек получения фокуса
onBlurFocusEventHandler<HTMLTextAreaElement>-Колбек потери фокуса
errorstring-
classNamestring-CSS-класс
labelstring-Лейбл
labelTooltipstring-Всплывающая подсказка лейбла
requiredboolean-Является ли поле обязательным
sizeenum Size: "s", "m", "l"SIZE.SРазмер
labelTooltipPlacementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"topРасположение подсказки лейбла
hintstring-Подсказка внизу
validationStateenum ValidationState: "default", "error", "warning", "success"defaultСостояние валидации
showHintIconboolean-Отображать иконку подсказки
refRef<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 https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom
keyKey-

FieldSecure

Props

nametypedefault valuedescription
hiddenboolean-Замаскированно ли значение поля
onHiddenChange(value: boolean) => void-Колбек смены маскирования
showCopyButtonboolean-Отображение кнопки копирования
allowMoreThanMaxLengthboolean-Можно ли вводить больше разрешённого кол-ва символов
prefixIconReactElement<any, string \| JSXElementConstructor<any>>-Иконка-префикс для поля
asyncValueGetter() => Promise<string>-Свойство позволяет грузить данные в поле по требованию
valuestring-Значение input
onChange(value: string, e?: ChangeEvent<HTMLInputElement>) => void-Колбек смены значения
disabledboolean-Является ли поле деактивированным
readonlyboolean-Является ли поле доступным только для чтения
idstring-Значение html-атрибута id
namestring-Значение html-атрибута name
placeholderstring-Значение плейсхолдера
maxLengthnumber-Максимальная длина вводимого значения
onFocusFocusEventHandler<HTMLInputElement>-Колбек обработки получения фокуса
onBlurFocusEventHandler<HTMLInputElement>-Колбек обработки потери фокуса
errorstring-
classNamestring-CSS-класс
labelstring-Лейбл
labelTooltipstring-Всплывающая подсказка лейбла
requiredboolean-Является ли поле обязательным
sizeenum Size: "s", "m", "l"SIZE.SРазмер
labelTooltipPlacementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"topРасположение подсказки лейбла
hintstring-Подсказка внизу
validationStateenum ValidationState: "default", "error", "warning", "success"defaultСостояние валидации
showHintIconboolean-Отображать иконку подсказки
refRef<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 https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom
keyKey-

parseDate

helper

Преобразует строковое значение поля FieldDate в тип Date

FieldDate

Props

nametypedefault valuedescription
value*string-Значение input
openboolean-Открыт date-picker
onOpenChange(value: boolean) => void-Колбек открытия пикера
onChange(value: string) => void-Колбек смены значения
showCopyButtonboolean-Отображение кнопки копирования
showClearButtonbooleantrueОтображение кнопки Очистки поля
localeLocalenew Intl.Locale('ru-RU')Текущая локаль календаря
buildCellProps(date: Date, viewMode: ViewMode) => { isDisabled?: boolean; isHoliday?: boolean };-Колбек установки свойств ячеек календаря. Вызывается на построение каждой ячейки. Принимает два параметра: Date - дата ячейки ViewMode: - month отображение месяца, каждая ячейка - 1 день - year отображение года, каждая ячейка - 1 месяц - decade отображение декады, каждая ячейка - 1 год Колбек должен возвращать объект с полями, отвечающими за отключение и подкраску ячейки.
disabledboolean-Является ли поле деактивированным
readonlyboolean-Является ли поле доступным только для чтения
idstring-Значение html-атрибута id
namestring-Значение html-атрибута name
onFocusFocusEventHandler<HTMLInputElement>-Колбек обработки получения фокуса
onBlurFocusEventHandler<HTMLInputElement>-Колбек обработки потери фокуса
errorstring-
classNamestring-CSS-класс
labelstring-Лейбл
labelTooltipstring-Всплывающая подсказка лейбла
requiredboolean-Является ли поле обязательным
sizeenum Size: "s", "m", "l"SIZE.SРазмер
labelTooltipPlacementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"topРасположение подсказки лейбла
hintstring-Подсказка внизу
validationStateenum ValidationState: "default", "error", "warning", "success"defaultСостояние валидации
showHintIconboolean-Отображать иконку подсказки
refRef<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 https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom
keyKey-

FieldSelect

Props

nametypedefault valuedescription
options*OptionProps[]-
disabledbooleanfalseЯвляется ли поле деактивированным
readonlybooleanfalse falseЯвляется ли поле доступным только для чтения
idstring-Значение html-атрибута id
namestring-Значение html-атрибута name
placeholderstring-Значение плейсхолдера
onFocusFocusEventHandler<HTMLInputElement>-Колбек обработки получения фокуса
onBlurFocusEventHandler<HTMLInputElement>-Колбек обработки потери фокуса
onKeyDownKeyboardEventHandler<HTMLInputElement>-Колбек обработки нажатия клавиши клавиатуры
errorstring-
classNamestring-CSS-класс
labelstring-Лейбл
labelTooltipstring-Всплывающая подсказка лейбла
requiredboolean-Является ли поле обязательным
sizeenum Size: "s", "m", "l"-Размер
labelTooltipPlacementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"topРасположение подсказки лейбла
hintstring-Подсказка внизу
validationStateenum ValidationState: "default", "error", "warning", "success"-Состояние валидации
showHintIconboolean-Отображать иконку подсказки
loadingboolean-
valueItemId \| ItemId[]-Controlled состояние
onChangeOnChangeHandler<any>-Controlled обработчик измения состояния
defaultValueItemId \| ItemId[]-Начальное состояние
pinTopOptionProps[]-
pinBottomOptionProps[]-
searchableboolean-
showCopyButtonboolean-Отображение кнопки Копировать для поля (актуально только для readonly = true)
showClearButtonbooleantrueОтображение кнопки очистки поля
prefixIconReactElement<any, string \| JSXElementConstructor<any>>-Иконка-префикс для поля
footerReactNode-
widthStrategyenum PopoverWidthStrategy: "auto", "gte", "eq"-
searchSearchState-
autocompleteboolean-
addOptionByEnterboolean-
openboolean-
onOpenChange(open: boolean) => void-
selectedOptionFormatterSelectedOptionFormatter-
dataFilteredboolean-
dataErrorboolean-
noDataStateEmptyStateProps-Экран при отстутствии данных
noResultsStateEmptyStateProps-Экран при отстутствии результатов поиска или фильтров
errorDataStateEmptyStateProps-Экран при ошибке запроса
selection"single" | "multiple"-
refRef<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 https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom
keyKey-
removeByBackspaceboolean-

FieldStepper

Props

nametypedefault valuedescription
valuenumber-Значение поля
onChange(value: number, e?: ChangeEvent<HTMLInputElement>) => void-Колбек смены значения
stepnumber1Шаг поля
allowMoreThanLimitsbooleantrueМожно ли вводить c клавиатуры числа, выходящие за пределы min/max
disabledboolean-Является ли поле деактивированным
readonlyboolean-Является ли поле доступным только для чтения
idstring-Значение html-атрибута id
namestring-Значение html-атрибута name
onFocusFocusEventHandler<HTMLInputElement>-Колбек обработки получения фокуса
onBlurFocusEventHandler<HTMLInputElement>-Колбек обработки потери фокуса
minnumberNumber.NEGATIVE_INFINITYМинимальное значение поля
maxnumberNumber.POSITIVE_INFINITYМаксимальное значение поля
errorstring-
classNamestring-CSS-класс
labelstring-Лейбл
labelTooltipstring-Всплывающая подсказка лейбла
requiredboolean-Является ли поле обязательным
sizeenum Size: "s", "m", "l"SIZE.SРазмер
labelTooltipPlacementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"topРасположение подсказки лейбла
hintstring-Подсказка внизу
validationStateenum ValidationState: "default", "error", "warning", "success"defaultСостояние валидации
showHintIconboolean-Отображать иконку подсказки
refRef<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 https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom
keyKey-

FieldSlider

Props

nametypedefault valuedescription
postfixIconReactElement<any, string \| JSXElementConstructor<any>>-Иконка-постфикс для поля
showScaleBarbooleantrueОтображение линейки
textInputFormatterTextInputFormatter-Функция для форматирования значений в текстовом поле
disabledboolean-Является ли поле деактивированным
readonlyboolean-Является ли поле доступным только для чтения
idstring-Значение html-атрибута id
namestring-Значение html-атрибута name
onFocusFocusEventHandler<HTMLInputElement>-Колбек обработки получения фокуса
onBlurFocusEventHandler<HTMLInputElement>-Колбек обработки потери фокуса
valuenumber \| number[]-
onChange(value: number \| number[]) => void-
rangeboolean-
tipFormatter(value: string \| number) => ReactNode-
stepnumber-
minnumber-
maxnumber-
marksRecord<string \| number, ReactNode \| MarkObj>-
classNamestring-CSS-класс
labelstring-Лейбл
labelTooltipstring-Всплывающая подсказка лейбла
requiredboolean-Является ли поле обязательным
sizeenum Size: "s", "m", "l"SIZE.SРазмер
labelTooltipPlacementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"topРасположение подсказки лейбла
hintstring-Подсказка внизу
showHintIconboolean-Отображать иконку подсказки
refRef<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 https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom
keyKey-
0.20.5

3 days ago

0.20.4

3 days ago

0.20.3

8 days ago

0.20.1

14 days ago

0.20.2

14 days ago

0.20.0

15 days ago

0.19.2

16 days ago

0.19.1

17 days ago

0.19.0

18 days ago

0.18.2

19 days ago

0.18.3

19 days ago

0.18.1

23 days ago

0.18.0

1 month ago

0.17.14

1 month ago

0.17.13

2 months ago

0.17.12

2 months ago

0.17.11

2 months ago

0.17.9

2 months ago

0.17.10

2 months ago

0.17.8

2 months ago

0.17.7

2 months ago

0.17.6

2 months ago

0.17.5

2 months ago

0.17.4

2 months ago

0.17.2

2 months ago

0.17.3

2 months ago

0.17.1

2 months ago

0.17.0

2 months ago

0.16.0

3 months ago

0.16.1

2 months ago

0.15.0

3 months ago

0.14.2

3 months ago

0.14.1

3 months ago

0.14.0

3 months ago

0.13.4

3 months ago

0.13.2

3 months ago

0.13.3

3 months ago

0.13.1

3 months ago

0.13.0

3 months ago

0.12.3

3 months ago

0.12.2

3 months ago

0.12.1

3 months ago

0.12.0

3 months ago

0.11.6

3 months ago

0.11.4

3 months ago

0.11.5

3 months ago

0.11.3

3 months ago

0.11.2

4 months ago

0.11.1

4 months ago

0.11.0

4 months ago

0.10.4

4 months ago

0.10.3

5 months ago

0.10.2

5 months ago

0.10.1

5 months ago

0.10.0

5 months ago

0.9.2

5 months ago

0.9.1

5 months ago

0.9.0

5 months ago