@camp2gether/c2g-ui
v0.32.2
Published
This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.3.0.
Readme
C2gUi
This project was generated using Angular CLI version 20.3.0.
Code scaffolding
Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
ng generate component component-nameFor a complete list of available schematics (such as components, directives, or pipes), run:
ng generate --helpBuilding
To build the library, run:
ng build c2g-uiThis command will compile your project, and the build artifacts will be placed in the dist/ directory.
Publishing
Not by hand. Publishing happens through a push to main.
.github/workflows/publish.yml runs on every push to main, compares the
version in projects/c2g-ui/package.json with the one on npm and publishes when
they differ. If they are the same, the run does nothing — so a push without a
version bump is harmless.
The way to a new version:
- Raise the version in
projects/c2g-ui/package.json. - Run the same build beforehand that the CI runs:
Ten guards hang on it, among themnpm run buildcheck:stories(one Storybook story per component). It publishes nothing. - Push to
main. The CI does the rest.
Afterwards pull the dependency in the web repository up to the new version and
run npm install.
Why not locally
The CI authenticates over trusted publishing (OIDC) — GitHub gives the job a
short-lived token, and npm recognises the repository and the workflow file by it.
There is deliberately no NPM_TOKEN secret; if one were set, npm would
prefer it and skip OIDC.
That is why it does not work locally: your own npm login has nothing to do with
this chain. A personal token can publish if the account has rights to the
package — but then past the CI, without the version comparison, and the next CI
run fails because the version already exists.
On 2026-08-04 this still said NPM_TOKEN=<token> npm run release. The attempt
ended with E404 PUT /@camp2gether%2fc2g-ui — npm's phrasing for "not
permitted" — because the local token no longer held. The instructions were the
fault, not the token.
scripts/release-flow.mjs with npm run release and npm run release:check is
deleted. Its one own check — a story per component — now runs as check:stories
in npm run build and therefore in the CI, where it never ran before.
What consumers have to bring
The library translates its texts over ngx-translate — it therefore depends on
a TranslateService in the application. Without one, even creating a component
that uses the translate pipe fails (among others the whole packing list family).
For tests the library brings provideC2gTesting() along; besides the zoneless
change detection it also provides a TranslateService.
The peer dependencies name everything that is imported. leaflet, echarts,
ngx-echarts and ngx-lottie are marked optional: they are needed only if you
use maps, charts or animations.
Running unit tests
To execute unit tests with the Karma test runner, use the following command:
ng testRunning end-to-end tests
For end-to-end (e2e) testing, run:
ng e2eAngular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
Storybook Quality Gates
All Wave 1 and future components must meet the criteria defined in:
This document covers:
- Required story variants per component type
- Requirement that every component ships with at least one Storybook story before release
- Angular 20 signal-based API conventions
- Accessibility (A11y) checklist
- Visual consistency and design token rules
- i18n requirements
- Branch and delivery policy
- Copy-paste DoD checklist for new component tickets
Additional Resources
For more information on using the Angular CLI, including detailed command references, visit the Angular CLI Overview and Command Reference page.
