@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,320 @@
1
+ # CdsSteps — 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
+ The stepper walks the user through a multi-step process: it shows which steps are done, which one is active and how many are left. It can switch the content of the steps and renders the "Back" / "Next" buttons out of the box, while a header without content works as a status tracker.
7
+
8
+ ## Steps from an array
9
+
10
+ Pass an array of objects into `items` — the title, the description and the value of a step are read by the `item-title`, `item-text` and `item-value` keys (by default `title`, `text`, and the value is the ordinal number of the step starting from one). The content of a step comes from the `item.{value}` slots or from the shared `item` slot, and the "Back" / "Next" buttons are rendered automatically: their texts are changed by the `prev-text` / `next-text` props, and `hide-actions` hides the buttons.
11
+
12
+ **Example (SFC):**
13
+
14
+ ```vue
15
+ <script setup lang="ts">
16
+ import { CdsCard, CdsSteps } from '@central-design-system/components';
17
+ import { ref } from 'vue';
18
+
19
+ const step = ref(1);
20
+ const items = [
21
+ { title: 'ФИО', text: 'Имя и фамилия' },
22
+ { title: 'Паспортные данные', text: 'Номер паспорта и дата рождения' },
23
+ { title: 'Способ оплаты', text: 'Данные банковской карты' },
24
+ { title: 'Подтверждение', text: 'Код из смс' }
25
+ ];
26
+ </script>
27
+
28
+ <template>
29
+ <div class="m-auto max-w-[750px]">
30
+ <CdsSteps v-model="step" :items="items">
31
+ <template v-for="(item, index) in items" :key="item.title" #[`item.${index+1}`]>
32
+ <CdsCard :title="item.title" :text="`Контент шага «${item.title}»: ${item.text.toLowerCase()}.`" borderless />
33
+ </template>
34
+ </CdsSteps>
35
+ </div>
36
+ </template>
37
+ ```
38
+
39
+ ## States
40
+
41
+ Steps can also be declared by hand — with `CdsStepsItem` components in the default slot: only the header is rendered, the content and the navigation stay up to you. A step has three states: `error` — finished with an error, `warning` — needs attention, `disabled` — unavailable.
42
+
43
+ **Example (SFC):**
44
+
45
+ ```vue
46
+ <script setup lang="ts">
47
+ import { CdsSteps, CdsStepsItem } from '@central-design-system/components';
48
+ import { ref } from 'vue';
49
+
50
+ const step = ref(1);
51
+ </script>
52
+
53
+ <template>
54
+ <CdsSteps v-model="step">
55
+ <CdsStepsItem title="ФИО" text="Имя и фамилия" />
56
+ <CdsStepsItem title="Паспортные данные" error text="Номер паспорта и дата рождения" />
57
+ <CdsStepsItem title="Способ оплаты" disabled text="Данные банковской карты" />
58
+ <CdsStepsItem title="Подтверждение" warning text="Код из смс" />
59
+ </CdsSteps>
60
+ </template>
61
+ ```
62
+
63
+ ## Interactive steps
64
+
65
+ The `interactive` prop allows jumping to any step by click or from the keyboard — the progress animates in a cascade and `disabled` steps are skipped. The `readonly` prop turns the transitions off while keeping the appearance.
66
+
67
+ **Example (SFC):**
68
+
69
+ ```vue
70
+ <script setup lang="ts">
71
+ import { CdsSteps, CdsStepsItem } from '@central-design-system/components';
72
+ import { ref } from 'vue';
73
+
74
+ const step = ref(2);
75
+ </script>
76
+
77
+ <template>
78
+ <CdsSteps v-model="step" interactive>
79
+ <CdsStepsItem title="ФИО" text="Имя и фамилия" />
80
+ <CdsStepsItem title="Паспортные данные" text="Номер паспорта и дата рождения" />
81
+ <CdsStepsItem title="Способ оплаты" text="Данные банковской карты" />
82
+ <CdsStepsItem title="Подтверждение" text="Код из смс" />
83
+ </CdsSteps>
84
+ </template>
85
+ ```
86
+
87
+ ## Vertical layout
88
+
89
+ The `vertical` prop turns the header into a column — a good fit for status trackers and narrow panels.
90
+
91
+ **Example (SFC):**
92
+
93
+ ```vue
94
+ <script setup lang="ts">
95
+ import { CdsSteps, CdsStepsItem } from '@central-design-system/components';
96
+ import { ref } from 'vue';
97
+
98
+ const step = ref(0);
99
+ </script>
100
+
101
+ <template>
102
+ <div class="flex h-[350px] w-full items-center justify-center">
103
+ <CdsSteps v-model="step" vertical interactive>
104
+ <CdsStepsItem title="ФИО" text="Имя и фамилия" />
105
+ <CdsStepsItem title="Паспортные данные" text="Номер паспорта и дата рождения" />
106
+ <CdsStepsItem title="Способ оплаты" text="Данные банковской карты" />
107
+ <CdsStepsItem title="Подтверждение" text="Код из смс" />
108
+ </CdsSteps>
109
+ </div>
110
+ </template>
111
+ ```
112
+
113
+ ## Slots
114
+
115
+ The `title` and `text` slots receive the state of the step (`selected`, `complete`, `error`, `first`, `last`…) — handy for adding tags and hints.
116
+
117
+ **Example (SFC):**
118
+
119
+ ```vue
120
+ <script setup lang="ts">
121
+ import { CdsIcon, CdsSteps, CdsStepsItem, CdsTag, CdsTooltip } from '@central-design-system/components';
122
+ import { ref } from 'vue';
123
+
124
+ const step = ref(3);
125
+ const items = [
126
+ { title: 'ФИО', text: 'Имя и фамилия' },
127
+ { title: 'Паспортные данные', text: 'Номер паспорта и дата рождения', error: true },
128
+ { title: 'Способ оплаты', text: 'Данные банковской карты', disabled: true },
129
+ { title: 'Подтверждение', text: 'Код из смс' }
130
+ ];
131
+ </script>
132
+
133
+ <template>
134
+ <CdsSteps v-model="step">
135
+ <CdsStepsItem v-for="item in items" :key="item.title" :disabled="item.disabled" :error="item.error">
136
+ <template #title>
137
+ <span class="inline-flex items-center gap-1">
138
+ {{ item.title }}
139
+ <CdsTag v-if="!item.disabled" text="Доступ" />
140
+ </span>
141
+ </template>
142
+ <template #text="{ last }">
143
+ <span class="inline-flex items-center gap-1">
144
+ <CdsTooltip v-if="last">
145
+ <template #activator="{ props }">
146
+ <CdsIcon icon="info" v-bind="props" />
147
+ </template>
148
+ Push уведомления
149
+ </CdsTooltip>
150
+ {{ item.text }}
151
+ </span>
152
+ </template>
153
+ </CdsStepsItem>
154
+ </CdsSteps>
155
+ </template>
156
+ ```
157
+
158
+ ## Model
159
+
160
+ The active step is controlled through `v-model`. For steps from `items` the default value is the ordinal number starting from one; for steps declared by hand it is the index starting from zero. Your own value is set by the `item-value` key or by the `value` prop of `CdsStepsItem`. The `prev` / `next` methods are available through the component ref.
161
+
162
+ **Example (SFC):**
163
+
164
+ ```vue
165
+ <script setup lang="ts">
166
+ import { CdsFunctionalButton, CdsSteps, CdsStepsItem } from '@central-design-system/components';
167
+ import { ref } from 'vue';
168
+
169
+ const step = ref(2);
170
+ const items = [
171
+ { title: 'ФИО', text: 'Имя и фамилия' },
172
+ { title: 'Паспортные данные', text: 'Номер паспорта и дата рождения' },
173
+ { title: 'Способ оплаты', text: 'Данные банковской карты' },
174
+ { title: 'Подтверждение', text: 'Код из смс' }
175
+ ];
176
+ const next = () => {
177
+ if (step.value < items.length - 1) step.value++;
178
+ };
179
+ const prev = () => {
180
+ if (step.value > 0) step.value--;
181
+ };
182
+ </script>
183
+
184
+ <template>
185
+ <div>
186
+ <div class="mb-4 flex w-full items-center justify-center gap-2">
187
+ <CdsFunctionalButton icon="chevron-left" @click="prev" />
188
+ v-model: {{ step }}
189
+ <CdsFunctionalButton icon="chevron-right" @click="next" />
190
+ </div>
191
+ <CdsSteps v-model="step">
192
+ <CdsStepsItem v-for="item in items" :key="item.title" :title="item.title" :text="item.text" />
193
+ </CdsSteps>
194
+ </div>
195
+ </template>
196
+ ```
197
+
198
+ ## Checkout wizard
199
+
200
+ A classic wizard: every step gets its own `item.{value}` slot with a form. The built-in buttons page through the steps, and the fields are bound to shared state through `v-model`, so the data survives the transitions.
201
+
202
+ **Example (SFC):**
203
+
204
+ ```vue
205
+ <script setup lang="ts">
206
+ import { CdsForm, CdsRadio, CdsRadioGroup, CdsSteps, CdsTextInput } from '@central-design-system/components';
207
+ import { ref } from 'vue';
208
+
209
+ const step = ref(1);
210
+ const city = ref('');
211
+ const address = ref('');
212
+ const payment = ref('card');
213
+
214
+ const items = [
215
+ { title: 'Доставка', text: 'Город и адрес' },
216
+ { title: 'Оплата', text: 'Способ оплаты' },
217
+ { title: 'Проверка', text: 'Данные заказа' }
218
+ ];
219
+ </script>
220
+
221
+ <template>
222
+ <div class="m-auto max-w-[750px]">
223
+ <CdsSteps v-model="step" :items="items">
224
+ <template #[`item.1`]>
225
+ <CdsForm class="m-auto flex w-[350px] flex-col gap-2 py-2">
226
+ <CdsTextInput v-model="city" label="Город" placeholder="Москва" />
227
+ <CdsTextInput v-model="address" label="Адрес" placeholder="Улица, дом, офис" />
228
+ </CdsForm>
229
+ </template>
230
+
231
+ <template #[`item.2`]>
232
+ <CdsRadioGroup v-model="payment" label="Как оплатите заказ?" class="m-auto w-[350px] py-2" hide-details>
233
+ <CdsRadio value="card" label="Банковской картой" />
234
+ <CdsRadio value="invoice" label="Счётом на компанию" />
235
+ </CdsRadioGroup>
236
+ </template>
237
+
238
+ <template #[`item.3`]>
239
+ <div class="m-auto flex w-[350px] flex-col gap-1 py-2">
240
+ <p>Доставка: {{ [city, address].filter(Boolean).join(', ') || 'не указана' }}</p>
241
+ <p>Оплата: {{ payment === 'card' ? 'банковской картой' : 'счётом на компанию' }}</p>
242
+ </div>
243
+ </template>
244
+ </CdsSteps>
245
+ </div>
246
+ </template>
247
+ ```
248
+
249
+ ## Confirmation before moving on
250
+
251
+ The `actions` slot replaces the built-in buttons and receives the `prev` and `next` methods — you define the conditions of the transition yourself. Here the "Next" button stays disabled until the user accepts the terms of service.
252
+
253
+ **Example (SFC):**
254
+
255
+ ```vue
256
+ <script setup lang="ts">
257
+ import { CdsButton, CdsCheckbox, CdsSteps } from '@central-design-system/components';
258
+ import { ref } from 'vue';
259
+
260
+ const step = ref(1);
261
+ const agreed = ref(false);
262
+
263
+ const items = [
264
+ { title: 'Условия', text: 'Договор оферты' },
265
+ { title: 'Данные', text: 'Реквизиты компании' },
266
+ { title: 'Готово', text: 'Заявка отправлена' }
267
+ ];
268
+ </script>
269
+
270
+ <template>
271
+ <div class="m-auto max-w-[750px]">
272
+ <CdsSteps v-model="step" :items="items">
273
+ <template #[`item.1`]>
274
+ <div class="m-auto flex w-[350px] flex-col gap-2 py-2">
275
+ <p>Перед заполнением заявки ознакомьтесь с условиями обслуживания.</p>
276
+ <CdsCheckbox v-model="agreed" label="Принимаю условия обслуживания" hide-details />
277
+ </div>
278
+ </template>
279
+
280
+ <template #[`item.2`]>
281
+ <p class="py-2 text-center">Здесь будет форма с реквизитами компании.</p>
282
+ </template>
283
+
284
+ <template #[`item.3`]>
285
+ <p class="py-2 text-center">Заявка отправлена — подтверждение придёт на почту.</p>
286
+ </template>
287
+
288
+ <template #actions="{ prev, next }">
289
+ <div class="flex items-center justify-between">
290
+ <CdsButton appearance="secondary" text="Назад" :disabled="step === 1" @click="prev" />
291
+ <CdsButton text="Далее" :disabled="step === 3 || (step === 1 && !agreed)" @click="next" />
292
+ </div>
293
+ </template>
294
+ </CdsSteps>
295
+ </div>
296
+ </template>
297
+ ```
298
+
299
+ ## Request status
300
+
301
+ A header without `items` works as a process tracker: only the steps, no content and no buttons. The completed stages are marked with indicators, and the descriptions carry the dates and the deadlines. The `vertical` prop lays the history out in a column.
302
+
303
+ **Example (SFC):**
304
+
305
+ ```vue
306
+ <script setup lang="ts">
307
+ import { CdsSteps, CdsStepsItem } from '@central-design-system/components';
308
+ </script>
309
+
310
+ <template>
311
+ <div class="flex justify-center">
312
+ <CdsSteps :model-value="2" vertical>
313
+ <CdsStepsItem title="Заявка отправлена" text="12 марта, 10:24" />
314
+ <CdsStepsItem title="Документы проверены" text="13 марта, 16:02" />
315
+ <CdsStepsItem title="Согласование" text="Обычно занимает до двух дней" />
316
+ <CdsStepsItem title="Заключение договора" />
317
+ </CdsSteps>
318
+ </div>
319
+ </template>
320
+ ```
@@ -0,0 +1,10 @@
1
+ # CdsSteps — 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
+ | The step title is a short name of the stage; the details go into the text description. | Sentence-long titles inflate the header and are hard to scan. |
9
+ | Three to five steps: the process stays graspable and every step is a meaningful stage. | Seven steps or more scare the user with their volume — merge the adjacent stages. |
10
+ | The description adds to the title: what the step needs or what will happen. | A description that repeats the title adds nothing — drop it. |
@@ -0,0 +1,52 @@
1
+ # CdsSteps — 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
+ ## _CdsSteps.variables.scss
8
+
9
+ ```scss
10
+ @use 'sass:map';
11
+ @use '../../../styles/settings';
12
+
13
+ // CdsSteps
14
+ $steps-section-gap: var(--cds-spacing-400) !default;
15
+ $steps-header-gap: var(--cds-spacing-100) !default;
16
+
17
+ // CdsStepsItem
18
+ $steps-item-gap: var(--cds-spacing-100) !default;
19
+ $steps-item-min-width: 96px !default;
20
+ $steps-item-status-gap: var(--cds-spacing-100) !default;
21
+ $steps-item-content-padding: var(--cds-spacing-400) !default;
22
+ $steps-item-icon-size: 12px !default;
23
+ $steps-item-icon-border: var(--cds-border-200) !default;
24
+ $steps-item-indicator-size: 4px !default;
25
+ $steps-item-indicator-radius: map.get(settings.$rounded, 'pill') !default;
26
+
27
+ // CdsStepsItem (vertical)
28
+ $steps-item-vertical-gap: var(--cds-spacing-200) !default;
29
+ $steps-item-vertical-height: 56px !default;
30
+ $steps-item-vertical-content-width: 168px !default;
31
+ $steps-item-vertical-content-padding: var(--cds-spacing-400) !default;
32
+ $steps-item-status-vertical-padding: var(--cds-spacing-100) !default;
33
+ $steps-item-color: (
34
+ 'icon-unpassed': rgb(var(--cds-color-line-primary)),
35
+ 'icon-hover': rgb(var(--cds-color-status-progress-surface)),
36
+ 'icon-disabled': rgb(var(--cds-color-line-disable)),
37
+ 'current': rgb(var(--cds-color-status-progress-surface)),
38
+ 'warning': rgb(var(--cds-color-status-warning-surface)),
39
+ 'warning-text': rgb(var(--cds-color-status-warning-content)),
40
+ 'error': rgb(var(--cds-color-status-danger-surface)),
41
+ 'error-text': rgb(var(--cds-color-status-danger-content)),
42
+ 'disabled': rgb(var(--cds-color-content-disable)),
43
+ 'title': rgb(var(--cds-color-content-primary)),
44
+ 'description': rgb(var(--cds-color-content-secondary)),
45
+ 'focus': rgb(var(--cds-color-line-focus-outline)),
46
+ 'indicator': rgb(var(--cds-color-fill-secondary)),
47
+ 'stream': rgb(var(--cds-color-status-progress-surface))
48
+ ) !default;
49
+
50
+ // CdsStepsActions
51
+ $steps-actions-gap: var(--cds-spacing-200) !default;
52
+ ```
@@ -0,0 +1,30 @@
1
+ # CdsSurface — API
2
+
3
+ > Generated from meta.json by `bun run generate:skill`. Do not edit manually.
4
+ > Examples: [examples.md](examples.md)
5
+
6
+ A surface is a container with a background from the tokens, sizes, positioning and a theme of its own. Take it when a block needs a design system background rather than a ready-made component: the backdrop of a panel, a plate, the base of your own component.
7
+
8
+ ## CdsSurface
9
+
10
+ **Props**
11
+
12
+ | Prop | Type | Default | Required | Description |
13
+ | --- | --- | --- | --- | --- |
14
+ | `color` | `string \| undefined` | — | no | Background color of the surface |
15
+ | `height` | `string \| number \| undefined` | — | no | Component height |
16
+ | `location` | `Anchor \| null \| undefined` | — | no | Position of the element relative to its container, for example "top left", "center", "bottom right". |
17
+ | `maxHeight` | `string \| number \| undefined` | — | no | Maximum component height |
18
+ | `maxWidth` | `string \| number \| undefined` | — | no | Maximum component width |
19
+ | `minHeight` | `string \| number \| undefined` | — | no | Minimum component height |
20
+ | `minWidth` | `string \| number \| undefined` | — | no | Minimum component width |
21
+ | `position` | `"absolute" \| "static" \| "fixed" \| "relative" \| "sticky" \| undefined` | — | no | CSS positioning of the component — the value of the `position` property |
22
+ | `tag` | `string \| JSXComponent<any> \| undefined` | `'div'` | no | Custom HTML tag or component to render |
23
+ | `theme` | `string \| undefined` | — | no | Component theme |
24
+ | `width` | `string \| number \| undefined` | — | no | Component width |
25
+
26
+ **Slots**
27
+
28
+ | Name | Type | Description |
29
+ | --- | --- | --- |
30
+ | `default` | `any` | The main content of the surface. |
@@ -0,0 +1,106 @@
1
+ # CdsSurface — 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 surface is a container with a background from the tokens, sizes, positioning and a theme of its own. Take it when a block needs a design system background rather than a ready-made component: the backdrop of a panel, a plate, the base of your own component.
7
+
8
+ ## Color
9
+
10
+ The `color` prop sets the background from the theme tokens and picks a contrasting text color. Besides `surface-*`, any color of the palette and any CSS color will do. Which colors exactly hide behind the tokens is decided by the theme: the `theme` prop switches it for the surface and for everything inside it.
11
+
12
+ **Example (SFC):**
13
+
14
+ ```vue
15
+ <script setup lang="ts">
16
+ import { CdsSurface } from '@central-design-system/components';
17
+ </script>
18
+
19
+ <template>
20
+ <div class="flex flex-wrap justify-center gap-2">
21
+ <CdsSurface color="surface-primary" class="p-3 rounded-200">surface-primary</CdsSurface>
22
+ <CdsSurface color="surface-secondary" class="p-3 rounded-200">surface-secondary</CdsSurface>
23
+ <CdsSurface color="surface-elevated" class="p-3 rounded-200">surface-elevated</CdsSurface>
24
+ <CdsSurface color="surface-inverse" class="p-3 rounded-200">surface-inverse</CdsSurface>
25
+ </div>
26
+ </template>
27
+ ```
28
+
29
+ ## Sizes
30
+
31
+ The `width`, `height`, `min-width`, `max-width`, `min-height` and `max-height` props accept a number (pixels) or a string with any CSS unit.
32
+
33
+ **Example (SFC):**
34
+
35
+ ```vue
36
+ <script setup lang="ts">
37
+ import { CdsSurface } from '@central-design-system/components';
38
+ </script>
39
+
40
+ <template>
41
+ <div class="flex flex-wrap items-start justify-center gap-2">
42
+ <CdsSurface color="surface-secondary" width="120" height="80" class="p-2 rounded-200"> 120 × 80 </CdsSurface>
43
+
44
+ <CdsSurface color="surface-secondary" min-height="80" max-width="200" class="p-2 rounded-200">
45
+ Ширина не больше 200, высота не меньше 80
46
+ </CdsSurface>
47
+ </div>
48
+ </template>
49
+ ```
50
+
51
+ ## Positioning
52
+
53
+ The `position` prop sets the CSS position, `location` pins the surface to an edge of the container — `top end`, `bottom start`, `center`. Together they build a plate on top of another block.
54
+
55
+ **Example (SFC):**
56
+
57
+ ```vue
58
+ <script setup lang="ts">
59
+ import { CdsSurface } from '@central-design-system/components';
60
+ </script>
61
+
62
+ <template>
63
+ <CdsSurface color="surface-secondary" position="relative" height="140" class="w-[280px] m-auto rounded-200">
64
+ <CdsSurface color="surface-inverse" position="absolute" location="top end" class="p-1 rounded-100">
65
+ top end
66
+ </CdsSurface>
67
+
68
+ <CdsSurface color="surface-inverse" position="absolute" location="bottom start" class="p-1 rounded-100">
69
+ bottom start
70
+ </CdsSurface>
71
+ </CdsSurface>
72
+ </template>
73
+ ```
74
+
75
+ ## A summary panel
76
+
77
+ The surface gives the background and the sizes, while the paddings and the layout inside are up to you. The `tag` prop changes the tag of the wrapper — here it is `section`, so the block stays meaningful in the structure of the page.
78
+
79
+ **Example (SFC):**
80
+
81
+ ```vue
82
+ <script setup lang="ts">
83
+ import { CdsButton, CdsDivider, CdsSurface } from '@central-design-system/components';
84
+
85
+ const rows = [
86
+ { label: 'Позиций', value: '12' },
87
+ { label: 'Доставка', value: '1 500 ₽' },
88
+ { label: 'Итого', value: '48 900 ₽' }
89
+ ];
90
+ </script>
91
+
92
+ <template>
93
+ <CdsSurface tag="section" color="surface-secondary" class="w-[320px] m-auto p-4 rounded-200">
94
+ <div class="flex flex-col gap-1">
95
+ <div v-for="row of rows" :key="row.label" class="flex justify-between">
96
+ <span>{{ row.label }}</span>
97
+ <b>{{ row.value }}</b>
98
+ </div>
99
+ </div>
100
+
101
+ <CdsDivider class="my-3" />
102
+
103
+ <CdsButton block text="Оформить заказ" />
104
+ </CdsSurface>
105
+ </template>
106
+ ```
@@ -0,0 +1,120 @@
1
+ # CdsTable — 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 table shows large sets of records in columns and takes the data work off your hands: sorting, filters, pagination, row selection and expansion, a pinned header and pinned columns. Columns are described by the `columns` prop, the records by the `data` prop.
7
+
8
+ Family: [CdsTable](#cdstable) + subcomponents: [CdsTableColumn](#cdstablecolumn), [CdsTableColumnGroup](#cdstablecolumngroup).
9
+
10
+ ## CdsTable
11
+
12
+ **Props**
13
+
14
+ | Prop | Type | Default | Required | Description |
15
+ | --- | --- | --- | --- | --- |
16
+ | `bordered` | `boolean \| undefined` | `false` | no | Show every table border |
17
+ | `borderless` | `boolean \| undefined` | `false` | no | Remove every table border |
18
+ | `canExpandable` | `boolean \| undefined` | `false` | no | Rows can be expanded |
19
+ | `childrenColumnName` | `string \| undefined` | `'children'` | no | Name of the property holding the child records |
20
+ | `columnDraggable` | `NTable.NDraggable.TColumnDraggable<any> \| undefined` | — | no | Column drag and drop. `true` or a configuration object `{ icon, disabled, allowDrop }`. Reordering only happens among siblings inside the same group; the consumer changes the order in the `@column-reorder` handler. |
21
+ | `columns` | `NTable.NColumn.TColumns<any> \| undefined` | — | no | Table columns |
22
+ | `components` | `NTable.NCustomize.TableComponents<any> \| undefined` | — | no | Override the default table components |
23
+ | `customHeaderRow` | `NTable.NCustomize.TGetComponentProps<NTable.NColumn.IColumn<any>[]> \| undefined` | — | no | Sets the properties for every header row |
24
+ | `customRow` | `NTable.NCustomize.TGetComponentProps<any> \| undefined` | — | no | Sets the properties for every row |
25
+ | `data` | `any[] \| undefined` | — | no | Array of records to show in the table |
26
+ | `defaultExpandAllRows` | `boolean \| undefined` | `false` | no | All rows are expanded by default |
27
+ | `defaultExpandedRowKeys` | `NTable.TKey[] \| undefined` | `undefined as ITableProps['defaultExpandedRowKeys']` | no | Keys of the rows expanded by default |
28
+ | `disabled` | `boolean \| null \| undefined` | `null` | no | Disabled state |
29
+ | `expandColumnWidth` | `number \| undefined` | — | no | Width of the expand column |
30
+ | `expandedRowClassName` | `NTable.NRow.TClassName<any> \| undefined` | — | no | Classes for rows in the expanded state |
31
+ | `expandedRowKeys` | `NTable.TKey[] \| undefined` | `undefined as ITableProps['expandedRowKeys']` | no | Keys of the currently expanded rows (supports v-model) |
32
+ | `expandedRowRender` | `NTable.NExpand.TExpandedRowRender<any> \| undefined` | — | no | Render function for every expanded row |
33
+ | `expandFixed` | `NTable.TFixed \| undefined` | — | no | Pin the expand column (left \| right \| boolean) |
34
+ | `expandIcon` | `NTable.NExpand.TRenderExpandIcon<any> \| undefined` | — | no | Custom expand icon |
35
+ | `expandIconColumnIndex` | `number \| undefined` | — | no | Index of the column that holds the expand icon |
36
+ | `expandRowByClick` | `boolean \| undefined` | `false` | no | Expand the row by clicking anywhere in it |
37
+ | `footer` | `NTable.NRender.TPanelRender<any> \| undefined` | — | no | Render function for the table footer |
38
+ | `getPopupContainer` | `NTable.NCustomize.TGetPopupContainer \| undefined` | — | no | Container that dropdowns are rendered into |
39
+ | `header` | `NTable.NRender.TPanelRender<any> \| undefined` | — | no | Render function for the table title |
40
+ | `hovered` | `boolean \| undefined` | `false` | no | Highlight the row on hover |
41
+ | `id` | `string \| undefined` | — | no | Table identifier |
42
+ | `indentSize` | `number \| undefined` | `20` | no | Indent size in pixels for each nesting level |
43
+ | `loading` | `boolean \| undefined` | `false` | no | Table loading state |
44
+ | `locale` | `NTable.ILocale \| undefined` | — | no | Table localization (overrides the strings of the global locale) |
45
+ | `pagination` | `false \| NTable.NPagination.IProps \| undefined` | — | no | Table pagination configuration |
46
+ | `readonly` | `boolean \| null \| undefined` | `null` | no | Read-only state |
47
+ | `rowClassName` | `string \| NTable.NRow.TClassName<any> \| undefined` | — | no | Row classes |
48
+ | `rowDraggable` | `NTable.NDraggable.TRowDraggable<any> \| undefined` | — | no | Row drag and drop. `true` or a configuration object `{ icon, disabled, allowDrop }`. Reordering only happens between siblings of the same parent; the consumer changes the order in the `@row-reorder` handler. |
49
+ | `rowExpandable` | `((record: any) => boolean) \| undefined` | — | no | Whether the row can be expanded |
50
+ | `rowKey` | `string \| NTable.NRow.TGetRowKey<any> \| undefined` | `'key'` | no | Unique row key — a string or a function returning a string |
51
+ | `rowSelection` | `NTable.NRow.IRowSelection<any> \| undefined` | — | no | Row selection configuration |
52
+ | `scroll` | `(NTable.TScroll & { scrollToFirstRowOnChange?: boolean \| undefined; }) \| undefined` | — | no | Whether the table can be scrolled |
53
+ | `showExpandColumn` | `boolean \| undefined` | — | no | Show the expand column |
54
+ | `showHeader` | `boolean \| undefined` | — | no | Whether to show the table header |
55
+ | `showSorterTooltip` | `NTable.NSorter.TTooltip \| undefined` | `true` | no | Whether to show sorting tooltips in the header. You can pass an object with CdsTooltip properties. |
56
+ | `size` | `number \| "xs" \| "sm" \| "md" \| "lg" \| "xl" \| undefined` | `'md'` | no | Size of the component |
57
+ | `sortDirection` | `string[] \| undefined` | — | no | Sorting of the table data. 'ascend' \| 'descend' |
58
+ | `sticky` | `boolean \| NTable.NSticky.ISticky \| undefined` | — | no | Sticky behavior for the header and the scrollbar |
59
+ | `tableLayout` | `NTable.TLayout \| undefined` | — | no | Fixed or auto layout |
60
+ | `theme` | `string \| undefined` | — | no | Component theme |
61
+ | `toolbar` | `NTable.NRender.TPanelRender<any> \| undefined` | — | no | Render function for the table toolbar |
62
+ | `transformCellText` | `NTable.NCell.TTransformCellText<any> \| undefined` | — | no | Transform the text inside a cell |
63
+
64
+ **Events**
65
+
66
+ | Name | Type | Description |
67
+ | --- | --- | --- |
68
+ | `change` | `[pagination: NTable.NPagination.IProps, filters: Record<string, NTable.TFilterValue \| null>, sorter: NTable.ISorterResult<any> \| NTable.ISorterResult<any>[], extra: NTable.ICurrentData<any>]` | Fired when the pagination, the filters or the sorting change. |
69
+ | `columnReorder` | `[info: NTable.NDraggable.IColumnReorderInfo<any>]` | Fired when a column is dragged. The consumer changes the order of the columns. |
70
+ | `expand` | `[expanded: boolean, record: any]` | Fired when a row is expanded or collapsed. |
71
+ | `expandedRowsChange` | `[expandedKeys: NTable.TKey[]]` | Fired when the set of expanded rows changes. |
72
+ | `resizeColumn` | `[width: number, column: NTable.NColumn.IColumn<any>]` | Fired when a column is resized. |
73
+ | `rowReorder` | `[info: NTable.NDraggable.IRowReorderInfo<any>]` | Fired when a row is dragged. The consumer changes the order of the data. |
74
+ | `update:expandedRowKeys` | `[expandedKeys: NTable.TKey[]]` | Fired when the expanded rows are updated (v-model). |
75
+
76
+ **Slots**
77
+
78
+ | Name | Type | Description |
79
+ | --- | --- | --- |
80
+ | `bodyCell` | `{ text: any; value: any; record: any; index: number; column: NTable.NColumn.IColumn<any>; }` | Custom render of a table body cell. |
81
+ | `customFilterDropdown` | `NTable.NColumn.IFilterDropdownProps<any>` | Custom filter dropdown of a column (used together with the column `customFilterDropdown`). |
82
+ | `customFilterIcon` | `{ filtered: boolean; column: NTable.NColumn.IColumn<any>; }` | Custom column filter icon. |
83
+ | `default` | `any` | Declarative column description with CdsTableColumn / CdsTableColumnGroup. |
84
+ | `emptyText` | `any` | Content shown when there is no data. |
85
+ | `expandedRowRender` | `{ record: any; index: number; indent: number; expanded: boolean; }` | Render of the expanded row content. |
86
+ | `expandIcon` | `NTable.NExpand.IRenderExpandIconProps<any>` | Custom row expand icon. |
87
+ | `footer` | `readonly any[]` | Table footer (the panel below the table). |
88
+ | `header` | `readonly any[]` | Table title (the panel above the table). |
89
+ | `headerCell` | `{ title: NTable.NColumn.TTitle<any>; column: NTable.NColumn.IColumn<any>; }` | Custom render of a table header cell. |
90
+ | `summary` | `{ pageData: readonly any[]; }` | Summary row of the table. |
91
+ | `toolbar` | `readonly any[]` | Table toolbar (the panel above the table). |
92
+
93
+ **Exposed**
94
+
95
+ | Name | Type | Description |
96
+ | --- | --- | --- |
97
+ | `table` | `any` | Reference to the internal table instance — gives access to its methods and state. |
98
+
99
+ ---
100
+
101
+ ## CdsTableColumn
102
+
103
+ **Slots**
104
+
105
+ | Name | Type | Description |
106
+ | --- | --- | --- |
107
+ | `default` | `{ value: any; text: any; record: any; index?: number \| undefined; renderIndex?: number \| undefined; column: NTable.NColumn.IColumn<any>; }` | Custom render of a column cell. |
108
+ | `filterIcon` | `{ filtered: boolean; column: NTable.NColumn.IColumn<any>; }` | Custom column filter icon. |
109
+ | `title` | `NTable.NColumn.ITitleProps<any>` | Column title. |
110
+
111
+ ---
112
+
113
+ ## CdsTableColumnGroup
114
+
115
+ **Slots**
116
+
117
+ | Name | Type | Description |
118
+ | --- | --- | --- |
119
+ | `default` | `any` | Columns of the group (CdsTableColumn). |
120
+ | `title` | `NTable.NColumn.ITitleProps<any>` | Title of the column group. |