@woovi/ui
v7.0.0
Published
Woovi UI component library
Readme
@woovi/ui
Woovi UI component library built with React and Material-UI.
Installation
npm install @woovi/ui
# or
yarn add @woovi/ui
# or
pnpm add @woovi/uiUsage
import i18n from "i18next"
import { Button, Card, ThemeProvider } from "@woovi/ui";
import { SnackbarProvider } from "notistack"
import { I18nextProvider, initReactI18next } from "react-i18next"
import { BrowserRouter } from "react-router"
import en from '@woovi/ui/locales/en.json';
import es from '@woovi/ui/locales/es.json';
import ptBR from '@woovi/ui/locales/pt-BR.json';
i18n.use(initReactI18next).init({
resources: {
en: {
translation: en,
},
es: {
translation: es,
},
"pt-BR": {
translation: ptBR,
},
},
lng: "en",
fallbackLng: "en",
interpolation: {
escapeValue: false,
},
})
function Providers() {
return (
<ThemeProvider>
<SnackbarProvider maxSnack={3}>
<I18nextProvider i18n={i18n}>
<BrowserRouter>{children}</BrowserRouter>
</I18nextProvider>
</SnackbarProvider>
</ThemeProvider>
)
}
function App() {
return (
<Providers>
<Card>
<Button>Click me</Button>
</Card>
</Providers>
);
}Requirements
- React 18.3.1 or higher
- React DOM 18.3.1 or higher
Publishing
@woovi/ui is published to two registries, and both must stay in sync:
| Registry | Why it matters |
| --- | --- |
| registry.npmjs.org | Public consumers. |
| verdaccio.woovi.dev | In-house registry that all Woovi CI installs from. The @woovi/* scope is not proxied to npm (dependency-confusion protection), so a version that only reaches public npm is invisible in CI and breaks pnpm install with ERR_PNPM_FETCH_404. |
Two scripts handle this, both idempotent — they check the target registry first and skip if the current package.json version is already published:
# Publish the public release (manual / local only — needs your own `npm login`)
pnpm publish:npm
# Publish to the in-house Verdaccio (run locally, and also done automatically by CI)
pnpm publish:verdaccioRelease checklist
- Bump the version (
pnpm release:patch/release:minor/release:major). pnpm publish:npm— publishes to public npm.pnpm publish:verdaccio— publishes the same version to Verdaccio (or let CI do it on the next staging deploy).
Don't skip step 3. Publishing to npm alone leaves Verdaccio behind and breaks every downstream Woovi CI pipeline that depends on the new version.
CI
The tekton-woovi-ui staging pipeline runs pnpm publish:verdaccio automatically (task task-publish-verdaccio-app, after build). It is Verdaccio-only — no npm automation token is provisioned in-cluster, so the public npm publish stays a manual step. Because the script is idempotent, re-running the pipeline on an already-published version is a no-op.
Auth
- npm:
npm login(your own account) beforepnpm publish:npm. - Verdaccio (local):
npm login --registry https://verdaccio.woovi.dev(Google SSO). - Verdaccio (CI): the Tekton task writes
~/.npmrcfrom the Verdaccio publish token; nothing to do.
License
MIT
