0.14.0 • Published 3 days ago

@snack-uikit/chips v0.14.0

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

Chips

Installation

npm i @snack-uikit/chips

Changelog

TODO

  • droplist и выбор значений в FilterChip

Example

import { ChipAssist, ChipChoice, ChipToggle } from '@snack-uikit/chips';
import { PlaceholderSVG } from '@snack-uikit/icons';

<ChipAssist
  label='Label'
  icon={<PlaceholderSVG />}
  size='s'
  disabled={false}
  loading={false}
  onClick={doSomething}
  className='className'
  tabIndex={1}
/>

<ChipToggle
  label='Label'
  icon={<PlaceholderSVG />}
  size='s'
  selected={false}
  disabled={false}
  loading={false}
  onChange={handleChange}
  className='className'
  tabIndex={1}
/>

<ChipChoice.Single
  label='Label'
  value='value'
  icon={<PlaceholderSVG />}
  size='s'
  disabled={false}
  loading={false}
  options={[]}
  onClick={doSomething}
/>

<ChipChoice.Multi
  label='Label'
  value={['value1', 'value2']}
  onChangeValue={onChange}
  size='m'
  options={[]}
  valueFormatter={formatter}
/>

<ChipChoice.Date
  label='Label'
  value={new Date()}
  onChangeValue={onChange}
  size='m'
  valueFormatter={formatter}
/>

<ChipChoice.DateRange
  label='Label'
  value={[new Date(), new Date()]}
  onChangeValue={onChange}
  size='m'
  valueFormatter={formatter}
/>

<ChipChoice.Custom
  label='Label'
  value='value'
  valueToRender='Selected'
  size='m'
/>

ChipAssist

Чип с лейблом

Props

nametypedefault valuedescription
onClick*MouseEventHandler<HTMLButtonElement>-Колбек обработки клика
label*string-Лейбл
disabledboolean-Деактивирован ли компонент
loadingboolean-Состояние загрузки
iconReactElement<any, string \| JSXElementConstructor<any>>-Иконка
classNamestring-CSS-класс
tabIndexnumber-HTML tab index
sizeenum Size: "xs", "s", "m", "l"sРазмер

ChipToggle

Чип с состоянием выбран/не выбран

Props

nametypedefault valuedescription
onChange*(checked: boolean, e: ChangeEvent<HTMLInputElement>) => void-Колбек смены значения
checked*boolean-Отмечен ли компонент
label*string-Лейбл
disabledboolean-Деактивирован ли компонент
loadingboolean-Состояние загрузки
iconReactElement<any, string \| JSXElementConstructor<any>>-Иконка
classNamestring-CSS-класс
tabIndexnumber-HTML tab index
sizeenum Size: "xs", "s", "m", "l"sРазмер

ChipChoice.Custom

Props

nametypedefault valuedescription
labelstring-Лейбл
disabledboolean-Деактивирован ли компонент
loadingboolean-Состояние загрузки
iconReactElement<any, string \| JSXElementConstructor<any>>-Иконка
classNamestring-CSS-класс
tabIndexnumber-HTML tab index
sizeenum Size: "xs", "s", "m", "l"-Размер
onClickMouseEventHandler<HTMLButtonElement \| HTMLDivElement>-Колбек обработки клика
showClearButtonbooleantrueОтображение кнопки очистки значения
placementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"-Расположение выпадающего меню
widthStrategyenum PopoverWidthStrategy: "auto", "gte", "eq"gteСтратегия управления шириной контейнера поповера - auto - соответствует ширине контента, - gte - Great Than or Equal, равен ширине таргета или больше ее, если контент в поповере шире, - eq - Equal, строго равен ширине таргета.
dropDownClassNamestring-
valueRender(value: any) => ReactNode-Отображаемое значение
valueany-Фактическое значение. Используется для отображения кнопки очистки, если свойство showClearButton=true
onChange(value: any) => void-
content(props: CustomContentRenderProps<any>) => ReactNode-Контент выпадающего меню Принимает ReactNode Или функцию с аргументами: handleDroplistItemKeyDown: Обработчик нажатия клавиши на элемент выпадающего меню closeDroplist: Метод для закрытия выпадающего меню

ChipChoice.Single

Props

nametypedefault valuedescription
options*FilterOption<T>[]-Массив опций
labelstring-Лейбл
disabledboolean-Деактивирован ли компонент
loadingboolean-Состояние загрузки Флаг, отвещающий за состояние загрузки списка
iconReactElement<any, string \| JSXElementConstructor<any>>-Иконка
classNamestring-CSS-класс
tabIndexnumber-HTML tab index
sizeenum Size: "xs", "s", "m", "l"-Размер
onClickMouseEventHandler<HTMLButtonElement \| HTMLDivElement>-Колбек обработки клика
showClearButtonbooleantrueОтображение кнопки очистки значения
placementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"-Расположение выпадающего меню
widthStrategyenum PopoverWidthStrategy: "auto", "gte", "eq"gteСтратегия управления шириной контейнера поповера - auto - соответствует ширине контента, - gte - Great Than or Equal, равен ширине таргета или больше ее, если контент в поповере шире, - eq - Equal, строго равен ширине таргета.
dropDownClassNamestring-
contentRender(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => ReactNode-
filterFn(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => boolean-
searchableboolean-
footerReactNode ;-Кастомизируемый элемент в конце списка
footerActiveElementsRefsRefObject<HTMLElement>[]-Список ссылок на кастомные элементы, помещенные в специальную секцию внизу списка
selectionSelectionSingleState \| SelectionMultipleState-
scrollRefRefObject<HTMLElement>-Ссылка на элемент, обозначающий самый конец прокручиваемого списка
scrollContainerRefRefObject<HTMLElement>-Ссылка на контейнер, который скроллится
dataFilteredboolean-
dataErrorboolean-
noDataStateEmptyStateProps-Экран при отстутствии данных
noResultsStateEmptyStateProps-Экран при отстутствии результатов поиска или фильтров
errorDataStateEmptyStateProps-Экран при ошибке запроса
onChangeOnChangeHandler<any>-Controlled обработчик измения состояния
valueItemId-Controlled состояние
defaultValueItemId-Начальное состояние
valueRender(option?: BaseOption<T>) => ReactNode-Колбек формирующий отображение выбранного значения. Принимает выбранное значение. По умолчанию для отображения используется FilterOption.label

ChipChoice.Multiple

Props

nametypedefault valuedescription
options*FilterOption<T>[]-Массив опций
labelstring-Лейбл
disabledboolean-Деактивирован ли компонент
loadingboolean-Состояние загрузки Флаг, отвещающий за состояние загрузки списка
iconReactElement<any, string \| JSXElementConstructor<any>>-Иконка
classNamestring-CSS-класс
tabIndexnumber-HTML tab index
sizeenum Size: "xs", "s", "m", "l"-Размер
onClickMouseEventHandler<HTMLButtonElement \| HTMLDivElement>-Колбек обработки клика
showClearButtonbooleantrueОтображение кнопки очистки значения
placementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"-Расположение выпадающего меню
widthStrategyenum PopoverWidthStrategy: "auto", "gte", "eq"gteСтратегия управления шириной контейнера поповера - auto - соответствует ширине контента, - gte - Great Than or Equal, равен ширине таргета или больше ее, если контент в поповере шире, - eq - Equal, строго равен ширине таргета.
dropDownClassNamestring-
contentRender(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => ReactNode-
filterFn(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => boolean-
searchableboolean-
footerReactNode ;-Кастомизируемый элемент в конце списка
footerActiveElementsRefsRefObject<HTMLElement>[]-Список ссылок на кастомные элементы, помещенные в специальную секцию внизу списка
selectionSelectionSingleState \| SelectionMultipleState-
scrollRefRefObject<HTMLElement>-Ссылка на элемент, обозначающий самый конец прокручиваемого списка
scrollContainerRefRefObject<HTMLElement>-Ссылка на контейнер, который скроллится
dataFilteredboolean-
dataErrorboolean-
noDataStateEmptyStateProps-Экран при отстутствии данных
noResultsStateEmptyStateProps-Экран при отстутствии результатов поиска или фильтров
errorDataStateEmptyStateProps-Экран при ошибке запроса
onChangeOnChangeHandler<any>-Controlled обработчик измения состояния
valueItemId[]-Controlled состояние
defaultValueItemId[]-Начальное состояние
valueRender(option?: BaseOption<T>[]) => ReactNode-Колбек формирующий отображение выбранного значения. Принимает выбранное значение. По умолчанию для отображения используется FilterOption.label

ChipChoice.Date

Props

nametypedefault valuedescription
labelstring-Лейбл
disabledboolean-Деактивирован ли компонент
loadingboolean-Состояние загрузки
iconReactElement<any, string \| JSXElementConstructor<any>>-Иконка
classNamestring-CSS-класс
tabIndexnumber-HTML tab index
sizeenum Size: "xs", "s", "m", "l"-Размер
onClickMouseEventHandler<HTMLButtonElement \| HTMLDivElement>-Колбек обработки клика
showClearButtonbooleantrueОтображение кнопки очистки значения
placementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"-Расположение выпадающего меню
widthStrategyenum PopoverWidthStrategy: "auto", "gte", "eq"gteСтратегия управления шириной контейнера поповера - auto - соответствует ширине контента, - gte - Great Than or Equal, равен ширине таргета или больше ее, если контент в поповере шире, - eq - Equal, строго равен ширине таргета.
dropDownClassNamestring-
valueDate-Значение компонента
defaultValueDate-Значение компонента по-умолчанию
onChange(value: Date) => void-Колбек смены значения
valueRender(value?: Date) => ReactNode-Колбек формирующий строковое представление выбранного значения. Принимает выбранное значение

ChipChoice.DateRange

Props

nametypedefault valuedescription
labelstring-Лейбл
disabledboolean-Деактивирован ли компонент
loadingboolean-Состояние загрузки
iconReactElement<any, string \| JSXElementConstructor<any>>-Иконка
classNamestring-CSS-класс
tabIndexnumber-HTML tab index
sizeenum Size: "xs", "s", "m", "l"-Размер
onClickMouseEventHandler<HTMLButtonElement \| HTMLDivElement>-Колбек обработки клика
showClearButtonbooleantrueОтображение кнопки очистки значения
placementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"-Расположение выпадающего меню
widthStrategyenum PopoverWidthStrategy: "auto", "gte", "eq"gteСтратегия управления шириной контейнера поповера - auto - соответствует ширине контента, - gte - Great Than or Equal, равен ширине таргета или больше ее, если контент в поповере шире, - eq - Equal, строго равен ширине таргета.
dropDownClassNamestring-
valueRange-Значение компонента
defaultValueRange-Значение компонента по умолчанию
onChange(value: Range) => void-Колбек смены значения
valueRender(value?: Range) => ReactNode-Колбек формирующий строковое представление выбранного значения. Принимает массив выбранных значений

isAccordionOption

Props

nametypedefault valuedescription

isBaseOption

Props

nametypedefault valuedescription

isGroupOption

Props

nametypedefault valuedescription

isGroupSelectOption

Props

nametypedefault valuedescription

isNextListOption

Props

nametypedefault valuedescription

ChipChoiceRow

Props

nametypedefault valuedescription
filters*OmitBetter<ChipChoiceProps, "size" \| "onChange" \| "value" \| "defaultValue">[]-Массив чипов
valueFiltersState-Состояние фильтров
defaultValuePartial<TState>-Начальное состояние фильтров
onChange(filters: TState) => void-Колбек изменения состояния фильтров
sizeenum ChipChoiceRowSize: "xs", "s", "m"sРазмер
classNamestring-CSS-класс
showClearAllButtonbooleantrueСкрыть/показать кнопку очиски
clearAllButtonLabelstring'Clear all'Текст кнопки очистки
0.13.4

3 days ago

0.14.0

3 days ago

0.13.2

14 days ago

0.13.3

14 days ago

0.13.1

16 days ago

0.13.0

18 days ago

0.12.9

19 days ago

0.12.8

2 months ago

0.12.7

2 months ago

0.12.6

2 months ago

0.12.5

2 months ago

0.12.3

2 months ago

0.12.4

2 months ago

0.12.2

2 months ago

0.12.0

3 months ago

0.12.1

2 months ago

0.11.8

3 months ago

0.11.9

3 months ago

0.11.7

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

3 months ago

0.11.1

3 months ago

0.11.0

3 months ago

0.10.10

3 months ago

0.10.11

3 months ago

0.10.9

3 months ago

0.10.8

3 months ago

0.10.7

3 months ago

0.10.6

3 months ago

0.10.5

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