Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@n3/kit

Package Overview
Dependencies
Maintainers
0
Versions
171
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@n3/kit

React components for n3 interfaces

  • 0.29.20
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
50
decreased by-87.95%
Maintainers
0
Weekly downloads
 
Created
Source

Alert

Компонент уведомления.

import {
  Alert,
  alertTypes,
} from '@n3/kit/Alert';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
type+enum
- alertTypes.INFO
- alertTypes.WARNING
- alertTypes.DANGER
- alertTypes.SUCCESS
Тип сообщения
titlenodenullЗаголовок сообщения
buttonnodenullКнопка действий у сообщения
noMarginsboolfalseЕсли true, сообщение ренедерится без отступов сверху и снизу
childrennodenull

AsyncCreatable

Стилизованный react-select/creatable + react-select-async-paginate.

import { AsyncCreatable } from '@n3/kit/AsyncCreatable';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
allowCreateWhileLoadingboolean
formatCreateLabel(inputValue: string) => ReactNode
isValidNewOption(inputValue: string, value: any, options: OptionsType) => boolean
getNewOptionData(inputValue: string, optionLabel: ReactNode) => any
onCreateOption(inputValue: string) => void
createOptionPosition"first""last"
smallbooleanfalseМаленькое ли поле
isMultibooleanfalseМножественный выбор
isClearablebooleantrueВозможность сброса значения
hasErrorbooleanfalseЕсть ли у поля ошибка
hasWarningbooleanfalseЕсть ли у поля предупреждение
valueanynullЗначение поля
selectRefRefref для получения экземпляра react-select
renderModal(renderProps: ModalSelectButtonModalRenderProps<ValueType>) => ReactNodeundefinedФункция рендера содержимого модального окна
isDisabledbooleanfalseВыключено ли поле
getOptionLabelGetOptionLabelnullФункция получения заголовка опции для вывода и фильтрации
labelKeystring"label"Ключ, для получения заголовка опции в случае, если не определено getOptionLabel
getOptionValueGetOptionValuenullФункция получения значения опции
valueKeystring"value"Ключ, для получения значения опции в случае, если не определено getOptionValue
onChange(nextValue: any) => void"(): void => {}"Обработчик изменения значения поля
@param nextValue - новое значение поля
loadOptionsLoadOptions<any, any>Асинхронная функция запроса данных с сервера в формате react-select-async-paginate
@param search - значение строки поиска
@param prevOptions - список загруженных опций
@param additional - дополнительные параметры запроса
@returns ответ сервера
additionalanyДополнительные параметры первого запроса
debounceTimeoutnumberЗадержка при отправке запросов
cacheUniqs+any[]Список значений при изменении одного из которых опции будут сброшены

Autocomplete

Автокомплит.

import { Autocomplete } from '@n3/kit/Autocomplete';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
loadOptions+LoadOptionsФункция загрузки опций
@param search - текущее значение поля ввода
@returns response.options - опции
value+stringЗначение элемента input
onChangeOnChangeОбработчик изменения значения поля при ручном вводе
onSelectOnSelectОбработчик изменения значения поля при выборе из меню
@param value - текст выбранной опции
@param option - выбранная опция
disabledbooleanfalseВыключено ли поле
hasErrorbooleanfalseЕсть ли у поля ошибка
hasWarningbooleanfalseЕсть ли у поля предупреждение
inputPropsHTMLProps<HTMLInputElement>"{}"Дополнительные props элемента input
labelKeystring"label"Ключ, по которому хранится текст опции
getOptionLabelGetOptionLabelФункция получения текста опции, который будет подставлен при выборе
formatOptionLabelFormatOptionLabelФункция отображения опции

AxiosErrorPage

Страницы ошибки, полученной с помощью axios.

import { AxiosErrorPage } from '@n3/kit/AxiosErrorPage';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
error+AxiosErrorОшибка axios

Breadcrumbs

Компонент хлебных крошек.

import { Breadcrumbs } from '@n3/kit/Breadcrumbs';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
breadcrumbs+arrayOf [
  shape {
  - url
    string
  - title
    string
  }
]
массив объектов хлебных крошек
homeLinkstringundefinedСсылка на домашнюю страницу

Button

Компонент кнопки.

import {
  Button,
  buttonColors,
  ButtonIcon,
  buttonSizes,
} from '@n3/kit/Button';

Props

Button
НазваниеОбязательностьТипЗначение по умолчаниюОписание
colorButtonColorЦвет кнопки
sizeButtonSizeРазмер кнопки
componentelementType'button'Компонент корневого элемента кнопки
componentPropsobject{}Дополнительный props компонента кнопки при использовании кастомного component
loadingboolfalseСостояние загрузки
disabledboolfalseКнопка выключена
pressedboolfalseКнопка зажата
flatLeftboolfalseНе отображать закругления слева
flatRightboolfalseНе отображать закругления справа
onlyIconboolfalseКнопка состоит только из иконки
classNamestring''Дополнительный класс корневого компонента кнопки
onClickfuncFunction.prototypeОбработчик нажатия на кнопку
childrennodenull
ButtonIcon

Компонент для выравнивания иконок относительно границ и текста кнопки.

<Button>
  Скачать
  <ButtonIcon
    isRight
  >
    <i className="fa fa-download" />
  </ButtonIcon>
</Button>
НазваниеОбязательностьТипЗначение по умолчаниюОписание
isLeftboolfalseИконка находится слева от текста
isRightboolfalseИконка находится справа от текста

ButtonDropdown

Кнопка-дропдаун.

import { ButtonDropdown } from '@n3/kit/ButtonDropdown';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
dropdown+DropdownBaseprops компонента Dropdown
hasArrowbooleanfalseПоказывать ли стрелку справа от текста
childrenReactNodenullСодержимое кнопки
...restObjectprops, которые будут переданы в кнопку

ButtonGroup

Группа кнопок.

import { ButtonGroup } from '@n3/kit/ButtonGroup';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
borderCollapsebooleanfalseДолжны ли соседние кнопки иметь общую границу
...restObjectprops, которые будут переданы в каждую кнопку

Ссылка react-router-dom, стилизованная под кнопку.

import { ButtonLink } from '@n3/kit/ButtonLink';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
icon-ReactNodeundefinedИконка кнопки
onlyIcon-booleanundefinedОтображать только иконку внутри кнопки
to+anyПараметр ссылки react-router-dom
targetstringundefinedПараметр ссылки react-router-dom
disabledbooleanfalseВыключена ли кнопка

ButtonModal

Кнопка, открывающая модальное окно.

import { ButtonModal } from '@n3/kit/ButtonModal';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
renderModal+(renderProps: {
closeModal: () => void;
}) => ReactNode
Функция рендера модального окна
modalSizeModalSizeРазмер модального окна
hasCloseButtonbooleanОтображается ли кнопка закрытия окна
isHideOnBackdropClickbooleanЗакрывать ли окно при нажатии вне окна
...rest`Omit<ButtonProps, 'component''componentProps'>`

ButtonToolbar

Тулбар кнопок.

import { ButtonToolbar } from '@n3/kit/ButtonToolbar';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
alignenum
- 'left'
- 'right'
'left'Выравнивание кнопок внутри
indentenum
- 'default'
- 'small'
'default'Расстояние между кнопками
childrennodenull

ButtonWithDropdown

Кнопка с выпадающим списком.

import { ButtonWithDropdown } from '@n3/kit/ButtonWithDropdown';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
sizeButtonSizeРазмер кнопки
componentButtonComponentundefinedКомпонент корневого элемента кнопки
Компонент кнопки
componentProps{ [key: string]: any; }undefinedДополнительный props компонента кнопки при использовании кастомного component
Дополнительные props кнопки
loadingbooleanfalseСостояние загрузки
Находится ли кнопка в состоянии загрузки
disabledbooleanfalseКнопка выключена
Выключены ли кнопка и дропдаун
pressedbooleanКнопка зажата
flatLeftbooleanНе отображать закругления слева
flatRightbooleanНе отображать закругления справа
onlyIconbooleanКнопка состоит только из иконки
classNamestringДополнительный класс корневого компонента кнопки
onClickFunctionFunction.prototypeОбработчик нажатия на кнопку
Обработчик нажатия на кнопку
childrenReactNodenullТекст кнопки
dropdown+DropdownBaseprops компонента Dropdown
buttonDisabledbooleanfalseВыключена ли кнопка
colorButtonColorbuttonColors.DEFAULTЦвет
dropdownDisabledbooleanfalseВыключена ли кнопка открытия выпадающего списка

Cell

Ячейка внутри Row.

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
isPercenagebooleanfalseПропорциональная ширина колонки относительно контейнера
xs1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12nullКоличество колонок в разрешениях до 576px
sm1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12nullКоличество колонок в разрешениях до 768px
md1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12nullКоличество колонок в разрешениях до 992px
lg1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12nullКоличество колонок в разрешениях до 1200px
xl1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12nullКоличество колонок в разрешениях от 1200px включительно

Checkbox

Чекбокс.

import { Checkbox } from '@n3/kit/Checkbox';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
checked+booleanвыбран ли данный чекбокс
namestring""name html-элемента input, а также аргумент колбэка onChange
valueReactText""value html-элемента input, а также аргумент колбэка onChange
disabledbooleanfalseвыключен ли данный чекбокс
hasErrorbooleanfalseподсветка ошибки
hasWarningbooleanfalseподсветка предупреждения
indeterminatebooleanfalseнаходится ли данный чекбокс в неопределённом состоянии
helpTextReactNodenullтекст/контент, всплывающий при наведении на чекбокс
labelReactNodenullтекст/контент, выводящийся рядом с чекбоксом
onChangeOnCheckboxChange"(): void => {}"хэндлер изменения значения, вызывается с параметрами: (nextChecked, value, name)

CheckboxGroup

Группа чекбоксов.

import { CheckboxGroup } from '@n3/kit/CheckboxGroup';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
inlinebooleanfalseинлайновый вывод чекбоксов
namestring""name каждого html-элемента input
value+ReactText[]массив значений выбранных опций
disabledbooleanfalseвыключена ли данная группа чекбоксов
options+Record<string, any>[]список опций данной группы чекбоксов
valueKeystring"value"ключ, по которому хранятся значения в объектах options
labelKeystring"label"ключ, по которому хранятся заголовки в объектах options
onChange(nextValue: ReactText[]) => void"(): void => {}"хэндлер изменения значения

ClearButton

Кнопка очистки поля.

import { ClearButton } from '@n3/kit/ClearButton';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
asComponentType'span'Корневой компонент
...restComponentPropsДополнительные props компонента as

Counter

Счётчик.

import { Counter } from '@n3/kit/Counter';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
counter+numberЗначение счётчика
maxNumbernumbernullМаксимальное значение счётчика
isLightboolfalseОтображение в светлых цветах

Creatable

Стилизованный react-select/creatable.

import { Creatable } from '@n3/kit/Creatable';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
allowCreateWhileLoadingboolean
formatCreateLabel(inputValue: string) => ReactNode
isValidNewOption(inputValue: string, value: any, options: OptionsType) => boolean
getNewOptionData(inputValue: string, optionLabel: ReactNode) => any
onCreateOption(inputValue: string) => void
createOptionPosition"first""last"
smallbooleanfalseМаленькое ли поле
isMultibooleanfalseМножественный выбор
isClearablebooleantrueВозможность сброса значения
hasErrorbooleanfalseЕсть ли у поля ошибка
hasWarningbooleanfalseЕсть ли у поля предупреждение
valueanynullЗначение поля
selectRefRefref для получения экземпляра react-select
renderModal(renderProps: ModalSelectButtonModalRenderProps<ValueType>) => ReactNodeundefinedФункция рендера содержимого модального окна
isDisabledbooleanfalseВыключено ли поле
getOptionLabelGetOptionLabelnullФункция получения заголовка опции для вывода и фильтрации
labelKeystring"label"Ключ, для получения заголовка опции в случае, если не определено getOptionLabel
getOptionValueGetOptionValuenullФункция получения значения опции
valueKeystring"value"Ключ, для получения значения опции в случае, если не определено getOptionValue
onChange(nextValue: any) => void"(): void => {}"Обработчик изменения значения поля
@param nextValue - новое значение поля
options+OptionsTypeGroupedOptionsType

createDropdownMenu

Список опций выпадающего меню для приложений на базе @n3/kit.

import { createDropdownMenu } from '@n3/kit/createDropdownMenu';

Пример

import { ButtonDropdown } from '@n3/kit/ButtonDropdown';
import { createDropdownMenu } from '@n3/kit/createDropdownMenu';

// ...

<ButtonDropdown
  dropdown={createDropdownMenu([
    {
      render: ({
        className,
        children,
      }) => (
        <a
          className={className}
          href="http://netrika.ru/"
          target="_blank"
        >
          {children}
        </a>
      ),
      label: 'Ссылка на сайт Нетрики',
    },

    {
      onClick: () => {
        alert('Hello');
      },
      label: 'Алерт',
    },
  ])}
>
  Открыть меню
</ButtonDropdown>

Параметры пункта меню

НазваниеОбязательностьТипЗначение по умолчаниюОписание
render(renderProps: DropdownMenuItemRenderProps) => ReactNodedefaultRenderФункция рендера компонента
disabledboolfalseВыключен ли данный элемент меню
classNamestring''Дополнительный className
onClickfuncnull
renderIconfuncnullФункция рендера иконки пункта меню
@param {Object} renderProps
@param {boolean} renderProps.disabled - выключен ли пункт меню
label+nodeТекст пункта меню

CreateLayout

Лэйаут страницы создания.

import { CreateLayout } from '@n3/kit/CreateLayout';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
breadcrumbsBreadcrumb[]Массив объектов хлебных крошек
title+nodeЗаголовок страницы
headerBlocknodenullБлок, выводящийся между заголовком страницы и табами
childrennodenullСодержимое страницы

createRemoveTableAction

Действие удаления строки таблицы.

import { createRemoveTableAction } from '@n3/kit/createRemoveTableAction';
import { TableActions } from '@n3/kit/TableActions';

// ...

<TableActions
  actions={[
    createRemoveTableAction({}, {
      remove: () => new Promise((resolve) => {
        setTimeout(() => {
          resolve();
        }, 1500);
      }),
      approveTitle: 'Удаление ЕИСТ',
      approveContent: 'Восстановить проект будет невозможно.',
      approveButtonText: 'Удалить проект',
      cancelButtonText: 'Отменить',
      notification: {
        title: 'Успешно',
        content: 'Проект успешно удалён',
      },
    }),
  ]}
/>

Аргументы:

  1. Дополнительные параметры createDropdownMenu;
  2. Параметры useRemoveButton.

Datepicker

Поле ввода даты.

import { Datepicker } from '@n3/kit/Datepicker';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
selectedDateВыбранная дата
disabledbooleanfalseВыключено ли поле
smallbooleanfalseМаленькое ли поле
hasErrorbooleanfalseЕсть ли у поля ошибка
hasWarningbooleanfalseЕсть ли у поля предупреждение
withTimebooleanfalseЕсть ли возможность выбора времени
timeCaptionstring"Время"Текст над вариантами выбора времени
blockbooleanfalseОтображать ли поле во всю ширину
isClearablebooleanfalseВозможность сброса выбранной даты
autoComplete"on""off""off"
onChange(nextDate: Date) => void"(): void => {}"Обработчик изменения или сброса значения
@param nextDate - новое значение

DebounceInput

Инпут с задержкой.

import { DebounceInput } from '@n3/kit/DebounceInput';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
componentInputComponentКомпонент корневого элемента инпута
disabledbooleanВыключено ли поле
hasErrorbooleanЕсть ли у поля ошибка
hasWarningbooleanЕсть ли у поля предупреждение
smallbooleanМаленькое ли поле
classNamestringДополнительный класс корневого компонента инпута
isOnlyBorderBottombooleanОтображение без рамки только с подчёркиванием снизу
buttonsRenderInputButton[]Массив функций реднеда кнопок
@param props - все props инпута
@param index - индекс кнопки
debounceTimeoutnumber300Время задержки в мс

Dropdown

Компонент выпадающего меню.

import { Dropdown } from '@n3/kit/Dropdown';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
hasHorizontalOffsetsbooltrueесть ли горизонтальный отступ между элементом и меню
hasVerticalOffsetsbooltrueесть ли вертикальный отступ между элементом и меню
renderContent+(renderProps: DropdownContentRenderProps) => ReactNodeфункция рендера содержимого выпадающего меню
placementstring'bottom-start'позиция меню в формате popper.js
popperStyleobject{}дополнительные стили popper-компонента
popperPropsobjectOf {
  any
}
{}дополнительные опции popper-компонента
modifiersarrayOf [
  object
]
[]modifiers popper-компонента
children+funcФункция рендера элемента, открывающего выпадающего меню
@param {Object} renderProps
@param {boolean} renderProps.isDropdownOpen - открыто ли меню
@param {Function} renderProps.onClick - обработчик нажатия на элемент, открывающий/закрывающий меню
@param {React ref} renderProps.ref - ref элемента, относительно которого позиционируется выпадающее меню

EditLayout

Лэйаут страницы редактирования.

import { EditLayout } from '@n3/kit/EditLayout';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
breadcrumbsBreadcrumb[]Массив объектов хлебных крошек
title+nodeЗаголовок страницы
headerBlocknodenullБлок, выводящийся между заголовком страницы и табами
childrennodenullСодержимое страницы

EllipsisDropdown

Выпадающий список в виде точек.

import { EllipsisDropdown } from '@n3/kit/EllipsisDropdown';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
dropdown+shape {
- hasHorizontalOffsets
  bool
- hasVerticalOffsets
  bool
- renderContent
  func
- placement
  string
- popperStyle
  object
- popperProps
  objectOf {
    any
  }
- modifiers
  arrayOf [
    object
  ]
}
props компонента Dropdown
classNamestring''
disabledboolfalse

ErrorPage

Страница ошибки.

import { ErrorPage } from '@n3/kit/ErrorPage';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
status+numberhttp-статус
titleReactNodenullЗаголовок страницы
descriptionReactNodenullОписание/руководство к действиям

Компонент, стилизованный, как ссылка.

import { FakeLink } from '@n3/kit/FakeLink';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
componentReact Component'span'
disabledbooleanfalseВыключена ли обработка событий
onClickFunctionnullОбработчик нажатия, вызывается, если disabled не true

FieldGroup

Обёртка над полем для вывода заголовка, подсказки, ошибок и предупреждений.

import { FieldGroup } from '@n3/kit/FieldGroup';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
colonbooleantrueЕсли `true``, после заголовка выводится двоеточие
direction`'horizontal''vertical'`'horizontal'
onlyFieldbooleanfalseЕсли true, поле выводится без заголовка
labelstringundefinedЗаголовок поля
requiredbooleanfalseОбязательность поля
isCellsPercentagebooleanfalseПропорциональная ширина поля и контейнера для единиц измерения
isInputbooleanfalseЗадать отступ заголовка, чтобы он был в одну линию с текстом поля ввода
isShowbooleanfalseВывод в режиме просмотра (влияет на расстояние между полями)
hasRepeatOffsetsbooleanfalseВывод внутри Repeat.Block
hintReactNodeundefinedПодсказка, выводящаяся в тултипе рядом с заголовком
unitReactNodeundefinedЕдиницы измерения, выводится справа от поля
helpstring[]undefinedПодсказки поля
errorsstring[]undefinedОшибки поля
warningsstring[]undefinedПредупреждения поля
showBackgroundbooleanundefinedМенять ли фон поля в случае ошибки или предупреждения
labelColsXsCellValue3Количество колонок заголовка
fieldColsXsCellValue5Количество колонок контента
unitColsXsCellValue1Количество колонок единиц измерения
childrenReactNodeundefinedКонтент поля

FieldWrapper

Обёртка над полем для вывода подсказки, ошибок и предупреждений.

import { FieldWrapper } from '@n3/kit/FieldWrapper';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
helpstring[]nullПодсказки поля
errorsstring[]nullОшибки поля
warningsstring[]nullПредупреждения поля
showBackgroundbooleanfalseМенять ли фон в случае ошибки или предупреждения
childrenReactNodenullПоле

FilterSelect

Стилизованный react-select.

import { FilterSelect } from '@n3/kit/FilterSelect';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
smallbooleanfalseМаленькое ли поле
isMultibooleanfalseМножественный выбор
isClearablebooleantrueВозможность сброса значения
hasErrorbooleanfalseЕсть ли у поля ошибка
hasWarningbooleanfalseЕсть ли у поля предупреждение
valueanynullЗначение поля
selectRefRefref для получения экземпляра react-select
modalComponentComponentTypeКомпонент модального окна
@prop {Function} onSelect - функция выбора значения
@prop {Function} onCancel - функция закрытия модального окна без изменения значения
modalProps{ [key: string]: any; }Дополнительные props компонента модального окна
isDisabledbooleanfalseВыключено ли поле
getOptionLabelGetOptionLabelnullФункция получения заголовка опции для вывода и фильтрации
labelKeystring"label"Ключ, для получения заголовка опции в случае, если не определено getOptionLabel
Ключ для отображения текста поля, работает только в случае, если getOptionLabel не определён
getOptionValueGetOptionValuenullФункция получения значения опции
valueKeystring"value"Ключ, для получения значения опции в случае, если не определено getOptionValue
Ключ для нахождения значения поля, работает только в случае, если getOptionValue не определён
onChange((nextValue: any) => void)((nextValue: any) => void)"(): void => {}"
mainPlaceholderstring"Выберите..."Плейсхолдер компонента, который всегда отображается
options+OptionsTypeGroupedOptionsType

FilterSelectAjax

Стилизованный react-select-fetch.

import { FilterSelectAjax } from '@n3/kit/FilterSelectAjax';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
smallbooleanfalseМаленькое ли поле
isMultibooleanfalseМножественный выбор
isClearablebooleantrueВозможность сброса значения
hasErrorbooleanfalseЕсть ли у поля ошибка
hasWarningbooleanfalseЕсть ли у поля предупреждение
valueanynullЗначение поля
selectRefRefref для получения экземпляра react-select
modalComponentComponentTypeКомпонент модального окна
@prop {Function} onSelect - функция выбора значения
@prop {Function} onCancel - функция закрытия модального окна без изменения значения
modalProps{ [key: string]: any; }Дополнительные props компонента модального окна
isDisabledbooleanfalseВыключено ли поле
getOptionLabelGetOptionLabelnullФункция получения заголовка опции для вывода и фильтрации
labelKeystring"label"Ключ, для получения заголовка опции в случае, если не определено getOptionLabel
Ключ для отображения текста поля, работает только в случае, если getOptionLabel не определён
getOptionValueGetOptionValuenullФункция получения значения опции
valueKeystring"value"Ключ, для получения значения опции в случае, если не определено getOptionValue
Ключ для нахождения значения поля, работает только в случае, если getOptionValue не определён
onChange((nextValue: any) => void)((nextValue: any) => void)"(): void => { }"
url+stringапи-url для запроса данных
queryParams{ [key: string]: any; }Перманентные параметры запроса
searchParamNamestringКлюч, по которому текст строки поиска будет добавлен к параметрам запроса
pageParamNamestringКлюч, по которому номер текущей страницы будет добавлен к параметрам запроса
offsetParamNamestringКлюч, по которому индекс первой опции для запроса будет добавлен к параметрам запроса
mapResponseMapResponseФункция маппинга ответа сервера в формат react-select-async-paginate
getGetАсинхронная функция запроса данных с сервера
@param url - апи-url
@param queryParams - параметры запроса
@returns ответ сервера
debounceTimeoutnumberЗадержка при отправке запросов
cacheUniqs+any[]Список значений при изменении одного из которых опции будут сброшены
mainPlaceholderstring"Выберите..."Плейсхолдер компонента, который всегда отображается

FilterSelectAsync

Стилизованный react-select-async-paginate.

import { FilterSelectAsync } from '@n3/kit/FilterSelectAsync';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
smallbooleanfalseМаленькое ли поле
isMultibooleanfalseМножественный выбор
isClearablebooleantrueВозможность сброса значения
hasErrorbooleanfalseЕсть ли у поля ошибка
hasWarningbooleanfalseЕсть ли у поля предупреждение
valueanynullЗначение поля
selectRefRefref для получения экземпляра react-select
modalComponentComponentTypeКомпонент модального окна
@prop {Function} onSelect - функция выбора значения
@prop {Function} onCancel - функция закрытия модального окна без изменения значения
modalProps{ [key: string]: any; }Дополнительные props компонента модального окна
isDisabledbooleanfalseВыключено ли поле
getOptionLabelGetOptionLabelnullФункция получения заголовка опции для вывода и фильтрации
labelKeystring"label"Ключ, для получения заголовка опции в случае, если не определено getOptionLabel
Ключ для отображения текста поля, работает только в случае, если getOptionLabel не определён
getOptionValueGetOptionValuenullФункция получения значения опции
valueKeystring"value"Ключ, для получения значения опции в случае, если не определено getOptionValue
Ключ для нахождения значения поля, работает только в случае, если getOptionValue не определён
onChange((nextValue: any) => void)((nextValue: any) => void)"(): void => {}"
loadOptionsLoadOptions<any, any>Асинхронная функция запроса данных с сервера в формате react-select-async-paginate
@param search - значение строки поиска
@param prevOptions - список загруженных опций
@param additional - дополнительные параметры запроса
@returns ответ сервера
additionalanyДополнительные параметры первого запроса
debounceTimeoutnumberЗадержка при отправке запросов
cacheUniqs+any[]Список значений при изменении одного из которых опции будут сброшены
mainPlaceholderstring"Выберите..."Плейсхолдер компонента, который всегда отображается

Grid

Контейнер содержимого.

import { Grid } from '@n3/kit/Grid';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
centeredbooleanfalseДобавить ли margin слева и справа
isFixedWidthbooleanfalseНе давать контенту сужаться

Header

Шапка страницы.

import { Header } from '@n3/kit/Header';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
logo+HeaderLogoParamsЛоготип в левой части
isUserBlockHiddenbooleanfalseСкрыть ли блок текущего пользователя (аватар + имя + дропдаун с действиями)
showAvatarbooleanОтображать ли аватар текущего пользователя
avatarstringАватар текщего пользователя (отобразится плейсхолдер в случае, если аватар не задан)
userNameReactNodeИмя текщего пользователя
dropdownOptionsHeaderDropdownOption[]Опции выпадающего меню
leftBlockReactNodeundefinedБлок слева
menuHeaderMenuItem[]Левое меню
rightMenuHeaderMenuItem[]Правое меню
withPusherbooleanfalseДобавить ли dom-элемент для отступа сверху страницы, равного высоте шапки
counters{ [key: string]: number; }Счётчики
countersMaxNumbernumberМаксимальное число в счётчиках
collapsiblebooleanОтображение иконки раскрытия бокового меню на меленьких разрешениях
openMenu() => voidФункция раскрытия бокового меню
isLogoCollapsiblebooleanfalseСхлопывать ли логотип при схлопывании меню
menuCollapsedbooleanfalseСхлопнуто ли меню в иконки

HeaderLeftBlock

Компонент, задающий контент шапки. Должен быть использован внутри компонента Layout.

import { HeaderLeftBlock } from '@n3/kit/Layout';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
children+ReactNodeКонтент, который будет отображён в шапке страницы

Hint

Компонент всплывающей подсказки.

import { Hint } from '@n3/kit/Hint';

// ...

<Hint
  tooltip="Подсказка"
/>

Для кастомизации принимает свойства компонента Tooltip.

Input

Инпут.

import { Input } from '@n3/kit/Input';

Использование

Обычный инпут
import { useState } from 'react';
import { Input } from '@n3/kit/Input';

function Example() {
  const [value, setValue] = useState('');
  
  <Input
    value={value}
    onChange={(event) => {
      setValue(event.target.value);
    }}
  />
}
С кнопкой
import { useState } from 'react';
import {
  Input,
  StyledInputButton,
} from '@n3/kit/Input';

function Example() {
  const [value, setValue] = useState('');
  
  <Input
    value={value}
    onChange={(event) => {
      setValue(event.target.value);
    }}
    buttons={[
      (inputProps, index) => (
        <StyledInputButton
          type="button"
          key={index}
        >
          <FontAwesomeIcon
            icon="cog"
          />
        </StyledInputButton>
      ),

      (inputProps, index) => (
        <StyledInputButton
          type="button"
          key={index}
        >
          <FontAwesomeIcon
            icon="file"
          />
        </StyledInputButton>
      ),
    ]}
  />
}

Props

Input
НазваниеОбязательностьТипЗначение по умолчаниюОписание
componentInputComponentКомпонент корневого элемента инпута
disabledbooleanВыключено ли поле
hasErrorbooleanЕсть ли у поля ошибка
hasWarningbooleanЕсть ли у поля предупреждение
smallbooleanМаленькое ли поле
classNamestringДополнительный класс корневого компонента инпута
isOnlyBorderBottombooleanОтображение без рамки только с подчёркиванием снизу
buttonsRenderInputButton[]Массив функций реднеда кнопок
@param props - все props инпута
@param index - индекс кнопки
StyledInputButton
НазваниеОбязательностьТипЗначение по умолчаниюОписание
disabledbooleanКнопка выключена
$smallbooleanКнопка маленькая

InputMask

Поле ввода с маской.

import { InputMask } from '@n3/kit/InputMask';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
componentInputComponentКомпонент корневого элемента инпута
disabledbooleanВыключено ли поле
hasErrorbooleanЕсть ли у поля ошибка
hasWarningbooleanЕсть ли у поля предупреждение
smallbooleanМаленькое ли поле
classNamestringДополнительный класс корневого компонента инпута
isOnlyBorderBottombooleanОтображение без рамки только с подчёркиванием снизу
buttonsRenderInputButton[]Массив функций реднеда кнопок
@param renderProps - объект свойств для ренера
mask+boolean | (string | RegExp)[] | ((value: string) => maskArray)маска в формате react-text-mask

Layout

Компонент, включающий в себя шапку и сайдбар.

import { Layout } from '@n3/kit/Layout';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
header+HeaderParamsОбъект props компонента Header
sidebar+SidebarParamsОбъект props компонента Sidebar
collapsiblebooleantrueВозможность скрытия меню на маленьких экранах
menuCollapsedbooleanfalseСхлопнуто ли меню в иконки
openedGroups{ [key: string]: boolean; }"{}"Объект, показывающий, какие группы открыты
counters{ [key: string]: number; }"{}"Счётчики
countersMaxNumbernumbernullМаксимальное число в счётчиках
children+((renderProps: LayoutContextValue) => ReactNode)Функция рендера контента
@param renderProps
onCollapseMenu(nextValue: boolean) => void"(): void => {}"Обработчик схлопывания меню в иконки
@param nextValue - новое состояние схлопнутости
onToggleGroup(groupId: string, opened: boolean) => void"(): void => {}"Обработчик скрытия/раскрытия пунктов меню
@param groupId - id группы
@param opened - новое состояние открытости/закрытости

LayoutWithoutSidebar

Компонент, включающий в себя шапку и Grid, центрирующий контент.

import { LayoutWithoutSidebar } from '@n3/kit/LayoutWithoutSidebar';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
header+HeaderParamsОбъект props компонента Header
counters{ [key: string]: number; }{}Счётчики
countersMaxNumbernumbernullМаксимальное число в счётчиках
hasGridbooleantrueОборачивать ли содержимое в компонент Grid
gridGridProps{}Объект props компонента Grid
childrenReactNodenullКонтент

ListLayout

Лэйаут страницы списка.

import { ListLayout } from '@n3/kit/ListLayout';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
breadcrumbsBreadcrumb[]Массив объектов хлебных крошек
title+nodeЗаголовок страницы
headerBlocknodenullБлок, выводящийся между заголовком страницы и табами
actionsBlocknodenullБлок действий (кнопки и т.п.)
childrennodenullСодержимое страницы

ListPlaceholder

Плейсхолдер пустого списка.

import {
  ListPlaceholder,
  ListPlaceholderWithoutFilters,
} from '@n3/kit/ListPlaceholder';
  • ListPlaceholder - используется в случае, когда применены фильтры
  • ListPlaceholderWithoutFilters - используется в случае, когда ни один фильтр не применён

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
childrenReactNode'Не найдено ни одной записи'Заголовок
renderDescriptionRenderDescriptionnullРуководство к действиям
@param params - параметры
reload() => voidnullФункиця перезагрузки списка, по умолчанию очищает параметры адресной строки

LoadingArea

Индикация загрузки для определённой области.

import { LoadingArea } from '@n3/kit/LoadingArea';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
loadingbooleantrueСостояние загрузки
childrenReactNodenull

LocalStorageLayout

Компонент, аналогичный Layout, хранящий состояние открытости/закрытости пунктов в localStorage.

Modal

Модальное окно.

import {
  Modal,
  modalSizes,
} from '@n3/kit/Modal';

...

<Modal
  show={show}
  onHide={toggleShow}
>
  <Modal.Body>
    <Modal.Title>
      Заголовок модального окна
    </Modal.Title>

    <div>
      Контент модального окна
    </div>
  </Modal.Body>

  <Modal.Footer>
    Футер модального окна
  </Modal.Footer>
</Modal>

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
sizeenum
- modalSizes.DEFAULT
- modalSizes.SMALL
modalSizes.DEFAULTРазмер модального окна
show+boolОтображается ли модальное окно
hasCloseButtonbooltrueОтображается ли кнопка закрытия окна
onHide+funcОбработчик закрытия модального окна
isHideOnBackdropClickbooltrueЗакрывать ли окно при нажатии вне окна
childrennodenull

ModalSelect

Поле выбора из модального окна.

import { ModalSelect } from '@n3/kit/ModalSelect';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
renderModal+(renderProps: ModalSelectButtonModalRenderProps<ValueType>) => ReactNodeФункция рендера содержимого модального окна
disabledbooleanfalseВыключено ли поле
hasErrorbooleanfalseЕсть ли у поля ошибка
hasWarningbooleanfalseЕсть ли у поля предупреждение
text+stringТекст, выводящийся в поле
placeholderstring""
onChange(nextValue: any) => void"(): void => {}"Обработчик изменения значения поля

ModalSelectButton

Кнопка, открывающая модальное окно для выбора.

import { ModalSelectButton } from '@n3/kit/ModalSelectButton';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
classNamestring""
renderModal+(renderProps: ModalSelectButtonModalRenderProps<ValueType>) => ReactNodeФункция рендера содержимого модального окна
disabledbooleanfalse
onSelectFromModal(nextValue: any) => void"(): void => {}"

NestedListLayout

Лэйаут страницы списка внутри родительской сущности.

import { NestedListLayout } from '@n3/kit/NestedListLayout';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
breadcrumbsBreadcrumb[]Массив объектов хлебных крошек
parentTitle+nodeЗаголовок родительской сущности
parentActionsBlocknodeБлок действий у заголовка родительской сущности (кнопки и т.п.)
parentStatusnodenullСтатус
parentStatusColorTagColorundefinedЦвет тэга статуса
headerBlocknodenullБлок, выводящийся между заголовком страницы и табами
tabsTab[]Табы родительской сущности
currentTab+anyid выбранного таба
title+nodeЗаголовок страницы
actionsBlocknodenullБлок действий (кнопки и т.п.)
childrennodenullСодержимое страницы

NestedRoutesLayout

Пример использования:

import { NestedRoutesLayout } from '@n3/kit/NestedRoutesLayout';

// ...

const data = await fetch(/* ... */);

const NestedRoute = ({
  Layout,
  payload,
}) => (
  <Layout
    title="Вложенный заголовок"
    breadcrumbs={[{
      url: null,
      title: 'Дополнительная крошка',
    }]}
  >
    Контент
  </Layout>
);

<NestedRoutesLayout
  breadcrumbs={[{
    url: '/',
    title: 'Хлебная крошка',
  }]}
  title="Основной заголовок"
  tabs={[
    {
      id: 'tabId',
      title: 'Заголовок таба',
      to: '/tab/',
      component: NestedRoute,
    },
  ]}
  payload={data}
/>

Props NestedRoutesLayout

НазваниеОбязательностьТипЗначение по умолчаниюОписание
breadcrumbs+Breadcrumb[]Массив объектов хлебных крошек
title+nodeЗаголовок страницы
actionsBlocknodeБлок действий у заголовка сущности (кнопки и т.п.)
statusnodenullСтатус
statusColorTagColorundefinedЦвет тэга статуса
headerBlocknodenullБлок, выводящийся между заголовком страницы и табами
tabsNestedRoutesLayoutTab<Payload>[]Табы
redirectFromstringnullПереадресация из
redirectTostringnullПереадресация в
payloadPayloadnullДанные, которые будут переданы во вложенные страницы

Props Layout

НазваниеОбязательностьТипЗначение по умолчаниюОписание
breadcrumbsBreadcrumb[]Дополнительные хлебные крошки
titlenodeЗаголовок вложенной страницы
actionsBlocknodeБлок действий вложенной страницы
childrennodenullСодержимое страницы

Формат таба

НазваниеОбязательностьТипЗначение по умолчаниюОписание
id+TabIdid таба
title+nodeЗаголовок таба
pathstringПуть страницы для react-router-dom, если не определено, используется to
to+stringurl страницы
component+ComponentType<NestedRouteComponentProps<any, any>>nullКомпонент страницы

NestedShowLayout

import { NestedShowLayout } from '@n3/kit/NestedShowLayout';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
breadcrumbsBreadcrumb[]Массив объектов хлебных крошек
title+nodeЗаголовок страницы
actionsBlocknodeБлок действий у заголовка сущности (кнопки и т.п.)
statusnodenullСтатус
statusColorTagColorundefinedЦвет тэга статуса
headerBlocknodenullБлок, выводящийся между заголовком страницы и табами
tabsTab[]Табы
currentTab+anyid выбранного таба
childrennodenullСодержимое страницы

PageSizeSelect

Компонент выбора количества элементов на странице для приложений на базе @n3/kit.

import { PageSizeSelect } from '@n3/kit/PageSizeSelect';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
start+numberПорядковый номер первого элемента
end+numberПорядковый номер последнего элемента
count+numberОбщее количество элементов
value+numberВыбранное значение
optionsnumber[][20, 40, 100]Список возможных значений
onChange+(nextValue: number) => voidОбработчик изменения значения
@param nextValue - новое значение
toggleButtonIdstring''id кнопки открытия/закрытия меню
wrapperIdstring''id корневого элемента

PageTitle

Заголовок страницы.

import { PageTitle } from '@n3/kit/PageTitle';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
pageTypeenum
- 'list'
- 'form'
- 'parent'
'list'Тип страницы
actionsBlockReactNodenullБлок действий (кнопки и т.п.)
statusReactNodenullСтатус
statusColorTagColor'grayЦвет тэга статуса
childrennodenullЗаголовок страницы

Paginator

Пагинатор.

import { Paginator } from '@n3/kit/Paginator';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
page+numberТекущая страница пагинатора, начиная с 1
pageCount+numberКоличество страниц
hrefBuilderfuncundefinedФункция генерации атрибута href компонента <a>
@param {number} page - номер страницы, начиная с 1
onPageChange+funcОбработчик изменения страницы
@param {number} page - номер страницы, начиная с 1
wrapperIdstringid корневого dom-элемента

parseLayoutFromLocalStorage

Парсинг состояния Layout из localStorage.

import { parseLayoutFromLocalStorage } from '@n3/kit/LocalStorageLayout';

Provider

Компонент для задания глобальных параметров компонентов.

import { Provider } from '@n3/kit/Provider';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
childrenReactNodeundefined
theme+ThemeTypeТема в формате @n3/css-base

Radio

Радиокнопка.

import { Radio } from '@n3/kit/Radio';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
value+ReactTextvalue html-элемента input, также передаётся в колбэке onChange
checked+booleanвыбрано
disabledbooleanfalseвыключено
namestring""name html-элемента input
labelReactNodenullтекст/контент, выводящийся рядом с радио
onChange(value: ReactText) => void(): void => {}хэндлер изменения значения, вызывается с параметрами: (newChecked)

RadioGroup

Группа радиокнопок.

import { RadioGroup } from '@n3/kit/RadioGroup';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
inlinebooleanfalseинлайновый вывод
namestring""name каждого html-элемента input
valueReactTextnullзначение выбранной опции
disabledbooleanfalseвыключена ли данная группа радио
options+Record<string, any>[]список опций данной группы радио
valueKeystring"value"ключ, по которому хранятся значения в объектах options
labelKeystring"label"ключ, по которому хранятся заголовки в объектах options
onChange(value: ReactText) => void"(): void => {}"хэндлер изменения значения

RemoveButton

Кнопка удаления.

import { RemoveButton } from '@n3/kit/RemoveButton';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
colorenum
- buttonColors.DEFAULT
- buttonColors.PRIMARY
- buttonColors.TERTIARY
- buttonColors.DANGER
undefinedЦвет кнопки
sizeenum
- buttonSizes.DEFAULT
- buttonSizes.SMALL
undefinedРазмер кнопки
disabledboolfalseВыключена ли кнопка
children+node
remove+funcАсинхронная функция удаления
onRemoveSuccessfuncundefinedОбработчик успешного удаления
approveTitlenodeundefinedЗаголовок подтверждения
approveContentnodeundefinedТекст подтверждения
approveButtonText+stringТекст кнопки подтвеждения
approveButtonColorenum
- buttonColors.DEFAULT
- buttonColors.PRIMARY
- buttonColors.TERTIARY
- buttonColors.DANGER
buttonColors.DANGERЦвет кнопки подтверждения
cancelButtonText+stringТекст кнопки отмены
errorsPathstring'response.data.detail'Путь до объекта ошибкок в случае ошибки удаления
redirectToanyundefinedАдрес редиректа в случае успешного удаления
notificationobjectundefinedСообщение @n3/browser-messages в случае успешного удаления

Repeat

Повторяющиеся блоки.

import { Repeat } from '@n3/kit/Repeat';

<Repeat
  title="Группа полей"
>
  <Repeat.Block
    index={0}
  >
    Блок №1
  </Repeat.Block>

  <Repeat.Block
    index={1}
  >
    Блок №2
  </Repeat.Block>

  <Repeat.Block
    index={2}
  >
    Блок №3
  </Repeat.Block>
</Repeat>

Props

Repeat
НазваниеОбязательностьТипЗначение по умолчаниюОписание
disabledbooleanfalseВыключена ли кнопка добавления
titleReactNodenullЗаголовок
addButtonTitleReactNode"Добавить ещё"Текст кнопки добавления
handleAdd() => voidnullОбработчик нажания на кнопку добавления, если не определён, кнопка добавления не отображается
Repeat.Block
НазваниеОбязательностьТипЗначение по умолчаниюОписание
disabledbooleanfalseВыключена ли кнопка удаления
titleReactNodenullЗаголовок
index+numberИндекс в последовательности блоков
hasHorizontalPaddingbooleantrueЕсть ли отступ от левой и правой границ до контента
handleRemove(index: number) => voidnullОбработчик нажания на кнопку удаления, если не определён, кнопка удаления не отображается
@param index - индекс блока в массиве

Row

import { Row } from '@n3/kit/Row';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
isWrapbooleanfalseРендер внутренних блоков c переносами
$rowGapstring | numberundefinedОтступ между строками
Если число, берётся соответсвующий отступ из темы
Если строка, она напрямую используется для свойства rowGap

SearchInput

Поле поиска.

import { SearchInput } from '@n3/kit/SearchInput';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
componentInputComponentКомпонент корневого элемента инпута
disabledbooleanfalseВыключено ли поле
Выключено ли поле
hasErrorbooleanЕсть ли у поля ошибка
hasWarningbooleanЕсть ли у поля предупреждение
smallbooleanМаленькое ли поле
classNamestringДополнительный класс корневого компонента инпута
isOnlyBorderBottombooleanОтображение без рамки только с подчёркиванием снизу
buttonsRenderInputButton[]Массив функций реднеда кнопок
@param props - все props инпута
@param index - индекс кнопки
value+stringЗначение поля
onChange(event: ChangeEvent) => void"(): void => { }"Обработчик изменения инпута
@param event - событие
onValueChange(nextValue: string) => void"(): void => { }"Обработчик изменения значения поля (в т.ч. при нажатии на кнопку сброса)
@param newValue - новое значение поля
handleClear() => void"(): void => { }"Обработчик нажатия на кнопку сброса
handleSearch(searchValue: string) => void"(): void => { }"Обработчик нажатия на кнопку поиска
@param searchValue - текущее значение поля поиска

Section

Секция.

import { Section } from '@n3/kit/Section';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
titlestringnullЗаголовок секции
titleColsXsCellValue3Количество колонок заголовка
contentColsXsCellValue8Количество колонок контента
hintReactNodenullПодсказка, выводящаяся у заголовка поля
isEditbooleanfalseИспользуется ли внутри формы редактирования
childrenReactNodenullКонтент

Select

Селект.

import { Select } from '@n3/kit/Select';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
smallbooleanfalseМаленькое ли поле
isMultibooleanfalseМножественный выбор
isClearablebooleantrueВозможность сброса значения
hasErrorbooleanfalseЕсть ли у поля ошибка
hasWarningbooleanfalseЕсть ли у поля предупреждение
valueanynullЗначение поля
selectRefRefref для получения экземпляра react-select
renderModal(renderProps: ModalSelectButtonModalRenderProps<ValueType>) => ReactNodeundefinedФункция рендера содержимого модального окна
isDisabledbooleanfalseВыключено ли поле
getOptionLabelGetOptionLabelnullФункция получения заголовка опции для вывода и фильтрации
labelKeystring"label"Ключ, для получения заголовка опции в случае, если не определено getOptionLabel
getOptionValueGetOptionValuenullФункция получения значения опции
valueKeystring"value"Ключ, для получения значения опции в случае, если не определено getOptionValue
onChange(nextValue: any) => void"(): void => {}"Обработчик изменения значения поля
@param nextValue - новое значение поля
options+OptionsTypeGroupedOptionsType

SelectAjax

Стилизованный react-select-fetch.

import { SelectAjax } from '@n3/kit/SelectAjax';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
smallbooleanfalseМаленькое ли поле
isMultibooleanfalseМножественный выбор
isClearablebooleantrueВозможность сброса значения
hasErrorbooleanfalseЕсть ли у поля ошибка
hasWarningbooleanfalseЕсть ли у поля предупреждение
valueanynullЗначение поля
selectRefRefref для получения экземпляра react-select
renderModal(renderProps: ModalSelectButtonModalRenderProps<ValueType>) => ReactNodeundefinedФункция рендера содержимого модального окна
isDisabledbooleanfalseВыключено ли поле
getOptionLabelGetOptionLabelnullФункция получения заголовка опции для вывода и фильтрации
labelKeystring"label"Ключ, для получения заголовка опции в случае, если не определено getOptionLabel
getOptionValueGetOptionValuenullФункция получения значения опции
valueKeystring"value"Ключ, для получения значения опции в случае, если не определено getOptionValue
onChange(nextValue: any) => void"(): void => {}"Обработчик изменения значения поля
@param nextValue - новое значение поля
url+stringапи-url для запроса данных
queryParams{ [key: string]: any; }Перманентные параметры запроса
searchParamNamestringКлюч, по которому текст строки поиска будет добавлен к параметрам запроса
pageParamNamestringКлюч, по которому номер текущей страницы будет добавлен к параметрам запроса
offsetParamNamestringКлюч, по которому индекс первой опции для запроса будет добавлен к параметрам запроса
mapResponseMapResponseФункция маппинга ответа сервера в формат react-select-async-paginate
getGetАсинхронная функция запроса данных с сервера
@param url - апи-url
@param queryParams - параметры запроса
@returns ответ сервера
debounceTimeoutnumberЗадержка при отправке запросов
cacheUniqs+any[]Список значений при изменении одного из которых опции будут сброшены

SelectAsync

Стилизованный react-select-async-paginate.

import { SelectAsync } from '@n3/kit/SelectAsync';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
smallbooleanfalseМаленькое ли поле
isMultibooleanfalseМножественный выбор
isClearablebooleantrueВозможность сброса значения
hasErrorbooleanfalseЕсть ли у поля ошибка
hasWarningbooleanfalseЕсть ли у поля предупреждение
valueanynullЗначение поля
selectRefRefref для получения экземпляра react-select
renderModal(renderProps: ModalSelectButtonModalRenderProps<ValueType>) => ReactNodeundefinedФункция рендера содержимого модального окна
isDisabledbooleanfalseВыключено ли поле
getOptionLabelGetOptionLabelnullФункция получения заголовка опции для вывода и фильтрации
labelKeystring"label"Ключ, для получения заголовка опции в случае, если не определено getOptionLabel
getOptionValueGetOptionValuenullФункция получения значения опции
valueKeystring"value"Ключ, для получения значения опции в случае, если не определено getOptionValue
onChange(nextValue: any) => void"(): void => {}"Обработчик изменения значения поля
@param nextValue - новое значение поля
loadOptionsLoadOptions<any, any>Асинхронная функция запроса данных с сервера в формате react-select-async-paginate
@param search - значение строки поиска
@param prevOptions - список загруженных опций
@param additional - дополнительные параметры запроса
@returns ответ сервера
additionalanyДополнительные параметры первого запроса
debounceTimeoutnumberЗадержка при отправке запросов
cacheUniqs+any[]Список значений при изменении одного из которых опции будут сброшены

showConfirm

Всплывающее подтверждение.

import {
  showConfirm,
  ConfirmError,
} from '@n3/kit/showConfirm';

// ...

const result = await showConfirm({
  title: 'Таблица «Отчет 23.10.2019»',
  content: 'Вы сможете переместить таблицу обратно в любое время.',
  approveButtonText: 'Переместить',
  cancelButtonText: 'Оставить',
});

Параметры

НазваниеОбязательностьТипЗначение по умолчаниюОписание
modalSizeenum
- modalSizes.SMALL
- modalSizes.DEFAULT
modalSizes.SMALLРазмер модального окна
titlestringnullЗаголовок
contentnodenullТекст
approvefuncnullАсинхронная функция подтверждения, может закончиться с исключением ConfirmError({ title, message })
cancelButtonText+stringТекст кнопки отмены
approveButtonText+stringТекст кнопки подтвеждения
approveButtonColorenum
- buttonColors.DEFAULT
- buttonColors.PRIMARY
- buttonColors.TERTIARY
- buttonColors.DANGER
buttonColors.PRIMARYЦвет кнопки подтверждения
resolveModal+func

Sidebar

Сайдбар.

import { Sidebar } from '@n3/kit/Sidebar';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
menuCollapsiblebooleantrueВозможность схлопывания меню в иконки
linksGroups+(SidebarLinksGroup | SidebarLink)[]Описание пунктов
counters{ [key: string]: number; }"{}"Счётчики
countersMaxNumbernumbernullМаксимальное число в счётчиках
showCountersInOpenedStatebooleanfalseПоказывать ли счётчики у открытых групп
collapsiblebooleantrueВозможность скрытия меню на маленьких экранах
collapsedbooleantrueСкрыто ли меню на маленьком экране
openedGroups{ [key: string]: boolean; }"{}"Объект, показывающий, какие группы открыты
openedByDefaultbooleanfalseОткрыты ли по умолчанию группы, id которых отстуствуют в openedGroups
menuCollapsedbooleanfalseСхлопнуто ли меню в иконки
closeMenu() => void"(): void => {}"Обработчик закрытия меню
setMenuCollapsed(nextValue: boolean) => void"(): void => {}"Обработчик схлопывания меню в иконки
@param nextValue - новое состояние схлопнутости
onToggleGroup(groupId: string, opened: boolean) => void"(): void => {}"Обработчик скрытия/раскрытия пунктов меню
@param groupId - id группы
@param opened - новое состояние открытости/закрытости
НазваниеОбязательностьТипЗначение по умолчаниюОписание
type+"link"
id+string
title+ReactNodeЗаголовок ссылки
renderIconRenderSidebarIconnullФункция рендера иконки первого уровня
payload+{ url: string; target?: string; isAnchor?: boolean; }
Параметры group
НазваниеОбязательностьТипЗначение по умолчаниюОписание
type+"group"
id+string
title+ReactNodeЗаголовок группы
renderIconRenderSidebarIconnullФункция рендера иконки первого уровня
payload+{ links: (SidebarLinksGroup | SidebarLink)[]; }

SortIndicator

Индикатор сортировки.

import { SortIndicator } from '@n3/kit/SortIndicator';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
iconUpClassNamestring""Дополнительный класс иконки "вверх"
iconDownClassNamestring""Дополнительный класс иконки "вниз"
isActivebooleanfalseАктивна ли сортировка по выбранному параметру
ascbooleantrueПо возрастанию ли сортировка

SortSwitcher

Переключатель сортировки.

import { SortSwitch } from '@n3/kit/SortSwitcher';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
activeParamstringnullПараметр, по которому произведена сортировка
param+stringТекущий параметр для сортировки
asc+booleanСортировка по возрастанию
isDefaultSortAscbooleantrueСортировка по умолчанию по возрастанию
setSorting+(paramName: string, asc: boolean) => voidОбработчик изменения параметра или порядка сортировки
@param paramName - параметр сортировки
@param asc - сортировка по возрастанию
childrenReactNodenullЗаголовок

Table

Компоненты для создания таблиц.

import {
  Table,
  Th,
  Td,
} from '@n3/kit/Table';

// ...

<Table>
  <thead>
    <tr>
      <Th rowSpan={2}>#</Th>
      <Th colSpan={2}>Name of person</Th>
      <Th rowSpan={2}>Username</Th>
    </tr>

    <tr>
      <Th>First Name</Th>
      <Th>Last Name</Th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <Td>1</Td>
      <Td>Mark</Td>
      <Td>Otto</Td>
      <Td>@mdo</Td>
    </tr>

    <tr>
      <Td>2</Td>
      <Td>Jacob</Td>
      <Td>Thornton</Td>
      <Td>@fat</Td>
    </tr>

    <tr>
      <Td>3</Td>
      <Td colSpan="2">Larry the Bird</Td>
      <Td>@twitter</Td>
    </tr>
  </tbody>

  <tfoot>
    <tr>
      <Td>#</Td>
      <Td>First Name</Td>
      <Td>Last Name</Td>
      <Td>Username</Td>
    </tr>
  </tfoot>
</Table>

Props

Table
НазваниеОбязательностьТипЗначение по умолчаниюОписание
lightenRownumbernullНомер строки, для которой применена подсветка
Th/Td
НазваниеОбязательностьТипЗначение по умолчаниюОписание
classNamestring''
isMinWidthboolfalseДобавить width: 1px для рендера узких колонок (иконкий действий и т.п.)
isNowrapboolfalseДобавить white-space: nowrap
hasWordBreakboolfalseДобавить свойства для разбиения строк в случае переполнения
textAlignenum
- 'left'
- 'right'
- 'center'
'left'
widthunion
- string
- number
null

TableActions

Компонент действий со строками таблицы.

import { TableActions } from '@n3/kit/TableActions';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
actions+arrayOf [
  shape {
  - render
    func
  - disabled
    bool
  - label
    string
  - onClick
    func
  - renderIcon
    func
  }
]
Список действий

Tabs

Табы.

import { Tabs } from '@n3/kit/Tabs';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
tabs+arrayOf [
  shape {
  - id
    union
    - number
    - string
  - title
    node
- renderIcon
func
  }
]
Массив табов для рендера
currentunion
- number
- string
nullid выбранного таба
recountOnResizeboolfalseПересчитывать ли состояние скрытий/показа табов при изменении размеров окна
renderTabfuncundefinedФункция рендера таба
@param {Object} renderProps
@param {string} renderProps.className
@param {Function} renderProps.onClick
@param {ReactNode} renderProps.label - заголовок таба
@param {Object} renderProps.tab - объект таба
setCurrentTabfuncundefinedОбработчик изменения текущего таба
@param {string
renderContentfunc(contentNode) => contentNodeФункция рендера табов для возможности создания обёртки

Tag

Тег.

import { Tag } from '@n3/kit/Tag';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
presetTagPresetType'light_gray'Цвет тега
textColorstringundefinedПереопределённый цвет текста (только в случае, есле цветов из preset недостаточно)
backgrondColorstringundefinedПереопределённый цвет фона (только в случае, есле цветов из preset недостаточно)
borderColorstringundefinedПереопределённый цвет границы (только в случае, есле цветов из preset недостаточно)
componentTagComponent'span'Компонент тега
classNamestring''Дополнительный класс тега
sizeTagSize'medium'Размер (работает только в стандартном стиле)
variantTagVariant'default'Стиль отображения тега

Toggle

import { Toggle } from '@n3/kit/Tag';

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
checked+booleanвыбран ли данный toggle
disabledbooleanfalseВыключено ли поле
namestring''name html-элемента input, а также аргумент колбэка onChange
valueToggleValue''value html-элемента input, а также аргумент колбэка onChange
labelReactNode''текст/контент, выводящийся рядом
smallbooleanfalseМаленький ли toggle
classNamestring''Дополнительный класс корневого компонента
inputProps`Omit<HTMLProps, 'ref''as'>`undefined
onChangeOnToggleChangeundefinedхэндлер изменения значения, вызывается с параметрами: (nextChecked, value, name)

Tooltip

Компонент для создания всплывающих подсказок.

import { Tooltip } from '@n3/kit/Tooltip';

// ...

<Tooltip
  tooltip="Подсказка"
>
  {({
    innerProps,
    ref,
  }) => (
    <span
      {...innerProps}
      ref={ref}
    >
      Наведите, чтобы увидеть подсказку
    </span>
  )}
</Tooltip>

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
tooltip+nodeКонтент тултипа
placementstring'bottom'Расположение popper-компонента
popperStyleobjectOf {
  any
}
{}Дополнительные стили popper-компонента
popperPropsobjectOf {
  any
}
{}Дополнительные опции popper-компонента
children+funcФункция рендера тултипа
@param {Object} renderProps
@param {Object} renderProps.ref - ref dom-элемента, открывающего тултип
@param {Object} renderProps.innerProps - props, которые должны переданы dom-элементу, открывающему тултип
@param {boolean} renderProps.isOpen - открыт ли тултип

Typography

import { Typography } from '@n3/kit/Typography';

// ...

<Typography
  variant="h3"
  align="center"
>
  Текст
</Typography>

Props

НазваниеОбязательностьТипЗначение по умолчаниюОписание
classNamestring''Дополнительный класс
variantTypographyVariantType'body01'Вариант текста
alignstring'inherit'Выравнивание в блоке
colorstringundefinedЦвет текста
componentComponentType<any>undefinedКомпонент
childrenTypographyVariantTypeundefined
...rest`Record<string, unknown>``Дополнительные props компонента

useLayoutState

Хук для получения состояния Layout (возвращает null, если Layout не используется).

import { useLayoutState } from '@n3/kit/Layout';

useRemoveButton

Хук для создания кастомной кнопки удаления.

import type {
  ReactElement,
  ReactNode,
} from 'react';

import {
  useRemoveButton,
} from '@n3/kit/useRemoveButton';
import type {
  UseRemoveButtonParams,
} from '@n3/kit/useRemoveButton';

type CustomRemoveButtonProps = UseRemoveButtonParams & {
  children?: ReactNode;
};

function CustomRemoveButton(props: CustomRemoveButtonProps): ReactElement {
  const {
    children,
    remove,
    onRemoveSuccess,
    approveTitle,
    approveContent,
    approveButtonText,
    approveButtonColor,
    cancelButtonText,
    errorsPath,
    redirectTo,
    notification,
  } = props;

  const {
    isRemoving,
    onClick,
  } = useRemoveButton({
    remove,
    onRemoveSuccess,
    approveTitle,
    approveContent,
    approveButtonText,
    approveButtonColor,
    cancelButtonText,
    errorsPath,
    redirectTo,
    notification,
  });

  return (
    <button
      type="button"
      disabled={isRemoving}
      onClick={onClick}
    >
      {children}
    </button>
  );
}

Keywords

FAQs

Package last updated on 21 Nov 2024

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc