@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,311 @@
1
+ # CdsSlideView — usage examples
2
+
3
+ > Extracted from Storybook stories (`docs/*.stories.ts`) by `bun run generate:skill`. Do not edit manually.
4
+ > The full component contract is in [api.md](api.md). `v-bind="args"` in templates refers to the props from the **Args** block of the corresponding example.
5
+
6
+ A slide view shows one slide out of a set and switches them with a shift animation: arrows, swipes and `v-model` page forward and backward. It is the base for carousels and step-by-step interfaces — [CdsCarousel](../cds-carousel/api.md) is built on the slide view.
7
+
8
+ ## Arrows
9
+
10
+ By default there are no arrows — the slides are paged with a swipe on touch devices or programmatically through `v-model`. The `show-arrows` prop turns the arrows on: `true` shows them at all times, `"hover"` only on hover over the slide. Keyboard navigation comes together with the arrows. The swipe is turned off with `:touch="false"`, and the icons of the arrows are changed with the `prev-icon` and `next-icon` props.
11
+
12
+ **Example (SFC):**
13
+
14
+ ```vue
15
+ <script setup lang="ts">
16
+ import { CdsSlideView, CdsSlideViewItem } from '@central-design-system/components';
17
+ import { ref } from 'vue';
18
+
19
+ const slide = ref(0);
20
+ </script>
21
+
22
+ <template>
23
+ <CdsSlideView v-model="slide" show-arrows="hover" continuous class="m-auto max-w-[520px]">
24
+ <CdsSlideViewItem v-for="n in 4" :key="n">
25
+ <div class="flex h-[180px] items-center justify-center bg-surface-secondary text-500">Слайд {{ n }}</div>
26
+ </CdsSlideViewItem>
27
+ </CdsSlideView>
28
+ </template>
29
+ ```
30
+
31
+ ## Vertical arrows
32
+
33
+ The `vertical-arrows` prop gathers the arrows turned on by `show-arrows` into a column at the edge of the slide: `true` or `'left'` puts them on the left, `'right'` on the right.
34
+
35
+ **Example (SFC):**
36
+
37
+ ```vue
38
+ <script setup lang="ts">
39
+ import { CdsSlideView, CdsSlideViewItem } from '@central-design-system/components';
40
+ import { ref } from 'vue';
41
+
42
+ const slide = ref(0);
43
+ </script>
44
+
45
+ <template>
46
+ <CdsSlideView v-model="slide" show-arrows vertical-arrows="right" continuous class="m-auto max-w-[520px]">
47
+ <CdsSlideViewItem v-for="n in 4" :key="n">
48
+ <div class="flex h-[180px] items-center justify-center bg-surface-secondary text-500">Слайд {{ n }}</div>
49
+ </CdsSlideViewItem>
50
+ </CdsSlideView>
51
+ </template>
52
+ ```
53
+
54
+ ## Continuous paging
55
+
56
+ The `continuous` prop closes the slides into a ring: the first one follows the last. Without it the matching arrow is hidden on the edge slides.
57
+
58
+ **Example (SFC):**
59
+
60
+ ```vue
61
+ <script setup lang="ts">
62
+ import { CdsSlideView, CdsSlideViewItem } from '@central-design-system/components';
63
+ import { ref } from 'vue';
64
+
65
+ const slide = ref(0);
66
+ </script>
67
+
68
+ <template>
69
+ <CdsSlideView v-model="slide" show-arrows continuous class="m-auto max-w-[520px]">
70
+ <CdsSlideViewItem v-for="n in 4" :key="n">
71
+ <div class="flex h-[180px] items-center justify-center bg-surface-secondary text-500">Слайд {{ n }}</div>
72
+ </CdsSlideViewItem>
73
+ </CdsSlideView>
74
+ </template>
75
+ ```
76
+
77
+ ## Direction
78
+
79
+ The `direction="vertical"` prop moves the slides vertically — the navigation keys change together with the animation: ↑ / ↓ work instead of ← / →.
80
+
81
+ **Example (SFC):**
82
+
83
+ ```vue
84
+ <script setup lang="ts">
85
+ import { CdsSlideView, CdsSlideViewItem } from '@central-design-system/components';
86
+ import { ref } from 'vue';
87
+
88
+ const slide = ref(0);
89
+ </script>
90
+
91
+ <template>
92
+ <CdsSlideView v-model="slide" show-arrows direction="vertical" continuous class="m-auto max-w-[520px]">
93
+ <CdsSlideViewItem v-for="n in 4" :key="n">
94
+ <div class="flex h-[180px] items-center justify-center bg-surface-secondary text-500">Слайд {{ n }}</div>
95
+ </CdsSlideViewItem>
96
+ </CdsSlideView>
97
+ </template>
98
+ ```
99
+
100
+ ## Transitions
101
+
102
+ The `crossfade` prop replaces the shift with a soft dissolve — a good fit when the slides are not lined up in a sequence. On a single `CdsSlideViewItem` the animation is configured with the `transition` and `reverse-transition` props: the name of your own transition animation or `false` to turn it off. The content of a slide is rendered on the first show; the `eager` prop renders it right away — useful for SEO.
103
+
104
+ **Example (SFC):**
105
+
106
+ ```vue
107
+ <script setup lang="ts">
108
+ import { CdsSlideView, CdsSlideViewItem } from '@central-design-system/components';
109
+ import { ref } from 'vue';
110
+
111
+ const slide = ref(0);
112
+ </script>
113
+
114
+ <template>
115
+ <CdsSlideView v-model="slide" show-arrows crossfade continuous class="m-auto max-w-[520px]">
116
+ <CdsSlideViewItem v-for="n in 4" :key="n">
117
+ <div class="flex h-[180px] items-center justify-center bg-surface-secondary text-500">Слайд {{ n }}</div>
118
+ </CdsSlideViewItem>
119
+ </CdsSlideView>
120
+ </template>
121
+ ```
122
+
123
+ ## Slots
124
+
125
+ The `additional` slot receives a `group` with the selection methods — but an outer `v-model` is usually enough, as in the demo with the dot indicators.
126
+
127
+ **Example (SFC):**
128
+
129
+ ```vue
130
+ <script setup lang="ts">
131
+ import { CdsButton, CdsSlideView, CdsSlideViewItem } from '@central-design-system/components';
132
+ import { ref } from 'vue';
133
+
134
+ const slide = ref(0);
135
+ const total = 4;
136
+ </script>
137
+
138
+ <template>
139
+ <CdsSlideView v-model="slide" show-arrows continuous class="m-auto max-w-[520px]">
140
+ <template #prev="{ props }">
141
+ <CdsButton appearance="secondary" size="sm" icon="chevron-left" aria-label="Назад" @click="props.onClick" />
142
+ </template>
143
+
144
+ <CdsSlideViewItem v-for="n in total" :key="n">
145
+ <div class="flex h-[180px] items-center justify-center bg-surface-secondary text-500">Слайд {{ n }}</div>
146
+ </CdsSlideViewItem>
147
+
148
+ <template #next="{ props }">
149
+ <CdsButton appearance="secondary" size="sm" icon="chevron-right" aria-label="Вперёд" @click="props.onClick" />
150
+ </template>
151
+
152
+ <template #additional>
153
+ <div class="mt-2 flex justify-center gap-1">
154
+ <button
155
+ v-for="n in total"
156
+ :key="n"
157
+ type="button"
158
+ class="h-[8px] w-[8px] cursor-pointer rounded-full border-none p-0"
159
+ :class="slide === n - 1 ? 'bg-brand-primary' : 'bg-surface-secondary'"
160
+ :aria-label="`Слайд ${n}`"
161
+ @click="slide = n - 1"
162
+ />
163
+ </div>
164
+ </template>
165
+ </CdsSlideView>
166
+ </template>
167
+ ```
168
+
169
+ ## A step-by-step form
170
+
171
+ The steps of a questionnaire are switched with buttons through `v-model`: the arrows stay off and the swipes are muted with `:touch="false"` — the only way to move is "Back" and "Next". The height of the container animates to the content of the active step automatically.
172
+
173
+ **Example (SFC):**
174
+
175
+ ```vue
176
+ <script setup lang="ts">
177
+ import { CdsButton, CdsSlideView, CdsSlideViewItem, CdsTextInput } from '@central-design-system/components';
178
+ import { ref } from 'vue';
179
+
180
+ const step = ref(0);
181
+ const total = 3;
182
+
183
+ const name = ref('');
184
+ const email = ref('');
185
+ const company = ref('');
186
+ </script>
187
+
188
+ <template>
189
+ <div class="m-auto flex w-full max-w-[400px] flex-col gap-2">
190
+ <span class="text-200 text-content-secondary">Шаг {{ step + 1 }} из {{ total }}</span>
191
+
192
+ <CdsSlideView v-model="step" :touch="false">
193
+ <CdsSlideViewItem>
194
+ <div class="flex flex-col gap-2">
195
+ <CdsTextInput v-model="name" label="Имя" placeholder="Александра" />
196
+ <CdsTextInput v-model="email" label="Рабочая почта" placeholder="name@company.ru" />
197
+ </div>
198
+ </CdsSlideViewItem>
199
+
200
+ <CdsSlideViewItem>
201
+ <div class="flex flex-col gap-2">
202
+ <CdsTextInput v-model="company" label="Компания" placeholder="ООО «Ромашка»" />
203
+ </div>
204
+ </CdsSlideViewItem>
205
+
206
+ <CdsSlideViewItem>
207
+ <div class="rounded-200 bg-surface-secondary p-4">
208
+ <p class="m-0 text-200">Проверьте данные перед отправкой:</p>
209
+ <p class="m-0 mt-1 text-200 text-content-secondary">
210
+ {{ name || 'Имя не указано' }} · {{ email || 'почта не указана' }} · {{ company || 'компания не указана' }}
211
+ </p>
212
+ </div>
213
+ </CdsSlideViewItem>
214
+ </CdsSlideView>
215
+
216
+ <div class="flex justify-between">
217
+ <CdsButton appearance="secondary" text="Назад" :disabled="step === 0" @click="step--" />
218
+ <CdsButton v-if="step < total - 1" text="Далее" @click="step++" />
219
+ <CdsButton v-else text="Отправить" />
220
+ </div>
221
+ </div>
222
+ </template>
223
+ ```
224
+
225
+ ## Customer testimonials
226
+
227
+ The quotes are not lined up in a sequence, so `crossfade` replaces the shift. The arrows appear on hover (`show-arrows="hover"`), the position is shown by a counter in the `additional` slot, and `continuous` pages the testimonials in a loop.
228
+
229
+ **Example (SFC):**
230
+
231
+ ```vue
232
+ <script setup lang="ts">
233
+ import { CdsSlideView, CdsSlideViewItem } from '@central-design-system/components';
234
+ import { ref } from 'vue';
235
+
236
+ const slide = ref(0);
237
+
238
+ const reviews = [
239
+ {
240
+ text: 'Перевели закупки в электронный вид за две недели — поставщики подключились без единого звонка в поддержку.',
241
+ author: 'Мария, директор по закупкам'
242
+ },
243
+ {
244
+ text: 'Удобно сравнивать предложения: все документы и цены собраны в одном месте.',
245
+ author: 'Игорь, руководитель отдела снабжения'
246
+ },
247
+ {
248
+ text: 'Интеграция с нашей учётной системой заняла один день. Теперь заявки уходят автоматически.',
249
+ author: 'Светлана, ИТ-директор'
250
+ }
251
+ ];
252
+ </script>
253
+
254
+ <template>
255
+ <CdsSlideView v-model="slide" crossfade continuous show-arrows="hover" class="m-auto max-w-[520px]">
256
+ <CdsSlideViewItem v-for="review in reviews" :key="review.author">
257
+ <figure class="m-0 flex h-[200px] flex-col justify-center gap-2 rounded-200 bg-surface-secondary px-12">
258
+ <blockquote class="m-0 text-300">«{{ review.text }}»</blockquote>
259
+ <figcaption class="text-200 text-content-secondary">{{ review.author }}</figcaption>
260
+ </figure>
261
+ </CdsSlideViewItem>
262
+
263
+ <template #additional>
264
+ <p class="m-0 mt-1 text-center text-200 text-content-secondary">{{ slide + 1 }} / {{ reviews.length }}</p>
265
+ </template>
266
+ </CdsSlideView>
267
+ </template>
268
+ ```
269
+
270
+ ## An events feed
271
+
272
+ A compact widget with vertical paging: `direction="vertical"` moves the events from the bottom up, and `vertical-arrows="right"` gathers the arrows into a column at the right edge.
273
+
274
+ **Example (SFC):**
275
+
276
+ ```vue
277
+ <script setup lang="ts">
278
+ import { CdsIcon, CdsSlideView, CdsSlideViewItem } from '@central-design-system/components';
279
+ import { ref } from 'vue';
280
+
281
+ const slide = ref(0);
282
+
283
+ const events = [
284
+ { icon: 'notification', text: 'Новая заявка № 142 от ООО «Ромашка»', time: '2 минуты назад' },
285
+ { icon: 'comment', text: 'Поставщик ответил на вопрос по лоту № 7', time: '15 минут назад' },
286
+ { icon: 'doc', text: 'Подписан договор по закупке № 89', time: 'час назад' },
287
+ { icon: 'winner', text: 'Определён победитель тендера № 56', time: '3 часа назад' }
288
+ ];
289
+ </script>
290
+
291
+ <template>
292
+ <CdsSlideView
293
+ v-model="slide"
294
+ show-arrows
295
+ direction="vertical"
296
+ vertical-arrows="right"
297
+ continuous
298
+ class="m-auto max-w-[440px]"
299
+ >
300
+ <CdsSlideViewItem v-for="event in events" :key="event.text">
301
+ <div class="flex h-[96px] items-center gap-3 rounded-200 bg-surface-secondary pl-4 pr-[64px]">
302
+ <CdsIcon :icon="event.icon" />
303
+ <div class="flex flex-col">
304
+ <span class="text-200">{{ event.text }}</span>
305
+ <span class="text-100 text-content-secondary">{{ event.time }}</span>
306
+ </div>
307
+ </div>
308
+ </CdsSlideViewItem>
309
+ </CdsSlideView>
310
+ </template>
311
+ ```
@@ -0,0 +1,9 @@
1
+ # CdsSlideView — guidelines
2
+
3
+ > Extracted from `docs/demos/Guidelines.vue` by `bun run generate:skill`. Do not edit manually.
4
+ > The full component contract is in [api.md](api.md).
5
+
6
+ | ✅ Do | ❌ Don't |
7
+ | --- | --- |
8
+ | Dots or a counter show how many slides there are and which one is open now. | Without a position indicator it is unclear how much content is hidden and where you are. |
9
+ | Slides of the same height: the container is stable and the content below does not jump. | Slides of different heights jerk the page on every switch. |
@@ -0,0 +1,14 @@
1
+ # CdsSlideView — tokens (level 3)
2
+
3
+ > Copy of the component's `styles/*.variables.scss`, taken by `bun run generate:skill`. Do not edit manually.
4
+ > `--cds-*` are global level-2 tokens whose values come from the active theme: see [themes.md](../../tokens/themes.md).
5
+ > Variables marked `!default` can be overridden at build time via SCSS.
6
+
7
+ ## _CdsSlideView.variables.scss
8
+
9
+ ```scss
10
+ $slide-view-transition: .3s cubic-bezier(.25, .8, .50, 1) !default;
11
+ $slide-view-controls-padding: 0 16px !default;
12
+ $slide-view-controls-vertical-gap: 12px !default;
13
+ $slide-view-crossfade-blend-mode: plus-lighter !default;
14
+ ```
@@ -0,0 +1,31 @@
1
+ # CdsStages — API
2
+
3
+ > Generated from meta.json by `bun run generate:skill`. Do not edit manually.
4
+ > Examples: [examples.md](examples.md) · Guidelines: [guidelines.md](guidelines.md) · Tokens: [tokens.md](tokens.md)
5
+
6
+ A stage bar shows the course of a business process: which stages are behind, which one is running now and where the process stopped because of an error. The component only displays the status — the stages are not clickable, so the bar fits cards, headers and lists where the state of the process has to be read at a glance.
7
+
8
+ ## CdsStages
9
+
10
+ **Props**
11
+
12
+ | Prop | Type | Default | Required | Description |
13
+ | --- | --- | --- | --- | --- |
14
+ | `current` | `string \| number \| null \| undefined` | `null` | no | Current stage |
15
+ | `finished` | `boolean \| undefined` | — | no | All stages are finished |
16
+ | `itemChildren` | `SelectItemKey` | `'children'` | no | Object field that holds the child items, or a function that returns them |
17
+ | `itemProps` | `SelectItemKey` | `'props'` | no | Object field that holds the props of the item, or a function that returns them |
18
+ | `items` | `any[] \| undefined` | `[]` | no | Array of items to display |
19
+ | `itemTitle` | `SelectItemKey` | `'title'` | no | Object field used as the item title, or a function that returns it |
20
+ | `itemType` | `SelectItemKey` | `'type'` | no | Object field that defines the item type (`item`, `divider`, `subheader`), or a function that returns it |
21
+ | `itemValue` | `SelectItemKey` | `'value'` | no | Object field used as the item value, or a function that returns it |
22
+ | `returnObject` | `boolean \| undefined` | — | no | Return an object in the model value instead of an array |
23
+ | `theme` | `string \| undefined` | — | no | Component theme |
24
+ | `valueComparator` | `ValueComparator \| undefined` | — | no | Function that compares item values to determine the selected state |
25
+
26
+ **Exposed**
27
+
28
+ | Name | Type | Description |
29
+ | --- | --- | --- |
30
+ | `isCurrent` | `(idx: number) => boolean` | Checks whether the stage with the given index is the current one. |
31
+ | `isFinished` | `boolean` | Whether all the stages are passed. |
@@ -0,0 +1,230 @@
1
+ # CdsStages — usage examples
2
+
3
+ > Extracted from Storybook stories (`docs/*.stories.ts`) by `bun run generate:skill`. Do not edit manually.
4
+ > The full component contract is in [api.md](api.md). `v-bind="args"` in templates refers to the props from the **Args** block of the corresponding example.
5
+
6
+ A stage bar shows the course of a business process: which stages are behind, which one is running now and where the process stopped because of an error. The component only displays the status — the stages are not clickable, so the bar fits cards, headers and lists where the state of the process has to be read at a glance.
7
+
8
+ ## Stages
9
+
10
+ Pass an array of objects into `items`: the title and the value of a stage are read by the `item-title` and `item-value` keys (`title` and `value` by default). As long as `current` is not set, all the stages stay neutral — the process has not started yet.
11
+
12
+ **Example (SFC):**
13
+
14
+ ```vue
15
+ <script setup lang="ts">
16
+ import { CdsStages } from '@central-design-system/components';
17
+
18
+ const items = [
19
+ { title: 'Заявка', value: 1 },
20
+ { title: 'Проверка', value: 2 },
21
+ { title: 'Согласование', value: 3 },
22
+ { title: 'Договор', value: 4 }
23
+ ];
24
+ </script>
25
+
26
+ <template>
27
+ <div class="flex items-center justify-center">
28
+ <CdsStages :items="items" />
29
+ </div>
30
+ </template>
31
+ ```
32
+
33
+ ## The current stage
34
+
35
+ `current` takes the value of the active stage: it is highlighted with the accent color, and the stages to the left of it are marked as passed.
36
+
37
+ **Example (SFC):**
38
+
39
+ ```vue
40
+ <script setup lang="ts">
41
+ import { CdsStages } from '@central-design-system/components';
42
+
43
+ const items = [
44
+ { title: 'Заявка', value: 1 },
45
+ { title: 'Проверка', value: 2 },
46
+ { title: 'Согласование', value: 3 },
47
+ { title: 'Договор', value: 4 }
48
+ ];
49
+ </script>
50
+
51
+ <template>
52
+ <div class="flex items-center justify-center">
53
+ <CdsStages :items="items" :current="3" />
54
+ </div>
55
+ </template>
56
+ ```
57
+
58
+ ## An error
59
+
60
+ An error is set in the data of a stage — `props: { error: true }` on an `items` element. The stage turns red once the process has reached it: when it is the current one or is already passed.
61
+
62
+ **Example (SFC):**
63
+
64
+ ```vue
65
+ <script setup lang="ts">
66
+ import { CdsStages } from '@central-design-system/components';
67
+
68
+ const items = [
69
+ { title: 'Заявка', value: 1 },
70
+ { title: 'Проверка', value: 2 },
71
+ { title: 'Согласование', value: 3, props: { error: true } },
72
+ { title: 'Договор', value: 4 }
73
+ ];
74
+ </script>
75
+
76
+ <template>
77
+ <div class="flex items-center justify-center">
78
+ <CdsStages :items="items" :current="3" />
79
+ </div>
80
+ </template>
81
+ ```
82
+
83
+ ## Finishing the process
84
+
85
+ The `finished` prop marks all the stages as passed at once — the value of `current` does not matter then.
86
+
87
+ **Example (SFC):**
88
+
89
+ ```vue
90
+ <script setup lang="ts">
91
+ import { CdsStages } from '@central-design-system/components';
92
+
93
+ const items = [
94
+ { title: 'Заявка', value: 1 },
95
+ { title: 'Проверка', value: 2 },
96
+ { title: 'Согласование', value: 3 },
97
+ { title: 'Договор', value: 4 }
98
+ ];
99
+ </script>
100
+
101
+ <template>
102
+ <div class="flex items-center justify-center">
103
+ <CdsStages :items="items" finished />
104
+ </div>
105
+ </template>
106
+ ```
107
+
108
+ ## Order progress
109
+
110
+ The value of `current` comes from the data and changes as the order is processed. Once the last stage is passed, turn `finished` on — the whole bar becomes green.
111
+
112
+ **Example (SFC):**
113
+
114
+ ```vue
115
+ <script setup lang="ts">
116
+ import { CdsButton, CdsStages } from '@central-design-system/components';
117
+ import { computed, ref } from 'vue';
118
+
119
+ const stages = [
120
+ { title: 'Оформлен', value: 'created' },
121
+ { title: 'Комплектация', value: 'assembly' },
122
+ { title: 'В пути', value: 'shipping' },
123
+ { title: 'Получен', value: 'delivered' }
124
+ ];
125
+
126
+ const index = ref(0);
127
+
128
+ const finished = computed(() => index.value >= stages.length);
129
+ const current = computed(() => (finished.value ? null : stages[index.value].value));
130
+ </script>
131
+
132
+ <template>
133
+ <div class="flex flex-col items-center gap-3">
134
+ <CdsStages class="w-full" :items="stages" :current="current" :finished="finished" />
135
+
136
+ <CdsButton v-if="!finished" text="Следующий этап" @click="index++" />
137
+ <CdsButton v-else appearance="secondary" text="Оформить новый заказ" @click="index = 0" />
138
+ </div>
139
+ </template>
140
+ ```
141
+
142
+ ## Rejected during review
143
+
144
+ The status of the listing is stored as a single string, and `items`, `current` and `finished` are computed from it. On rejection the "Проверка" stage gets `props.error` and turns red — the user immediately sees where the process stopped.
145
+
146
+ **Example (SFC):**
147
+
148
+ ```vue
149
+ <script setup lang="ts">
150
+ import { CdsButton, CdsStages } from '@central-design-system/components';
151
+ import { computed, ref } from 'vue';
152
+
153
+ type Status = 'review' | 'rejected' | 'published';
154
+
155
+ const status = ref<Status>('review');
156
+
157
+ const items = computed(() => [
158
+ { title: 'Черновик', value: 'draft' },
159
+ { title: 'Проверка', value: 'review', props: { error: status.value === 'rejected' } },
160
+ { title: 'Публикация', value: 'published' }
161
+ ]);
162
+
163
+ const current = computed(() => (status.value === 'rejected' ? 'review' : status.value));
164
+ const finished = computed(() => status.value === 'published');
165
+ </script>
166
+
167
+ <template>
168
+ <div class="flex flex-col items-center gap-3">
169
+ <CdsStages class="w-full" :items="items" :current="current" :finished="finished" />
170
+
171
+ <div class="flex gap-2">
172
+ <template v-if="status === 'review'">
173
+ <CdsButton text="Одобрить" @click="status = 'published'" />
174
+ <CdsButton appearance="secondary" text="Отклонить" @click="status = 'rejected'" />
175
+ </template>
176
+
177
+ <CdsButton v-else appearance="secondary" text="Вернуть на проверку" @click="status = 'review'" />
178
+ </div>
179
+ </div>
180
+ </template>
181
+ ```
182
+
183
+ ## Statuses in a list
184
+
185
+ The bar is compact and does not intercept clicks, so it is easy to repeat in every row of a list or a table: the width comes from a utility class, and the state of the row from its own `current`, `finished` and error.
186
+
187
+ **Example (SFC):**
188
+
189
+ ```vue
190
+ <script setup lang="ts">
191
+ import { CdsStages } from '@central-design-system/components';
192
+
193
+ interface Order {
194
+ name: string;
195
+ current?: number;
196
+ error?: boolean;
197
+ finished?: boolean;
198
+ }
199
+
200
+ const stages = [
201
+ { title: 'Заявка', value: 1 },
202
+ { title: 'Проверка', value: 2 },
203
+ { title: 'Договор', value: 3 }
204
+ ];
205
+
206
+ const orders: Order[] = [
207
+ { name: 'Поставка канцтоваров', current: 2 },
208
+ { name: 'Обслуживание техники', current: 2, error: true },
209
+ { name: 'Ремонт переговорной', finished: true }
210
+ ];
211
+
212
+ const stagesFor = (order: Order) =>
213
+ stages.map((stage) => (order.error && stage.value === order.current ? { ...stage, props: { error: true } } : stage));
214
+ </script>
215
+
216
+ <template>
217
+ <div class="m-auto flex w-[560px] flex-col gap-3">
218
+ <div v-for="order in orders" :key="order.name" class="flex items-center justify-between gap-3">
219
+ <span class="text-200">{{ order.name }}</span>
220
+
221
+ <CdsStages
222
+ class="w-[300px] shrink-0"
223
+ :items="stagesFor(order)"
224
+ :current="order.current"
225
+ :finished="order.finished"
226
+ />
227
+ </div>
228
+ </div>
229
+ </template>
230
+ ```
@@ -0,0 +1,10 @@
1
+ # CdsStages — guidelines
2
+
3
+ > Extracted from `docs/demos/Guidelines.vue` by `bun run generate:skill`. Do not edit manually.
4
+ > The full component contract is in [api.md](api.md).
5
+
6
+ | ✅ Do | ❌ Don't |
7
+ | --- | --- |
8
+ | A stage title is one or two words: the bar is read at a glance. | Sentence-long titles stretch the stages and repeat the same words. |
9
+ | Three to six stages: each one is a meaningful milestone of the process. | Splitting into tiny steps turns the bar into an unreadable comb. |
10
+ | The error belongs to the stage where the process stopped: usually the current one. | Errors on passed stages alarm for nothing: the process moved on, they no longer matter. |
@@ -0,0 +1,27 @@
1
+ # CdsStages — tokens (level 3)
2
+
3
+ > Copy of the component's `styles/*.variables.scss`, taken by `bun run generate:skill`. Do not edit manually.
4
+ > `--cds-*` are global level-2 tokens whose values come from the active theme: see [themes.md](../../tokens/themes.md).
5
+ > Variables marked `!default` can be overridden at build time via SCSS.
6
+
7
+ ## _CdsStages.variables.scss
8
+
9
+ ```scss
10
+ @use 'sass:map';
11
+
12
+ $stages-color: (
13
+ 'background': rgb(var(--cds-color-fill-primary)),
14
+ 'color': rgb(var(--cds-color-line-primary)),
15
+ 'text': rgb(var(--cds-color-content-tertiary)),
16
+ 'active': rgb(var(--cds-color-status-progress-line)),
17
+ 'active-text': rgb(var(--cds-color-status-progress-content)),
18
+ 'success': rgb(var(--cds-color-status-success-line)),
19
+ 'success-text': rgb(var(--cds-color-status-success-content)),
20
+ 'error': rgb(var(--cds-color-status-danger-line)),
21
+ 'error-text': rgb(var(--cds-color-status-danger-content))
22
+ ) !default;
23
+ $stages-border: var(--cds-border-200) solid map.get($stages-color, 'color') !default;
24
+ $stages-border-radius: var(--cds-border-radius-200) !default;
25
+ $stages-inner-padding: var(--cds-spacing-200) var(--cds-spacing-400) var(--cds-spacing-200) var(--cds-spacing-500) !default;
26
+ $stages-arrow-offset: -15px !default;
27
+ ```
@@ -0,0 +1,24 @@
1
+ # CdsStatus — API
2
+
3
+ > Generated from meta.json by `bun run generate:skill`. Do not edit manually.
4
+ > Examples: [examples.md](examples.md) · Guidelines: [guidelines.md](guidelines.md) · Tokens: [tokens.md](tokens.md)
5
+
6
+ A status is a non-interactive indicator of the state of an object: the request is paid, the document is under review, the payment is overdue. The `status` prop sets the semantics — the color and the icon — while `variant` sets the display mode: a prominent filled badge or compact text with a colored icon.
7
+
8
+ ## CdsStatus
9
+
10
+ **Props**
11
+
12
+ | Prop | Type | Default | Required | Description |
13
+ | --- | --- | --- | --- | --- |
14
+ | `content` | `string \| number \| undefined` | — | no | Content displayed in the component. |
15
+ | `status` | `"progress" \| "success" \| "danger" \| "warning" \| "info" \| undefined` | `'info'` | no | Semantic status — drives the color and the default icon. |
16
+ | `text` | `string \| number \| undefined` | — | no | Text displayed in the component. |
17
+ | `theme` | `string \| undefined` | — | no | Component theme |
18
+ | `variant` | `"fill" \| "text" \| undefined` | `'fill'` | no | Display mode: `fill` — a filled badge without an icon; `text` — a transparent background with a colored status icon. |
19
+
20
+ **Slots**
21
+
22
+ | Name | Type | Description |
23
+ | --- | --- | --- |
24
+ | `default` | `any` | Slot for the status text. |