@conciso/design-system-mcp 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.
Files changed (157) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +59 -0
  3. package/bin/cds-mcp.mjs +9 -0
  4. package/package.json +48 -0
  5. package/snapshot/manifests/components.json +617 -0
  6. package/snapshot/manifests/docs.json +293 -0
  7. package/snapshot/services/addon-docs/mdx/beispielseiten-/303/274bersicht--/303/274bersicht.json +18 -0
  8. package/snapshot/services/addon-docs/mdx/grundlagen-barrierefreiheit--/303/274bersicht.json +18 -0
  9. package/snapshot/services/addon-docs/mdx/grundlagen-design-tokens--/303/274bersicht.json +18 -0
  10. package/snapshot/services/addon-docs/mdx/grundlagen-einrichtung--/303/274bersicht.json +18 -0
  11. package/snapshot/services/addon-docs/mdx/grundlagen-elevation--/303/274bersicht.json +18 -0
  12. package/snapshot/services/addon-docs/mdx/grundlagen-icons--/303/274bersicht.json +18 -0
  13. package/snapshot/services/addon-docs/mdx/grundlagen-responsive--/303/274bersicht.json +18 -0
  14. package/snapshot/services/addon-docs/mdx/grundlagen-spacing-grid--/303/274bersicht.json +18 -0
  15. package/snapshot/services/addon-docs/mdx/komponenten-buchungsformular--/303/274bersicht.json +18 -0
  16. package/snapshot/services/addon-docs/mdx/komponenten-buttons--verwendung.json +18 -0
  17. package/snapshot/services/addon-docs/mdx/komponenten-call-to-action--verwendung.json +18 -0
  18. package/snapshot/services/addon-docs/mdx/komponenten-cards-teaser--verwendung.json +18 -0
  19. package/snapshot/services/addon-docs/mdx/komponenten-chips-badges-pills--verwendung.json +18 -0
  20. package/snapshot/services/addon-docs/mdx/komponenten-code-block--verwendung.json +18 -0
  21. package/snapshot/services/addon-docs/mdx/komponenten-dropdowns--verwendung.json +18 -0
  22. package/snapshot/services/addon-docs/mdx/komponenten-feedback--verwendung.json +18 -0
  23. package/snapshot/services/addon-docs/mdx/komponenten-footer--verwendung.json +18 -0
  24. package/snapshot/services/addon-docs/mdx/komponenten-hero--/303/274bersicht.json +18 -0
  25. package/snapshot/services/addon-docs/mdx/komponenten-inputs-forms--verwendung.json +18 -0
  26. package/snapshot/services/addon-docs/mdx/komponenten-navigation--verwendung.json +18 -0
  27. package/snapshot/services/addon-docs/mdx/komponenten-sektion--/303/274bersicht.json +18 -0
  28. package/snapshot/services/addon-docs/mdx/komponenten-slider-carousel--verwendung.json +18 -0
  29. package/snapshot/services/addon-docs/mdx/komponenten-tabelle--/303/274bersicht.json +18 -0
  30. package/snapshot/services/addon-docs/mdx/komponenten-theme-umschalter--verwendung.json +18 -0
  31. package/snapshot/services/addon-docs/mdx/komponenten-zitate-testimonials--verwendung.json +18 -0
  32. package/snapshot/services/addon-docs/mdx/marke-bildsprache--/303/274bersicht.json +18 -0
  33. package/snapshot/services/addon-docs/mdx/marke-brand-areas--/303/274bersicht.json +18 -0
  34. package/snapshot/services/addon-docs/mdx/marke-logo--verwendung.json +18 -0
  35. package/snapshot/services/addon-docs/mdx/marke-markenrad--/303/274bersicht.json +18 -0
  36. package/snapshot/services/addon-docs/mdx/referenzen-quellen--/303/274bersicht.json +18 -0
  37. package/snapshot/services/addon-docs/mdx/seitenmuster-angebots-detailseite--/303/274bersicht.json +18 -0
  38. package/snapshot/services/addon-docs/mdx/seitenmuster-beitrags/303/274bersicht--/303/274bersicht.json +18 -0
  39. package/snapshot/services/addon-docs/mdx/seitenmuster-seminar-/302/267-training--/303/274bersicht.json +18 -0
  40. package/snapshot/services/addon-docs/mdx/seitenmuster-veranstaltung--/303/274bersicht.json +18 -0
  41. package/snapshot/services/addon-docs/mdx/seitenmuster-veranstaltungs/303/274bersicht--/303/274bersicht.json +18 -0
  42. package/snapshot/services/addon-docs/mdx/seitenmuster-wissensbeitrag--/303/274bersicht.json +18 -0
  43. package/snapshot/services/core/docgen/grundlagen-farben.json +3 -0
  44. package/snapshot/services/core/docgen/grundlagen-typografie.json +3 -0
  45. package/snapshot/services/core/docgen/komponenten-buttons-button.json +183 -0
  46. package/snapshot/services/core/docgen/komponenten-call-to-action-cta-band.json +131 -0
  47. package/snapshot/services/core/docgen/komponenten-call-to-action-downloadcta.json +182 -0
  48. package/snapshot/services/core/docgen/komponenten-cards-teaser-card.json +146 -0
  49. package/snapshot/services/core/docgen/komponenten-cards-teaser-feature-liste.json +128 -0
  50. package/snapshot/services/core/docgen/komponenten-cards-teaser-featured-karte.json +158 -0
  51. package/snapshot/services/core/docgen/komponenten-cards-teaser-icon-karte.json +111 -0
  52. package/snapshot/services/core/docgen/komponenten-cards-teaser-klickbare-karte.json +161 -0
  53. package/snapshot/services/core/docgen/komponenten-cards-teaser-statcard.json +115 -0
  54. package/snapshot/services/core/docgen/komponenten-cards-teaser-statstrip.json +58 -0
  55. package/snapshot/services/core/docgen/komponenten-cards-teaser-tier-trenner.json +56 -0
  56. package/snapshot/services/core/docgen/komponenten-chips-badges-pills-bereichs-badge.json +63 -0
  57. package/snapshot/services/core/docgen/komponenten-chips-badges-pills-chip.json +95 -0
  58. package/snapshot/services/core/docgen/komponenten-chips-badges-pills-pill.json +78 -0
  59. package/snapshot/services/core/docgen/komponenten-chips-badges-pills-status-badge.json +63 -0
  60. package/snapshot/services/core/docgen/komponenten-code-block-code-block.json +91 -0
  61. package/snapshot/services/core/docgen/komponenten-dropdowns-combobox.json +224 -0
  62. package/snapshot/services/core/docgen/komponenten-dropdowns-custom-select.json +173 -0
  63. package/snapshot/services/core/docgen/komponenten-feedback-snackbar.json +97 -0
  64. package/snapshot/services/core/docgen/komponenten-footer-komplett.json +21 -0
  65. package/snapshot/services/core/docgen/komponenten-footer-oberer-teil.json +39 -0
  66. package/snapshot/services/core/docgen/komponenten-footer-unterer-teil.json +105 -0
  67. package/snapshot/services/core/docgen/komponenten-hero-hero-bild.json +162 -0
  68. package/snapshot/services/core/docgen/komponenten-hero-st/303/266rer.json +41 -0
  69. package/snapshot/services/core/docgen/komponenten-inputs-forms-auswahlfeld.json +192 -0
  70. package/snapshot/services/core/docgen/komponenten-inputs-forms-checkbox.json +182 -0
  71. package/snapshot/services/core/docgen/komponenten-inputs-forms-radio.json +181 -0
  72. package/snapshot/services/core/docgen/komponenten-inputs-forms-skala.json +179 -0
  73. package/snapshot/services/core/docgen/komponenten-inputs-forms-slider.json +259 -0
  74. package/snapshot/services/core/docgen/komponenten-inputs-forms-textbereich.json +190 -0
  75. package/snapshot/services/core/docgen/komponenten-inputs-forms-textfeld.json +207 -0
  76. package/snapshot/services/core/docgen/komponenten-navigation-topnav.json +186 -0
  77. package/snapshot/services/core/docgen/komponenten-sektion-sektion.json +113 -0
  78. package/snapshot/services/core/docgen/komponenten-slider-carousel-carousel.json +92 -0
  79. package/snapshot/services/core/docgen/komponenten-slider-carousel-logocarousel.json +92 -0
  80. package/snapshot/services/core/docgen/komponenten-tabelle-tabelle.json +74 -0
  81. package/snapshot/services/core/docgen/komponenten-tabelle-vergleichstabelle.json +142 -0
  82. package/snapshot/services/core/docgen/komponenten-theme-umschalter-cycle-button.json +41 -0
  83. package/snapshot/services/core/docgen/komponenten-theme-umschalter-dropdown.json +41 -0
  84. package/snapshot/services/core/docgen/komponenten-theme-umschalter-segment.json +41 -0
  85. package/snapshot/services/core/docgen/komponenten-zitate-testimonials-blockquote.json +96 -0
  86. package/snapshot/services/core/docgen/komponenten-zitate-testimonials-teamvoice.json +130 -0
  87. package/snapshot/services/core/docgen/komponenten-zitate-testimonials-testimonial.json +96 -0
  88. package/snapshot/services/core/docgen/marke-brand-areas-areatabs.json +75 -0
  89. package/snapshot/services/core/docgen/marke-logo-logo.json +71 -0
  90. package/snapshot/services/core/docgen/seitenmuster-seminar-/302/267-training-fakten-liste.json +79 -0
  91. package/snapshot/services/core/docgen/seitenmuster-wissensbeitrag-article-header.json +196 -0
  92. package/snapshot/services/core/docgen/seitenmuster-wissensbeitrag-author-card.json +91 -0
  93. package/snapshot/services/core/docgen/seitenmuster-wissensbeitrag-avatar.json +100 -0
  94. package/snapshot/services/core/docgen/seitenmuster-wissensbeitrag-callout.json +64 -0
  95. package/snapshot/services/core/docgen/seitenmuster-wissensbeitrag-faq.json +41 -0
  96. package/snapshot/services/core/docgen/seitenmuster-wissensbeitrag-figure.json +73 -0
  97. package/snapshot/services/core/docgen/seitenmuster-wissensbeitrag-inhaltsverzeichnis.json +75 -0
  98. package/snapshot/services/core/docgen/seitenmuster-wissensbeitrag-pull-quote.json +63 -0
  99. package/snapshot/services/core/story-docs/grundlagen-farben.json +19 -0
  100. package/snapshot/services/core/story-docs/grundlagen-typografie.json +25 -0
  101. package/snapshot/services/core/story-docs/komponenten-buttons-button.json +48 -0
  102. package/snapshot/services/core/story-docs/komponenten-call-to-action-cta-band.json +27 -0
  103. package/snapshot/services/core/story-docs/komponenten-call-to-action-downloadcta.json +17 -0
  104. package/snapshot/services/core/story-docs/komponenten-cards-teaser-card.json +37 -0
  105. package/snapshot/services/core/story-docs/komponenten-cards-teaser-feature-liste.json +37 -0
  106. package/snapshot/services/core/story-docs/komponenten-cards-teaser-featured-karte.json +36 -0
  107. package/snapshot/services/core/story-docs/komponenten-cards-teaser-icon-karte.json +41 -0
  108. package/snapshot/services/core/story-docs/komponenten-cards-teaser-klickbare-karte.json +26 -0
  109. package/snapshot/services/core/story-docs/komponenten-cards-teaser-statcard.json +21 -0
  110. package/snapshot/services/core/story-docs/komponenten-cards-teaser-statstrip.json +21 -0
  111. package/snapshot/services/core/story-docs/komponenten-cards-teaser-tier-trenner.json +22 -0
  112. package/snapshot/services/core/story-docs/komponenten-chips-badges-pills-bereichs-badge.json +21 -0
  113. package/snapshot/services/core/story-docs/komponenten-chips-badges-pills-chip.json +27 -0
  114. package/snapshot/services/core/story-docs/komponenten-chips-badges-pills-pill.json +21 -0
  115. package/snapshot/services/core/story-docs/komponenten-chips-badges-pills-status-badge.json +21 -0
  116. package/snapshot/services/core/story-docs/komponenten-code-block-code-block.json +26 -0
  117. package/snapshot/services/core/story-docs/komponenten-dropdowns-combobox.json +37 -0
  118. package/snapshot/services/core/story-docs/komponenten-dropdowns-custom-select.json +37 -0
  119. package/snapshot/services/core/story-docs/komponenten-feedback-snackbar.json +27 -0
  120. package/snapshot/services/core/story-docs/komponenten-footer-komplett.json +22 -0
  121. package/snapshot/services/core/story-docs/komponenten-footer-oberer-teil.json +21 -0
  122. package/snapshot/services/core/story-docs/komponenten-footer-unterer-teil.json +32 -0
  123. package/snapshot/services/core/story-docs/komponenten-hero-hero-bild.json +37 -0
  124. package/snapshot/services/core/story-docs/komponenten-hero-st/303/266rer.json +26 -0
  125. package/snapshot/services/core/story-docs/komponenten-inputs-forms-auswahlfeld.json +32 -0
  126. package/snapshot/services/core/story-docs/komponenten-inputs-forms-checkbox.json +32 -0
  127. package/snapshot/services/core/story-docs/komponenten-inputs-forms-radio.json +32 -0
  128. package/snapshot/services/core/story-docs/komponenten-inputs-forms-skala.json +42 -0
  129. package/snapshot/services/core/story-docs/komponenten-inputs-forms-slider.json +37 -0
  130. package/snapshot/services/core/story-docs/komponenten-inputs-forms-textbereich.json +27 -0
  131. package/snapshot/services/core/story-docs/komponenten-inputs-forms-textfeld.json +32 -0
  132. package/snapshot/services/core/story-docs/komponenten-navigation-topnav.json +26 -0
  133. package/snapshot/services/core/story-docs/komponenten-sektion-sektion.json +41 -0
  134. package/snapshot/services/core/story-docs/komponenten-slider-carousel-carousel.json +31 -0
  135. package/snapshot/services/core/story-docs/komponenten-slider-carousel-logocarousel.json +27 -0
  136. package/snapshot/services/core/story-docs/komponenten-tabelle-tabelle.json +36 -0
  137. package/snapshot/services/core/story-docs/komponenten-tabelle-vergleichstabelle.json +32 -0
  138. package/snapshot/services/core/story-docs/komponenten-theme-umschalter-cycle-button.json +31 -0
  139. package/snapshot/services/core/story-docs/komponenten-theme-umschalter-dropdown.json +26 -0
  140. package/snapshot/services/core/story-docs/komponenten-theme-umschalter-segment.json +26 -0
  141. package/snapshot/services/core/story-docs/komponenten-zitate-testimonials-blockquote.json +21 -0
  142. package/snapshot/services/core/story-docs/komponenten-zitate-testimonials-teamvoice.json +21 -0
  143. package/snapshot/services/core/story-docs/komponenten-zitate-testimonials-testimonial.json +21 -0
  144. package/snapshot/services/core/story-docs/marke-brand-areas-areatabs.json +26 -0
  145. package/snapshot/services/core/story-docs/marke-logo-logo.json +23 -0
  146. package/snapshot/services/core/story-docs/seitenmuster-seminar-/302/267-training-fakten-liste.json +21 -0
  147. package/snapshot/services/core/story-docs/seitenmuster-wissensbeitrag-article-header.json +37 -0
  148. package/snapshot/services/core/story-docs/seitenmuster-wissensbeitrag-author-card.json +31 -0
  149. package/snapshot/services/core/story-docs/seitenmuster-wissensbeitrag-avatar.json +32 -0
  150. package/snapshot/services/core/story-docs/seitenmuster-wissensbeitrag-callout.json +26 -0
  151. package/snapshot/services/core/story-docs/seitenmuster-wissensbeitrag-faq.json +27 -0
  152. package/snapshot/services/core/story-docs/seitenmuster-wissensbeitrag-figure.json +22 -0
  153. package/snapshot/services/core/story-docs/seitenmuster-wissensbeitrag-inhaltsverzeichnis.json +27 -0
  154. package/snapshot/services/core/story-docs/seitenmuster-wissensbeitrag-pull-quote.json +21 -0
  155. package/src/instructions.mjs +38 -0
  156. package/src/server.mjs +111 -0
  157. package/src/version-check.mjs +80 -0
@@ -0,0 +1,161 @@
1
+ {
2
+ "components": {
3
+ "komponenten-cards-teaser-klickbare-karte": {
4
+ "id": "komponenten-cards-teaser-klickbare-karte",
5
+ "name": "LinkCardComponent",
6
+ "path": "./src/lib/link-card/link-card.stories.ts",
7
+ "description": "LinkCard (cds-link-card) — Wrapper um `a.card.card-elevated` aus css/components.css\n(css/components.css:147–154) samt `.card-cta-link` (css/components.css:1347–1356).\n\nDie Lücke, die `CardComponent` bewusst offen lässt (siehe deren Klassendoku):\n`.card-elevated` wirkt im CSS ausschließlich auf `a.card-elevated` (Riegel aus\n`CONTRIBUTING.md` §4, „Elevation = Interaktivität“) — eine `<article>`/`<div>`-Karte\nbekommt den Schatten auch mit gesetzter Klasse nicht. Diese Komponente rendert\ndeshalb ein echtes `<a>`, die ganze Fläche ist der Link, kein Klick-Handler auf\neinem nicht-interaktiven Element.\n\nStruktur wie `CardComponent`: optionale bereichsgefärbte `.card-media` mit der\nechten Bereichs-Glyphe, `.card-body` mit `.card-eyebrow` / `.card-title` /\n`.card-text`. Neu ist der Fuß `.card-cta-link`, optional unten angeheftet\n(`--pinned`, für gleich hohe Karten im Raster über `.card-body{flex:1}`).\n\n**Entscheidung — Fuß ist ein `<span>`, kein zweites `<a>`.** Die ganze Karte ist\nbereits `a.card-elevated`; ein verschachteltes `<a>` im Fuß wäre ungültiges HTML\n(der Browser schließt es beim Parsen vorzeitig) und würde zwei Klickziele auf\nderselben Fläche erzeugen. `docs/index.html:4707–4716` zeigt exakt dieses Muster:\n`<span class=\"card-cta-link card-cta-link--pinned\">…</span>` innerhalb von\n`a.card.card-elevated`. `.card-cta-link` selbst ist nicht auf `a.` gescoped (anders\nals `.card-elevated`), der Span trägt Farbe und Typografie also unverändert.\n\n**Entscheidung — Pfeil-Suffix wird von der Komponente ergänzt, nicht Teil von\n`ctaLabel`.** Der Pfeil ist reine visuelle Affordanz, kein Inhalt — `docs/index.html`\n(Abschnitt „Klickbare Karte“) kapselt ihn deshalb selbst in ein\n`aria-hidden`-Span. Läge das Zeichen im `ctaLabel`-Text, müsste jeder Aufrufer\nselbst an das `aria-hidden` denken; das wird hier stattdessen einmalig in der\nKomponente erledigt.\n\n**Entscheidung — kein `data-area` auf `.card-cta-link`.** Die Doku hält die\nCTA-Farbe in gemischten Bereichs-Listen bewusst einheitlich Corporate-Petrol\n(`docs/index.html:8762`: „CTA-Farbe einheitlich `--co-700`“), unabhängig vom\n`area` der Karte. Der Fuß bleibt deshalb ohne `data-area`-Bindung.\n\n**Entscheidung — Host als Flex-Container.** Im Raster ist der Host das\nGrid-Kind, das `align-items:stretch` auf Zeilenhöhe zieht, nicht `a.card`. Ohne\neigene Regel blieb die Karte auf Inhaltshöhe, und eine Karte ohne Eyebrow endete\nsamt `--pinned`-Fuß höher als ihre Nachbarn. `:host{display:flex}` mit\n`flex:1` an der Karte gibt die gestreckte Höhe an `a.card` weiter; Story\n„Im Raster“ pinnt das.",
8
+ "jsDocTags": {},
9
+ "argTypes": {
10
+ "area": {
11
+ "name": "area",
12
+ "description": "Markenbereich → `data-area` (färbt Media-Glyphe + Eyebrow).",
13
+ "type": {
14
+ "name": "enum",
15
+ "value": [
16
+ "co",
17
+ "ki",
18
+ "es",
19
+ "wo"
20
+ ]
21
+ },
22
+ "table": {
23
+ "category": "inputs",
24
+ "type": {
25
+ "summary": "CdsArea"
26
+ },
27
+ "defaultValue": {}
28
+ }
29
+ },
30
+ "ctaLabel": {
31
+ "name": "ctaLabel",
32
+ "description": "Fuß-Link-Text (`.card-cta-link`, leer = kein Fuß).",
33
+ "type": {
34
+ "name": "string"
35
+ },
36
+ "table": {
37
+ "category": "inputs",
38
+ "type": {
39
+ "summary": "string"
40
+ },
41
+ "defaultValue": {
42
+ "summary": ""
43
+ }
44
+ }
45
+ },
46
+ "ctaPinned": {
47
+ "name": "ctaPinned",
48
+ "description": "Fuß unten an die Kartenunterkante anheften (`.card-cta-link--pinned`, für gleich hohe Karten im Raster).",
49
+ "type": {
50
+ "name": "boolean"
51
+ },
52
+ "table": {
53
+ "category": "inputs",
54
+ "type": {
55
+ "summary": "boolean"
56
+ },
57
+ "defaultValue": {
58
+ "summary": false
59
+ }
60
+ }
61
+ },
62
+ "eyebrow": {
63
+ "name": "eyebrow",
64
+ "description": "Kicker-Text oberhalb des Titels (`.card-eyebrow`, leer = keine Eyebrow-Zeile).",
65
+ "type": {
66
+ "name": "string"
67
+ },
68
+ "table": {
69
+ "category": "inputs",
70
+ "type": {
71
+ "summary": "string"
72
+ },
73
+ "defaultValue": {
74
+ "summary": ""
75
+ }
76
+ }
77
+ },
78
+ "href": {
79
+ "name": "href",
80
+ "description": "Linkziel; die ganze Kartenfläche ist klickbar.",
81
+ "type": {
82
+ "name": "string",
83
+ "required": true
84
+ },
85
+ "table": {
86
+ "category": "inputs",
87
+ "type": {
88
+ "summary": "string"
89
+ },
90
+ "defaultValue": {}
91
+ }
92
+ },
93
+ "showMedia": {
94
+ "name": "showMedia",
95
+ "description": "Bereichsgefärbte Medienfläche mit Bereichs-Glyphe anzeigen.",
96
+ "type": {
97
+ "name": "boolean"
98
+ },
99
+ "table": {
100
+ "category": "inputs",
101
+ "type": {
102
+ "summary": "boolean"
103
+ },
104
+ "defaultValue": {
105
+ "summary": true
106
+ }
107
+ }
108
+ },
109
+ "text": {
110
+ "name": "text",
111
+ "description": "Anreißer-/Beschreibungstext der Karte.",
112
+ "type": {
113
+ "name": "string",
114
+ "required": true
115
+ },
116
+ "table": {
117
+ "category": "inputs",
118
+ "type": {
119
+ "summary": "string"
120
+ },
121
+ "defaultValue": {}
122
+ }
123
+ },
124
+ "title": {
125
+ "name": "title",
126
+ "description": "Kartentitel.",
127
+ "type": {
128
+ "name": "string",
129
+ "required": true
130
+ },
131
+ "table": {
132
+ "category": "inputs",
133
+ "type": {
134
+ "summary": "string"
135
+ },
136
+ "defaultValue": {}
137
+ }
138
+ }
139
+ },
140
+ "apiDescription": "## Inputs\n\n```\nexport type LinkCardComponentInputs = {\n /** Markenbereich → `data-area` (färbt Media-Glyphe + Eyebrow). */\n area?: CdsArea;\n /**\n * Fuß-Link-Text (`.card-cta-link`, leer = kein Fuß).\n *\n * @default ''\n */\n ctaLabel?: string;\n /**\n * Fuß unten an die Kartenunterkante anheften (`.card-cta-link--pinned`, für gleich hohe Karten im Raster).\n *\n * @default false\n */\n ctaPinned?: boolean;\n /**\n * Kicker-Text oberhalb des Titels (`.card-eyebrow`, leer = keine Eyebrow-Zeile).\n *\n * @default ''\n */\n eyebrow?: string;\n /** Linkziel; die ganze Kartenfläche ist klickbar. */\n href: string;\n /**\n * Bereichsgefärbte Medienfläche mit Bereichs-Glyphe anzeigen.\n *\n * @default true\n */\n showMedia?: boolean;\n /** Anreißer-/Beschreibungstext der Karte. */\n text: string;\n /** Kartentitel. */\n title: string;\n}\n```",
141
+ "renderer": "angular",
142
+ "angularComponentMeta": {
143
+ "name": "LinkCardComponent",
144
+ "selector": "cds-link-card",
145
+ "standalone": true,
146
+ "inputs": [
147
+ "area",
148
+ "ctaLabel",
149
+ "ctaPinned",
150
+ "eyebrow",
151
+ "href",
152
+ "showMedia",
153
+ "text",
154
+ "title"
155
+ ],
156
+ "outputs": [],
157
+ "enums": []
158
+ }
159
+ }
160
+ }
161
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "components": {
3
+ "komponenten-cards-teaser-statcard": {
4
+ "id": "komponenten-cards-teaser-statcard",
5
+ "name": "StatCardComponent",
6
+ "path": "./src/lib/stat-card/stat-card.stories.ts",
7
+ "description": "StatCard — Wrapper um `.card-stat` aus css/components.css → „Stat Card“.\n\nFlache, statische Kennzahlen-Karte mit bereichsgefärbtem Top-Akzent (data-area),\ngroßem Wert (.card-stat-value), Label (.card-stat-label) und optionalem\nTrend-Pill (.card-stat-trend.up/.down) inkl. Richtungs-Pfeil — wie docs/index.html.",
8
+ "jsDocTags": {},
9
+ "argTypes": {
10
+ "area": {
11
+ "name": "area",
12
+ "description": "Markenbereich → data-area (Top-Akzent + Wertfarbe).",
13
+ "type": {
14
+ "name": "enum",
15
+ "value": [
16
+ "co",
17
+ "ki",
18
+ "es",
19
+ "wo"
20
+ ]
21
+ },
22
+ "table": {
23
+ "category": "inputs",
24
+ "type": {
25
+ "summary": "CdsArea"
26
+ },
27
+ "defaultValue": {
28
+ "summary": "co"
29
+ }
30
+ }
31
+ },
32
+ "label": {
33
+ "name": "label",
34
+ "description": "Beschriftung der Kennzahl.",
35
+ "type": {
36
+ "name": "string",
37
+ "required": true
38
+ },
39
+ "table": {
40
+ "category": "inputs",
41
+ "type": {
42
+ "summary": "string"
43
+ },
44
+ "defaultValue": {}
45
+ }
46
+ },
47
+ "trend": {
48
+ "name": "trend",
49
+ "description": "Trendrichtung → .card-stat-trend.up / .down (leer = kein Pill).",
50
+ "type": {
51
+ "name": "enum",
52
+ "value": [
53
+ "up",
54
+ "down"
55
+ ]
56
+ },
57
+ "table": {
58
+ "category": "inputs",
59
+ "type": {
60
+ "summary": "\"up\" | \"down\""
61
+ },
62
+ "defaultValue": {}
63
+ }
64
+ },
65
+ "trendText": {
66
+ "name": "trendText",
67
+ "description": "Text neben dem Trend-Pfeil (nur sichtbar, wenn `trend` gesetzt ist).",
68
+ "type": {
69
+ "name": "string"
70
+ },
71
+ "table": {
72
+ "category": "inputs",
73
+ "type": {
74
+ "summary": "string"
75
+ },
76
+ "defaultValue": {
77
+ "summary": ""
78
+ }
79
+ }
80
+ },
81
+ "value": {
82
+ "name": "value",
83
+ "description": "Anzeigewert der Kennzahl.",
84
+ "type": {
85
+ "name": "string",
86
+ "required": true
87
+ },
88
+ "table": {
89
+ "category": "inputs",
90
+ "type": {
91
+ "summary": "string"
92
+ },
93
+ "defaultValue": {}
94
+ }
95
+ }
96
+ },
97
+ "apiDescription": "## Inputs\n\n```\nexport type StatCardComponentInputs = {\n /**\n * Markenbereich → data-area (Top-Akzent + Wertfarbe).\n *\n * @default co\n */\n area?: CdsArea;\n /** Beschriftung der Kennzahl. */\n label: string;\n /** Trendrichtung → .card-stat-trend.up / .down (leer = kein Pill). */\n trend?: \"up\" | \"down\";\n /**\n * Text neben dem Trend-Pfeil (nur sichtbar, wenn `trend` gesetzt ist).\n *\n * @default ''\n */\n trendText?: string;\n /** Anzeigewert der Kennzahl. */\n value: string;\n}\n```",
98
+ "renderer": "angular",
99
+ "angularComponentMeta": {
100
+ "name": "StatCardComponent",
101
+ "selector": "cds-stat-card",
102
+ "standalone": true,
103
+ "inputs": [
104
+ "area",
105
+ "label",
106
+ "trend",
107
+ "trendText",
108
+ "value"
109
+ ],
110
+ "outputs": [],
111
+ "enums": []
112
+ }
113
+ }
114
+ }
115
+ }
@@ -0,0 +1,58 @@
1
+ {
2
+ "components": {
3
+ "komponenten-cards-teaser-statstrip": {
4
+ "id": "komponenten-cards-teaser-statstrip",
5
+ "name": "StatStripComponent",
6
+ "path": "./src/lib/stat-strip/stat-strip.stories.ts",
7
+ "description": "StatStrip — Wrapper um `.card-stat-strip` + `.card-stat-flat` aus\ncss/components.css → „Stat-Strip“. Flacher Bandstreifen (auto-fit-Grid auf\n--n-50-Grund) mit zentrierten Kennzahlen ohne Rahmen/Schatten; Wert je\nBereich getönt via [data-area]. Genau wie docs/index.html.",
8
+ "jsDocTags": {},
9
+ "argTypes": {
10
+ "rounded": {
11
+ "name": "rounded",
12
+ "description": "Abgerundete Ecken (--r-lg) wie in der Doku-Verwendung.",
13
+ "type": {
14
+ "name": "boolean"
15
+ },
16
+ "table": {
17
+ "category": "inputs",
18
+ "type": {
19
+ "summary": "boolean"
20
+ },
21
+ "defaultValue": {
22
+ "summary": true
23
+ }
24
+ }
25
+ },
26
+ "stats": {
27
+ "name": "stats",
28
+ "description": "Kennzahlen des Streifens.",
29
+ "type": {
30
+ "name": "other",
31
+ "value": "empty-enum",
32
+ "required": true
33
+ },
34
+ "table": {
35
+ "category": "inputs",
36
+ "type": {
37
+ "summary": "CdsFlatStat[]"
38
+ },
39
+ "defaultValue": {}
40
+ }
41
+ }
42
+ },
43
+ "apiDescription": "## Inputs\n\n```\nexport type StatStripComponentInputs = {\n /**\n * Abgerundete Ecken (--r-lg) wie in der Doku-Verwendung.\n *\n * @default true\n */\n rounded?: boolean;\n /** Kennzahlen des Streifens. */\n stats: CdsFlatStat[];\n}\n```",
44
+ "renderer": "angular",
45
+ "angularComponentMeta": {
46
+ "name": "StatStripComponent",
47
+ "selector": "cds-stat-strip",
48
+ "standalone": true,
49
+ "inputs": [
50
+ "rounded",
51
+ "stats"
52
+ ],
53
+ "outputs": [],
54
+ "enums": []
55
+ }
56
+ }
57
+ }
58
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "components": {
3
+ "komponenten-cards-teaser-tier-trenner": {
4
+ "id": "komponenten-cards-teaser-tier-trenner",
5
+ "name": "TierComponent",
6
+ "path": "./src/lib/tier/tier.stories.ts",
7
+ "description": "Tier (`cds-tier`) — Wrapper um `.ep-tier` aus css/components.css\n(css/components.css:1381–1384): der Stufen-Trenner (Label + Haarlinie), der eine\nOffene Feature-Liste in Pakete gliedert (z. B. „In jedem Paket enthalten“ /\n„Zusätzlich mit Pro“, Doku-Sektion `docs/index.html:4880`, Beispielseiten\n`docs/index.html:11855–11857`, `11883–11885`, `12576–12578`).\n\n**Element-Selektor, kein Attribut (ADR-0008-Standardfall).** Ausgezählt: alle 4\n`.ep-tier`-Vorkommen in `docs/index.html` stehen als eigenständiger `<div>` VOR\neinem `.layout-grid` oder einer Karten-Reihe, nie als deren Kind — keines trägt\neine `col-*`-Spaltenklasse, keines liegt in einem Grid/Flex, das seine Kinder\ndehnt. Das Tag variiert ebenfalls nicht (immer `<div>`). Keines der drei\nADR-0008-Kriterien (Grid-/Flex-Kind, Ziel einer Layout-Klasse, wechselndes Tag)\ntrifft zu, der Element-Selektor bleibt deshalb der Standardfall. `.ep-tier{\ndisplay:flex}` sitzt direkt auf dem Host (`host: { class: 'ep-tier' }`), kein\ninneres Wrapper-Element darunter — anders als bei `cds-section` (ADR-0008 Fall 2)\nist hier nichts von außen auf eine bestimmte DOM-Tiefe angewiesen: kein\nNachfahren-Selektor zielt auf `.ep-tier`, keine Fläche hängt am Host.\n\n**`area` ist auf `'ki'` typisiert, nicht auf `CdsArea`.** `css/components.css:1383`\nkennt nur die eine Regel `.ep-tier-label[data-area=\"ki\"]` (Dark-Override\n`css/dark-mode.css:476`) — für `co`/`es`/`wo` existiert keine einzige\n`[data-area]`-Regel auf `.ep-tier-label`, per Grep über `css/*.css` geprüft.\nAusgezählt in `docs/index.html`: von 4 `.ep-tier-label`-Vorkommen tragen 3\n`data-area=\"ki\"` (4880, 11884, 12577), eines trägt gar kein `data-area` (11856),\nkeines der Werte `co`/`es`/`wo` kommt vor. Ein `area`-Input vom Typ `CdsArea`\nwürde für drei von vier gültigen Werten ein `data-area`-Attribut schreiben, das\nim CSS folgenlos bleibt — die Falle, die genau dann entsteht, wenn eine Eingabe\nmehr verspricht, als die Stilschicht einlöst. Der Typ ist deshalb auf den einen\nWert eingeschränkt, den das CSS tatsächlich kennt; der Compiler verhindert damit\nstrukturell, dass jemand `co`/`es`/`wo` setzt und ein wirkungsloses Attribut\nbekommt, statt es nur im JSDoc zu behaupten.",
8
+ "jsDocTags": {},
9
+ "argTypes": {
10
+ "area": {
11
+ "name": "area",
12
+ "description": "Einzige vom CSS unterstützte Tönung → `data-area=\"ki\"` auf `.ep-tier-label`.\nUngesetzt (Default) bleibt das Label neutral (`--tx-secondary`), siehe Klassendoku.",
13
+ "type": {
14
+ "name": "other",
15
+ "value": "empty-enum"
16
+ },
17
+ "table": {
18
+ "category": "inputs",
19
+ "type": {
20
+ "summary": "\"ki\""
21
+ },
22
+ "defaultValue": {}
23
+ }
24
+ },
25
+ "label": {
26
+ "name": "label",
27
+ "description": "Beschriftung des Trenners (`.ep-tier-label`), z. B. „In jedem Paket enthalten“.",
28
+ "type": {
29
+ "name": "string",
30
+ "required": true
31
+ },
32
+ "table": {
33
+ "category": "inputs",
34
+ "type": {
35
+ "summary": "string"
36
+ },
37
+ "defaultValue": {}
38
+ }
39
+ }
40
+ },
41
+ "apiDescription": "## Inputs\n\n```\nexport type TierComponentInputs = {\n /**\n * Einzige vom CSS unterstützte Tönung → `data-area=\"ki\"` auf `.ep-tier-label`.\n * Ungesetzt (Default) bleibt das Label neutral (`--tx-secondary`), siehe Klassendoku.\n */\n area?: \"ki\";\n /** Beschriftung des Trenners (`.ep-tier-label`), z. B. „In jedem Paket enthalten“. */\n label: string;\n}\n```",
42
+ "renderer": "angular",
43
+ "angularComponentMeta": {
44
+ "name": "TierComponent",
45
+ "selector": "cds-tier",
46
+ "standalone": true,
47
+ "inputs": [
48
+ "area",
49
+ "label"
50
+ ],
51
+ "outputs": [],
52
+ "enums": []
53
+ }
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "components": {
3
+ "komponenten-chips-badges-pills-bereichs-badge": {
4
+ "id": "komponenten-chips-badges-pills-bereichs-badge",
5
+ "name": "AreaBadgeComponent",
6
+ "path": "./src/lib/area-badge/area-badge.stories.ts",
7
+ "description": "Bereichs-Badge — passive Bereichs-Kennzeichnung auf Basis von `.badge` +\n`[data-area]` aus css/components.css.\n\nOrdnet ein Element einer der vier Brand Areas zu (50er-Grund, 800er-Text).\nNicht interaktiv. Für Zustände die Status-Badge, für einen redaktionellen\nAnker im Lesefluss die Pill nutzen; für interaktive Filter den Chip.",
8
+ "jsDocTags": {},
9
+ "argTypes": {
10
+ "area": {
11
+ "name": "area",
12
+ "description": "Brand Area → data-area (bestimmt die Bereichsfarbe).",
13
+ "type": {
14
+ "name": "enum",
15
+ "value": [
16
+ "co",
17
+ "ki",
18
+ "es",
19
+ "wo"
20
+ ]
21
+ },
22
+ "table": {
23
+ "category": "inputs",
24
+ "type": {
25
+ "summary": "CdsArea"
26
+ },
27
+ "defaultValue": {
28
+ "summary": "co"
29
+ }
30
+ }
31
+ },
32
+ "label": {
33
+ "name": "label",
34
+ "description": "Sichtbarer Text der Badge.",
35
+ "type": {
36
+ "name": "string",
37
+ "required": true
38
+ },
39
+ "table": {
40
+ "category": "inputs",
41
+ "type": {
42
+ "summary": "string"
43
+ },
44
+ "defaultValue": {}
45
+ }
46
+ }
47
+ },
48
+ "apiDescription": "## Inputs\n\n```\nexport type AreaBadgeComponentInputs = {\n /**\n * Brand Area → data-area (bestimmt die Bereichsfarbe).\n *\n * @default co\n */\n area?: CdsArea;\n /** Sichtbarer Text der Badge. */\n label: string;\n}\n```",
49
+ "renderer": "angular",
50
+ "angularComponentMeta": {
51
+ "name": "AreaBadgeComponent",
52
+ "selector": "cds-area-badge",
53
+ "standalone": true,
54
+ "inputs": [
55
+ "area",
56
+ "label"
57
+ ],
58
+ "outputs": [],
59
+ "enums": []
60
+ }
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "components": {
3
+ "komponenten-chips-badges-pills-chip": {
4
+ "id": "komponenten-chips-badges-pills-chip",
5
+ "name": "ChipComponent",
6
+ "path": "./src/lib/chip/chip.stories.ts",
7
+ "description": "Chip — Wrapper um `.chip` aus css/components.css → „Badges & Chips“.\n\nInteraktiver Filter-Chip auf Basis von `aria-pressed` (.chip[aria-pressed],\noptional area-aware über [data-area]). Klick schaltet den Zustand um.\n\nChips sind interaktive Elemente (Filter/Einstellungen), KEINE statischen Tags.\nFür nicht-interaktive Bereichs-Labels die Badge- bzw. Pill-Komponente nutzen.",
8
+ "jsDocTags": {},
9
+ "argTypes": {
10
+ "area": {
11
+ "name": "area",
12
+ "description": "Markenbereich → data-area (area-aware Outline).",
13
+ "type": {
14
+ "name": "enum",
15
+ "value": [
16
+ "co",
17
+ "ki",
18
+ "es",
19
+ "wo"
20
+ ]
21
+ },
22
+ "table": {
23
+ "category": "inputs",
24
+ "type": {
25
+ "summary": "CdsArea"
26
+ },
27
+ "defaultValue": {}
28
+ }
29
+ },
30
+ "label": {
31
+ "name": "label",
32
+ "description": "Sichtbarer Text des Chips.",
33
+ "type": {
34
+ "name": "string",
35
+ "required": true
36
+ },
37
+ "table": {
38
+ "category": "inputs",
39
+ "type": {
40
+ "summary": "string"
41
+ },
42
+ "defaultValue": {}
43
+ }
44
+ },
45
+ "pressed": {
46
+ "name": "pressed",
47
+ "description": "Gedrückt/aktiv → aria-pressed. Two-Way (`[(pressed)]`) + pressedChange via model().",
48
+ "type": {
49
+ "name": "boolean"
50
+ },
51
+ "table": {
52
+ "category": "inputs",
53
+ "type": {
54
+ "summary": "boolean"
55
+ },
56
+ "defaultValue": {
57
+ "summary": false
58
+ }
59
+ }
60
+ },
61
+ "pressedChange": {
62
+ "name": "pressedChange",
63
+ "description": "Gedrückt/aktiv → aria-pressed. Two-Way (`[(pressed)]`) + pressedChange via model().",
64
+ "type": {
65
+ "name": "other",
66
+ "value": "void"
67
+ },
68
+ "action": "pressedChange",
69
+ "table": {
70
+ "category": "outputs",
71
+ "type": {
72
+ "summary": "(e: boolean) => void"
73
+ }
74
+ }
75
+ }
76
+ },
77
+ "apiDescription": "## Inputs\n\n```\nexport type ChipComponentInputs = {\n /** Markenbereich → data-area (area-aware Outline). */\n area?: CdsArea;\n /** Sichtbarer Text des Chips. */\n label: string;\n /**\n * Gedrückt/aktiv → aria-pressed. Two-Way (`[(pressed)]`) + pressedChange via model().\n *\n * @default false\n */\n pressed?: boolean; // two-way: [(pressed)]\n}\n```\n\n## Outputs\n\n```\nexport type ChipComponentOutputs = {\n /** Gedrückt/aktiv → aria-pressed. Two-Way (`[(pressed)]`) + pressedChange via model(). */\n pressedChange: (e: boolean) => void;\n}\n```",
78
+ "renderer": "angular",
79
+ "angularComponentMeta": {
80
+ "name": "ChipComponent",
81
+ "selector": "cds-chip",
82
+ "standalone": true,
83
+ "inputs": [
84
+ "area",
85
+ "label",
86
+ "pressed"
87
+ ],
88
+ "outputs": [
89
+ "pressedChange"
90
+ ],
91
+ "enums": []
92
+ }
93
+ }
94
+ }
95
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "components": {
3
+ "komponenten-chips-badges-pills-pill": {
4
+ "id": "komponenten-chips-badges-pills-pill",
5
+ "name": "PillComponent",
6
+ "path": "./src/lib/pill/pill.stories.ts",
7
+ "description": "Pill — Wrapper um `.pill` aus css/components.css → „Badges & Chips“ (Pill).\n\nPassive, redaktionelle Bereichs-Markierung, typografisch als Eyebrow (uppercase,\nletter-spacing .09em, label-xs) — sitzt typischerweise oberhalb eines Titels und\nordnet einen Inhalt einer Brand Area zu. Abgrenzung zur Badge: die Pill ist der\nthematische „Was für ein Inhalt ist das?“-Anker im Lesefluss; die Badge die\npunktuelle Status-/Bereichs-Kennzeichnung neben Elementen. Nicht interaktiv.\n\na11y: Der reine Bereichsname klingt im Screenreader-Fluss leicht wie eine\nÜberschrift — daher trägt die Pill ein explizites `aria-label` (Default\n„Bereich <label>“, überschreibbar), genau wie in der Doku vorgegeben.",
8
+ "jsDocTags": {},
9
+ "argTypes": {
10
+ "area": {
11
+ "name": "area",
12
+ "description": "Brand Area → data-area (Farbton; ohne Angabe greift der Corporate-Default).",
13
+ "type": {
14
+ "name": "enum",
15
+ "value": [
16
+ "co",
17
+ "ki",
18
+ "es",
19
+ "wo"
20
+ ]
21
+ },
22
+ "table": {
23
+ "category": "inputs",
24
+ "type": {
25
+ "summary": "CdsArea"
26
+ },
27
+ "defaultValue": {
28
+ "summary": "ki"
29
+ }
30
+ }
31
+ },
32
+ "ariaLabel": {
33
+ "name": "ariaLabel",
34
+ "description": "aria-label überschreiben; Default „Bereich <label>“.",
35
+ "type": {
36
+ "name": "string"
37
+ },
38
+ "table": {
39
+ "category": "inputs",
40
+ "type": {
41
+ "summary": "string"
42
+ },
43
+ "defaultValue": {}
44
+ }
45
+ },
46
+ "label": {
47
+ "name": "label",
48
+ "description": "Sichtbarer Bereichsname.",
49
+ "type": {
50
+ "name": "string",
51
+ "required": true
52
+ },
53
+ "table": {
54
+ "category": "inputs",
55
+ "type": {
56
+ "summary": "string"
57
+ },
58
+ "defaultValue": {}
59
+ }
60
+ }
61
+ },
62
+ "apiDescription": "## Inputs\n\n```\nexport type PillComponentInputs = {\n /**\n * Brand Area → data-area (Farbton; ohne Angabe greift der Corporate-Default).\n *\n * @default ki\n */\n area?: CdsArea;\n /** aria-label überschreiben; Default „Bereich <label>“. */\n ariaLabel?: string;\n /** Sichtbarer Bereichsname. */\n label: string;\n}\n```",
63
+ "renderer": "angular",
64
+ "angularComponentMeta": {
65
+ "name": "PillComponent",
66
+ "selector": "cds-pill",
67
+ "standalone": true,
68
+ "inputs": [
69
+ "area",
70
+ "ariaLabel",
71
+ "label"
72
+ ],
73
+ "outputs": [],
74
+ "enums": []
75
+ }
76
+ }
77
+ }
78
+ }