maksit-webui/README.md
Maksym Sadovnychyy b74e9250a7
Some checks are pending
Storybook tests / storybook-tests (push) Waiting to run
(bugfix): HOSTNAMES_ARRAY_POLICY and deepDelta fixes
2026-07-06 21:34:08 +02:00

2.5 KiB

MaksIT.WebUI

Line Coverage Branch Coverage Method Coverage

Shared React UI library for maksit-certs-ui and maksit-vault WebUI apps.

Packages

npm package Description
@maks-it.com/webui-contracts Shared TypeScript contracts (paging, gallery types, patch ops, scopes)
@maks-it.com/webui-core Utilities (deepDelta, enum helpers, ACL parsers) and useFormState
@maks-it.com/webui-components React components, layout, editors, DataTable, auth shell

Source lives under src/ (npm workspaces). Release automation lives under utils/ (from maksit-repoutils).

Local development

cd src
npm install
npm run build
npm test
npm run storybook

Storybook (npm run storybook) runs a local catalog of @maks-it.com/webui-components with Tailwind, React Router, autodocs, a11y checks, and Vitest component tests (testing widget + npm run test-storybook). Stories live under src/stories/components/ (mirroring component folders); see src/stories/README.md for story conventions and testing.

Tests and coverage badges: utils\Invoke-TestEngine.bat (plugin config in utils\engines\test\scriptSettings.json; uses NpmJestTest).

Release to npmjs

  1. Set Npm environment variable to your npm automation token (logical secret name in scriptSettings.json).
  2. Bump src/package.json version (and tag vX.Y.Z on main when using the publish guard).
  3. Run utils\Invoke-ReleasePackage-Single.bat (or pwsh utils\engines\release\Invoke-ReleasePackage.ps1).

Configured plugins (see utils\engines\release\scriptSettings.json):

Plugin Role
NpmReleaseVersion Read semver from src/package.json; sync packages/*/package.json
NpmBuild npm ci + npm run build
ReleasePublishGuard Branch/tag checks before publish
GitHub GitHub release (optional; set GitHub env var)
NpmPublish Publish workspace packages in dependency order

Refresh shared utils from repoutils: utils\Update-RepoUtils.bat.

Consume in product repos

npm install @maks-it.com/webui-contracts @maks-it.com/webui-core @maks-it.com/webui-components

Wrap the app with WebUiProvider and pass axios/redux adapters — see assets/docs/NPM_CONSUMPTION.md.

License

MIT