origam 2.19.0 → 2.21.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 (184) hide show
  1. package/CHANGELOG.md +118 -0
  2. package/dist/src/assets/css/main.css +1 -1
  3. package/dist/src/assets/css/tokens/dark.css +0 -16
  4. package/dist/src/assets/css/tokens/light.css +0 -8
  5. package/dist/src/assets/scss/tokens/_dark.scss +0 -16
  6. package/dist/src/assets/scss/tokens/_light.scss +0 -8
  7. package/dist/src/components/Alert/OrigamAlert.vue +20 -0
  8. package/dist/src/components/App/OrigamAppBar.vue +20 -0
  9. package/dist/src/components/Audio/OrigamAudio.vue +20 -0
  10. package/dist/src/components/Avatar/OrigamAvatar.vue +20 -0
  11. package/dist/src/components/Avatar/OrigamAvatarGroup.vue +20 -0
  12. package/dist/src/components/Badge/OrigamBadge.vue +12 -0
  13. package/dist/src/components/Blockquote/OrigamBlockquote.vue +35 -65
  14. package/dist/src/components/BottomNav/OrigamBottomNav.vue +20 -0
  15. package/dist/src/components/Bracket/OrigamBracket.vue +12 -0
  16. package/dist/src/components/Bracket/OrigamBracketCompetitor.vue +20 -0
  17. package/dist/src/components/Bracket/OrigamBracketMatch.vue +33 -5
  18. package/dist/src/components/Breadcrumb/OrigamBreadcrumb.vue +20 -0
  19. package/dist/src/components/Breadcrumb/OrigamBreadcrumbDivider.vue +8 -0
  20. package/dist/src/components/Breadcrumb/OrigamBreadcrumbItem.vue +20 -0
  21. package/dist/src/components/Btn/OrigamBtn.vue +20 -0
  22. package/dist/src/components/Btn/OrigamBtnGroup.vue +20 -0
  23. package/dist/src/components/Btn/OrigamBtnToggle.vue +20 -0
  24. package/dist/src/components/Calendar/OrigamCalendar.vue +21 -1
  25. package/dist/src/components/Card/OrigamCard.vue +20 -0
  26. package/dist/src/components/Card/OrigamCardHeader.vue +20 -0
  27. package/dist/src/components/Card/OrigamCardText.vue +20 -0
  28. package/dist/src/components/Carousel/OrigamCarousel.vue +20 -0
  29. package/dist/src/components/Carousel/OrigamCarouselItem.vue +20 -0
  30. package/dist/src/components/Chart/OrigamChart.vue +25 -1
  31. package/dist/src/components/Chart/OrigamChartBoxPlot.vue +12 -0
  32. package/dist/src/components/Chart/OrigamChartBullet.vue +12 -0
  33. package/dist/src/components/Chart/OrigamChartCandlestick.vue +12 -0
  34. package/dist/src/components/Chart/OrigamChartCartesian.vue +12 -0
  35. package/dist/src/components/Chart/OrigamChartGauge.vue +12 -0
  36. package/dist/src/components/Chart/OrigamChartHeatmap.vue +12 -0
  37. package/dist/src/components/Chart/OrigamChartHoneycomb.vue +12 -0
  38. package/dist/src/components/Chart/OrigamChartMap.vue +12 -0
  39. package/dist/src/components/Chart/OrigamChartPareto.vue +12 -0
  40. package/dist/src/components/Chart/OrigamChartPictorial.vue +12 -0
  41. package/dist/src/components/Chart/OrigamChartPolar.vue +12 -0
  42. package/dist/src/components/Chart/OrigamChartPolarBar.vue +12 -0
  43. package/dist/src/components/Chart/OrigamChartPyramid.vue +12 -0
  44. package/dist/src/components/Chart/OrigamChartRadar.vue +12 -0
  45. package/dist/src/components/Chart/OrigamChartSankey.vue +12 -0
  46. package/dist/src/components/Chart/OrigamChartSparkline.vue +12 -0
  47. package/dist/src/components/Chart/OrigamChartStreamgraph.vue +12 -0
  48. package/dist/src/components/Chart/OrigamChartSunburst.vue +12 -0
  49. package/dist/src/components/Chart/OrigamChartTreemap.vue +12 -0
  50. package/dist/src/components/Chart/OrigamChartVariwide.vue +12 -0
  51. package/dist/src/components/Chart/OrigamChartWordCloud.vue +12 -0
  52. package/dist/src/components/Checkbox/OrigamCheckbox.vue +20 -0
  53. package/dist/src/components/Checkbox/OrigamCheckboxBtn.vue +12 -0
  54. package/dist/src/components/Checkbox/OrigamCheckboxGroup.vue +20 -0
  55. package/dist/src/components/Chip/OrigamChip.vue +20 -0
  56. package/dist/src/components/Chip/OrigamChipGroup.vue +20 -0
  57. package/dist/src/components/Clipboard/OrigamClipboard.vue +20 -0
  58. package/dist/src/components/Code/OrigamCode.vue +20 -0
  59. package/dist/src/components/ColorPicker/OrigamColorPicker.vue +20 -0
  60. package/dist/src/components/ColorPickerField/OrigamColorPickerField.vue +20 -0
  61. package/dist/src/components/ConfirmWrapper/OrigamConfirmWrapper.vue +4 -0
  62. package/dist/src/components/ContextualMenu/OrigamContextualMenu.vue +20 -0
  63. package/dist/src/components/Counter/OrigamCounter.vue +20 -0
  64. package/dist/src/components/DataList/OrigamDataList.vue +20 -0
  65. package/dist/src/components/DataList/OrigamDataText.vue +8 -0
  66. package/dist/src/components/DataList/OrigamDataTitle.vue +8 -0
  67. package/dist/src/components/DataTable/OrigamDataTable.vue +20 -0
  68. package/dist/src/components/DataTable/OrigamDataTableColumnCell.vue +5 -1
  69. package/dist/src/components/DataTable/OrigamDataTableFooter.vue +4 -0
  70. package/dist/src/components/DatePicker/OrigamDatePicker.vue +20 -0
  71. package/dist/src/components/DatePickerField/OrigamDatePickerField.vue +20 -0
  72. package/dist/src/components/Dialog/OrigamDialog.vue +20 -0
  73. package/dist/src/components/Dialog/OrigamDialogConfirmation.vue +20 -0
  74. package/dist/src/components/Divider/OrigamDivider.vue +4 -0
  75. package/dist/src/components/Drawer/OrigamDrawer.vue +20 -0
  76. package/dist/src/components/ExpansionPanel/OrigamExpansionPanel.vue +20 -0
  77. package/dist/src/components/ExpansionPanel/OrigamExpansionPanelContent.vue +20 -0
  78. package/dist/src/components/ExpansionPanel/OrigamExpansionPanelHeader.vue +20 -0
  79. package/dist/src/components/ExpansionPanel/OrigamExpansionPanels.vue +20 -0
  80. package/dist/src/components/Field/OrigamField.vue +20 -0
  81. package/dist/src/components/FileField/OrigamFileField.vue +20 -0
  82. package/dist/src/components/Grid/OrigamGrid.vue +21 -1
  83. package/dist/src/components/Grids/OrigamCol.vue +16 -0
  84. package/dist/src/components/Grids/OrigamContainer.vue +17 -1
  85. package/dist/src/components/Grids/OrigamRow.vue +16 -0
  86. package/dist/src/components/Icon/OrigamClassIcon.vue +21 -1
  87. package/dist/src/components/Icon/OrigamComponentIcon.vue +21 -1
  88. package/dist/src/components/Icon/OrigamIcon.vue +21 -1
  89. package/dist/src/components/Icon/OrigamLigatureIcon.vue +21 -1
  90. package/dist/src/components/Icon/OrigamSvgIcon.vue +21 -1
  91. package/dist/src/components/Img/OrigamImg.vue +20 -0
  92. package/dist/src/components/Input/OrigamInput.vue +20 -0
  93. package/dist/src/components/Kbd/OrigamKbd.vue +12 -0
  94. package/dist/src/components/Label/OrigamLabel.vue +20 -0
  95. package/dist/src/components/Layout/OrigamLayout.vue +21 -1
  96. package/dist/src/components/List/OrigamList.vue +21 -1
  97. package/dist/src/components/List/OrigamListGroup.vue +20 -0
  98. package/dist/src/components/List/OrigamListItem.vue +20 -0
  99. package/dist/src/components/List/OrigamListSubheader.vue +20 -0
  100. package/dist/src/components/Main/OrigamMain.vue +20 -0
  101. package/dist/src/components/Masonry/OrigamMasonry.vue +21 -1
  102. package/dist/src/components/Media/OrigamMediaScrubber.vue +5 -1
  103. package/dist/src/components/Media/OrigamMediaVolumeControl.vue +4 -0
  104. package/dist/src/components/Menu/OrigamMenu.vue +20 -0
  105. package/dist/src/components/Messages/OrigamMessages.vue +20 -0
  106. package/dist/src/components/NumberField/OrigamNumberField.vue +20 -0
  107. package/dist/src/components/OtpInputField/OrigamOtpInputField.vue +20 -0
  108. package/dist/src/components/Pagination/OrigamPagination.vue +16 -0
  109. package/dist/src/components/Parallax/OrigamParallax.vue +20 -0
  110. package/dist/src/components/Parallax/OrigamParallaxElement.vue +20 -0
  111. package/dist/src/components/PasswordField/OrigamPasswordField.vue +20 -0
  112. package/dist/src/components/Picker/OrigamPicker.vue +20 -0
  113. package/dist/src/components/Progress/OrigamProgress.vue +12 -0
  114. package/dist/src/components/Progress/OrigamProgressCircular.vue +8 -0
  115. package/dist/src/components/Progress/OrigamProgressLinear.vue +12 -0
  116. package/dist/src/components/QrCode/OrigamQrCode.vue +21 -1
  117. package/dist/src/components/Radio/OrigamRadio.vue +20 -0
  118. package/dist/src/components/Radio/OrigamRadioBtn.vue +12 -0
  119. package/dist/src/components/Radio/OrigamRadioGroup.vue +20 -0
  120. package/dist/src/components/RatingField/OrigamRatingField.vue +20 -0
  121. package/dist/src/components/RatingField/OrigamRatingFieldItem.vue +20 -0
  122. package/dist/src/components/Responsive/OrigamResponsive.vue +21 -1
  123. package/dist/src/components/Select/OrigamSelect.vue +20 -0
  124. package/dist/src/components/SelectionControl/OrigamSelectionControl.vue +12 -0
  125. package/dist/src/components/Sheet/OrigamSheet.vue +20 -0
  126. package/dist/src/components/Skeleton/OrigamSkeleton.vue +5 -1
  127. package/dist/src/components/Slide/OrigamSlideGroup.vue +20 -0
  128. package/dist/src/components/SliderField/OrigamSliderField.vue +20 -0
  129. package/dist/src/components/SliderField/OrigamSliderFieldTrack.vue +5 -1
  130. package/dist/src/components/Snackbar/OrigamSnackbar.vue +20 -0
  131. package/dist/src/components/Stepper/OrigamStepper.vue +21 -1
  132. package/dist/src/components/Switch/OrigamSwitch.vue +20 -0
  133. package/dist/src/components/Switch/OrigamSwitchTrack.vue +12 -0
  134. package/dist/src/components/SystemBar/OrigamSystemBar.vue +12 -0
  135. package/dist/src/components/Table/OrigamTable.vue +20 -0
  136. package/dist/src/components/Tabs/OrigamTabs.vue +4 -0
  137. package/dist/src/components/TextField/OrigamTextField.vue +20 -0
  138. package/dist/src/components/TextareaField/OrigamTextareaField.vue +20 -0
  139. package/dist/src/components/Title/OrigamTitle.vue +16 -0
  140. package/dist/src/components/Toolbar/OrigamToolbar.vue +20 -0
  141. package/dist/src/components/Video/OrigamVideo.vue +20 -0
  142. package/dist/src/components/Window/OrigamWindow.vue +20 -0
  143. package/dist/src/composables/Commons/border.composable.cjs +24 -16
  144. package/dist/src/composables/Commons/border.composable.d.ts +31 -10
  145. package/dist/src/composables/Commons/border.composable.js +21 -17
  146. package/dist/src/composables/Commons/margin.composable.cjs +7 -0
  147. package/dist/src/composables/Commons/margin.composable.d.ts +7 -1
  148. package/dist/src/composables/Commons/margin.composable.js +5 -1
  149. package/dist/src/composables/Commons/padding.composable.cjs +7 -0
  150. package/dist/src/composables/Commons/padding.composable.d.ts +15 -1
  151. package/dist/src/composables/Commons/padding.composable.js +5 -1
  152. package/dist/src/composables/Commons/rounded.composable.cjs +7 -0
  153. package/dist/src/composables/Commons/rounded.composable.d.ts +14 -1
  154. package/dist/src/composables/Commons/rounded.composable.js +5 -1
  155. package/dist/src/composables/Commons/stateEffect.composable.cjs +60 -0
  156. package/dist/src/composables/Commons/stateEffect.composable.js +60 -0
  157. package/dist/src/consts/Blockquote/blockquote.const.cjs +38 -1
  158. package/dist/src/consts/Blockquote/blockquote.const.d.ts +113 -0
  159. package/dist/src/consts/Blockquote/blockquote.const.js +37 -0
  160. package/dist/src/consts/Commons/border.const.cjs +19 -2
  161. package/dist/src/consts/Commons/border.const.d.ts +65 -4
  162. package/dist/src/consts/Commons/border.const.js +16 -2
  163. package/dist/src/consts/Commons/spacing.const.cjs +40 -1
  164. package/dist/src/consts/Commons/spacing.const.d.ts +68 -1
  165. package/dist/src/consts/Commons/spacing.const.js +19 -1
  166. package/dist/src/consts/Commons/variant-preset.const.cjs +2 -0
  167. package/dist/src/consts/Commons/variant-preset.const.d.ts +19 -8
  168. package/dist/src/consts/Commons/variant-preset.const.js +2 -0
  169. package/dist/src/interfaces/Blockquote/blockquote.interface.d.ts +59 -4
  170. package/dist/src/interfaces/Bracket/bracket-match-component.interface.d.ts +2 -2
  171. package/dist/src/interfaces/Bracket/bracket-surface.interface.d.ts +39 -0
  172. package/dist/src/interfaces/Bracket/bracket.interface.d.ts +25 -4
  173. package/dist/src/interfaces/Commons/border.interface.d.ts +123 -0
  174. package/dist/src/interfaces/Commons/margin.interface.d.ts +35 -1
  175. package/dist/src/interfaces/Commons/padding.interface.d.ts +41 -1
  176. package/dist/src/interfaces/Commons/rounded.interface.d.ts +47 -4
  177. package/dist/src/types/Bracket/bracket.type.d.ts +82 -0
  178. package/dist/src/types/Commons/anchor.type.d.ts +48 -0
  179. package/dist/src/types/Commons/variant-preset.type.d.ts +22 -4
  180. package/dist/src/types/tokens.type.d.ts +1 -1
  181. package/dist/src/utils/Bracket/bracket-surface.util.cjs +19 -0
  182. package/dist/src/utils/Bracket/bracket-surface.util.js +10 -0
  183. package/dist/src/utils/Commons/border.util.d.ts +16 -8
  184. package/package.json +1 -1
@@ -103,3 +103,85 @@ export type TBracketElevation = TElevation | boolean | null | undefined;
103
103
  * layer.
104
104
  */
105
105
  export type TBracketBorder = IBorderProps['borderTop'] | null | undefined;
106
+ /*********************************************************
107
+ * TBracketBorderProps
108
+ *
109
+ * @description
110
+ * `IBorderProps` MOINS les quatre aretes logiques INLINE (#1013). Partage
111
+ * par les interfaces Bracket dont les props de bordure sont resolues par
112
+ * `bracketSurfaceVars` — `IBracketProps` (la racine) et `IBracketMatchProps`
113
+ * (la carte). Declare UNE fois ici plutot que deux `Omit<>` recopies.
114
+ *
115
+ * @description
116
+ * ⛔ `IBracketCompetitorProps` n'utilise PAS ce type, a dessein :
117
+ * `OrigamBracketCompetitor` appelle `useStateEffect` pour de vrai
118
+ * (`OrigamBracketCompetitor.vue:209`), donc ses quatre aretes logiques
119
+ * atteignent `useBorder` et peignent. Restreindre par FAMILLE de composant
120
+ * au lieu de par consommation mesuree y retirerait quatre props qui
121
+ * marchent.
122
+ *
123
+ * @description
124
+ * Pourquoi les deux autres sont restreintes : elles ne peignent pas via
125
+ * `useBorder` mais via des custom properties `--origam-bracket-match---*`
126
+ * lues dans des declarations PHYSIQUES. Mapper une arete logique sur une
127
+ * arete physique au moment d'ecrire la feuille exige de connaitre le mode
128
+ * d'ecriture, et `inline-start` vaut `left` en LTR mais `right` en RTL.
129
+ * Aucune chaine de repli `var()` ne peut l'exprimer : la substitution est
130
+ * AVEUGLE au mode d'ecriture alors que le mapping de la propriete ne l'est
131
+ * pas.
132
+ *
133
+ * @description
134
+ * Les deux aretes de BLOC restent declarees et sont honorees :
135
+ * `block-start`/`block-end` valent invariablement `top`/`bottom` en
136
+ * `horizontal-tb`, hypothese que la feuille faisait deja pour `borderBlock`.
137
+ * Confirme par sonde navigateur sur l'axe logique (Chromium, LTR vs RTL) :
138
+ * les noms porteurs d'une composante INLINE changent d'arete, le controle
139
+ * negatif `padding-block-start` ne bouge pas.
140
+ *
141
+ * @description
142
+ * ⛔ Retirer plutot que declarer-et-ignorer est la regle que
143
+ * `bracket-surface.interface.ts` enonce deja pour cette couche : une prop
144
+ * typee, editable dans Histoire, et inerte est pire qu'une prop absente.
145
+ * Arbitre par le proprietaire le 2026-10-01. La completude de l'axe inline
146
+ * part dans son propre ticket (elle demande de convertir la cascade en
147
+ * longhands logiques, ce qui change le comportement RTL des props physiques
148
+ * existantes).
149
+ ********************************************************/
150
+ export type TBracketBorderProps = Omit<IBorderProps, 'borderInlineStart' | 'borderInlineEnd' | 'borderInlineStartColor' | 'borderInlineEndColor'>;
151
+ /*********************************************************
152
+ * TBracketRoundedProps — le pendant « coins » de {@link TBracketBorderProps}
153
+ *
154
+ * @description
155
+ * Même couche, même cause, même arbitrage (#1013, tranché par le
156
+ * propriétaire le 2026-10-01) : `OrigamBracket` n'appelle pas `useRounded`,
157
+ * il passe `props` en bloc à `utils/Bracket/bracket-surface.util.ts`, qui
158
+ * émet des custom properties relues par le SCSS d'`OrigamBracketMatch` dans
159
+ * des déclarations PHYSIQUES par coin. La substitution `var()` est AVEUGLE
160
+ * au mode d'écriture alors que le mapping de la propriété ne l'est pas,
161
+ * donc aucune chaîne de repli ne peut encoder « le physique gagne » ET « le
162
+ * logique se retourne en RTL » simultanément.
163
+ *
164
+ * @description
165
+ * ⛔ MAIS LES QUATRE SORTENT, là où le côté border n'en retire que deux. Le
166
+ * sursis des arêtes de BLOC ne s'applique pas à un coin : tout nom de coin
167
+ * logique est `{bloc}-{inline}` et porte donc une composante inline. Mesuré
168
+ * dans Chromium (sonde Playwright, LTR vs RTL) plutôt que déduit —
169
+ * `start-start` top-left -> top-RIGHT, `start-end` top-right -> top-LEFT,
170
+ * `end-start` bottom-left -> bottom-RIGHT, `end-end` bottom-right ->
171
+ * bottom-LEFT. Contrôle négatif `padding-block-start` -> `padding-top` :
172
+ * 40px dans les deux sens, il ne bouge pas, ce qui prouve que la sonde sait
173
+ * distinguer l'immobilité et que les quatre déplacements sont réels.
174
+ *
175
+ * @description
176
+ * PORTÉE VÉRIFIÉE — seul `IBracketProps` est restreint. Les deux autres
177
+ * interfaces Bracket qui étendent `IRoundedProps` consomment réellement
178
+ * leurs coins : `OrigamBracketMatch` et `OrigamBracketCompetitor` appellent
179
+ * `useRounded` / `useStateEffect`, et gardent donc la surface complète.
180
+ * `OrigamBracket` est le seul à n'avoir aucun de ces appels.
181
+ *
182
+ * @description
183
+ * Retirer plutôt que déclarer-et-ignorer, même règle que ci-dessus. La
184
+ * complétude de l'axe inline pour les coins suit le même ticket que pour
185
+ * les arêtes : il faut convertir la cascade en longhands logiques.
186
+ ********************************************************/
187
+ export type TBracketRoundedProps = Omit<IRoundedProps, 'roundedStartStart' | 'roundedStartEnd' | 'roundedEndStart' | 'roundedEndEnd'>;
@@ -1,3 +1,4 @@
1
+ import { BORDER_LOGICAL_AXIS } from '../../enums/Commons/border.enum';
1
2
  import { BLOCK, INLINE, START_END } from '../../enums/Commons/anchor.enum';
2
3
  export type TStartEnd = `${START_END}`;
3
4
  export type TBlock = `${BLOCK}`;
@@ -5,6 +6,53 @@ export type TBlockStartEnd = TBlock | TStartEnd;
5
6
  export type TInline = `${INLINE}`;
6
7
  export type TInlineStartEnd = TInline | TStartEnd;
7
8
  export type TDirectionBoth = TBlock | TInline;
9
+ /*********************************************************
10
+ * TLogicalSide
11
+ *
12
+ * @description
13
+ * One LOGICAL box edge — `block-start` | `block-end` | `inline-start` |
14
+ * `inline-end`. The writing-mode-relative twin of {@link TDirectionBoth},
15
+ * which names the four PHYSICAL edges.
16
+ *
17
+ * @description
18
+ * Composed from the two enums that already carry this vocabulary rather
19
+ * than spelling a fifth literal union : `BORDER_LOGICAL_AXIS` fournit
20
+ * l'axe, `START_END` son extremite. Rien de neuf n'est declare, donc les
21
+ * cotes logiques ne peuvent pas deriver des props d'axe (`paddingInline`,
22
+ * `borderBlock`, …) qui lisent les memes membres.
23
+ *
24
+ * @description
25
+ * ⚠️ `BORDER_LOGICAL_AXIS` est border-NOMME mais pas border-PORTE — c'est
26
+ * deja le vocabulaire d'axe de padding et margin
27
+ * (`consts/Commons/spacing.const.ts` l'importe pour
28
+ * `PADDING_LOGICAL_AXIS_MAP` / `MARGIN_LOGICAL_AXIS_MAP`). Le reutiliser
29
+ * ici suit ce precedent au lieu d'ajouter un enum quasi identique.
30
+ *
31
+ * @description
32
+ * Consomme par les familles `*InlineStart` / `*InlineEnd` / `*BlockStart`
33
+ * / `*BlockEnd` de `IPaddingProps`, `IMarginProps` et `IBorderProps`
34
+ * (#1013), et par les tables qui les cablent.
35
+ ********************************************************/
36
+ export type TLogicalSide = `${BORDER_LOGICAL_AXIS}-${START_END}`;
37
+ /*********************************************************
38
+ * TLogicalCorner
39
+ *
40
+ * @description
41
+ * One LOGICAL box CORNER — `start-start` | `start-end` | `end-start` |
42
+ * `end-end`, dans l'ordre natif `border-{block}-{inline}-radius` (fin de
43
+ * bloc d'abord, fin d'inline ensuite). Le jumeau relatif au mode
44
+ * d'ecriture des noms physiques `top-left` / ….
45
+ *
46
+ * @description
47
+ * Compose depuis `START_END` seul, pour la meme raison anti-duplication
48
+ * que {@link TLogicalSide} : un coin est l'intersection d'une fin de bloc
49
+ * et d'une fin d'inline, donc le vocabulaire est `START_END` au carre.
50
+ *
51
+ * @description
52
+ * Consomme par les props `roundedStartStart` / `roundedStartEnd` /
53
+ * `roundedEndStart` / `roundedEndEnd` de `IRoundedProps` (#1013).
54
+ ********************************************************/
55
+ export type TLogicalCorner = `${START_END}-${START_END}`;
8
56
  export type TAnchor = TBlock | TInline | 'center' | 'center center' | `${TBlock} ${TInline | 'center'}` | `${TInline} ${TBlock | 'center'}`;
9
57
  export type TParsedAnchor = {
10
58
  side: 'center';
@@ -6,10 +6,28 @@
6
6
  * pas une couche CSS : `Record<valeur du variant, Partial<props>>`.
7
7
  *
8
8
  * @description
9
- * C'est le type d'AUTORAT, celui qu'une table
10
- * `consts/{Composant}/{composant}-variant.const.ts` annote pour que le
11
- * compilateur refuse une valeur de variant inconnue ou un nom de prop que
12
- * le composant ne declare pas :
9
+ * C'est le type d'AUTORAT, celui qu'une table annote pour que le compilateur
10
+ * refuse une valeur de variant inconnue ou un nom de prop que le composant ne
11
+ * declare pas.
12
+ *
13
+ * @description
14
+ * La table vit dans le fichier de consts EXISTANT du composant —
15
+ * `consts/{Composant}/{composant}.const.ts` — jamais dans un second fichier
16
+ * cree pour elle. Arbitrage du proprietaire, 2026-10-01 : la regle
17
+ * anti-duplication du `CLAUDE.md` global commande de reutiliser le fichier de
18
+ * consts deja en place plutot que d'en ouvrir un parallele. Le pilote
19
+ * `KBD_VARIANT_PRESETS` est dans `consts/Kbd/kbd.const.ts`, et c'est la forme
20
+ * a copier.
21
+ *
22
+ * @description
23
+ * ⚠️ Cet en-tete prescrivait `{composant}-variant.const.ts`. C'etait FAUX —
24
+ * aucune table n'a jamais ete ecrite a ce chemin, et le `fixHint` de la garde
25
+ * `no-variant-css` portait la meme erreur. Les deux sont corriges ; voir la
26
+ * section « `variant` = a props PRESET » du `CLAUDE.md` a la racine, qui fait
27
+ * foi.
28
+ *
29
+ * @description
30
+ * La forme, telle que le pilote la pose :
13
31
  *
14
32
  * export const KBD_VARIANT_PRESETS: TVariantPresets<TKbdVariant, IKbdProps> = {
15
33
  * outlined: { bgColor: '...', border: 1 },