jogalanza-ui-kit
v0.0.0
Published
Shared Vue 3 component library, distributed as independent npm packages published to GitHub Packages under the `@jogalanza` scope. npm workspaces monorepo:
Readme
jogalanza/ui-kit
Shared Vue 3 component library, distributed as independent npm packages published to GitHub Packages under the @jogalanza scope. npm workspaces monorepo:
packages/
core-ui/ @jogalanza/ui-kit-core — shared shadcn-vue primitives (Badge, Button, Checkbox,
Dialog, DropdownMenu, Input, NativeSelect, Popover, Separator, Switch, Table,
Toaster), the cn() util, and the notify()/notifyError()/notifyResult() toast
helpers. Dual-purpose: published directly (for projects that want the primitives
on their own) AND bundled into other ui-kit packages at build time (e.g.
filterbar), so those stay fully self-contained without their own peer dependency.
filterbar/ @jogalanza/filterbar — badge-style popover filter bar.Adding a new component package
packages/<name>/with its ownpackage.json(copypackages/filterbar/package.jsonas a template — samepeerDependencies, samepublishConfigpointing at GitHub Packages) andvite.config.js(copypackages/filterbar/vite.config.js; keep peer depsexternal, leave@jogalanza/ui-kit-corebundled).- Add
"@jogalanza/ui-kit-core": "*"to itsdevDependencies(notdependencies— it's bundled at build time, so it should never be installed separately by consumers of the leaf package) and import primitives from it, e.g.import { Button, Popover } from '@jogalanza/ui-kit-core'. A project that wantscore-ui's primitives directly (not through a leaf package) can instead add@jogalanza/ui-kit-coreas a normaldependency. - If the component needs a primitive that doesn't exist in
core-uiyet, add it there (not locally) so future components can reuse it too. npm installat the repo root to link the new workspace. Buildcore-uibefore any package that bundles it (npm run build --workspace=packages/core-uifirst) — itsmain/exportspoint at its own builtdist, not raw source.
Develop
npm install
npm run build --workspace=packages/<name>