@supersoniks/concorde 5.0.3 → 5.0.5

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 (151) hide show
  1. package/.agents/skills/concorde-component-docs/SKILL.md +194 -0
  2. package/.agents/skills/concorde-component-docs/template.md +45 -0
  3. package/ai/cursor/rules/concorde-theme.mdc +1 -1
  4. package/ai/cursor/rules/concorde.mdc +1 -1
  5. package/ai/skills/concorde/SKILL.md +1 -1
  6. package/ai/skills/concorde-theme/SKILL.md +21 -10
  7. package/build-infos.json +1 -1
  8. package/concorde-core.bundle.js +515 -521
  9. package/concorde-core.es.js +5151 -5056
  10. package/dist/concorde-core.bundle.js +515 -521
  11. package/dist/concorde-core.es.js +5151 -5056
  12. package/dist/docs-mock-api-sw.js +2 -0
  13. package/dist/docs-mock-api-sw.js.map +2 -2
  14. package/docs/assets/index-CD4WyL6o.css +1 -0
  15. package/docs/assets/{index-BnK6OS7w.js → index-wVZpLVYW.js} +815 -808
  16. package/docs/crawl/core/components/ui/alert/alert.html +76 -5
  17. package/docs/crawl/core/components/ui/alert-messages/alert-messages.html +113 -5
  18. package/docs/crawl/core/components/ui/badge/badge.html +57 -8
  19. package/docs/crawl/core/components/ui/captcha/captcha.html +90 -8
  20. package/docs/crawl/core/components/ui/card/card.html +122 -12
  21. package/docs/crawl/core/components/ui/divider/divider.html +117 -31
  22. package/docs/crawl/core/components/ui/form/fieldset/fieldset.html +232 -101
  23. package/docs/crawl/core/components/ui/form/form-actions/form-actions.html +95 -52
  24. package/docs/crawl/core/components/ui/form/form-layout/form-layout.html +97 -38
  25. package/docs/crawl/core/components/ui/group/group.html +60 -38
  26. package/docs/crawl/core/components/ui/icon/icon.html +136 -47
  27. package/docs/crawl/core/components/ui/image/image.html +118 -6
  28. package/docs/crawl/core/components/ui/link/link.html +65 -7
  29. package/docs/crawl/core/components/ui/loader/loader.html +97 -23
  30. package/docs/crawl/core/components/ui/menu/menu.html +162 -90
  31. package/docs/crawl/core/components/ui/modal/modal.html +275 -50
  32. package/docs/crawl/core/components/ui/pop/pop.html +242 -124
  33. package/docs/crawl/core/components/ui/progress/progress.html +103 -30
  34. package/docs/crawl/core/components/ui/table/table.html +303 -171
  35. package/docs/crawl/core/components/ui/theme/theme.html +131 -0
  36. package/docs/crawl/core/components/ui/toast/toast.html +170 -59
  37. package/docs/crawl/core/components/ui/tooltip/tooltip.html +90 -29
  38. package/docs/crawl/docs/_decorators/ancestor-attribute.html +3 -2
  39. package/docs/crawl/docs/_getting-started/start.html +1 -1
  40. package/docs/crawl/docs/_getting-started/theming.html +311 -63
  41. package/docs/crawl/hubs/form-components.html +71 -49
  42. package/docs/crawl/index.html +7 -6
  43. package/docs/docs-mock-api-sw.js +2 -0
  44. package/docs/docs-mock-api-sw.js.map +2 -2
  45. package/docs/index.html +6 -4
  46. package/docs/llms-full.txt +1468 -405
  47. package/docs/llms.txt +23 -30
  48. package/docs/sitemap.xml +3 -0
  49. package/docs/src/core/components/ui/alert/alert.md +21 -2
  50. package/docs/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  51. package/docs/src/core/components/ui/badge/badge.md +19 -6
  52. package/docs/src/core/components/ui/captcha/captcha.md +65 -6
  53. package/docs/src/core/components/ui/card/card.md +73 -10
  54. package/docs/src/core/components/ui/divider/divider.md +107 -13
  55. package/docs/src/core/components/ui/form/fieldset/fieldset.md +175 -99
  56. package/docs/src/core/components/ui/form/form-actions/form-actions.md +75 -52
  57. package/docs/src/core/components/ui/form/form-layout/form-layout.md +109 -34
  58. package/docs/src/core/components/ui/group/group.md +36 -36
  59. package/docs/src/core/components/ui/icon/icon.md +132 -43
  60. package/docs/src/core/components/ui/image/image.md +35 -3
  61. package/docs/src/core/components/ui/link/link.md +43 -5
  62. package/docs/src/core/components/ui/loader/loader.md +79 -22
  63. package/docs/src/core/components/ui/menu/menu.md +133 -92
  64. package/docs/src/core/components/ui/modal/modal.md +163 -47
  65. package/docs/src/core/components/ui/pop/pop.md +217 -123
  66. package/docs/src/core/components/ui/progress/progress.md +76 -30
  67. package/docs/src/core/components/ui/table/table.md +147 -171
  68. package/docs/src/core/components/ui/theme/theme.md +122 -0
  69. package/docs/src/core/components/ui/toast/toast.md +108 -58
  70. package/docs/src/core/components/ui/tooltip/tooltip.md +68 -26
  71. package/docs/src/docs/_decorators/ancestor-attribute.md +3 -2
  72. package/docs/src/docs/_getting-started/start.md +1 -1
  73. package/docs/src/docs/_getting-started/theming.md +223 -61
  74. package/docs/src/docs/search/docs-search.json +2504 -399
  75. package/docs/src/tsconfig.json +18 -0
  76. package/index.html +4 -2
  77. package/package.json +7 -1
  78. package/public/docs-mock-api-sw.js +2 -0
  79. package/public/docs-mock-api-sw.js.map +2 -2
  80. package/src/core/components/ui/_css/align.ts +1 -0
  81. package/src/core/components/ui/_css/type.ts +86 -8
  82. package/src/core/components/ui/_i18n/ui-aria-labels.ts +8 -0
  83. package/src/core/components/ui/alert/alert.md +21 -2
  84. package/src/core/components/ui/alert-messages/alert-messages.md +85 -0
  85. package/src/core/components/ui/badge/badge.md +19 -6
  86. package/src/core/components/ui/badge/badge.ts +8 -9
  87. package/src/core/components/ui/button/button.ts +5 -15
  88. package/src/core/components/ui/captcha/captcha.md +65 -6
  89. package/src/core/components/ui/card/card.md +73 -10
  90. package/src/core/components/ui/card/card.ts +24 -22
  91. package/src/core/components/ui/divider/divider.md +107 -13
  92. package/src/core/components/ui/divider/divider.ts +40 -33
  93. package/src/core/components/ui/form/fieldset/fieldset.md +175 -99
  94. package/src/core/components/ui/form/fieldset/fieldset.ts +15 -28
  95. package/src/core/components/ui/form/fieldset/legend.ts +13 -13
  96. package/src/core/components/ui/form/form-actions/form-actions.md +75 -52
  97. package/src/core/components/ui/form/form-actions/form-actions.ts +7 -5
  98. package/src/core/components/ui/form/form-layout/form-layout.md +109 -34
  99. package/src/core/components/ui/form/form-layout/form-layout.ts +27 -24
  100. package/src/core/components/ui/form/textarea/textarea.ts +4 -3
  101. package/src/core/components/ui/group/group.md +36 -36
  102. package/src/core/components/ui/group/group.ts +5 -10
  103. package/src/core/components/ui/icon/icon.md +132 -43
  104. package/src/core/components/ui/image/image.md +35 -3
  105. package/src/core/components/ui/link/link.md +43 -5
  106. package/src/core/components/ui/loader/loader.md +79 -22
  107. package/src/core/components/ui/loader/loader.ts +67 -27
  108. package/src/core/components/ui/loader/styles/fixed.ts +6 -11
  109. package/src/core/components/ui/menu/menu.md +133 -92
  110. package/src/core/components/ui/menu/menu.ts +53 -58
  111. package/src/core/components/ui/modal/modal.md +163 -47
  112. package/src/core/components/ui/modal/modal.ts +2 -4
  113. package/src/core/components/ui/pop/pop.md +217 -123
  114. package/src/core/components/ui/pop/pop.ts +0 -1
  115. package/src/core/components/ui/progress/progress.md +76 -30
  116. package/src/core/components/ui/progress/progress.ts +25 -56
  117. package/src/core/components/ui/table/table-caption.ts +2 -2
  118. package/src/core/components/ui/table/table-tbody.ts +3 -3
  119. package/src/core/components/ui/table/table-td.ts +23 -18
  120. package/src/core/components/ui/table/table-th.ts +8 -8
  121. package/src/core/components/ui/table/table-tr.ts +4 -4
  122. package/src/core/components/ui/table/table.md +147 -171
  123. package/src/core/components/ui/table/table.ts +20 -19
  124. package/src/core/components/ui/theme/theme-collection/auto.ts +15 -0
  125. package/src/core/components/ui/theme/theme-collection/core-variables.ts +8 -31
  126. package/src/core/components/ui/theme/theme-collection/dark.ts +1 -7
  127. package/src/core/components/ui/theme/theme-collection/light.ts +30 -26
  128. package/src/core/components/ui/theme/theme.md +122 -0
  129. package/src/core/components/ui/theme/theme.ts +30 -7
  130. package/src/core/components/ui/toast/toast-item.ts +6 -9
  131. package/src/core/components/ui/toast/toast.md +108 -58
  132. package/src/core/components/ui/toast/types.ts +1 -1
  133. package/src/core/components/ui/tooltip/tooltip.md +68 -26
  134. package/src/core/decorators/subscriber/ancestorAttribute.spec.ts +26 -0
  135. package/src/core/decorators/subscriber/ancestorAttribute.ts +3 -4
  136. package/src/core/utils/AncestorAttributeObserver.ts +183 -70
  137. package/src/docs/_decorators/ancestor-attribute.md +3 -2
  138. package/src/docs/_getting-started/start.md +1 -1
  139. package/src/docs/_getting-started/theming.md +223 -61
  140. package/src/docs/code.ts +125 -58
  141. package/src/docs/header/header.ts +62 -54
  142. package/src/docs/mock-api/router.ts +2 -0
  143. package/src/docs/navigation/navigation.ts +6 -3
  144. package/src/docs/search/docs-search.json +2504 -399
  145. package/src/docs/search/markdown-renderer.ts +6 -6
  146. package/src/docs/search/search.ts +4 -4
  147. package/src/docs/tailwind/css/tailwind.css +6 -5
  148. package/src/tsconfig.json +18 -0
  149. package/src/tsconfig.tsbuildinfo +1 -1
  150. package/tailwind.config.js +19 -0
  151. package/docs/assets/index--GpD7R7a.css +0 -1
@@ -0,0 +1,194 @@
1
+ ---
2
+ name: concorde-component-docs
3
+ description: >-
4
+ Writes and edits Concorde UI component documentation pages (*.md) in English
5
+ with consistent structure, tone, sonic-code examples, and API tables. Use when
6
+ creating or updating component docs under src/core/components/ui/, when
7
+ uniformizing documentation, or when the user references alert.md-style docs.
8
+ ---
9
+
10
+ # Concorde component documentation
11
+
12
+ Apply this skill when **creating** or **editing** a component doc page (typically `src/core/components/ui/<component>/<component>.md`).
13
+
14
+ Canonical examples: `alert.md`, `badge.md`, `link.md`, `image.md`.
15
+
16
+ ## Workflow
17
+
18
+ ### Creating a new page
19
+
20
+ 1. Read the component implementation (`.ts` / props, slots, reflected attributes, defaults).
21
+ 2. Draft the **intro** (what it does, when to use it, 1–2 critical APIs).
22
+ 3. Add **feature sections** in order of reader need (basic → variants → composition → edge cases → a11y).
23
+ 4. Add one **`<sonic-code>`** example per section; group enum variants in a single demo when practical.
24
+ 5. End with **`## API reference`** (attributes table, slots table if any).
25
+ 6. Run the [quality checklist](#quality-checklist).
26
+
27
+ ### Editing an existing page
28
+
29
+ 1. Preserve working examples; only change prose/structure to match this guide.
30
+ 2. Do not duplicate `## API reference` blocks—merge into one.
31
+ 3. Align intro tone and section titles with sibling docs; add missing API rows from source.
32
+ 4. Keep demo markup valid; avoid unrelated refactors in examples.
33
+
34
+ ## Page structure
35
+
36
+ ```markdown
37
+ # ComponentName
38
+
39
+ [Intro paragraph: 1–3 sentences. Purpose, primary use case, key props/slots.]
40
+
41
+ ## Basic example
42
+ [or first topical section, e.g. ## Type, ## Href, ## Rounded]
43
+
44
+ [Optional short prose before the example.]
45
+
46
+ <sonic-code>
47
+ <template>
48
+ ...
49
+ </template>
50
+ </sonic-code>
51
+
52
+ ## [Feature or variant name]
53
+
54
+ ...
55
+
56
+ ## API reference
57
+
58
+ | Attribute | Values | Description |
59
+ |----------|---------|-------------|
60
+ | ... | ... | ... |
61
+
62
+ | Slot | Description |
63
+ |------|-------------|
64
+ | ... | ... |
65
+ ```
66
+
67
+ ### Title (`#`)
68
+
69
+ - Singular component name, Title Case: `# Alert`, `# Badge`, `# Link`, `# Image`.
70
+ - Match the public tag name conceptually (`sonic-alert` → Alert).
71
+
72
+ ### Intro (required for new-style docs)
73
+
74
+ One tight paragraph immediately after the title:
75
+
76
+ - State **what** the component does and **when** to choose it.
77
+ - Call out **defaults** and **constraints** only if they prevent misuse.
78
+ - Formatting:
79
+ - **Bold** for emphasis on behavior (not for every noun).
80
+ - API names and tags in backticks; when listing several, **do not put commas between inline-code spans** (rendered as adjacent `<code>`). Join with **`/`**, **`and`**, or separate clauses—e.g. `` `label` `` / `` `text` ``, not `` `label` ``, `` `text` ``.
81
+ - Cross-link related components in prose: “aligned with **`sonic-button`**”, “pair with **`ratio="1/1"`**”.
82
+
83
+ Avoid marketing fluff, long tutorials, and repeating the API table in the intro.
84
+
85
+ ### Section headings (`##` / `###`)
86
+
87
+ - **Sentence case** or short Title Case; be consistent within one file.
88
+ - Name sections after **one concern**: `Status`, `Size`, `Dismissible`, `Accessibility (\`announce\`)`, `Prefix and suffix slots`.
89
+ - Use `###` for sub-variants of the same feature (e.g. `### AutoActive Strict vs partial`).
90
+ - Put **`## API reference`** last—never in the middle.
91
+
92
+ Suggested order (omit what does not apply):
93
+
94
+ 1. Basic example / primary API
95
+ 2. Visual variants (`type` / `status` / `variant` / `size` / …)
96
+ 3. Content model (slots, `label` / `text`, rich content)
97
+ 4. Composition patterns (inside buttons, with links, …)
98
+ 5. Behavioral flags (`dismissible` / `announce` / `cover` / …)
99
+ 6. Accessibility (dedicated section when non-obvious)
100
+ 7. API reference
101
+
102
+ ### Prose before examples
103
+
104
+ - **Default first**: “With no `status`, behavior is `default`.” “Default **`loading`** is `lazy`.”
105
+ - **Enums inline** when short: `` `outline` `` — border and text in the `type` color.
106
+ - **Requirements**: stable `` `id` `` required for `dismissForever`; parent must constrain width for `ellipsis`.
107
+ - **Implementation notes** only when they change usage: `localStorage`; `role="alert"`; remount to replay transitions.
108
+ - Length: 0–4 sentences per section; longer only for accessibility or non-obvious behavior.
109
+
110
+ ## Live examples (`<sonic-code>`)
111
+
112
+ Wrap all demos:
113
+
114
+ ```html
115
+ <sonic-code>
116
+ <template>
117
+ <!-- demo markup -->
118
+ </template>
119
+ </sonic-code>
120
+ ```
121
+
122
+ Conventions:
123
+
124
+ - Use Tailwind layout utilities already used in the design system docs: `grid gap-4` / `flex flex-wrap gap-2` / `items-center`.
125
+ - Show **all enum values** in one row/grid when demonstrating `type`, `status`, or `size`.
126
+ - Label variants in the UI (badge text, caption `<p class="mt-2">`) when comparison matters.
127
+ - Prefer realistic copy over “Lorem ipsum” unless demonstrating truncation or length.
128
+ - Interactive demos (buttons that mutate DOM) are allowed when they teach behavior—add one sentence explaining what to click.
129
+ - Do not wrap API tables or long prose inside `<sonic-code>`.
130
+
131
+ ## API reference
132
+
133
+ ### Attributes table
134
+
135
+ ```markdown
136
+ | Attribute | Values | Description |
137
+ |----------|---------|-------------|
138
+ | `name` | `a` · `b` (default `a`) | One line: behavior + default + interaction with other props |
139
+ ```
140
+
141
+ - Column headers exactly: **Attribute**, **Values**, **Description**.
142
+ - **Values**: list allowed literals separated by **middle dot (` · `)** or **`…`** for ranges (`2xs` … `2xl`)—**never commas between backtick spans**. Put **(default `…`)** in this column or in Description—be consistent within the file.
143
+ - **Description**: imperative, factual; mention side effects (`removes from DOM`, `ignored when \`cover\` is set`).
144
+ - Document boolean attributes as boolean in the table; no need to say “true/false” unless ambiguous.
145
+
146
+ ### Slots table
147
+
148
+ ```markdown
149
+ | Slot | Description |
150
+ |------|-------------|
151
+ | *(default)* | Main label / message body |
152
+ | `icon` | Replaces the default `sonic-icon` |
153
+ ```
154
+
155
+ - If the component has **no slots**, state it in prose under the attributes table (see `image.md`).
156
+ - Use *(default)* for the unnamed slot.
157
+
158
+ ### Single API block
159
+
160
+ One `## API reference` section per file. If the source doc has duplicates, consolidate without losing rows.
161
+
162
+ ## Voice and language
163
+
164
+ - **English only** for user-facing doc text.
165
+ - Present tense, second person avoided; address the integrator (“Set **`announce`** when…”).
166
+ - Prefer precise verbs: surface, navigate, truncate, persist, intercept.
167
+ - Do not document internal CSS class names unless the doc already uses them for styling hooks (`[&[active]]:text-success` in examples is OK).
168
+
169
+ ## Quality checklist
170
+
171
+ Before finishing, verify:
172
+
173
+ - [ ] `#` title + intro paragraph present (for new or modernized pages).
174
+ - [ ] Every `##` section (except API) has a `<sonic-code>` example unless it is pure sub-prose under a parent demo.
175
+ - [ ] Defaults and required attributes are stated in prose or API table.
176
+ - [ ] Accessibility called out where behavior affects AT (roles, `alt`, decorative icons).
177
+ - [ ] Exactly one `## API reference`; attributes and slots match the component source.
178
+ - [ ] No duplicate sections; heading levels skip only when using `###` under `##`.
179
+ - [ ] Attribute/slot names match the implementation (camelCase in docs).
180
+ - [ ] No comma-separated lists of inline-code terms in prose or API **Values** cells.
181
+
182
+ ## Anti-patterns
183
+
184
+ - Long narrative guides, installation steps, or changelog in component `.md` files.
185
+ - Examples without `<sonic-code>` wrappers.
186
+ - API tables at the top of the page.
187
+ - Mixing French and English in the same page.
188
+ - Vague intros (“This component is very useful”) without API hints.
189
+ - Separate micro-sections per enum value when one grid demo suffices.
190
+ - Comma chains of inline code: `` `a` ``, `` `b` ``, and `` `c` `` (use `/`, ` · `, or `and` instead).
191
+
192
+ ## Reference template
193
+
194
+ See [template.md](template.md) for a copy-paste skeleton.
@@ -0,0 +1,45 @@
1
+ # ComponentName
2
+
3
+ One paragraph: what **`sonic-component`** does, when to use it instead of alternatives, and the most important `` `attributes` `` / slots. Mention defaults only if they prevent mistakes.
4
+
5
+ ## Basic example
6
+
7
+ <sonic-code>
8
+ <template>
9
+ <sonic-component>Minimal usage</sonic-component>
10
+ </template>
11
+ </sonic-code>
12
+
13
+ ## Variant or feature name
14
+
15
+ Short explanation of default and allowed values.
16
+
17
+ <sonic-code>
18
+ <template>
19
+ <div class="flex flex-wrap gap-2">
20
+ <sonic-component>Default</sonic-component>
21
+ <sonic-component type="primary">Primary</sonic-component>
22
+ </div>
23
+ </template>
24
+ </sonic-code>
25
+
26
+ ## Accessibility
27
+
28
+ When screen readers or keyboard users need special handling.
29
+
30
+ <sonic-code>
31
+ <template>
32
+ <sonic-component aria-label="…">…</sonic-component>
33
+ </template>
34
+ </sonic-code>
35
+
36
+ ## API reference
37
+
38
+ | Attribute | Values | Description |
39
+ |----------|---------|-------------|
40
+ | `example` | `a` · `b` (default `a`) | Behavior in one line |
41
+
42
+ | Slot | Description |
43
+ |------|-------------|
44
+ | *(default)* | Primary content |
45
+ | `named` | Optional slot purpose |
@@ -8,6 +8,6 @@ alwaysApply: false
8
8
 
9
9
  Skill **`concorde-theme`**
10
10
 
11
- - `<sonic-theme background color font>` + `--sc-*` CSS variables
11
+ - `<sonic-theme color font class="block bg-base">` + `--sc-*` CSS variables
12
12
  - `theme="dark"` for built-in dark palette
13
13
  - Not for `serviceURL` / API — use **`concorde-scope`**
@@ -53,7 +53,7 @@ Placeholder `${prop}` = chaîne normale, résolu depuis le composant hôte.
53
53
  par `get` pour `refetch`.
54
54
  - **Write + handler** : même modèle avec `post`, `put`, `patch` ; `@send`
55
55
  reste le déclencheur explicite.
56
- - **Theme** : `<sonic-theme background color font>` · `--sc-*` — skill `concorde-theme`
56
+ - **Theme** : `<sonic-theme color font class="block bg-base">` · `--sc-*` — skill `concorde-theme`
57
57
 
58
58
  ## Migration Subscriber / sonic-fetch (piège fréquent)
59
59
 
@@ -170,7 +170,7 @@ Avancés : `cache`, `blockUntilDone`, `keepAlive`, `addHTTPResponse`.
170
170
 
171
171
  Skill dédié : **`concorde-theme`**.
172
172
 
173
- `<sonic-theme background color font>` + variables CSS `--sc-*` (surfaces, sémantique, typo). Pas pour l’API.
173
+ `<sonic-theme color font class="block bg-base">` + variables CSS `--sc-*` (surfaces, sémantique, typo). Pas pour l’API.
174
174
 
175
175
  ```typescript
176
176
  import "@supersoniks/concorde/theme";
@@ -8,37 +8,48 @@ description: >-
8
8
 
9
9
  `<sonic-theme>` définit la base visuelle Concorde. **Pas** pour l’API (`serviceURL` → scope, skill `concorde-scope`).
10
10
 
11
+ Les composants ont un **rendu par défaut** sans override : fallbacks dans chaque composant + presets `light` / `dark`. Ne documenter que le **plus petit ensemble** de variables publiques `--sc-*` pour personnaliser un thème.
12
+
11
13
  ```typescript
12
14
  import "@supersoniks/concorde/theme";
13
15
  ```
14
16
 
15
17
  ```html
16
- <sonic-theme background color font>
18
+ <sonic-theme color font class="block bg-base min-h-screen">
17
19
  …app…
18
20
  </sonic-theme>
19
21
 
20
22
  <!-- dark -->
21
- <sonic-theme theme="dark" background color font>…</sonic-theme>
23
+ <sonic-theme theme="dark" color font class="block bg-base min-h-screen">…</sonic-theme>
22
24
  ```
23
25
 
24
26
  ## Attributs
25
27
 
26
28
  | Attribut | Rôle |
27
29
  |----------|------|
28
- | `background` | Fond page / surface (`--sc-base`) |
30
+ | `class="bg-base block"` (Tailwind) | Fond page / surface (`--sc-base`) |
29
31
  | `color` | Couleur texte (`--sc-base-content`) |
30
32
  | `font` | Famille / graisse (`--sc-font-family-base`) |
31
- | `theme="light"` \| `"dark"` | Palette built-in |
33
+ | *(omit)* \| `theme="custom"` | Défaut : tokens core + vos `--sc-*` ; pas de palette light/dark built-in |
34
+ | `theme="light"` \| `"dark"` \| `"auto"` | Presets opt-in ; `auto` suit `prefers-color-scheme` |
35
+
36
+ ## Variables CSS essentielles (API publique)
37
+
38
+ Override dans `:root`, sur `sonic-theme`, ou fichier CSS projet. **Ne pas** recopier les dérivées (`--sc-rounded-sm`, `--sc-btn-rounded`, …) : elles sont calculées par le thème à partir des primitives.
32
39
 
33
- ## Variables CSS
40
+ Convention : **sans suffixe `-content`** = couleur de **fond / surface / remplissage** ; **avec `-content`** = **texte et icônes** posés sur cette surface (boutons pleins, badges, etc.). Ne pas mélanger les deux rôles.
34
41
 
35
- Override dans `:root` ou fichier CSS projet :
42
+ - **Surfaces neutres (fonds)** : `--sc-base`, `--sc-base-50` … `--sc-base-900`
43
+ - **Texte sur surfaces neutres** : `--sc-base-content` (défaut UI, corps de page)
44
+ - **Couleurs sémantiques (fonds)** : `--sc-primary`, `--sc-secondary` (si utilisé), `--sc-success`, `--sc-warning`, `--sc-danger`, `--sc-info`, `--sc-contrast`
45
+ - **Texte sur fond sémantique** : `--sc-primary-content`, `--sc-secondary-content`, `--sc-success-content`, `--sc-warning-content`, `--sc-danger-content`, `--sc-info-content`, `--sc-contrast-content`
46
+ - **Forme** : `--sc-rounded` (primitive unique pour les rayons)
47
+ - **Typo** : `--sc-font-family-base`, `--sc-headings-font-family`, etc.
48
+ - **Formulaires (optionnel, global)** : `--sc-border-width`, `--sc-form-height`, `--sc-input-bg`, `--sc-input-color`, `--sc-input-border-color`, états actifs `--sc-input-active-*`
36
49
 
37
- - Surfaces : `--sc-base`, `--sc-base-content`, `--sc-base-50` … `--sc-base-900`
38
- - Sémantique : `--sc-primary`, `--sc-success`, `--sc-warning`, `--sc-danger`, `--sc-info` (+ `-content`)
39
- - Forme : `--sc-rounded`, `--sc-btn-rounded`, `--sc-border-width`
40
- - Typo : `--sc-font-family-base`, `--sc-headings-font-family`
50
+ Privé côté composants : `--sc_*`, `--sc-_color`, … — pas d’API par composant ni `::part()` sauf exceptions documentées.
41
51
 
52
+ Doc utilisateur : `#docs/_getting-started/theming.md/theming`.
42
53
  Doc composant : `node_modules/@supersoniks/concorde/src/core/components/ui/theme/`.
43
54
 
44
55
  Popovers, modals, toasts se montent sous le `<sonic-theme>` le plus proche.
package/build-infos.json CHANGED
@@ -1 +1 @@
1
- {"date":1790844202}
1
+ {"date":1791198231}