@central-design-system/skills 4.0.0-alpha.6

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 (321) hide show
  1. package/.claude-plugin/plugin.json +6 -0
  2. package/README.md +218 -0
  3. package/bin/cds-skills.mjs +124 -0
  4. package/package.json +33 -0
  5. package/skills/cds-builder/GENERATION.md +44 -0
  6. package/skills/cds-builder/SKILL.md +308 -0
  7. package/skills/cds-builder/references/component-decision-tree.md +310 -0
  8. package/skills/cds-builder/references/components/cds-app/api.md +19 -0
  9. package/skills/cds-builder/references/components/cds-app/tokens.md +12 -0
  10. package/skills/cds-builder/references/components/cds-autocomplete/api.md +155 -0
  11. package/skills/cds-builder/references/components/cds-autocomplete/examples.md +447 -0
  12. package/skills/cds-builder/references/components/cds-autocomplete/guidelines.md +10 -0
  13. package/skills/cds-builder/references/components/cds-autocomplete/tokens.md +19 -0
  14. package/skills/cds-builder/references/components/cds-avatar/api.md +35 -0
  15. package/skills/cds-builder/references/components/cds-avatar/examples.md +240 -0
  16. package/skills/cds-builder/references/components/cds-avatar/guidelines.md +10 -0
  17. package/skills/cds-builder/references/components/cds-avatar/tokens.md +32 -0
  18. package/skills/cds-builder/references/components/cds-badge/api.md +44 -0
  19. package/skills/cds-builder/references/components/cds-badge/examples.md +332 -0
  20. package/skills/cds-builder/references/components/cds-badge/guidelines.md +10 -0
  21. package/skills/cds-builder/references/components/cds-badge/tokens.md +32 -0
  22. package/skills/cds-builder/references/components/cds-breadcrumbs/api.md +83 -0
  23. package/skills/cds-builder/references/components/cds-breadcrumbs/examples.md +219 -0
  24. package/skills/cds-builder/references/components/cds-breadcrumbs/guidelines.md +10 -0
  25. package/skills/cds-builder/references/components/cds-breadcrumbs/tokens.md +24 -0
  26. package/skills/cds-builder/references/components/cds-button/api.md +66 -0
  27. package/skills/cds-builder/references/components/cds-button/examples.md +324 -0
  28. package/skills/cds-builder/references/components/cds-button/guidelines.md +10 -0
  29. package/skills/cds-builder/references/components/cds-button/tokens.md +190 -0
  30. package/skills/cds-builder/references/components/cds-button-group/api.md +27 -0
  31. package/skills/cds-builder/references/components/cds-button-group/examples.md +33 -0
  32. package/skills/cds-builder/references/components/cds-button-group/tokens.md +17 -0
  33. package/skills/cds-builder/references/components/cds-button-toggle/api.md +51 -0
  34. package/skills/cds-builder/references/components/cds-button-toggle/examples.md +278 -0
  35. package/skills/cds-builder/references/components/cds-button-toggle/guidelines.md +10 -0
  36. package/skills/cds-builder/references/components/cds-button-toggle/tokens.md +13 -0
  37. package/skills/cds-builder/references/components/cds-card/api.md +221 -0
  38. package/skills/cds-builder/references/components/cds-card/examples.md +652 -0
  39. package/skills/cds-builder/references/components/cds-card/guidelines.md +10 -0
  40. package/skills/cds-builder/references/components/cds-card/tokens.md +46 -0
  41. package/skills/cds-builder/references/components/cds-carousel/api.md +107 -0
  42. package/skills/cds-builder/references/components/cds-carousel/examples.md +444 -0
  43. package/skills/cds-builder/references/components/cds-carousel/guidelines.md +10 -0
  44. package/skills/cds-builder/references/components/cds-carousel/tokens.md +17 -0
  45. package/skills/cds-builder/references/components/cds-checkbox/api.md +93 -0
  46. package/skills/cds-builder/references/components/cds-checkbox/examples.md +319 -0
  47. package/skills/cds-builder/references/components/cds-checkbox/guidelines.md +10 -0
  48. package/skills/cds-builder/references/components/cds-checkbox/tokens.md +18 -0
  49. package/skills/cds-builder/references/components/cds-checkbox-button/api.md +56 -0
  50. package/skills/cds-builder/references/components/cds-checkbox-button/examples.md +29 -0
  51. package/skills/cds-builder/references/components/cds-checkbox-button/tokens.md +56 -0
  52. package/skills/cds-builder/references/components/cds-combobox/api.md +158 -0
  53. package/skills/cds-builder/references/components/cds-combobox/examples.md +264 -0
  54. package/skills/cds-builder/references/components/cds-combobox/guidelines.md +10 -0
  55. package/skills/cds-builder/references/components/cds-combobox/tokens.md +19 -0
  56. package/skills/cds-builder/references/components/cds-counter/api.md +24 -0
  57. package/skills/cds-builder/references/components/cds-counter/examples.md +93 -0
  58. package/skills/cds-builder/references/components/cds-counter/tokens.md +11 -0
  59. package/skills/cds-builder/references/components/cds-date-input/api.md +151 -0
  60. package/skills/cds-builder/references/components/cds-date-input/examples.md +479 -0
  61. package/skills/cds-builder/references/components/cds-date-input/guidelines.md +10 -0
  62. package/skills/cds-builder/references/components/cds-date-input/tokens.md +16 -0
  63. package/skills/cds-builder/references/components/cds-date-picker/api.md +63 -0
  64. package/skills/cds-builder/references/components/cds-date-picker/examples.md +394 -0
  65. package/skills/cds-builder/references/components/cds-date-picker/guidelines.md +10 -0
  66. package/skills/cds-builder/references/components/cds-date-picker/tokens.md +66 -0
  67. package/skills/cds-builder/references/components/cds-defaults-provider/api.md +21 -0
  68. package/skills/cds-builder/references/components/cds-description/api.md +22 -0
  69. package/skills/cds-builder/references/components/cds-description/examples.md +69 -0
  70. package/skills/cds-builder/references/components/cds-description/tokens.md +11 -0
  71. package/skills/cds-builder/references/components/cds-divider/api.md +29 -0
  72. package/skills/cds-builder/references/components/cds-divider/examples.md +374 -0
  73. package/skills/cds-builder/references/components/cds-divider/guidelines.md +10 -0
  74. package/skills/cds-builder/references/components/cds-divider/tokens.md +38 -0
  75. package/skills/cds-builder/references/components/cds-drawer/api.md +53 -0
  76. package/skills/cds-builder/references/components/cds-drawer/examples.md +432 -0
  77. package/skills/cds-builder/references/components/cds-drawer/guidelines.md +9 -0
  78. package/skills/cds-builder/references/components/cds-drawer/tokens.md +27 -0
  79. package/skills/cds-builder/references/components/cds-empty-state/api.md +55 -0
  80. package/skills/cds-builder/references/components/cds-empty-state/examples.md +330 -0
  81. package/skills/cds-builder/references/components/cds-empty-state/guidelines.md +9 -0
  82. package/skills/cds-builder/references/components/cds-empty-state/tokens.md +25 -0
  83. package/skills/cds-builder/references/components/cds-expandable-panel/api.md +157 -0
  84. package/skills/cds-builder/references/components/cds-expandable-panel/examples.md +569 -0
  85. package/skills/cds-builder/references/components/cds-expandable-panel/guidelines.md +10 -0
  86. package/skills/cds-builder/references/components/cds-expandable-panel/tokens.md +34 -0
  87. package/skills/cds-builder/references/components/cds-field/api.md +62 -0
  88. package/skills/cds-builder/references/components/cds-field/examples.md +202 -0
  89. package/skills/cds-builder/references/components/cds-field/tokens.md +94 -0
  90. package/skills/cds-builder/references/components/cds-file-input/api.md +109 -0
  91. package/skills/cds-builder/references/components/cds-file-input/examples.md +368 -0
  92. package/skills/cds-builder/references/components/cds-file-input/guidelines.md +10 -0
  93. package/skills/cds-builder/references/components/cds-file-input/tokens.md +15 -0
  94. package/skills/cds-builder/references/components/cds-file-upload/api.md +296 -0
  95. package/skills/cds-builder/references/components/cds-file-upload/examples.md +411 -0
  96. package/skills/cds-builder/references/components/cds-file-upload/guidelines.md +10 -0
  97. package/skills/cds-builder/references/components/cds-file-upload/tokens.md +50 -0
  98. package/skills/cds-builder/references/components/cds-footer/api.md +35 -0
  99. package/skills/cds-builder/references/components/cds-footer/examples.md +219 -0
  100. package/skills/cds-builder/references/components/cds-footer/guidelines.md +9 -0
  101. package/skills/cds-builder/references/components/cds-footer/tokens.md +14 -0
  102. package/skills/cds-builder/references/components/cds-form/api.md +48 -0
  103. package/skills/cds-builder/references/components/cds-form/examples.md +552 -0
  104. package/skills/cds-builder/references/components/cds-form/guidelines.md +10 -0
  105. package/skills/cds-builder/references/components/cds-form/tokens.md +15 -0
  106. package/skills/cds-builder/references/components/cds-functional-button/api.md +34 -0
  107. package/skills/cds-builder/references/components/cds-functional-button/examples.md +254 -0
  108. package/skills/cds-builder/references/components/cds-functional-button/guidelines.md +10 -0
  109. package/skills/cds-builder/references/components/cds-functional-button/tokens.md +35 -0
  110. package/skills/cds-builder/references/components/cds-grid/api.md +66 -0
  111. package/skills/cds-builder/references/components/cds-grid/examples.md +687 -0
  112. package/skills/cds-builder/references/components/cds-grid/guidelines.md +9 -0
  113. package/skills/cds-builder/references/components/cds-header/api.md +35 -0
  114. package/skills/cds-builder/references/components/cds-header/examples.md +345 -0
  115. package/skills/cds-builder/references/components/cds-header/guidelines.md +9 -0
  116. package/skills/cds-builder/references/components/cds-header/tokens.md +13 -0
  117. package/skills/cds-builder/references/components/cds-highlight/api.md +22 -0
  118. package/skills/cds-builder/references/components/cds-highlight/examples.md +313 -0
  119. package/skills/cds-builder/references/components/cds-highlight/guidelines.md +10 -0
  120. package/skills/cds-builder/references/components/cds-highlight/tokens.md +18 -0
  121. package/skills/cds-builder/references/components/cds-icon/api.md +33 -0
  122. package/skills/cds-builder/references/components/cds-icon/examples.md +272 -0
  123. package/skills/cds-builder/references/components/cds-icon/guidelines.md +10 -0
  124. package/skills/cds-builder/references/components/cds-icon/tokens.md +30 -0
  125. package/skills/cds-builder/references/components/cds-image/api.md +67 -0
  126. package/skills/cds-builder/references/components/cds-image/examples.md +437 -0
  127. package/skills/cds-builder/references/components/cds-image/guidelines.md +10 -0
  128. package/skills/cds-builder/references/components/cds-image/tokens.md +14 -0
  129. package/skills/cds-builder/references/components/cds-input/api.md +80 -0
  130. package/skills/cds-builder/references/components/cds-input/examples.md +205 -0
  131. package/skills/cds-builder/references/components/cds-input/tokens.md +108 -0
  132. package/skills/cds-builder/references/components/cds-label/api.md +25 -0
  133. package/skills/cds-builder/references/components/cds-label/examples.md +72 -0
  134. package/skills/cds-builder/references/components/cds-label/tokens.md +12 -0
  135. package/skills/cds-builder/references/components/cds-layout/api.md +50 -0
  136. package/skills/cds-builder/references/components/cds-layout/examples.md +431 -0
  137. package/skills/cds-builder/references/components/cds-layout/guidelines.md +9 -0
  138. package/skills/cds-builder/references/components/cds-layout/tokens.md +12 -0
  139. package/skills/cds-builder/references/components/cds-link/api.md +33 -0
  140. package/skills/cds-builder/references/components/cds-link/examples.md +195 -0
  141. package/skills/cds-builder/references/components/cds-link/guidelines.md +10 -0
  142. package/skills/cds-builder/references/components/cds-link/tokens.md +16 -0
  143. package/skills/cds-builder/references/components/cds-list/api.md +329 -0
  144. package/skills/cds-builder/references/components/cds-list/examples.md +653 -0
  145. package/skills/cds-builder/references/components/cds-list/guidelines.md +10 -0
  146. package/skills/cds-builder/references/components/cds-list/tokens.md +125 -0
  147. package/skills/cds-builder/references/components/cds-loader/api.md +18 -0
  148. package/skills/cds-builder/references/components/cds-loader/examples.md +59 -0
  149. package/skills/cds-builder/references/components/cds-loader/tokens.md +50 -0
  150. package/skills/cds-builder/references/components/cds-main/api.md +14 -0
  151. package/skills/cds-builder/references/components/cds-main/examples.md +60 -0
  152. package/skills/cds-builder/references/components/cds-menu/api.md +84 -0
  153. package/skills/cds-builder/references/components/cds-menu/examples.md +595 -0
  154. package/skills/cds-builder/references/components/cds-menu/guidelines.md +10 -0
  155. package/skills/cds-builder/references/components/cds-menu/tokens.md +19 -0
  156. package/skills/cds-builder/references/components/cds-messages/api.md +29 -0
  157. package/skills/cds-builder/references/components/cds-messages/examples.md +119 -0
  158. package/skills/cds-builder/references/components/cds-messages/tokens.md +15 -0
  159. package/skills/cds-builder/references/components/cds-modal/api.md +86 -0
  160. package/skills/cds-builder/references/components/cds-modal/examples.md +516 -0
  161. package/skills/cds-builder/references/components/cds-modal/guidelines.md +10 -0
  162. package/skills/cds-builder/references/components/cds-modal/tokens.md +22 -0
  163. package/skills/cds-builder/references/components/cds-notification/api.md +46 -0
  164. package/skills/cds-builder/references/components/cds-notification/examples.md +314 -0
  165. package/skills/cds-builder/references/components/cds-notification/guidelines.md +10 -0
  166. package/skills/cds-builder/references/components/cds-notification/tokens.md +23 -0
  167. package/skills/cds-builder/references/components/cds-notification-alert/api.md +93 -0
  168. package/skills/cds-builder/references/components/cds-notification-alert/examples.md +202 -0
  169. package/skills/cds-builder/references/components/cds-notification-alert/tokens.md +15 -0
  170. package/skills/cds-builder/references/components/cds-otp-input/api.md +106 -0
  171. package/skills/cds-builder/references/components/cds-otp-input/examples.md +329 -0
  172. package/skills/cds-builder/references/components/cds-otp-input/guidelines.md +10 -0
  173. package/skills/cds-builder/references/components/cds-otp-input/tokens.md +41 -0
  174. package/skills/cds-builder/references/components/cds-overlay/api.md +85 -0
  175. package/skills/cds-builder/references/components/cds-overlay/examples.md +409 -0
  176. package/skills/cds-builder/references/components/cds-overlay/guidelines.md +9 -0
  177. package/skills/cds-builder/references/components/cds-overlay/tokens.md +12 -0
  178. package/skills/cds-builder/references/components/cds-page/api.md +21 -0
  179. package/skills/cds-builder/references/components/cds-page/examples.md +123 -0
  180. package/skills/cds-builder/references/components/cds-pagination/api.md +67 -0
  181. package/skills/cds-builder/references/components/cds-pagination/examples.md +320 -0
  182. package/skills/cds-builder/references/components/cds-pagination/guidelines.md +10 -0
  183. package/skills/cds-builder/references/components/cds-pagination/tokens.md +20 -0
  184. package/skills/cds-builder/references/components/cds-progress-bar/api.md +53 -0
  185. package/skills/cds-builder/references/components/cds-progress-bar/examples.md +393 -0
  186. package/skills/cds-builder/references/components/cds-progress-bar/guidelines.md +10 -0
  187. package/skills/cds-builder/references/components/cds-progress-bar/tokens.md +33 -0
  188. package/skills/cds-builder/references/components/cds-progress-circle/api.md +30 -0
  189. package/skills/cds-builder/references/components/cds-progress-circle/examples.md +326 -0
  190. package/skills/cds-builder/references/components/cds-progress-circle/guidelines.md +10 -0
  191. package/skills/cds-builder/references/components/cds-progress-circle/tokens.md +31 -0
  192. package/skills/cds-builder/references/components/cds-radio/api.md +47 -0
  193. package/skills/cds-builder/references/components/cds-radio/tokens.md +36 -0
  194. package/skills/cds-builder/references/components/cds-radio-group/api.md +87 -0
  195. package/skills/cds-builder/references/components/cds-radio-group/examples.md +320 -0
  196. package/skills/cds-builder/references/components/cds-radio-group/guidelines.md +10 -0
  197. package/skills/cds-builder/references/components/cds-radio-group/tokens.md +14 -0
  198. package/skills/cds-builder/references/components/cds-responsive/api.md +29 -0
  199. package/skills/cds-builder/references/components/cds-responsive/examples.md +271 -0
  200. package/skills/cds-builder/references/components/cds-responsive/guidelines.md +10 -0
  201. package/skills/cds-builder/references/components/cds-responsive/tokens.md +13 -0
  202. package/skills/cds-builder/references/components/cds-select/api.md +155 -0
  203. package/skills/cds-builder/references/components/cds-select/examples.md +794 -0
  204. package/skills/cds-builder/references/components/cds-select/guidelines.md +10 -0
  205. package/skills/cds-builder/references/components/cds-select/tokens.md +17 -0
  206. package/skills/cds-builder/references/components/cds-selection-control/api.md +60 -0
  207. package/skills/cds-builder/references/components/cds-selection-control/examples.md +468 -0
  208. package/skills/cds-builder/references/components/cds-selection-control-group/api.md +45 -0
  209. package/skills/cds-builder/references/components/cds-selection-control-group/examples.md +349 -0
  210. package/skills/cds-builder/references/components/cds-skeleton-loader/api.md +30 -0
  211. package/skills/cds-builder/references/components/cds-skeleton-loader/examples.md +297 -0
  212. package/skills/cds-builder/references/components/cds-skeleton-loader/guidelines.md +10 -0
  213. package/skills/cds-builder/references/components/cds-skeleton-loader/tokens.md +62 -0
  214. package/skills/cds-builder/references/components/cds-slide-group/api.md +76 -0
  215. package/skills/cds-builder/references/components/cds-slide-group/examples.md +304 -0
  216. package/skills/cds-builder/references/components/cds-slide-group/guidelines.md +9 -0
  217. package/skills/cds-builder/references/components/cds-slide-group/tokens.md +11 -0
  218. package/skills/cds-builder/references/components/cds-slide-view/api.md +88 -0
  219. package/skills/cds-builder/references/components/cds-slide-view/examples.md +311 -0
  220. package/skills/cds-builder/references/components/cds-slide-view/guidelines.md +9 -0
  221. package/skills/cds-builder/references/components/cds-slide-view/tokens.md +14 -0
  222. package/skills/cds-builder/references/components/cds-stages/api.md +31 -0
  223. package/skills/cds-builder/references/components/cds-stages/examples.md +230 -0
  224. package/skills/cds-builder/references/components/cds-stages/guidelines.md +10 -0
  225. package/skills/cds-builder/references/components/cds-stages/tokens.md +27 -0
  226. package/skills/cds-builder/references/components/cds-status/api.md +24 -0
  227. package/skills/cds-builder/references/components/cds-status/examples.md +170 -0
  228. package/skills/cds-builder/references/components/cds-status/guidelines.md +10 -0
  229. package/skills/cds-builder/references/components/cds-status/tokens.md +17 -0
  230. package/skills/cds-builder/references/components/cds-steps/api.md +176 -0
  231. package/skills/cds-builder/references/components/cds-steps/examples.md +320 -0
  232. package/skills/cds-builder/references/components/cds-steps/guidelines.md +10 -0
  233. package/skills/cds-builder/references/components/cds-steps/tokens.md +52 -0
  234. package/skills/cds-builder/references/components/cds-surface/api.md +30 -0
  235. package/skills/cds-builder/references/components/cds-surface/examples.md +106 -0
  236. package/skills/cds-builder/references/components/cds-table/api.md +120 -0
  237. package/skills/cds-builder/references/components/cds-table/examples.md +3049 -0
  238. package/skills/cds-builder/references/components/cds-table/guidelines.md +10 -0
  239. package/skills/cds-builder/references/components/cds-table/tokens.md +92 -0
  240. package/skills/cds-builder/references/components/cds-tabs/api.md +179 -0
  241. package/skills/cds-builder/references/components/cds-tabs/examples.md +610 -0
  242. package/skills/cds-builder/references/components/cds-tabs/guidelines.md +10 -0
  243. package/skills/cds-builder/references/components/cds-tabs/tokens.md +40 -0
  244. package/skills/cds-builder/references/components/cds-tag/api.md +64 -0
  245. package/skills/cds-builder/references/components/cds-tag/examples.md +278 -0
  246. package/skills/cds-builder/references/components/cds-tag/guidelines.md +10 -0
  247. package/skills/cds-builder/references/components/cds-tag/tokens.md +67 -0
  248. package/skills/cds-builder/references/components/cds-tag-group/api.md +58 -0
  249. package/skills/cds-builder/references/components/cds-tag-group/examples.md +346 -0
  250. package/skills/cds-builder/references/components/cds-tag-group/guidelines.md +10 -0
  251. package/skills/cds-builder/references/components/cds-tag-group/tokens.md +18 -0
  252. package/skills/cds-builder/references/components/cds-text-area/api.md +113 -0
  253. package/skills/cds-builder/references/components/cds-text-area/examples.md +327 -0
  254. package/skills/cds-builder/references/components/cds-text-area/guidelines.md +10 -0
  255. package/skills/cds-builder/references/components/cds-text-area/tokens.md +16 -0
  256. package/skills/cds-builder/references/components/cds-text-input/api.md +115 -0
  257. package/skills/cds-builder/references/components/cds-text-input/examples.md +546 -0
  258. package/skills/cds-builder/references/components/cds-text-input/guidelines.md +10 -0
  259. package/skills/cds-builder/references/components/cds-text-input/tokens.md +17 -0
  260. package/skills/cds-builder/references/components/cds-time-picker/api.md +44 -0
  261. package/skills/cds-builder/references/components/cds-time-picker/examples.md +407 -0
  262. package/skills/cds-builder/references/components/cds-time-picker/guidelines.md +10 -0
  263. package/skills/cds-builder/references/components/cds-time-picker/tokens.md +23 -0
  264. package/skills/cds-builder/references/components/cds-toast/api.md +97 -0
  265. package/skills/cds-builder/references/components/cds-toast/examples.md +296 -0
  266. package/skills/cds-builder/references/components/cds-toast/guidelines.md +10 -0
  267. package/skills/cds-builder/references/components/cds-toast/tokens.md +26 -0
  268. package/skills/cds-builder/references/components/cds-toast-queue/api.md +86 -0
  269. package/skills/cds-builder/references/components/cds-toast-queue/examples.md +227 -0
  270. package/skills/cds-builder/references/components/cds-toggle/api.md +97 -0
  271. package/skills/cds-builder/references/components/cds-toggle/examples.md +335 -0
  272. package/skills/cds-builder/references/components/cds-toggle/guidelines.md +10 -0
  273. package/skills/cds-builder/references/components/cds-toggle/tokens.md +91 -0
  274. package/skills/cds-builder/references/components/cds-toolbar/api.md +44 -0
  275. package/skills/cds-builder/references/components/cds-toolbar/examples.md +186 -0
  276. package/skills/cds-builder/references/components/cds-toolbar/guidelines.md +9 -0
  277. package/skills/cds-builder/references/components/cds-toolbar/tokens.md +13 -0
  278. package/skills/cds-builder/references/components/cds-tooltip/api.md +83 -0
  279. package/skills/cds-builder/references/components/cds-tooltip/examples.md +321 -0
  280. package/skills/cds-builder/references/components/cds-tooltip/guidelines.md +10 -0
  281. package/skills/cds-builder/references/components/cds-tooltip/tokens.md +25 -0
  282. package/skills/cds-builder/references/components/cds-tree/api.md +169 -0
  283. package/skills/cds-builder/references/components/cds-tree/examples.md +785 -0
  284. package/skills/cds-builder/references/components/cds-tree/guidelines.md +10 -0
  285. package/skills/cds-builder/references/components/cds-tree/tokens.md +39 -0
  286. package/skills/cds-builder/references/components/cds-uploader/api.md +105 -0
  287. package/skills/cds-builder/references/components/cds-uploader/examples.md +553 -0
  288. package/skills/cds-builder/references/components/cds-uploader/guidelines.md +10 -0
  289. package/skills/cds-builder/references/components/cds-uploader/tokens.md +26 -0
  290. package/skills/cds-builder/references/components/cds-virtual-scroll/api.md +60 -0
  291. package/skills/cds-builder/references/components/cds-virtual-scroll/examples.md +272 -0
  292. package/skills/cds-builder/references/components/cds-virtual-scroll/guidelines.md +9 -0
  293. package/skills/cds-builder/references/components/cds-virtual-scroll/tokens.md +13 -0
  294. package/skills/cds-builder/references/guides/conventions.md +48 -0
  295. package/skills/cds-builder/references/guides/date-utils.md +301 -0
  296. package/skills/cds-builder/references/guides/display-and-platform.md +263 -0
  297. package/skills/cds-builder/references/guides/forms.md +77 -0
  298. package/skills/cds-builder/references/guides/global-configuration.md +354 -0
  299. package/skills/cds-builder/references/guides/icons.md +172 -0
  300. package/skills/cds-builder/references/guides/internationalization.md +470 -0
  301. package/skills/cds-builder/references/guides/migration-cds3-to-cds4.md +49 -0
  302. package/skills/cds-builder/references/guides/sass-variables.md +238 -0
  303. package/skills/cds-builder/references/guides/setup.md +81 -0
  304. package/skills/cds-builder/references/guides/tailwindcss.md +93 -0
  305. package/skills/cds-builder/references/guides/theme.md +343 -0
  306. package/skills/cds-builder/references/guides/treeshaking.md +237 -0
  307. package/skills/cds-builder/references/patterns/dialogs.md +89 -0
  308. package/skills/cds-builder/references/patterns/forms.md +101 -0
  309. package/skills/cds-builder/references/patterns/page-layout.md +78 -0
  310. package/skills/cds-builder/references/patterns/tables.md +87 -0
  311. package/skills/cds-builder/references/tokens/colors.md +507 -0
  312. package/skills/cds-builder/references/tokens/themes.md +981 -0
  313. package/skills/cds-builder/scripts/check-contracts.mjs +264 -0
  314. package/skills/cds-migrate/GENERATION.md +44 -0
  315. package/skills/cds-migrate/SKILL.md +160 -0
  316. package/skills/cds-migrate/references/migration-full.md +2225 -0
  317. package/skills/cds-refactor/GENERATION.md +44 -0
  318. package/skills/cds-refactor/SKILL.md +187 -0
  319. package/skills/cds-refactor/references/html-to-cds.md +80 -0
  320. package/skills/cds-refactor/references/review-checklist.md +73 -0
  321. package/skills/cds-refactor/references/tailwind-to-cds.md +65 -0
@@ -0,0 +1,172 @@
1
+ ---
2
+ sourceHash: 5822739245a9c6095f09064c0b58dc326ac5c188
3
+ ---
4
+
5
+ # Icons
6
+
7
+ CDS v4 supports many popular icon packs out of the box.
8
+
9
+ ## Usage
10
+
11
+ You can pick one of the ready-made icon packs or plug in your own.
12
+ By default CDS uses the `cds` pack — it contains every icon the design system
13
+ components need.
14
+
15
+ ```ts
16
+ import { createCds } from '@central-design-system/components';
17
+
18
+ const cds = createCds({
19
+ icons: {
20
+ defaultSet: 'cds'
21
+ },
22
+ });
23
+
24
+ app.use(cds);
25
+ ```
26
+
27
+ After that, use the icon in templates:
28
+
29
+ ```html
30
+ <template>
31
+ <CdsIcon icon="add" />
32
+ </template>
33
+ ```
34
+
35
+ ## Installing icon packs through UnoCSS
36
+
37
+ CDS integrates with [UnoCSS Preset Icons](https://unocss.dev/presets/icons), which
38
+ supports every icon pack available on [Iconify](https://icon-sets.iconify.design/).
39
+
40
+ Icons are tree-shaken, so only the icons you actually use end up in the final CSS
41
+ bundle. You can register several packs at once and freely mix icons from any of
42
+ them in your components.
43
+
44
+ ### Icon packs
45
+
46
+ For the packs listed below, CDS ships iconsets with alias mappings — aliases for
47
+ the icons CDS components use (checkboxes, dropdowns, radio buttons and so on).
48
+ Pick one of them as the default pack (`defaultSet`); the alias mappings can be
49
+ overridden if needed.
50
+ Additional packs — without aliases — can be plugged in alongside and used freely
51
+ in your own templates.
52
+
53
+ | Icon library | Iconify package | Iconset import | Set name |
54
+ |------------------------------------------------------------------|------------------------|-----------------------------------------------------------|------------|
55
+ | [Remix Icon](https://remixicon.com/) | `@iconify-json/ri` | `@central-design-system/components/iconsets/remix` | `ri` |
56
+ | [Phosphor Icons](https://phosphoricons.com/) | `@iconify-json/ph` | `@central-design-system/components/iconsets/phosphor` | `phosphor` |
57
+ | [Lucide](https://lucide.dev/) | `@iconify-json/lucide` | `@central-design-system/components/iconsets/lucide` | `lucide` |
58
+ | [Carbon](https://carbondesignsystem.com/elements/icons/library/) | `@iconify-json/carbon` | `@central-design-system/components/iconsets/carbon` | `carbon` |
59
+ | [Material Design Icons](https://pictogrammers.com/library/mdi/) | `@iconify-json/mdi` | `@central-design-system/components/iconsets/mdi` | `mdi` |
60
+
61
+ Each module exports an object named after the pack: `icons` (the pack itself, for
62
+ `sets`) and `aliases` (the aliases, for `aliases`).
63
+
64
+ Install the pack you need from the table above:
65
+
66
+ ```bash
67
+ npm install @iconify-json/ri
68
+ ```
69
+
70
+ > Icons from the table run through UnoCSS, so you have to install and configure
71
+ > UnoCSS first. See the [official documentation](https://unocss.dev/integrations/)
72
+ > for details.
73
+
74
+ Here is an example integration in a Vite project.
75
+
76
+ 1. Install UnoCSS as a dev dependency (see the [Vite integration](https://unocss.dev/integrations/vite)):
77
+
78
+ ```bash
79
+ npm install -D unocss
80
+ ```
81
+
82
+ 2. Add the UnoCSS plugin to your Vite config:
83
+
84
+ ```ts
85
+ // vite.config.ts
86
+ import UnoCSS from 'unocss/vite'
87
+ import { defineConfig } from 'vite'
88
+
89
+ export default defineConfig({
90
+ plugins: [
91
+ UnoCSS(),
92
+ ],
93
+ })
94
+ ```
95
+
96
+ 3. Create an **unocss.config.ts** file in the project root:
97
+
98
+ ```ts
99
+ // unocss.config.ts
100
+ import { presetIcons, defineConfig } from 'unocss'
101
+
102
+ export default defineConfig({
103
+ presets: [
104
+ presetIcons({
105
+ processor(props) {
106
+ delete props.color
107
+ },
108
+ }),
109
+ ],
110
+ })
111
+ ```
112
+
113
+ > Nothing else needs to go into `unocss.config.ts`: CDS iconsets carry the
114
+ > `@unocss-include` marker, so UnoCSS scans them on its own — even though they
115
+ > live in `node_modules` as `.js` files, which are not part of
116
+ > `content.pipeline.include` by default.
117
+
118
+ 4. Pass the icon pack to `createCds()`.
119
+ The example uses the **[Remix](https://remixicon.com/)** pack, but you can swap it
120
+ for any other pack from the table above:
121
+
122
+ ```ts
123
+ import { createCds } from '@central-design-system/components';
124
+ import { remix } from '@central-design-system/components/iconsets/remix';
125
+
126
+ const cds = createCds({
127
+ icons: {
128
+ defaultSet: 'remix',
129
+ aliases: remix.aliases,
130
+ sets: {
131
+ remix: remix.icons,
132
+ }
133
+ },
134
+ });
135
+
136
+ app.use(cds);
137
+ ```
138
+
139
+ > Import the pack through the `@central-design-system/components/iconsets/<pack>`
140
+ > subpath, not from the shared `iconsets` object. The shared object references all
141
+ > packs at once and is not tree-shaken — you would ship the JS and CSS of all five
142
+ > packs (≈370 KB instead of ≈70 KB for a single one).
143
+
144
+ After that, pick any icon from the pack — for example
145
+ [ri:settings-3-line](https://icon-sets.iconify.design/ri/?icon-filter=settings-3-line) —
146
+ and use it in templates:
147
+
148
+ ```html
149
+ <CdsButton icon="i-ri:settings-3-line" />
150
+ ```
151
+
152
+ > UnoCSS uses the `i-` prefix for icons. CDS uses the same prefix and already
153
+ > configures its aliases with it — don't change it, or the CDS aliases will stop
154
+ > working.
155
+
156
+ ## Legacy icon pack from CDS v3
157
+
158
+ If you need the full icon pack from CDS v3, plug it in like this:
159
+
160
+ ```bash
161
+ npm install @central-design-system/icons
162
+ ```
163
+
164
+ ```ts
165
+ import { icons } from '@central-design-system/icons';
166
+
167
+ const cds = createCds({
168
+ icons
169
+ });
170
+
171
+ app.use(cds);
172
+ ```
@@ -0,0 +1,470 @@
1
+ ---
2
+ sourceHash: 26c790bd53cd55729b9902cf5d1032b5c6457f6b
3
+ ---
4
+
5
+ # Internationalization (i18n)
6
+
7
+ CDS components carry texts of their own: "No data available" in a select, the
8
+ table filter labels, the `aria-label` of a close button, the file counter. They
9
+ all go through the built-in localization layer, so you can translate them into
10
+ another language, override a single string for your product, or switch languages
11
+ on the fly — without rewriting components.
12
+
13
+ The library ships two dictionaries — Russian and English. `ru` is active by
14
+ default, so out of the box everything is in Russian.
15
+
16
+ ## Setup
17
+
18
+ The locale is configured through the `locale` option of `createCds`. Switching to
19
+ the built-in English is a one-liner — you don't need to pass any dictionaries:
20
+
21
+ ```ts
22
+ import { createApp } from 'vue';
23
+ import '@central-design-system/components/styles';
24
+ import { createCds, components, directives } from '@central-design-system/components';
25
+
26
+ import App from './App.vue';
27
+
28
+ const cds = createCds({
29
+ components,
30
+ directives,
31
+ locale: {
32
+ locale: 'en'
33
+ }
34
+ });
35
+
36
+ createApp(App).use(cds);
37
+ ```
38
+
39
+ Languages the library doesn't have are added as a dictionary in `messages`:
40
+
41
+ ```ts
42
+ import de from './locales/cds-de';
43
+
44
+ createCds({
45
+ components,
46
+ directives,
47
+ locale: {
48
+ locale: 'de',
49
+ fallback: 'en',
50
+ messages: { de }
51
+ }
52
+ });
53
+ ```
54
+
55
+ | Option | Type | Purpose |
56
+ | ------------------ | ------------------------- | ----------------------------------------------------------------------------- |
57
+ | `locale` | `string` | Active language; `ru` (default) and `en` are available out of the box |
58
+ | `fallback` | `string` | Language a string is taken from when the active one lacks it; `ru` by default |
59
+ | `messages` | `LocaleMessages` | Dictionaries of extra languages; a same-named built-in dictionary is replaced entirely |
60
+ | `decimalSeparator` | `string` | Decimal separator; derived from the active locale by default |
61
+ | `rtl` | `Record<string, boolean>` | Map of right-to-left languages (see [RTL](#rtl)) |
62
+ | `adapter` | `LocaleInstance` | Your own translation engine instead of the built-in one (see [Custom adapter](#custom-adapter)) |
63
+
64
+ The built-in dictionaries are available to you as well — they live in the
65
+ `locales` export. Use them as a base for your own language or to fix a couple of
66
+ strings:
67
+
68
+ ```ts
69
+ import { locales } from '@central-design-system/components';
70
+
71
+ locales.ru; // Russian dictionary
72
+ locales.en; // English dictionary
73
+ ```
74
+
75
+ For the full set of keys, see [Message keys](#message-keys).
76
+
77
+ ## How components get their text
78
+
79
+ Component strings are keys prefixed with `$cds.` that the library runs through a
80
+ translation function. Some of the keys are declared as default prop values, so
81
+ you can see them in the API: `text` on `CdsFileUpload` is `$cds.fileUpload.browse`,
82
+ `closeLabel` on `CdsNotification` is `$cds.close`, `noDataText` on `CdsSelect` is
83
+ `$cds.noDataText`.
84
+
85
+ That gives you three ways to change a text.
86
+
87
+ **Switch the whole language** — with the `locale` option:
88
+
89
+ ```ts
90
+ createCds({ locale: { locale: 'en' } });
91
+ ```
92
+
93
+ **Change wording across the product** — with a dictionary on top of the built-in
94
+ one:
95
+
96
+ ```ts
97
+ import { createCds, locales } from '@central-design-system/components';
98
+
99
+ createCds({
100
+ locale: {
101
+ messages: {
102
+ en: { ...locales.en, noDataText: 'Nothing found' }
103
+ }
104
+ }
105
+ });
106
+ ```
107
+
108
+ **Important.** A language dictionary is replaced entirely, not merged key by key.
109
+ Without the `...locales.en` spread, the English locale is left with a single key
110
+ and the rest of the strings turn into their own keys (`$cds.close` instead of
111
+ "Close"). Spread nested sections separately:
112
+ `table: { ...locales.en.table, emptyText: '…' }`.
113
+
114
+ **Change one label in one place** — with a prop:
115
+
116
+ ```vue
117
+ <CdsSelect :items="items" no-data-text="No matching suppliers" />
118
+ ```
119
+
120
+ The same prop can be set as the default for every instance of the component — see
121
+ [global configuration](global-configuration.md):
122
+
123
+ ```ts
124
+ createCds({
125
+ defaults: {
126
+ CdsSelect: { noDataText: 'Nothing found' }
127
+ }
128
+ });
129
+ ```
130
+
131
+ The translation function also accepts plain text: a string without the `$cds.`
132
+ prefix is returned as is, with the parameters substituted. That's how props with
133
+ a localizable value work the same way with a key and with a ready-made phrase.
134
+
135
+ If a key is missing from both the active locale and the `fallback`, the component
136
+ shows the key itself, and in dev mode a
137
+ `[CDS: useLocale] Translation key … not found` warning appears in the console.
138
+
139
+ ## Switching the language at runtime
140
+
141
+ `createCds` returns an instance whose locale lives in reactive refs — to switch
142
+ languages, just write to `current`:
143
+
144
+ ```ts
145
+ const cds = createCds({ components, directives });
146
+
147
+ // for example, following the user's choice in profile settings
148
+ cds.locale.current.value = 'en';
149
+ ```
150
+
151
+ Inside components, the `useLocale` composable does the same:
152
+
153
+ ```vue
154
+ <script setup lang="ts">
155
+ import { CdsButton, CdsButtonToggle, useLocale } from '@central-design-system/components';
156
+
157
+ const { current } = useLocale();
158
+ </script>
159
+
160
+ <template>
161
+ <CdsButtonToggle v-model="current" appearance="tertiary">
162
+ <CdsButton value="ru" text="Русский" />
163
+ <CdsButton value="en" text="English" />
164
+ </CdsButtonToggle>
165
+ </template>
166
+ ```
167
+
168
+ Every mounted component recalculates its strings on its own — no page reload
169
+ needed.
170
+
171
+ ## A locale for part of the application
172
+
173
+ A single subtree can get its own language — for example, an English-language
174
+ widget inside a Russian interface. Call `provideLocale` in a wrapper component:
175
+ it takes the locale from the context, applies the props you passed and provides
176
+ the result to the children.
177
+
178
+ ```vue
179
+ <script setup lang="ts">
180
+ import { provideLocale } from '@central-design-system/components';
181
+
182
+ const props = defineProps<{ locale?: string; fallback?: string }>();
183
+
184
+ provideLocale(props);
185
+ </script>
186
+
187
+ <template>
188
+ <div>
189
+ <slot />
190
+ </div>
191
+ </template>
192
+ ```
193
+
194
+ ```vue
195
+ <template>
196
+ <LocaleProvider locale="en">
197
+ <CdsSelect :items="items" />
198
+ </LocaleProvider>
199
+ </template>
200
+ ```
201
+
202
+ Props you don't pass are inherited from the parent locale, so a wrapper with just
203
+ a `locale` loses neither the `fallback` nor the dictionaries.
204
+
205
+ ## useLocale
206
+
207
+ The composable hands you the current locale and its functions — use it in your
208
+ own components so their texts live in the same dictionaries as the CDS ones.
209
+
210
+ ```vue
211
+ <script setup lang="ts">
212
+ import { useLocale } from '@central-design-system/components';
213
+
214
+ const { t, n } = useLocale();
215
+ </script>
216
+
217
+ <template>
218
+ <p>{{ t('$cds.table.emptyText') }}</p>
219
+ <p>{{ n(1234.56) }}</p>
220
+ </template>
221
+ ```
222
+
223
+ | Property | Type | Purpose |
224
+ | ------------------ | ---------------------------------------------- | ------------------------------------------------------------- |
225
+ | `t` | `(key: string, ...params: unknown[]) => string` | Translation of a `$cds.…` key with parameter substitution |
226
+ | `n` | `(value: number) => string` | Number formatting for the active locale |
227
+ | `current` | `Ref<string>` | Active language; writing to it switches the language |
228
+ | `fallback` | `Ref<string>` | Fallback language |
229
+ | `messages` | `Ref<LocaleMessages>` | Dictionaries; can be extended at runtime |
230
+ | `decimalSeparator` | `ShallowRef<string>` | Decimal separator of the active locale |
231
+
232
+ Parameters in strings are numbered — `{0}`, `{1}`:
233
+
234
+ ```ts
235
+ const { t } = useLocale();
236
+
237
+ t('$cds.carousel.delimiter', 3, 8); // "Slide 3 of 8"
238
+ t('Days left: {0}', 5); // "Days left: 5"
239
+ ```
240
+
241
+ Under the hood `n` is `Intl.NumberFormat` with the active locale and the
242
+ `fallback`, so group and decimal separators come from the browser. The library
243
+ derives `decimalSeparator` from the same locale (`,` for `ru`, `.` for `en`); if
244
+ your product uses a different one, set it explicitly in `createCds`.
245
+
246
+ ## Dates
247
+
248
+ Month and weekday names live in separate date locales, shipped by `ru` and `en`.
249
+ Date and time components pick the date locale by the active language, so after
250
+ `current.value = 'en'` the calendar switches by itself.
251
+
252
+ A single component gets its language from the `locale` prop — `CdsDatePicker`,
253
+ `CdsDateInput` and `CdsTimePicker` all have it:
254
+
255
+ ```vue
256
+ <CdsDatePicker v-model="value" locale="en" :first-day-of-week="0" header />
257
+ ```
258
+
259
+ The prop accepts not only a language name but also your own date locale object
260
+ (type `TDateLocale`) — that's how you plug in a language the library doesn't
261
+ have. The built-in date locales, for reference and reuse, live in the same
262
+ `locales` export: `locales.ruDate`, `locales.enDate` and the `locales.dateLocales`
263
+ map.
264
+
265
+ ```ts
266
+ const de = {
267
+ days: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),
268
+ daysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
269
+ months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
270
+ monthsLong: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
271
+ monthsShort: 'Jan_Feb_Mär_Apr_Mai_Jun_Jul_Aug_Sep_Okt_Nov_Dez'.split('_'),
272
+ today: 'Heute',
273
+ now: 'Jetzt',
274
+ firstDayOfWeek: 1,
275
+ format24h: true,
276
+ pluralDay: (day = 0) => (day === 1 ? 'Tag' : 'Tage')
277
+ };
278
+ ```
279
+
280
+ ```vue
281
+ <CdsDatePicker v-model="value" :locale="de" />
282
+ ```
283
+
284
+ ## Table
285
+
286
+ `CdsTable` builds its labels from the `$cds.table.*` keys, but it also accepts a
287
+ pinpoint override through the `locale` prop — which replaces only the strings you
288
+ pass:
289
+
290
+ ```vue
291
+ <CdsTable :columns="columns" :data="data" :locale="{ emptyText: 'No requests yet' }" />
292
+ ```
293
+
294
+ ## RTL
295
+
296
+ Right-to-left languages are described by the `rtl` map: the key is the language,
297
+ the value is the direction.
298
+
299
+ ```ts
300
+ createCds({
301
+ locale: {
302
+ locale: 'ar',
303
+ messages: { ar },
304
+ rtl: { ar: true }
305
+ }
306
+ });
307
+ ```
308
+
309
+ Components read the direction through `useRtl` and flip whatever depends on the
310
+ axis: the side menus and tooltips open to, the pagination arrows, the cell order
311
+ in `CdsOtpInput`, the fill of `CdsProgressBar`. Spacing and borders in the styles
312
+ are mostly written with logical properties (`margin-inline`, `inset-inline`) and
313
+ are mirrored by the browser itself — but the design system does not claim full
314
+ RTL support yet, and some places will need polishing on your side.
315
+
316
+ The library does not set the direction attribute for you — put it on the
317
+ application root yourself:
318
+
319
+ ```vue
320
+ <script setup lang="ts">
321
+ import { useRtl } from '@central-design-system/components';
322
+
323
+ const { isRtl } = useRtl();
324
+ </script>
325
+
326
+ <template>
327
+ <div :dir="isRtl ? 'rtl' : 'ltr'">
328
+ <slot />
329
+ </div>
330
+ </template>
331
+ ```
332
+
333
+ `useRtl` gives you `isRtl` and `rtlClasses` — a ready `cds-locale--is-rtl` /
334
+ `cds-locale--is-ltr` class for your own styles.
335
+
336
+ ## Custom adapter
337
+
338
+ If your application already has an i18n library, hand the translations over to
339
+ it: the `adapter` option accepts any object implementing the `LocaleInstance`
340
+ interface. In that case `messages`, `locale` and `fallback` from `createCds` are
341
+ unused — your engine becomes the source of truth, and the CDS strings live in the
342
+ application's shared dictionaries under the `$cds` key.
343
+
344
+ ```ts
345
+ import type { LocaleInstance, LocaleOptions } from '@central-design-system/components';
346
+ import { toRef } from 'vue';
347
+ import type { I18n } from 'vue-i18n';
348
+
349
+ export function createVueI18nAdapter(i18n: I18n<any, any, any, string, false>): LocaleInstance {
350
+ const format = (value: number) => i18n.global.n(value);
351
+
352
+ return {
353
+ name: 'vue-i18n',
354
+ current: i18n.global.locale,
355
+ fallback: i18n.global.fallbackLocale as never,
356
+ messages: i18n.global.messages as never,
357
+ decimalSeparator: toRef(() => (format(0.1).includes(',') ? ',' : '.')),
358
+ t: (key, ...params) => i18n.global.t(key, params as never),
359
+ n: format,
360
+ provide: () => createVueI18nAdapter(i18n)
361
+ };
362
+ }
363
+ ```
364
+
365
+ ```ts
366
+ import { createI18n } from 'vue-i18n';
367
+
368
+ const i18n = createI18n({
369
+ legacy: false,
370
+ locale: 'en',
371
+ messages: {
372
+ en: {
373
+ $cds: { noDataText: 'No data available' },
374
+ profile: { title: 'Profile' }
375
+ }
376
+ }
377
+ });
378
+
379
+ const cds = createCds({
380
+ components,
381
+ directives,
382
+ locale: {
383
+ adapter: createVueI18nAdapter(i18n)
384
+ }
385
+ });
386
+ ```
387
+
388
+ Required members of `LocaleInstance`: `name` (that's how the adapter is
389
+ recognized), `current`, `fallback`, `messages`, `decimalSeparator`, `t`, `n` and
390
+ `provide` — a factory for a nested locale, used by `provideLocale`. If you don't
391
+ need "a locale in a subtree", `provide` can return the same instance, as in the
392
+ example above.
393
+
394
+ ## Message keys
395
+
396
+ The built-in English dictionary is a template for translating into a new
397
+ language. Copy it, translate the values and pass it to `messages` under your
398
+ language's key; the Russian version is available as `locales.ru`.
399
+
400
+ ```ts
401
+ export default {
402
+ badge: 'Badge',
403
+ noDataText: 'No data available',
404
+ selectAll: 'Select all',
405
+ close: 'Close',
406
+ open: 'Open',
407
+ dismiss: 'Dismiss',
408
+ confirmEdit: {
409
+ ok: 'OK',
410
+ cancel: 'Cancel'
411
+ },
412
+ carousel: {
413
+ prev: 'Previous slide',
414
+ next: 'Next slide',
415
+ delimiter: 'Slide {0} of {1}'
416
+ },
417
+ input: {
418
+ clear: 'Clear {0}',
419
+ otp: 'Please enter OTP character',
420
+ prependAction: '{0} prepended action',
421
+ appendAction: '{0} appended action'
422
+ },
423
+ fileInput: {
424
+ counter: '{0} files',
425
+ counterSize: '{0} files ({1} in total)'
426
+ },
427
+ fileUpload: {
428
+ title: 'Drag and drop files here',
429
+ divider: 'or',
430
+ browse: 'Browse files'
431
+ },
432
+ steps: {
433
+ prev: 'Back',
434
+ next: 'Next'
435
+ },
436
+ table: {
437
+ filterTitle: 'Filter menu',
438
+ filterConfirm: 'OK',
439
+ filterReset: 'Reset',
440
+ filterEmptyText: 'No filters',
441
+ filterCheckAll: 'Select all items',
442
+ filterSearchPlaceholder: 'Search in filters',
443
+ emptyText: 'No data',
444
+ selectAll: 'Select current page',
445
+ selectInvert: 'Invert current page',
446
+ selectNone: 'Clear all data',
447
+ selectionAll: 'Select all data',
448
+ sortTitle: 'Sort',
449
+ expand: 'Expand row',
450
+ collapse: 'Collapse row',
451
+ triggerDesc: 'Click to sort descending',
452
+ triggerAsc: 'Click to sort ascending',
453
+ cancelSort: 'Click to cancel sorting',
454
+ showed: 'Showed',
455
+ from: 'from',
456
+ rowOnPage: 'Row on page'
457
+ },
458
+ uploader: {
459
+ uploading: 'Uploading...',
460
+ uploadFile: 'Upload file',
461
+ downloadFile: 'Download file',
462
+ removeFile: 'Remove file',
463
+ uploadError: 'Upload error',
464
+ previewFile: 'Preview file'
465
+ }
466
+ };
467
+ ```
468
+
469
+ The dictionary may stay incomplete: missing keys are taken from the `fallback` —
470
+ that is, from Russian by default.
@@ -0,0 +1,49 @@
1
+ # CDS 3 → CDS 4 migration (digest)
2
+
3
+ This is a short digest. **The full version with Before/After for every
4
+ change is `MIGRATION.md` at the root of the
5
+ `@central-design-system/components` npm package.**
6
+
7
+ ## Severity legend
8
+
9
+ | Marker | Meaning |
10
+ | --- | --- |
11
+ | ⚠️ **BREAKING** | Breaks existing code — action required |
12
+ | 🔁 **RENAMED** | Rename — mechanical search & replace |
13
+ | 🟠 **DEPRECATED** | Works in 4.x, will be removed in 5.x |
14
+ | ✨ **NEW** | New capability, nothing breaks |
15
+
16
+ ## Quick checklist
17
+
18
+ - [ ] Replace the CSS import: `@central-design-system/components/dist/cds.css` →
19
+ `@central-design-system/components/styles` (⚠️ breaking).
20
+ - [ ] If you use `@central-design-system/icons` — the package is 🟠 deprecated;
21
+ switch to iconpacks via `createCds({ icons })` (see [setup.md](setup.md)).
22
+ - [ ] Go through the component rename index below.
23
+ - [ ] Run the build and check the dev console: `[CDS UPGRADE]` warnings
24
+ point at deprecated props.
25
+
26
+ ## Key breaking changes
27
+
28
+ - ⚠️ **CSS import path** — `dist/cds.css` is no longer a public entry point;
29
+ import `@central-design-system/components/styles` instead.
30
+ - ⚠️ **Legacy reset is off by default** — the global reset from CDS 3 is now
31
+ opt-in: `@use '@central-design-system/components/styles' with ($legacy-reset: true);`.
32
+ - ⚠️ **CSS architecture on ITCSS + CSS Layers** — the cascade is driven by
33
+ native `@layer`; global overrides of CDS styles without `!important` may
34
+ now resolve differently.
35
+
36
+ ## Component rename and removal index
37
+
38
+ | CDS 3 | CDS 4 |
39
+ | --- | --- |
40
+ | `CdsDropdown` | 🔁 `CdsSelect` (the native `<select>` from CDS 3 — via the `native-select` prop) |
41
+ | `CdsRadioButton` | 🔁 `CdsRadioGroup` |
42
+ | `CdsProgress` | 🔁 `CdsProgressBar` |
43
+ | `CdsTabsV2` | 🔁 `CdsTabs` |
44
+ | `CdsCheckboxGroup` | ⚠️ removed (use `CdsCheckbox` on its own) |
45
+ | `CdsContainer` | ⚠️ removed |
46
+ | `CdsBadge` | 🔁 props: `count`→`content`, `limited`→`:max`; ⚠️ `invertColor` removed |
47
+
48
+ After renaming, double-check the `api.md` of the new component in
49
+ `../components/` — prop contracts may have changed.