@cavicode/uikit-webadmin (0.1.3)

Published 2026-08-23 02:45:44 +03:00 by CaviCode

Installation

@cavicode:registry=
npm install @cavicode/uikit-webadmin@0.1.3
"@cavicode/uikit-webadmin": "0.1.3"

About this package

@cavicode/uikit-webadmin

Vue 3 UI-компоненты административных интерфейсов CaviCode/HVZ.

Установка

npm install @cavicode/uikit-webadmin @tanstack/vue-table

.npmrc:

@cavicode:registry=https://git.cavicode.tech/api/packages/cavicode/npm/

@tanstack/vue-table требуется текущим единым entry пакета, даже если consumer напрямую не использует UiDataTable. В package.json пакета peer metadata пока объявляет только Vue; consumer не должен полагаться на автоматическую установку TanStack.

Nuxt 4

// plugins/uikit.ts
import CavicodeUIKitWebadmin from '@cavicode/uikit-webadmin'

export default defineNuxtPlugin((nuxtApp) => {
  nuxtApp.vueApp.use(CavicodeUIKitWebadmin)
})
// nuxt.config.ts
export default defineNuxtConfig({
  css: ['@cavicode/uikit-webadmin/style.css'],
})

Для template types consumer добавляет GlobalComponents augmentation. Nuxt components[] не подходит: опубликованный dist содержит compiled JS и .d.ts, а не каталог исходных .vue.

Tailwind v4 consumer должен импортировать package CSS в общий pipeline и сканировать compiled dist:

@import "tailwindcss";
@import "@cavicode/uikit-webadmin/style.css";
@source "../../../node_modules/@cavicode/uikit-webadmin/dist";

Путь @source зависит от расположения consumer stylesheet.

Компоненты (30)

  • Поля: UiInput, UiTextarea, UiSelect, UiCheckbox, UiRadio, UiColorInput, UiSearchInput.
  • Кнопки: UiButton, UiIconButton.
  • Формы/layout: UiFormField, UiFormGrid, UiCard, UiAlert.
  • Диалоги: UiModal, UiConfirmDialog.
  • Таблицы: UiDataTable, UiSimpleTable, UiTableSearch.
  • Навигация: UiPagination, UiTabs, UiPageHeader.
  • Состояния: UiState, UiStatusBadge, UiToast.
  • Прочее: UiDropdown, UiMediaPicker, UiOrderControls, UiBarChart, UiLineChart, UiPieChart.

Consumer-owned state

UiToast и UiConfirmDialog презентационные. Consumer передаёт props и обрабатывает emits; Nuxt composables в пакет не переносятся.

Charts используют generic data:

type UiBarChartDatum = { label: string; value: number; color?: string }
type UiLineChartPoint = { label?: string; date: string; value: number }
type UiPieChartDatum = { label: string; value: number; color?: string }

Ограничения версии 0.1.0

  • UiPageHeader использует глобальный NuxtLink, UiToastClientOnly; полный набор компонентов пока не гарантирует работу в чистом Vue без adapters.
  • Часть legacy CSS variables определяется consumer theme.
  • UiFormGrid modes cols=1|2|3 требуют исправления передачи class; до новой версии использовать cols="auto" либо consumer layout.
  • Export ./theme не предоставляет отдельный runtime API: tokens входят в общий style.css.

Эти ограничения нельзя удалять из consumer workarounds без выпуска и проверки новой версии пакета.

Разработка

npm ci
npm run typecheck
npm run build

npm run build также выполняет vue-tsc --noEmit. Тестов и lint script сейчас нет; изменения компонентов требуют проверки package build и consumer builds.

Dependencies

Development dependencies

ID Version
@tanstack/vue-table ^8.21.3
@types/node ^26.2.0
@vitejs/plugin-vue ^5.2.1
@vue/tsconfig ^0.7.0
sass-embedded ^1.100.0
tailwindcss ^4.3.3
typescript ^5.6.0
vite ^6.0.0
vite-plugin-dts ^4.5.0
vue ^3.5.0
vue-tsc ^3.3.8

Peer dependencies

ID Version
vue ^3.5.0
Details
npm
2026-08-23 02:45:44 +03:00
54
UNLICENSED
68 KiB
Assets (1)
Versions (15) View all
1.4.0 2026-09-13
1.3.0 2026-09-13
1.2.0 2026-09-06
1.1.3 2026-09-03
1.1.1 2026-09-03