@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,324 @@
1
+ # CdsButton — 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 button is the primary way to trigger an action: submit a form, open a modal, confirm a choice. Its appearance signals the role it plays: `primary` is the main action on the screen, `secondary` and `tertiary` are the supporting ones.
7
+
8
+ ## Appearance
9
+
10
+ The `appearance` prop sets the visual role of the button — from the most contrasting `primary` to `inverse` for dark backgrounds.
11
+
12
+ **Example (SFC):**
13
+
14
+ ```vue
15
+ <script setup lang="ts">
16
+ import { CdsButton } from '@central-design-system/components';
17
+
18
+ const { appearances } = CdsButton.constants;
19
+ </script>
20
+
21
+ <template>
22
+ <div class="flex flex-wrap justify-center gap-4">
23
+ <CdsButton v-for="appearance of appearances" :key="appearance" :text="appearance" :appearance="appearance" />
24
+ </div>
25
+ </template>
26
+ ```
27
+
28
+ ## Sizes
29
+
30
+ The `size` prop changes the height and the paddings of the button. The default size is `md`.
31
+
32
+ **Example (SFC):**
33
+
34
+ ```vue
35
+ <script setup lang="ts">
36
+ import { CdsButton } from '@central-design-system/components';
37
+
38
+ const { sizes } = CdsButton.constants;
39
+ </script>
40
+
41
+ <template>
42
+ <div class="flex flex-wrap justify-center gap-4">
43
+ <CdsButton v-for="size of sizes" :key="size" :text="'Button ' + size" :size="size" />
44
+ </div>
45
+ </template>
46
+ ```
47
+
48
+ ## Icons
49
+
50
+ The `prepend-icon` and `append-icon` props add an icon before and after the text from `text`.
51
+
52
+ **Example (SFC):**
53
+
54
+ ```vue
55
+ <script setup lang="ts">
56
+ import { CdsButton } from '@central-design-system/components';
57
+
58
+ const { appearances } = CdsButton.constants;
59
+ </script>
60
+
61
+ <template>
62
+ <div class="flex flex-wrap justify-center gap-4">
63
+ <CdsButton
64
+ v-for="appearance of appearances"
65
+ :key="appearance"
66
+ prepend-icon="add"
67
+ append-icon="settings"
68
+ :text="appearance"
69
+ :appearance="appearance"
70
+ />
71
+ </div>
72
+ </template>
73
+ ```
74
+
75
+ ## Icons
76
+
77
+ The `icon` prop turns the button into an icon button: the text is hidden and a square button with a single icon remains.
78
+
79
+ **Example (SFC):**
80
+
81
+ ```vue
82
+ <script setup lang="ts">
83
+ import { CdsButton } from '@central-design-system/components';
84
+
85
+ const { appearances } = CdsButton.constants;
86
+ </script>
87
+
88
+ <template>
89
+ <div class="flex flex-wrap justify-center gap-4">
90
+ <CdsButton
91
+ v-for="appearance of appearances"
92
+ :key="appearance"
93
+ icon="copy"
94
+ :text="appearance"
95
+ :appearance="appearance"
96
+ />
97
+ </div>
98
+ </template>
99
+ ```
100
+
101
+ ## Layout
102
+
103
+ The `block` prop stretches the button to the full width of its parent container.
104
+
105
+ **Example (SFC):**
106
+
107
+ ```vue
108
+ <script setup lang="ts">
109
+ import { CdsButton } from '@central-design-system/components';
110
+ </script>
111
+
112
+ <template>
113
+ <div class="flex flex-col m-auto items-start gap-4 w-[400px]">
114
+ <CdsButton block text="Block button" />
115
+ <CdsButton block prepend-icon="add" append-icon="settings" text="Block button with icons" />
116
+ <CdsButton text="Обычная кнопка" />
117
+ </div>
118
+ </template>
119
+ ```
120
+
121
+ ## Layout
122
+
123
+ The `stacked` prop places the icon above the text. Such a button is twice as tall as a regular one of the same size, and its minimum width equals its height.
124
+
125
+ **Example (SFC):**
126
+
127
+ ```vue
128
+ <script setup lang="ts">
129
+ import { CdsButton } from '@central-design-system/components';
130
+
131
+ const { sizes } = CdsButton.constants;
132
+ </script>
133
+
134
+ <template>
135
+ <div class="flex flex-wrap justify-center gap-4">
136
+ <CdsButton
137
+ v-for="size of sizes"
138
+ :key="size"
139
+ stacked
140
+ appearance="tertiary"
141
+ prepend-icon="settings"
142
+ :text="'Button ' + size"
143
+ :size="size"
144
+ />
145
+ </div>
146
+ </template>
147
+ ```
148
+
149
+ ## Layout
150
+
151
+ The `spaced` prop pushes the `prepend` and `append` slots to the edges of the button. The value decides on which side of the content the free space appears: `start` moves the content towards `append`, `end` moves it towards `prepend`, `both` keeps it centered. The effect shows up only when the button is wider than its content, so `spaced` usually goes together with `block` or an explicit width.
152
+
153
+ **Example (SFC):**
154
+
155
+ ```vue
156
+ <script setup lang="ts">
157
+ import { CdsButton } from '@central-design-system/components';
158
+ </script>
159
+
160
+ <template>
161
+ <div class="flex flex-col m-auto gap-4 w-[320px]">
162
+ <CdsButton
163
+ block
164
+ appearance="tertiary"
165
+ prepend-icon="add"
166
+ append-icon="settings"
167
+ spaced="start"
168
+ text="spaced=start"
169
+ />
170
+ <CdsButton block appearance="tertiary" prepend-icon="add" append-icon="settings" spaced="end" text="spaced=end" />
171
+ <CdsButton block appearance="tertiary" prepend-icon="add" append-icon="settings" spaced="both" text="spaced=both" />
172
+ <CdsButton block appearance="tertiary" prepend-icon="add" append-icon="settings" text="без spaced" />
173
+ </div>
174
+ </template>
175
+ ```
176
+
177
+ ## Slots
178
+
179
+ Slots replace the content coming from props when you need full control over the markup.
180
+
181
+ **Example (SFC):**
182
+
183
+ ```vue
184
+ <script setup lang="ts">
185
+ import { CdsButton, CdsIcon, CdsProgressCircle } from '@central-design-system/components';
186
+ import { ref } from 'vue';
187
+
188
+ const loading = ref(false);
189
+
190
+ const onClick = async () => {
191
+ loading.value = true;
192
+
193
+ await new Promise((resolve) =>
194
+ setTimeout(() => {
195
+ loading.value = false;
196
+ resolve(true);
197
+ }, 3000)
198
+ );
199
+ };
200
+ </script>
201
+
202
+ <template>
203
+ <div class="flex justify-center">
204
+ <CdsButton appearance="tertiary" :loading="loading" @click="onClick">
205
+ <template #prepend>
206
+ <CdsIcon icon="settings" color="green" />
207
+ </template>
208
+
209
+ <span class="text-purple-500 font-bold">Click me</span>
210
+
211
+ <template #append>
212
+ <CdsIcon icon="copy" color="red" />
213
+ </template>
214
+
215
+ <template #loader>
216
+ <CdsProgressCircle indeterminate color="yellow-light-500" />
217
+ </template>
218
+ </CdsButton>
219
+ </div>
220
+ </template>
221
+ ```
222
+
223
+ ## Link button
224
+
225
+ Pass `href` (or `to` with a `RouteLocationRaw` object from vue-router) and the button renders as an `a` tag with all the link attributes, keeping the look and the props of a button.
226
+
227
+ **Example (SFC):**
228
+
229
+ ```vue
230
+ <script setup lang="ts">
231
+ import { CdsButton } from '@central-design-system/components';
232
+ </script>
233
+
234
+ <template>
235
+ <div class="flex justify-center">
236
+ <CdsButton href="https://www.google.com" target="_blank" text="External Link" />
237
+ </div>
238
+ </template>
239
+ ```
240
+
241
+ ## Submitting a form
242
+
243
+ The primary button triggers the main action of the form. The `loading` prop shows the request in progress and guards against a double submit, while the neighboring `tertiary` button gives a way to back out.
244
+
245
+ **Example (SFC):**
246
+
247
+ ```vue
248
+ <script setup lang="ts">
249
+ import { CdsButton, CdsTextInput } from '@central-design-system/components';
250
+ import { ref } from 'vue';
251
+
252
+ const email = ref('');
253
+ const loading = ref(false);
254
+
255
+ const submit = async () => {
256
+ loading.value = true;
257
+
258
+ await new Promise((resolve) => setTimeout(resolve, 1500));
259
+
260
+ loading.value = false;
261
+ };
262
+ </script>
263
+
264
+ <template>
265
+ <form class="flex w-full max-w-md flex-col gap-4" @submit.prevent="submit">
266
+ <CdsTextInput v-model="email" label="Рабочая почта" placeholder="name@company.ru" hint="Пришлём ссылку для входа" />
267
+
268
+ <div class="flex gap-3">
269
+ <CdsButton type="submit" text="Отправить приглашение" :loading="loading" />
270
+ <CdsButton appearance="tertiary" text="Отмена" :disabled="loading" />
271
+ </div>
272
+ </form>
273
+ </template>
274
+ ```
275
+
276
+ ## Action bar
277
+
278
+ Repeating actions on a record — edit, duplicate, delete — fit nicely into a compact bar of icon buttons. The `icon` prop drops the text and `size="sm"` saves space. Do not forget `aria-label`: without text it stays the only name of the action.
279
+
280
+ **Example (SFC):**
281
+
282
+ ```vue
283
+ <script setup lang="ts">
284
+ import { CdsButton } from '@central-design-system/components';
285
+ </script>
286
+
287
+ <template>
288
+ <div class="flex w-full max-w-md items-center justify-between gap-4">
289
+ <span>Шаблон отчёта за квартал</span>
290
+
291
+ <div class="flex gap-2">
292
+ <CdsButton appearance="tertiary" size="sm" icon="edit" aria-label="Редактировать" />
293
+ <CdsButton appearance="tertiary" size="sm" icon="copy" aria-label="Дублировать" />
294
+ <CdsButton appearance="tertiary" size="sm" icon="delete" aria-label="Удалить" />
295
+ </div>
296
+ </div>
297
+ </template>
298
+ ```
299
+
300
+ ## Step navigation
301
+
302
+ In wizards and multi-step forms the primary button moves forward and the secondary one moves back. Chevron icons in `prepend-icon` and `append-icon` reinforce the direction, and `disabled` blocks moving past the first and the last step.
303
+
304
+ **Example (SFC):**
305
+
306
+ ```vue
307
+ <script setup lang="ts">
308
+ import { CdsButton } from '@central-design-system/components';
309
+ import { ref } from 'vue';
310
+
311
+ const step = ref(2);
312
+ const totalSteps = 4;
313
+ </script>
314
+
315
+ <template>
316
+ <div class="flex w-full max-w-md items-center justify-between m-auto gap-4">
317
+ <CdsButton appearance="secondary" prepend-icon="chevron-left" text="Назад" :disabled="step === 1" @click="step--" />
318
+
319
+ <span>Шаг {{ step }} из {{ totalSteps }}</span>
320
+
321
+ <CdsButton append-icon="chevron-right" text="Далее" :disabled="step === totalSteps" @click="step++" />
322
+ </div>
323
+ </template>
324
+ ```
@@ -0,0 +1,10 @@
1
+ # CdsButton — 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
+ | One primary action per screen; everything else stays less prominent. | Several primary buttons compete for attention, and the main action gets lost. |
9
+ | The label names the action and its outcome. | По «Да» и «ОК» не понятно, что именно произойдёт. |
10
+ | Use an icon button only for widely understood actions: edit, copy, delete. | A rare operation is impossible to guess from an icon alone — give the button a label. |
@@ -0,0 +1,190 @@
1
+ # CdsButton — 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
+ ## _CdsButton.variables.scss
8
+
9
+ ```scss
10
+ @use 'sass:map';
11
+ @use '../../../styles/tools';
12
+ @use '../../../styles/settings';
13
+
14
+ // ======================= Variables =======================
15
+ $button-border: var(--cds-border-100) solid !default;
16
+ $button-outline: var(--cds-border-200) solid !default;
17
+ $button-outline-offset: var(--cds-spacing-50) !default;
18
+ $button-border-radius: var(--cds-border-radius-200) !default;
19
+ $button-white-space: nowrap !default;
20
+ $button-content-transition: transform, opacity .2s settings.$standard-easing !default;
21
+ $button-stacked-gap: var(--cds-spacing-100) !default;
22
+
23
+ // ======================= Appearances =======================
24
+ $button-appearances: (
25
+ primary: (
26
+ default: (
27
+ 'background': rgb(var(--cds-color-brand-primary)),
28
+ 'border': rgb(var(--cds-color-brand-primary)),
29
+ 'content': rgb(var(--cds-color-content-on-dark)),
30
+ ),
31
+ hover: (
32
+ 'background': rgb(var(--cds-color-brand-primary-hover)),
33
+ 'border': rgb(var(--cds-color-brand-primary-hover)),
34
+ 'content': rgb(var(--cds-color-content-on-dark)),
35
+ ),
36
+ active: (
37
+ 'background': rgb(var(--cds-color-brand-primary-active)),
38
+ 'border': rgb(var(--cds-color-brand-primary-active)),
39
+ 'content': rgb(var(--cds-color-content-on-dark)),
40
+ ),
41
+ disabled: (
42
+ 'background': rgb(var(--cds-color-fill-disable)),
43
+ 'border': rgb(var(--cds-color-fill-disable)),
44
+ 'content': rgb(var(--cds-color-content-disable)),
45
+ ),
46
+ focus: (
47
+ 'outline': rgb(var(--cds-color-line-focus-outline))
48
+ ),
49
+ ),
50
+ secondary: (
51
+ default: (
52
+ 'background': rgb(var(--cds-color-brand-secondary)),
53
+ 'border': rgb(var(--cds-color-brand-secondary-border)),
54
+ 'content': rgb(var(--cds-color-brand-primary-content)),
55
+ ),
56
+ hover: (
57
+ 'background': rgb(var(--cds-color-brand-secondary-hover)),
58
+ 'border': rgb(var(--cds-color-brand-secondary-hover)),
59
+ 'content': rgb(var(--cds-color-brand-primary-content)),
60
+ ),
61
+ active: (
62
+ 'background': rgb(var(--cds-color-brand-secondary-active)),
63
+ 'border': rgb(var(--cds-color-brand-secondary-active)),
64
+ 'content': rgb(var(--cds-color-brand-primary-content)),
65
+ ),
66
+ disabled: (
67
+ 'background': rgb(var(--cds-color-fill-disable)),
68
+ 'border': rgb(var(--cds-color-fill-disable)),
69
+ 'content': rgb(var(--cds-color-content-disable)),
70
+ ),
71
+ focus: (
72
+ 'outline': rgb(var(--cds-color-line-focus-outline))
73
+ ),
74
+ ),
75
+ tertiary: (
76
+ default: (
77
+ 'background': rgb(var(--cds-color-fill-secondary)),
78
+ 'border': rgb(var(--cds-color-fill-secondary)),
79
+ 'content': rgb(var(--cds-color-content-primary)),
80
+ ),
81
+ hover: (
82
+ 'background': rgb(var(--cds-color-fill-secondary-hover)),
83
+ 'border': rgb(var(--cds-color-fill-secondary-hover)),
84
+ 'content': rgb(var(--cds-color-content-primary)),
85
+ ),
86
+ active: (
87
+ 'background': rgb(var(--cds-color-fill-secondary-active)),
88
+ 'border': rgb(var(--cds-color-fill-secondary-active)),
89
+ 'content': rgb(var(--cds-color-content-primary)),
90
+ ),
91
+ disabled: (
92
+ 'background': rgb(var(--cds-color-fill-disable)),
93
+ 'border': rgb(var(--cds-color-fill-disable)),
94
+ 'content': rgb(var(--cds-color-content-disable)),
95
+ ),
96
+ focus: (
97
+ 'outline': rgb(var(--cds-color-line-focus-outline))
98
+ ),
99
+ ),
100
+ inverse: (
101
+ default: (
102
+ 'background': rgb(var(--cds-color-fill-primary)),
103
+ 'border': transparent,
104
+ 'content': rgb(var(--cds-color-content-primary)),
105
+ ),
106
+ hover: (
107
+ 'background': rgb(var(--cds-color-fill-primary-hover)),
108
+ 'border': transparent,
109
+ 'content': rgb(var(--cds-color-content-primary)),
110
+ ),
111
+ active: (
112
+ 'background': rgb(var(--cds-color-fill-primary-active)),
113
+ 'border': transparent,
114
+ 'content': rgb(var(--cds-color-content-primary)),
115
+ ),
116
+ disabled: (
117
+ 'background': rgb(var(--cds-color-fill-disable)),
118
+ 'border': rgb(var(--cds-color-fill-disable)),
119
+ 'content': rgb(var(--cds-color-content-disable)),
120
+ ),
121
+ focus: (
122
+ 'outline': rgb(var(--cds-color-line-focus-outline))
123
+ ),
124
+ )
125
+ ) !default;
126
+
127
+ // ======================= Sizes =======================
128
+ $button-sizes: (
129
+ xs: (
130
+ 'height': tools.to-rem(20px),
131
+ 'padding': var(--cds-spacing-100),
132
+ 'gap': var(--cds-spacing-100),
133
+ 'font-size': '100',
134
+ 'loader': tools.to-rem(12px)
135
+ ),
136
+ sm: (
137
+ 'height': tools.to-rem(24px),
138
+ 'padding': var(--cds-spacing-200),
139
+ 'gap': var(--cds-spacing-200),
140
+ 'font-size': '200',
141
+ 'loader': tools.to-rem(16px)
142
+ ),
143
+ md: (
144
+ 'height': tools.to-rem(32px),
145
+ 'padding': var(--cds-spacing-400),
146
+ 'gap': var(--cds-spacing-200),
147
+ 'font-size': '200',
148
+ 'loader': tools.to-rem(20px)
149
+ ),
150
+ lg: (
151
+ 'height': tools.to-rem(48px),
152
+ 'padding': var(--cds-spacing-500),
153
+ 'gap': var(--cds-spacing-300),
154
+ 'font-size': '400',
155
+ 'loader': tools.to-rem(24px)
156
+ ),
157
+ xl: (
158
+ 'height': tools.to-rem(64px),
159
+ 'padding': var(--cds-spacing-600),
160
+ 'gap': var(--cds-spacing-400),
161
+ 'font-size': '600',
162
+ 'loader': tools.to-rem(32px)
163
+ ),
164
+ ) !default;
165
+
166
+ // ======================= Stacked sizes =======================
167
+ // Высота удвоена относительно обычной кнопки, чтобы вместить иконку над текстом.
168
+ $button-stacked-sizes: (
169
+ xs: (
170
+ 'height': tools.to-rem(40px),
171
+ 'padding': var(--cds-spacing-100)
172
+ ),
173
+ sm: (
174
+ 'height': tools.to-rem(48px),
175
+ 'padding': var(--cds-spacing-200)
176
+ ),
177
+ md: (
178
+ 'height': tools.to-rem(64px),
179
+ 'padding': var(--cds-spacing-300)
180
+ ),
181
+ lg: (
182
+ 'height': tools.to-rem(96px),
183
+ 'padding': var(--cds-spacing-400)
184
+ ),
185
+ xl: (
186
+ 'height': tools.to-rem(128px),
187
+ 'padding': var(--cds-spacing-500)
188
+ ),
189
+ ) !default;
190
+ ```
@@ -0,0 +1,27 @@
1
+ # CdsButtonGroup — API
2
+
3
+ > Generated from meta.json by `bun run generate:skill`. Do not edit manually.
4
+ > Examples: [examples.md](examples.md) · Tokens: [tokens.md](tokens.md)
5
+
6
+ A button group joins several [CdsButton](../cds-button/api.md) into one block: the buttons sit flush against each other, only the outer corners stay rounded, and shared props are set once on the group. This is how you present sets of related actions — a toolbar over a record or zoom controls.
7
+
8
+ ## CdsButtonGroup
9
+
10
+ **Props**
11
+
12
+ | Prop | Type | Default | Required | Description |
13
+ | --- | --- | --- | --- | --- |
14
+ | `appearance` | `"primary" \| "secondary" \| "tertiary" \| "inverse" \| undefined` | `'primary'` | no | Visual appearance of the component |
15
+ | `baseColor` | `string \| undefined` | — | no | Color of the component in its inactive state |
16
+ | `color` | `string \| undefined` | — | no | Component color |
17
+ | `direction` | `"horizontal" \| "vertical" \| undefined` | `'horizontal'` | no | Switches the component between horizontal and vertical layout. |
18
+ | `divided` | `boolean \| undefined` | — | no | Adds dividers between the buttons of the group. |
19
+ | `size` | `number \| "xs" \| "sm" \| "md" \| "lg" \| "xl" \| undefined` | `'md'` | no | Size of the component |
20
+ | `tag` | `string \| JSXComponent<any> \| undefined` | `'div'` | no | Custom HTML tag or component to render |
21
+ | `theme` | `string \| undefined` | — | no | Component theme |
22
+
23
+ **Slots**
24
+
25
+ | Name | Type | Description |
26
+ | --- | --- | --- |
27
+ | `default` | `any` | Buttons of the group. |
@@ -0,0 +1,33 @@
1
+ # CdsButtonGroup — 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 button group joins several [CdsButton](../cds-button/api.md) into one block: the buttons sit flush against each other, only the outer corners stay rounded, and shared props are set once on the group. This is how you present sets of related actions — a toolbar over a record or zoom controls.
7
+
8
+ ## Variations
9
+
10
+ The group passes the `appearance`, `size` and `color` props down to every button inside — you do not need to repeat them on each button. The `divided` prop adds dividers between the buttons, and `direction="vertical"` turns the group into a column.
11
+
12
+ **Example (SFC):**
13
+
14
+ ```vue
15
+ <script setup lang="ts">
16
+ import { CdsButton, CdsButtonGroup } from '@central-design-system/components';
17
+ </script>
18
+
19
+ <template>
20
+ <div class="flex flex-wrap items-center justify-center gap-4">
21
+ <CdsButtonGroup appearance="tertiary" divided>
22
+ <CdsButton text="Копировать" prepend-icon="copy" />
23
+ <CdsButton text="Переместить" prepend-icon="insert" />
24
+ <CdsButton text="Удалить" prepend-icon="delete" />
25
+ </CdsButtonGroup>
26
+
27
+ <CdsButtonGroup appearance="secondary" direction="vertical" divided>
28
+ <CdsButton icon="plus" aria-label="Приблизить" />
29
+ <CdsButton icon="minus" aria-label="Отдалить" />
30
+ </CdsButtonGroup>
31
+ </div>
32
+ </template>
33
+ ```
@@ -0,0 +1,17 @@
1
+ # CdsButtonGroup — 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
+ ## _CdsButtonGroup.variables.scss
8
+
9
+ ```scss
10
+ @use '../../../styles/settings';
11
+ @use '../../CdsButton/styles/CdsButton.variables' as button;
12
+
13
+ $button-group-border-radius: button.$button-border-radius !default;
14
+ $button-group-divider-border-width: var(--cds-border-100) !default;
15
+ $button-group-divider-border-style: settings.$border-style-root !default;
16
+ $button-group-divider-border-color: rgb(var(--cds-color-line-tertiary)) !default;
17
+ ```
@@ -0,0 +1,51 @@
1
+ # CdsButtonToggle — 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 toggle group turns [CdsButton](../cds-button/api.md) into a switch: the pressed button stays selected, and the choice is available through `v-model`. Use it for modes and filters that are visible right away — the layout of a list, the period of a report, formatting options.
7
+
8
+ ## CdsButtonToggle
9
+
10
+ **Props**
11
+
12
+ | Prop | Type | Default | Required | Description |
13
+ | --- | --- | --- | --- | --- |
14
+ | `activeColor` | `string \| undefined` | — | no | Color of the component in its active state |
15
+ | `appearance` | `"primary" \| "secondary" \| "tertiary" \| "inverse" \| undefined` | `'primary'` | no | Visual appearance of the component |
16
+ | `baseColor` | `string \| undefined` | — | no | Color of the component in its inactive state |
17
+ | `color` | `string \| undefined` | — | no | Component color |
18
+ | `direction` | `"horizontal" \| "vertical" \| undefined` | `'horizontal'` | no | Switches the component between horizontal and vertical layout. |
19
+ | `disabled` | `boolean \| null \| undefined` | `null` | no | Disabled state |
20
+ | `divided` | `boolean \| undefined` | — | no | Adds dividers between the buttons of the group. |
21
+ | `mandatory` | `boolean \| "force" \| undefined` | — | no | Requires at least one item to stay selected |
22
+ | `max` | `number \| undefined` | — | no | Maximum number of items that can be selected |
23
+ | `modelValue` | `any` | — | no | Value of the selected items of the group |
24
+ | `multiple` | `boolean \| undefined` | — | no | Allows selecting several items at once |
25
+ | `required` | `boolean \| "force" \| undefined` | — | no | Requires at least one item to stay selected |
26
+ | `selectedClass` | `string \| undefined` | — | no | CSS class applied in the selected state |
27
+ | `size` | `number \| "xs" \| "sm" \| "md" \| "lg" \| "xl" \| undefined` | `'md'` | no | Size of the component |
28
+ | `tag` | `string \| JSXComponent<any> \| undefined` | `'div'` | no | Custom HTML tag or component to render |
29
+ | `theme` | `string \| undefined` | — | no | Component theme |
30
+
31
+ **Events**
32
+
33
+ | Name | Type | Description |
34
+ | --- | --- | --- |
35
+ | `update:modelValue` | `[value: unknown]` | Fires when the selected value changes. |
36
+
37
+ **Slots**
38
+
39
+ | Name | Type | Description |
40
+ | --- | --- | --- |
41
+ | `default` | `CdsButtonToggleSlotProps` | Buttons of the toggle group. The slot props expose the state of the group (selection, navigation). |
42
+
43
+ **Exposed**
44
+
45
+ | Name | Type | Description |
46
+ | --- | --- | --- |
47
+ | `isSelected` | `(id: string) => boolean` | Checks whether the button with this id is selected |
48
+ | `next` | `() => void` | Selects the next button |
49
+ | `prev` | `() => void` | Selects the previous button |
50
+ | `select` | `(id: string, value: boolean) => void` | Selects a button by its id |
51
+ | `selected` | `readonly string[]` | Ids of the selected buttons |