Socket
Book a DemoInstallSign in
Socket

@snack-uikit/chips

Package Overview
Dependencies
Maintainers
3
Versions
339
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@snack-uikit/chips

latest
Source
npmnpm
Version
0.28.5
Version published
Weekly downloads
470
-28.13%
Maintainers
3
Weekly downloads
 
Created
Source

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
truncateVariant"end" | "middle"middleВариант обрезания лейбла
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
truncateVariant"end" | "middle"middleВариант обрезания лейбла
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
truncateVariant"end" | "middle"-Вариант обрезания лейбла Вариант обрезания значения
sizeenum Size: "xs", "s", "m", "l"-Размер
onClickMouseEventHandler<HTMLButtonElement | HTMLDivElement>-Колбек обработки клика
disableFuzzySearchbooleanfalseОтключает Fuzzy Search. Иногда в дроплисте могут быть различные айдишники - нам важно искать их без Fuzzy Search
onClearButtonClickMouseEventHandler<HTMLButtonElement>-Колбек для клика по кнопке очистки
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-
openboolean-Управляет состоянием показан/не показан.
onOpenChange(isOpen: boolean) => void-Колбек отображения компонента. Срабатывает при изменении состояния open.
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
truncateVariant"end" | "middle"-Вариант обрезания лейбла Вариант обрезания значения
sizeenum Size: "xs", "s", "m", "l"-Размер
onClickMouseEventHandler<HTMLButtonElement | HTMLDivElement>-Колбек обработки клика
disableFuzzySearchbooleanfalseОтключает Fuzzy Search. Иногда в дроплисте могут быть различные айдишники - нам важно искать их без Fuzzy Search
onClearButtonClickMouseEventHandler<HTMLButtonElement>-Колбек для клика по кнопке очистки
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-
openboolean-Управляет состоянием показан/не показан.
onOpenChange(isOpen: boolean) => void-Колбек отображения компонента. Срабатывает при изменении состояния open.
contentRender(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => ReactNode-
filterFn(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => boolean-
searchableboolean-
autoApplyboolean-Флаг, отвечающий за применение выбранного значения по умолчанию
onApprove() => void-Колбек основной кнопки
onCancel() => void-Колбек кнопки отмены
footerReactNode ;-Кастомизируемый элемент в конце списка
footerActiveElementsRefsRefObject<HTMLElement>[]-Список ссылок на кастомные элементы, помещенные в специальную секцию внизу списка
scrollToSelectedItemboolean-Флаг, отвещающий за прокручивание до выбранного элемента
virtualizedboolean-Включить виртуализацию на компоненты списка. Рекомендуется если у вас от 1к элементов списка
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
truncateVariant"end" | "middle"-Вариант обрезания лейбла Вариант обрезания значения
sizeenum Size: "xs", "s", "m", "l"-Размер
onClickMouseEventHandler<HTMLButtonElement | HTMLDivElement>-Колбек обработки клика
disableFuzzySearchbooleanfalseОтключает Fuzzy Search. Иногда в дроплисте могут быть различные айдишники - нам важно искать их без Fuzzy Search
onClearButtonClickMouseEventHandler<HTMLButtonElement>-Колбек для клика по кнопке очистки
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-
openboolean-Управляет состоянием показан/не показан.
onOpenChange(isOpen: boolean) => void-Колбек отображения компонента. Срабатывает при изменении состояния open.
contentRender(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => ReactNode-
filterFn(option: { label: ItemId; value?: ItemId; contentRenderProps?: T; }) => boolean-
searchableboolean-
autoApplyboolean-Флаг, отвечающий за применение выбранного значения по умолчанию
onApprove() => void-Колбек основной кнопки
onCancel() => void-Колбек кнопки отмены
footerReactNode ;-Кастомизируемый элемент в конце списка
footerActiveElementsRefsRefObject<HTMLElement>[]-Список ссылок на кастомные элементы, помещенные в специальную секцию внизу списка
scrollToSelectedItemboolean-Флаг, отвещающий за прокручивание до выбранного элемента
virtualizedboolean-Включить виртуализацию на компоненты списка. Рекомендуется если у вас от 1к элементов списка
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
truncateVariant"end" | "middle"-Вариант обрезания лейбла Вариант обрезания значения
sizeenum Size: "xs", "s", "m", "l"-Размер
onClickMouseEventHandler<HTMLButtonElement | HTMLDivElement>-Колбек обработки клика
disableFuzzySearchbooleanfalseОтключает Fuzzy Search. Иногда в дроплисте могут быть различные айдишники - нам важно искать их без Fuzzy Search
onClearButtonClickMouseEventHandler<HTMLButtonElement>-Колбек для клика по кнопке очистки
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-
openboolean-Управляет состоянием показан/не показан.
onOpenChange(isOpen: boolean) => void-Колбек отображения компонента. Срабатывает при изменении состояния open.
valueDate-Значение компонента
defaultValueDate-Значение компонента по-умолчанию
onChange(value: Date) => void-Колбек смены значения
valueRender(value?: Date) => ReactNode-Колбек формирующий строковое представление выбранного значения. Принимает выбранное значение
mode"date" | "month" | "date-time" | "year"-
buildCalendarCellPropsBuildCellPropsFunction-Колбек свойств для управления ячейками календаря
showSecondsboolean-

ChipChoice.DateRange

Props

nametypedefault valuedescription
labelstring-Лейбл
disabledboolean-Деактивирован ли компонент
loadingboolean-Состояние загрузки
iconReactElement<any, string | JSXElementConstructor<any>>-Иконка
classNamestring-CSS-класс
tabIndexnumber-HTML tab index
truncateVariant"end" | "middle"-Вариант обрезания лейбла Вариант обрезания значения
sizeenum Size: "xs", "s", "m", "l"-Размер
onClickMouseEventHandler<HTMLButtonElement | HTMLDivElement>-Колбек обработки клика
disableFuzzySearchbooleanfalseОтключает Fuzzy Search. Иногда в дроплисте могут быть различные айдишники - нам важно искать их без Fuzzy Search
onClearButtonClickMouseEventHandler<HTMLButtonElement>-Колбек для клика по кнопке очистки
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-
openboolean-Управляет состоянием показан/не показан.
onOpenChange(isOpen: boolean) => void-Колбек отображения компонента. Срабатывает при изменении состояния open.
valueRange-Значение компонента
defaultValueRange-Значение компонента по умолчанию
onChange(value: Range) => void-Колбек смены значения
valueRender(value?: Range) => ReactNode-Колбек формирующий строковое представление выбранного значения. Принимает массив выбранных значений
buildCalendarCellPropsBuildCellPropsFunction-Колбек свойств для управления ячейками календаря

ChipChoice.Time

Props

nametypedefault valuedescription
labelstring-Лейбл
disabledboolean-Деактивирован ли компонент
loadingboolean-Состояние загрузки
iconReactElement<any, string | JSXElementConstructor<any>>-Иконка
classNamestring-CSS-класс
tabIndexnumber-HTML tab index
truncateVariant"end" | "middle"-Вариант обрезания лейбла Вариант обрезания значения
sizeenum Size: "xs", "s", "m", "l"-Размер
onClickMouseEventHandler<HTMLButtonElement | HTMLDivElement>-Колбек обработки клика
disableFuzzySearchbooleanfalseОтключает Fuzzy Search. Иногда в дроплисте могут быть различные айдишники - нам важно искать их без Fuzzy Search
onClearButtonClickMouseEventHandler<HTMLButtonElement>-Колбек для клика по кнопке очистки
placementenum Placement: "left", "left-start", "left-end", "right", "right-start", "right-end", "top", "top-start", "top-end", "bottom", "bottom-start", "bottom-end"-Расположение выпадающего меню
openboolean-Управляет состоянием показан/не показан.
onOpenChange(isOpen: boolean) => void-Колбек отображения компонента. Срабатывает при изменении состояния open.
dropDownClassNamestring-
valueTimeValue-Выбранное значение.
defaultValueTimeValue-Значение по-умолчанию для uncontrolled.
showSecondsboolean-Показывать ли секунды
onChange(value: TimeValue) => void-Колбек смены значения
valueRender(value?: TimeValue) => 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*ChipChoiceRowFilter[]-Массив чипов
valueFiltersState-Состояние фильтров
defaultValuePartial<TState>-Начальное состояние фильтров
onChange(filters: TState) => void-Колбек изменения состояния фильтров
sizeenum ChipChoiceRowSize: "xs", "s", "m"sРазмер
classNamestring-CSS-класс
showClearButtonbooleantrueСкрыть/показать кнопку очиски фильтров
showAddButtonbooleantrueСкрыть/показать кнопку добавления фильров
visibleFiltersstring[]-Состояние для видимых фильтров
onVisibleFiltersChange(value: string[]) => void-Коллбек на изменение видимых фильтров

hasFilterBeenApplied

hasFilterBeenApplied

функция проверки заполненности фильтра

FAQs

Package last updated on 22 Sep 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts