@conciso/design-system-angular 0.0.0-bootstrap.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +15 -0
- package/README.md +183 -0
- package/fesm2022/conciso-design-system-angular.mjs +7662 -0
- package/fesm2022/conciso-design-system-angular.mjs.map +1 -0
- package/package.json +38 -0
- package/types/conciso-design-system-angular.d.ts +3442 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Conciso GmbH
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/NOTICE
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
NOTICE
|
|
2
|
+
|
|
3
|
+
Dieses Repository steht unter der MIT-Lizenz (siehe LICENSE), mit folgenden
|
|
4
|
+
Ausnahmen:
|
|
5
|
+
|
|
6
|
+
- Logos und Wortmarken unter assets/brand/: Eigentum der Conciso GmbH, nicht
|
|
7
|
+
unter der MIT-Lizenz dieses Repositories. Siehe assets/brand/LICENSE.
|
|
8
|
+
- Schriften (Montserrat, Libre Baskerville) unter fonts/: SIL Open Font
|
|
9
|
+
License 1.1. Siehe fonts/Montserrat-OFL.txt und
|
|
10
|
+
fonts/LibreBaskerville-OFL.txt.
|
|
11
|
+
- Icons unter icons/source/ui-*.svg (generische UI-Icons, nicht die
|
|
12
|
+
Bereichs-Glyphen co-*/ki-*/es-*/wo-*): überwiegend aus Heroicons
|
|
13
|
+
(https://heroicons.com) übernommen oder abgeleitet, teils angepasst.
|
|
14
|
+
Copyright (c) Tailwind Labs, Inc., MIT-Lizenz, siehe
|
|
15
|
+
icons/LICENSE-heroicons.
|
package/README.md
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# @conciso/design-system-angular
|
|
2
|
+
|
|
3
|
+
Angular-Wrapper-Komponenten für das [Conciso Design System](https://github.com/conciso/conciso-design-system).
|
|
4
|
+
Die Komponenten sind **dünne Hüllen** über der framework-agnostischen
|
|
5
|
+
[CSS-Schicht](../../../CONTEXT.md#css-schicht) (`@conciso/design-system`): Sie setzen
|
|
6
|
+
nur deren CSS-Klassen zusammen und liefern **kein eigenes CSS**.
|
|
7
|
+
|
|
8
|
+
> **Vollständig umgezogen.** Alle 37 Komponenten leben in dieser Lib und werden über
|
|
9
|
+
> `public-api.ts` exportiert — samt ihrer öffentlichen Typen (`CdsArea`,
|
|
10
|
+
> `CdsButtonVariant`, `CdsThemeMode`, …). `storybook-angular` enthält nur noch Stories
|
|
11
|
+
> und importiert ausschließlich von hier
|
|
12
|
+
> ([ADR-0002](../../../docs/adr/0002-topologie-und-quelle-der-wahrheit.md)).
|
|
13
|
+
|
|
14
|
+
## Installation von npmjs.org
|
|
15
|
+
|
|
16
|
+
Der empfohlene Weg: Beide Pakete (`@conciso/design-system-angular` **und**
|
|
17
|
+
`@conciso/design-system`, [Lockstep](../../../CONTEXT.md#lockstep-versionierung))
|
|
18
|
+
liegen auf der öffentlichen npm-Registry (seit
|
|
19
|
+
[ADR-0011](../../../docs/adr/0011-veroeffentlichung-auf-npmjs.md)). Keine `.npmrc`,
|
|
20
|
+
kein Token nötig:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install @conciso/design-system-angular @conciso/design-system
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Gilt ab dem ersten echten Release nach dem Merge dieser Änderung; bis dahin liegt auf
|
|
27
|
+
npmjs nur eine Bootstrap-Platzhalterversion (siehe ADR-0011).
|
|
28
|
+
|
|
29
|
+
## Installation aus GitHub Packages (Alternative)
|
|
30
|
+
|
|
31
|
+
Beide Pakete liegen **zusätzlich** weiterhin privat, org-scoped in
|
|
32
|
+
[GitHub Packages](https://npm.pkg.github.com) (siehe
|
|
33
|
+
[ADR-0004](../../../docs/adr/0004-verteilung-und-versionierung.md)) — z. B. für
|
|
34
|
+
Consumer innerhalb der GitHub-Organisation `conciso`, die ohnehin schon so
|
|
35
|
+
eingerichtet sind. Ein einziger `.npmrc`-Mechanismus deckt beide ab, weil
|
|
36
|
+
beide unter dem `@conciso`-Scope veröffentlicht werden.
|
|
37
|
+
|
|
38
|
+
**1. `.npmrc`** im Konsumenten-Projekt (oder `~/.npmrc` für den eigenen Rechner)
|
|
39
|
+
anlegen — der `@conciso`-Scope wird auf GitHub Packages umgeleitet, alles andere
|
|
40
|
+
bleibt bei der öffentlichen npm-Registry:
|
|
41
|
+
|
|
42
|
+
```ini
|
|
43
|
+
@conciso:registry=https://npm.pkg.github.com
|
|
44
|
+
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**2. Token bereitstellen.** GitHub Packages verlangt Auth auch für **lesenden**
|
|
48
|
+
Zugriff auf private Pakete. `${GITHUB_TOKEN}` in der `.npmrc` liest npm zur
|
|
49
|
+
Laufzeit aus der Umgebungsvariable — dafür, in dieser Reihenfolge:
|
|
50
|
+
|
|
51
|
+
- **CI in derselben Organisation → kein Token nötig.** Das von GitHub automatisch
|
|
52
|
+
bereitgestellte `secrets.GITHUB_TOKEN` genügt für den **Lese**-Zugriff, sofern
|
|
53
|
+
das Workflow-`permissions`-Feld `packages: read` erlaubt (Beispiel im
|
|
54
|
+
Publish-Workflow, [`.github/workflows/publish.yml`](../../../.github/workflows/publish.yml)).
|
|
55
|
+
Voraussetzung ist einmalig, dass das Paket dem konsumierenden Repo freigegeben
|
|
56
|
+
ist: auf der Paket-Seite unter *Manage Actions access* → **Add Repository**
|
|
57
|
+
(Personen und Teams bekommen dort ebenso eine Rolle). Das Token ist kurzlebig und
|
|
58
|
+
an den Lauf gebunden — nichts zu verwalten, nichts zu rotieren.
|
|
59
|
+
- **Lokale Rechner und CI außerhalb der Organisation → Token eines technischen
|
|
60
|
+
Users.** Nimm dafür **nicht** einen persönlichen Account: sonst hängt der Zugriff
|
|
61
|
+
aller Konsumenten daran, dass diese Person im Unternehmen bleibt und ihre Rechte
|
|
62
|
+
behält. Also einen Maschinen-Account anlegen (E-Mail-Verteiler statt
|
|
63
|
+
Personenpostfach, sonst verlagert sich das Problem nur), in die Organisation
|
|
64
|
+
einladen, Lesezugriff geben — und mit **diesem** Account das Token erzeugen:
|
|
65
|
+
*Settings → Developer settings → Personal access tokens → Tokens (classic)*,
|
|
66
|
+
Scope `read:packages` (nur `write:packages`, wenn von Hand publiziert werden
|
|
67
|
+
soll). In GitHub Actions als **Organisations-Secret** ablegen, dann teilen alle
|
|
68
|
+
konsumierenden Repos dasselbe Token und es wird an einer Stelle rotiert.
|
|
69
|
+
|
|
70
|
+
> **Es muss ein *classic* Token sein.** GitHub Packages unterstützt laut
|
|
71
|
+
> [Doku](https://docs.github.com/en/packages/learn-github-packages/about-permissions-for-github-packages)
|
|
72
|
+
> ausschließlich Personal Access Tokens (classic); fine-grained PATs und
|
|
73
|
+
> GitHub-App-Installation-Tokens sind dort nicht vorgesehen
|
|
74
|
+
> ([Roadmap-Issue #558](https://github.com/github/roadmap/issues/558)). Wer mit
|
|
75
|
+
> einem fine-grained Token startet, verliert Zeit an einem 401/404, der wie ein
|
|
76
|
+
> Rechteproblem aussieht.
|
|
77
|
+
|
|
78
|
+
> Drei Fallstricke beim technischen User: (1) Ein Maschinen-Account belegt einen
|
|
79
|
+
> **Lizenzplatz** — das ist der Preis für die Entkopplung von Personen. (2) Nutzt die
|
|
80
|
+
> Organisation **SAML SSO**, muss das Token nach dem Anlegen ausdrücklich für die
|
|
81
|
+
> Organisation autorisiert werden, sonst schlägt der Zugriff mit einem irreführenden
|
|
82
|
+
> 401/404 fehl. (3) Setz ein **Ablaufdatum** und notiere die Rotation — ein Token
|
|
83
|
+
> ohne Ablauf ist bequem, und sein Ausfall trifft später alle Konsumenten
|
|
84
|
+
> gleichzeitig ohne Vorwarnung.
|
|
85
|
+
|
|
86
|
+
**3. Installieren:**
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npm install @conciso/design-system-angular @conciso/design-system
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Committe niemals ein Token in die `.npmrc` selbst — nur die
|
|
93
|
+
`${GITHUB_TOKEN}`-Variablenreferenz landet im Repo, der tatsächliche Wert bleibt
|
|
94
|
+
in der Umgebung.
|
|
95
|
+
|
|
96
|
+
## Wichtig: CSS wird nicht mitgeliefert
|
|
97
|
+
|
|
98
|
+
Die Lib injiziert zur Laufzeit **nichts** ins DOM. Der Konsument installiert **beide**
|
|
99
|
+
Pakete (`@conciso/design-system-angular` **und** `@conciso/design-system` im
|
|
100
|
+
[Lockstep](../../../CONTEXT.md#lockstep-versionierung), gleiche Version) und bindet die
|
|
101
|
+
CSS-Schicht + Fonts selbst global über die `angular.json` (`styles`/`assets`) ein.
|
|
102
|
+
Fehlt dieser Schritt, rendern die Komponenten unstyled — ein lautes, offensichtliches
|
|
103
|
+
Signal. Siehe [ADR-0001](../../../docs/adr/0001-angular-lib-als-css-wrapper.md).
|
|
104
|
+
|
|
105
|
+
## CSS + Fonts einbinden
|
|
106
|
+
|
|
107
|
+
Copy-paste-fertiger Einbindungs-Schnipsel — lebendes Vorbild ist die committete
|
|
108
|
+
[Consumer-Fixture](../../../CONTEXT.md#consumer-fixture) unter
|
|
109
|
+
[`examples/consumer-fixture`](../../../examples/consumer-fixture), die genau damit
|
|
110
|
+
im [Consumer-Smoke-Test](../../../CONTEXT.md#consumer-smoke-test) baut.
|
|
111
|
+
|
|
112
|
+
`css` und `fonts` liegen unverändert (kein CSS-Bundling durch den Angular-Build) unter
|
|
113
|
+
`node_modules/@conciso/design-system/{css,fonts}` — deshalb die `assets`-Einträge statt
|
|
114
|
+
`styles`. `fonts.css` referenziert die Font-Dateien relativ als `../fonts/*`; die
|
|
115
|
+
Zielordner `conciso/css` und `conciso/fonts` müssen daher **Geschwister** sein.
|
|
116
|
+
|
|
117
|
+
**1. `angular.json` → `architect.build.options` (Standard-Konfiguration ergänzen):**
|
|
118
|
+
|
|
119
|
+
```jsonc
|
|
120
|
+
{
|
|
121
|
+
"assets": [
|
|
122
|
+
// … bestehende Einträge (z. B. "public") …
|
|
123
|
+
{
|
|
124
|
+
"glob": "**/*",
|
|
125
|
+
"input": "node_modules/@conciso/design-system/css",
|
|
126
|
+
"output": "conciso/css"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"glob": "**/*",
|
|
130
|
+
"input": "node_modules/@conciso/design-system/fonts",
|
|
131
|
+
"output": "conciso/fonts"
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**2. `src/index.html` → CSS in exakt dieser Reihenfolge laden** (fonts → tokens →
|
|
138
|
+
dark-mode → base → components; gleiches Muster wie Storybooks
|
|
139
|
+
[`preview-head.html`](../../../storybook-angular/.storybook/preview-head.html)):
|
|
140
|
+
|
|
141
|
+
```html
|
|
142
|
+
<link rel="stylesheet" href="conciso/css/fonts.css" />
|
|
143
|
+
<link rel="stylesheet" href="conciso/css/tokens.css" />
|
|
144
|
+
<link rel="stylesheet" href="conciso/css/dark-mode.css" />
|
|
145
|
+
<link rel="stylesheet" href="conciso/css/base.css" />
|
|
146
|
+
<link rel="stylesheet" href="conciso/css/components.css" />
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**3. Kritische-CSS-Inlining deaktivieren:** Die `production`-Konfiguration des
|
|
150
|
+
`@angular/build:application`-Builders versucht standardmäßig, referenzierte
|
|
151
|
+
Stylesheets als kritisches CSS zu inlinen — das externe, hier über `assets` (nicht
|
|
152
|
+
`styles`) eingebundene CSS liegt zum Zeitpunkt dieses Optimierungsschritts noch nicht
|
|
153
|
+
im Ausgabe-Verzeichnis, was zu (harmlosen, aber vermeidbaren) Build-Warnungen führt.
|
|
154
|
+
In `architect.build.configurations.production` ergänzen:
|
|
155
|
+
|
|
156
|
+
```jsonc
|
|
157
|
+
{
|
|
158
|
+
"optimization": {
|
|
159
|
+
"scripts": true,
|
|
160
|
+
"fonts": true,
|
|
161
|
+
"styles": { "minify": true, "inlineCritical": false }
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Bauen
|
|
167
|
+
|
|
168
|
+
Aus dem Workspace-Root (`angular-lib/`):
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
ng build design-system-angular
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Das Artefakt (Angular Package Format, via ng-packagr) landet unter
|
|
175
|
+
`dist/design-system-angular/`. Einziger Einstiegspunkt ist `src/public-api.ts`.
|
|
176
|
+
|
|
177
|
+
## Lizenz
|
|
178
|
+
|
|
179
|
+
MIT, siehe [LICENSE](../../../LICENSE) im Repository-Root (im gebauten Paket unter
|
|
180
|
+
`dist/design-system-angular/LICENSE`). Ausnahmen (Brand-Assets, Schriften, Icons)
|
|
181
|
+
siehe [NOTICE](../../../NOTICE). Das betrifft nur die Lizenz — an den beiden
|
|
182
|
+
Bezugswegen (npmjs.org als Standard, GitHub Packages als Alternative, siehe oben)
|
|
183
|
+
ändert sich dadurch nichts.
|