@only.digital/ui
v2.3.2
Published
Библиотека базовых UI-компонентов
Downloads
702
Readme
@only.digital/ui
Библиотека базовых UI-компонентов
Импорт
import { Tabs } from '@only.digital/ui';
import { BREAKPOINTS } from '@only.digital/ui';
import type { ComponentProps } from '@only.digital/ui/core/types';
import { Anchors } from '@only.digital/ui/react';
import { Modal as ReactModal } from '@only.digital/ui/react/components/Modal';
import { Picture } from '@only.digital/ui/react/components/Picture';
import { useCookie } from '@only.digital/ui/react/hooks/useCookie';
import { Datepicker } from '@only.digital/ui/core/components/datepicker';@only.digital/ui — core-модуль (safe-экспорты без опциональных peer deps).
Для React есть @only.digital/ui/react (safe-экспорты, но требуется react) и под-пути для точечных импортов
(@only.digital/ui/react/components/Modal, @only.digital/ui/react/hooks/useCookie и т.д.).
Для core аналогично (@only.digital/ui/core/components/datepicker).
Компоненты/хуки с peer deps импортируются только по детальным под-путям.
Обновление библиотеки (новый компонент)
- Создайте исходники — добавьте файлы компонента в
packages/core/components/<component-name>/(core) илиpackages/react/components/<ComponentName>/(react). - Экспортируйте публичный API:
- если компонент без peer deps, добавьте его в
packages/core/components/index.tsилиpackages/react/components/index.ts; - если компонент с peer deps, экспортируйте его только из собственного
index.tsвнутри папки компонента (не добавляйте в общийcomponents/index.ts); - если нужны типы, экспортируйте их в
packages/core/typesилиpackages/react/typesи убедитесь, что они попадают вindex.ts; - при добавлении утилит/хуков/хоков обновите соответствующие
packages/*/utils|hooks|hocs/index.ts.
- если компонент без peer deps, добавьте его в
- Peer deps — если компонент требует внешние библиотеки, добавьте их в
peerDependenciesиpeerDependenciesMetaвpackage.json, и обязательно укажите это в документации компонента. - Документация — обновите описание в папке
packages/*/documents/. - Сборка и pack — выполните
npm run build(содержимое должно появится в dist), затемnpm pack(получитсяonly.digital-ui-<version>.tgzв корне проекта). - Тестирование через pack — установите в проекте-потребителе:
npm i /path/to/only-ui/only.digital-ui-<version>.tgzи проверьте импорты. Примечание: если версия не менялась, npm может оставить старый пакет — можно сделать форс-установку (npm i /path/to/only-ui/only.digital-ui-<version>.tgz --force) или очистить npm cache (npm cache clean --force).
В сборке внешние зависимости помечены как external и не попадают в итоговый бандл. Пакеты из dependencies устанавливаются автоматически вместе с @only.digital/ui, а пакеты из peerDependencies нужно установить в проекте-потребителе вручную (npm i <package>). Такой подход будет касаться и других внешних библиотек, если они понадобятся.
