@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,10 @@
1
+ # CdsSkeletonLoader — 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 skeleton repeats the structure of the future content: a heading, lines of text, buttons. | A gray rectangle instead of a structure does not tell what will appear in its place. |
9
+ | As many bones as there will be items — the list does not jump after loading. | Eight skeleton rows for three records: the content arrives and the height collapses. |
10
+ | The shimmer animation shows that the loading is happening right now. | A static boilerplate on a live screen reads as broken layout — it is for mockups only. |
@@ -0,0 +1,62 @@
1
+ # CdsSkeletonLoader — 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
+ ## _CdsSkeletonLoader.variables.scss
8
+
9
+ ```scss
10
+ @use '../../../styles/tools';
11
+
12
+ $skeleton-loader-background: rgb(var(--cds-color-fill-secondary)) !default;
13
+ $skeleton-loader-text-background: rgb(var(--cds-color-fill-secondary-active)) !default;
14
+ $skeleton-loader-border-radius: var(--cds-border-radius-300) !default;
15
+ $skeleton-loader-loading-animation: loading 1.5s infinite !default;
16
+ $skeleton-loader-bone-background: linear-gradient(
17
+ 90deg,
18
+ rgb(255 255 255 / 0%),
19
+ rgb(255 255 255 / 30%),
20
+ rgb(255 255 255 / 0%)
21
+ ) !default;
22
+ $skeleton-loader-loading-transform: translateX(-100%) !default;
23
+ $skeleton-loader-gutter: var(--cds-spacing-300) !default;
24
+ $skeleton-loader-avatar-margin: var(--cds-spacing-200) var(--cds-spacing-400) !default;
25
+ $skeleton-loader-avatar-width: tools.to-rem(40px) !default;
26
+ $skeleton-loader-avatar-height: tools.to-rem(40px) !default;
27
+ $skeleton-loader-button-border-radius: var(--cds-border-radius-200) !default;
28
+ $skeleton-loader-button-height: tools.to-rem(32px) !default;
29
+ $skeleton-loader-button-width: tools.to-rem(96px) !default;
30
+ $skeleton-loader-chip-border-radius: var(--cds-border-radius-300) !default;
31
+ $skeleton-loader-chip-height: tools.to-rem(24px) !default;
32
+ $skeleton-loader-chip-width: tools.to-rem(64px) !default;
33
+ $skeleton-loader-date-picker-width: tools.to-rem(248px) !default;
34
+ $skeleton-loader-date-picker-calendar-margin: var(--cds-spacing-50) !default;
35
+ $skeleton-loader-date-picker-border-radius: inherit !default;
36
+ $skeleton-loader-date-picker-days-margin: var(--cds-spacing-50) !default;
37
+ $skeleton-loader-date-picker-heading-max-width: tools.to-rem(248px) !default;
38
+ $skeleton-loader-date-picker-heading-width: 40% !default;
39
+ $skeleton-loader-date-picker-text-max-width: tools.to-rem(88px) !default;
40
+ $skeleton-loader-date-picker-text-width: 20% !default;
41
+ $skeleton-loader-date-picker-day-width: tools.to-rem(32px) !default;
42
+ $skeleton-loader-date-picker-day-height: tools.to-rem(32px) !default;
43
+ $skeleton-loader-divider-border-radius: 1px !default;
44
+ $skeleton-loader-divider-height: 1px !default;
45
+ $skeleton-loader-heading-border-radius: tools.to-rem(12px) !default;
46
+ $skeleton-loader-heading-height: tools.to-rem(24px) !default;
47
+ $skeleton-loader-image-height: tools.to-rem(150px) !default;
48
+ $skeleton-loader-subtitle-max-width: 70% !default;
49
+ $skeleton-loader-subtitle-text-height: tools.to-rem(16px) !default;
50
+ $skeleton-loader-subtitle-text-border-radius: tools.to-rem(8px) !default;
51
+ $skeleton-loader-text-border-radius: tools.to-rem(6px) !default;
52
+ $skeleton-loader-text-height: tools.to-rem(8px) !default;
53
+ $skeleton-loader-text-margin: var(--cds-spacing-200) !default;
54
+ $skeleton-loader-text-two-text-margin-top: calc(var(--cds-spacing-100) * -1) !default;
55
+ $skeleton-loader-text-two-text-max-width: 50% !default;
56
+ $skeleton-loader-text-three-text-max-width: 70% !default;
57
+ $skeleton-loader-table-thead-width: 10% !default;
58
+ $skeleton-loader-table-row-margin: 0 var(--cds-spacing-200) !default;
59
+ $skeleton-loader-table-row-text-margin: var(--cds-spacing-200) !default;
60
+ $skeleton-loader-table-cell-height: tools.to-rem(12px) !default;
61
+ $skeleton-loader-table-cell-width: tools.to-rem(88px) !default;
62
+ ```
@@ -0,0 +1,76 @@
1
+ # CdsSlideGroup — 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 slide group lays a set of elements out in a single scrollable line: when the elements do not fit, the strip is paged with arrows. It can also drive a selection through `v-model` — [CdsTabs](../cds-tabs/api.md) and [CdsTagGroup](../cds-tag-group/api.md) are built on the slide group.
7
+
8
+ Family: [CdsSlideGroup](#cdsslidegroup) + subcomponents: [CdsSlideGroupItem](#cdsslidegroupitem).
9
+
10
+ ## CdsSlideGroup
11
+
12
+ **Props**
13
+
14
+ | Prop | Type | Default | Required | Description |
15
+ | --- | --- | --- | --- | --- |
16
+ | `centerActive` | `boolean \| undefined` | — | no | Forces the active component to be aligned to the center. |
17
+ | `contentClass` | `any` | — | no | Adds classes to the slide group container |
18
+ | `contentStyle` | `any` | — | no | Adds inline styles to the slide group container |
19
+ | `direction` | `"horizontal" \| "vertical" \| undefined` | `'horizontal'` | no | Switches the component between horizontal and vertical layout. |
20
+ | `disabled` | `boolean \| null \| undefined` | `null` | no | Disabled state |
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
+ | `mobile` | `boolean \| null \| undefined` | `null` | no | Determines the display mode of the component: `true` renders it in mobile mode, `false` in desktop mode, `null` makes the mode depend on the current breakpoint. |
24
+ | `mobileBreakpoint` | `number \| "xs" \| "sm" \| "md" \| "lg" \| "xl" \| undefined` | — | no | Sets the breakpoint at which the component switches to mobile mode. Accepts a number (for example, 600) or the name of a predefined breakpoint (`xs`, `sm`, `md`, `lg`, `xl`). |
25
+ | `modelValue` | `any` | — | no | Value of the selected items of the group |
26
+ | `multiple` | `boolean \| undefined` | — | no | Allows selecting several items at once |
27
+ | `nextIcon` | `IconValue \| undefined` | `'next'` | no | Icon for the “next” button. |
28
+ | `prevIcon` | `IconValue \| undefined` | `'prev'` | no | Icon for the “previous” button. |
29
+ | `required` | `boolean \| "force" \| undefined` | — | no | Requires at least one item to stay selected |
30
+ | `scrollToActive` | `boolean \| undefined` | `true` | no | When `true`, the container scrolls the active component into view whenever it changes. |
31
+ | `selectedClass` | `string \| undefined` | `'cds-slide-group-item--active'` | no | CSS class applied in the selected state |
32
+ | `showArrows` | `string \| boolean \| undefined` | — | no | Changes how the arrows are shown. By default the arrows appear on desktop devices when the container overflows and stay hidden on mobile devices. `true` also shows them on mobile on overflow, `desktop` always shows them on desktop, `mobile` always on mobile, `always` on both, and `never` disables the arrows. |
33
+ | `tag` | `string \| JSXComponent<any> \| undefined` | `'div'` | no | Custom HTML tag or component to render |
34
+
35
+ **Slots**
36
+
37
+ | Name | Type | Description |
38
+ | --- | --- | --- |
39
+ | `default` | `SlideGroupSlot` | Slot for the CdsSlideGroupItem components |
40
+ | `next` | `SlideGroupSlot` | Slot for the "next" button. |
41
+ | `prev` | `SlideGroupSlot` | Slot for the "previous" button. |
42
+
43
+ **Exposed**
44
+
45
+ | Name | Type | Description |
46
+ | --- | --- | --- |
47
+ | `focus` | `(location?: "next" \| "prev" \| "first" \| "last" \| undefined) => void` | Focuses the component |
48
+ | `hasNext` | `boolean` | Returns true if there are elements after the current index. |
49
+ | `hasPrev` | `boolean` | Returns true if there are elements before the current index. |
50
+ | `scrollOffset` | `number` | Returns the scroll offset of the element |
51
+ | `scrollTo` | `(location: "next" \| "prev") => void` | Scrolls to the element by its index |
52
+ | `selected` | `readonly string[]` | Returns the index of the selected element |
53
+
54
+ ---
55
+
56
+ ## CdsSlideGroupItem
57
+
58
+ **Props**
59
+
60
+ | Prop | Type | Default | Required | Description |
61
+ | --- | --- | --- | --- | --- |
62
+ | `disabled` | `boolean \| null \| undefined` | `null` | no | Disabled state |
63
+ | `selectedClass` | `string \| undefined` | — | no | CSS class applied in the selected state |
64
+ | `value` | `any` | — | no | Value of the component within the group |
65
+
66
+ **Events**
67
+
68
+ | Name | Type | Description |
69
+ | --- | --- | --- |
70
+ | `group:selected` | `[value: { value: boolean; }]` | Fires when an element is selected inside the group. |
71
+
72
+ **Slots**
73
+
74
+ | Name | Type | Description |
75
+ | --- | --- | --- |
76
+ | `default` | `{ isSelected: boolean; select: (value: boolean) => void; toggle: () => void; selectedClass: false \| (string \| undefined)[]; }` | Slot for the content |
@@ -0,0 +1,304 @@
1
+ # CdsSlideGroup — usage examples
2
+
3
+ > Extracted from Storybook stories (`docs/*.stories.ts`) by `bun run generate:skill`. Do not edit manually.
4
+ > The full component contract is in [api.md](api.md). `v-bind="args"` in templates refers to the props from the **Args** block of the corresponding example.
5
+
6
+ A slide group lays a set of elements out in a single scrollable line: when the elements do not fit, the strip is paged with arrows. It can also drive a selection through `v-model` — [CdsTabs](../cds-tabs/api.md) and [CdsTagGroup](../cds-tag-group/api.md) are built on the slide group.
7
+
8
+ ## Scrolling and arrows
9
+
10
+ By default the arrows appear on a desktop when the elements do not fit into the container; on mobile the strip is scrolled with a finger without arrows. The `show-arrows` prop changes this behavior: `true` shows the arrows on overflow and on mobile, `desktop` and `mobile` always show them on the matching devices, `always` always shows them, `never` never does.
11
+
12
+ **Example (SFC):**
13
+
14
+ ```vue
15
+ <script setup lang="ts">
16
+ import { CdsButton, CdsSlideGroup, CdsSlideGroupItem } from '@central-design-system/components';
17
+ </script>
18
+
19
+ <template>
20
+ <div class="m-auto max-w-[520px]">
21
+ <CdsSlideGroup show-arrows>
22
+ <CdsSlideGroupItem v-for="n in 15" :key="n">
23
+ <CdsButton appearance="tertiary" class="m-1" :text="`Элемент ${n}`" />
24
+ </CdsSlideGroupItem>
25
+ </CdsSlideGroup>
26
+ </div>
27
+ </template>
28
+ ```
29
+
30
+ ## Selecting elements
31
+
32
+ Wrap the elements into `CdsSlideGroupItem` and the group starts driving the selection: `v-model` holds the value of the selected element from its `value` prop. `CdsSlideGroupItem` itself renders nothing — its slot receives `isSelected` and `toggle`, and how to show the selected state is up to you. The `mandatory` prop forbids clearing the last selection.
33
+
34
+ **Example (SFC):**
35
+
36
+ ```vue
37
+ <script setup lang="ts">
38
+ import { CdsButton, CdsSlideGroup, CdsSlideGroupItem } from '@central-design-system/components';
39
+ import { ref } from 'vue';
40
+
41
+ const selected = ref(1);
42
+ </script>
43
+
44
+ <template>
45
+ <div class="m-auto max-w-[520px]">
46
+ <CdsSlideGroup v-model="selected" mandatory show-arrows>
47
+ <CdsSlideGroupItem v-for="n in 12" :key="n" v-slot="{ isSelected, toggle }" :value="n">
48
+ <CdsButton
49
+ :appearance="isSelected ? 'primary' : 'tertiary'"
50
+ class="m-1"
51
+ :text="`Элемент ${n}`"
52
+ @click="toggle"
53
+ />
54
+ </CdsSlideGroupItem>
55
+ </CdsSlideGroup>
56
+ </div>
57
+ </template>
58
+ ```
59
+
60
+ ## Selecting elements
61
+
62
+ The `multiple` prop allows selecting several elements — `v-model` becomes an array, and `max` limits the number of selected ones.
63
+
64
+ **Example (SFC):**
65
+
66
+ ```vue
67
+ <script setup lang="ts">
68
+ import { CdsButton, CdsSlideGroup, CdsSlideGroupItem } from '@central-design-system/components';
69
+ import { ref } from 'vue';
70
+
71
+ const selected = ref([1, 3]);
72
+ </script>
73
+
74
+ <template>
75
+ <div class="m-auto max-w-[520px]">
76
+ <CdsSlideGroup v-model="selected" multiple :max="3" show-arrows>
77
+ <CdsSlideGroupItem v-for="n in 12" :key="n" v-slot="{ isSelected, toggle }" :value="n">
78
+ <CdsButton
79
+ :appearance="isSelected ? 'primary' : 'tertiary'"
80
+ class="m-1"
81
+ :text="`Элемент ${n}`"
82
+ @click="toggle"
83
+ />
84
+ </CdsSlideGroupItem>
85
+ </CdsSlideGroup>
86
+ </div>
87
+ </template>
88
+ ```
89
+
90
+ ## The active element in the center
91
+
92
+ When the selection changes, the strip scrolls to the active element itself — that is the job of `scroll-to-active`, which is on by default. The `center-active` prop additionally keeps the active element in the center of the container.
93
+
94
+ **Example (SFC):**
95
+
96
+ ```vue
97
+ <script setup lang="ts">
98
+ import { CdsButton, CdsSlideGroup, CdsSlideGroupItem } from '@central-design-system/components';
99
+ import { ref } from 'vue';
100
+
101
+ const selected = ref(10);
102
+ </script>
103
+
104
+ <template>
105
+ <div class="m-auto max-w-[520px]">
106
+ <CdsSlideGroup v-model="selected" center-active mandatory show-arrows>
107
+ <CdsSlideGroupItem v-for="n in 20" :key="n" v-slot="{ isSelected, toggle }" :value="n">
108
+ <CdsButton
109
+ :appearance="isSelected ? 'primary' : 'tertiary'"
110
+ class="m-1"
111
+ :text="`Элемент ${n}`"
112
+ @click="toggle"
113
+ />
114
+ </CdsSlideGroupItem>
115
+ </CdsSlideGroup>
116
+ </div>
117
+ </template>
118
+ ```
119
+
120
+ ## Vertical group
121
+
122
+ The `direction="vertical"` prop turns the strip into a column — limit its height with `max-height` on the group itself.
123
+
124
+ **Example (SFC):**
125
+
126
+ ```vue
127
+ <script setup lang="ts">
128
+ import { CdsButton, CdsSlideGroup, CdsSlideGroupItem } from '@central-design-system/components';
129
+ </script>
130
+
131
+ <template>
132
+ <div class="m-auto flex justify-center">
133
+ <CdsSlideGroup direction="vertical" show-arrows class="max-h-[220px]">
134
+ <CdsSlideGroupItem v-for="n in 12" :key="n">
135
+ <CdsButton appearance="tertiary" class="m-1" :text="`Элемент ${n}`" />
136
+ </CdsSlideGroupItem>
137
+ </CdsSlideGroup>
138
+ </div>
139
+ </template>
140
+ ```
141
+
142
+ ## Slots
143
+
144
+ All the slots receive the `prev`, `next`, `select` and `isSelected` methods. The click on the area of an arrow is handled by the group itself, so it is enough to put the visuals only into `prev` / `next`. The icons of the default arrows are changed without slots — with the `prev-icon` and `next-icon` props.
145
+
146
+ **Example (SFC):**
147
+
148
+ ```vue
149
+ <script setup lang="ts">
150
+ import { CdsButton, CdsFunctionalButton, CdsSlideGroup, CdsSlideGroupItem } from '@central-design-system/components';
151
+ </script>
152
+
153
+ <template>
154
+ <div class="m-auto max-w-[520px]">
155
+ <CdsSlideGroup show-arrows="always">
156
+ <template #prev>
157
+ <CdsFunctionalButton icon="arrow-left" aria-label="Назад" />
158
+ </template>
159
+
160
+ <CdsSlideGroupItem v-for="n in 15" :key="n">
161
+ <CdsButton appearance="tertiary" class="m-1" :text="`Элемент ${n}`" />
162
+ </CdsSlideGroupItem>
163
+
164
+ <template #next>
165
+ <CdsFunctionalButton icon="arrow-right" aria-label="Вперёд" />
166
+ </template>
167
+ </CdsSlideGroup>
168
+ </div>
169
+ </template>
170
+ ```
171
+
172
+ ## Booking an appointment
173
+
174
+ Two slide groups with a selection: the strip of days with `center-active` keeps the selected date in the center, and the strip of times is more compact — with `size="sm"` buttons. Both lists use `mandatory`: a booking always has a selected date and time.
175
+
176
+ **Example (SFC):**
177
+
178
+ ```vue
179
+ <script setup lang="ts">
180
+ import { CdsButton, CdsSlideGroup, CdsSlideGroupItem } from '@central-design-system/components';
181
+ import { computed, ref } from 'vue';
182
+
183
+ const days = [
184
+ { value: '04.08', label: 'Пн, 4 авг' },
185
+ { value: '05.08', label: 'Вт, 5 авг' },
186
+ { value: '06.08', label: 'Ср, 6 авг' },
187
+ { value: '07.08', label: 'Чт, 7 авг' },
188
+ { value: '08.08', label: 'Пт, 8 авг' },
189
+ { value: '11.08', label: 'Пн, 11 авг' },
190
+ { value: '12.08', label: 'Вт, 12 авг' },
191
+ { value: '13.08', label: 'Ср, 13 авг' }
192
+ ];
193
+ const times = ['09:00', '10:00', '11:00', '12:00', '14:00', '15:00', '16:00', '17:00'];
194
+
195
+ const day = ref('06.08');
196
+ const time = ref('11:00');
197
+
198
+ const dayLabel = computed(() => days.find((item) => item.value === day.value)?.label);
199
+ </script>
200
+
201
+ <template>
202
+ <div class="m-auto flex w-full max-w-[440px] flex-col gap-2">
203
+ <CdsSlideGroup v-model="day" center-active mandatory show-arrows>
204
+ <CdsSlideGroupItem v-for="item in days" :key="item.value" v-slot="{ isSelected, toggle }" :value="item.value">
205
+ <CdsButton :appearance="isSelected ? 'primary' : 'tertiary'" class="m-1" :text="item.label" @click="toggle" />
206
+ </CdsSlideGroupItem>
207
+ </CdsSlideGroup>
208
+
209
+ <CdsSlideGroup v-model="time" mandatory show-arrows>
210
+ <CdsSlideGroupItem v-for="item in times" :key="item" v-slot="{ isSelected, toggle }" :value="item">
211
+ <CdsButton
212
+ :appearance="isSelected ? 'primary' : 'secondary'"
213
+ size="sm"
214
+ class="m-1"
215
+ :text="item"
216
+ @click="toggle"
217
+ />
218
+ </CdsSlideGroupItem>
219
+ </CdsSlideGroup>
220
+
221
+ <p class="m-0 text-center text-200 text-content-secondary">Встреча: {{ dayLabel }} в {{ time }}</p>
222
+ </div>
223
+ </template>
224
+ ```
225
+
226
+ ## A strip of documents
227
+
228
+ The slide group works without a selection too — as a regular scrollable strip. The cards go straight into the `default` slot without `CdsSlideGroupItem`, and the arrows page the strip by the width of the visible area.
229
+
230
+ **Example (SFC):**
231
+
232
+ ```vue
233
+ <script setup lang="ts">
234
+ import { CdsIcon, CdsSlideGroup } from '@central-design-system/components';
235
+
236
+ const documents = [
237
+ { title: 'Договор поставки', date: '28.07.2026' },
238
+ { title: 'Спецификация № 4', date: '25.07.2026' },
239
+ { title: 'Акт сверки', date: '21.07.2026' },
240
+ { title: 'Счёт № 1042', date: '18.07.2026' },
241
+ { title: 'Протокол разногласий', date: '14.07.2026' },
242
+ { title: 'Коммерческое предложение', date: '10.07.2026' }
243
+ ];
244
+ </script>
245
+
246
+ <template>
247
+ <div class="m-auto max-w-[520px]">
248
+ <CdsSlideGroup show-arrows>
249
+ <div
250
+ v-for="document in documents"
251
+ :key="document.title"
252
+ class="m-1 flex w-[160px] flex-col gap-1 rounded-200 bg-surface-secondary p-3"
253
+ >
254
+ <CdsIcon icon="doc" />
255
+ <span class="text-200">{{ document.title }}</span>
256
+ <span class="text-100 text-content-secondary">{{ document.date }}</span>
257
+ </div>
258
+ </CdsSlideGroup>
259
+ </div>
260
+ </template>
261
+ ```
262
+
263
+ ## A formatting bar
264
+
265
+ A toolbar inside a narrow container: icon buttons with `aria-label`, `multiple` allows turning several formats on at once, and the `show-arrows="always"` arrows page through the tools that did not fit.
266
+
267
+ **Example (SFC):**
268
+
269
+ ```vue
270
+ <script setup lang="ts">
271
+ import { CdsButton, CdsSlideGroup, CdsSlideGroupItem } from '@central-design-system/components';
272
+ import { ref } from 'vue';
273
+
274
+ const formats = ref(['bold']);
275
+
276
+ const tools = [
277
+ { value: 'bold', icon: 'bold', label: 'Жирный' },
278
+ { value: 'italic', icon: 'italic', label: 'Курсив' },
279
+ { value: 'underline', icon: 'underline', label: 'Подчёркнутый' },
280
+ { value: 'highlight', icon: 'highlight', label: 'Маркер' },
281
+ { value: 'list', icon: 'list', label: 'Список' },
282
+ { value: 'link', icon: 'link', label: 'Ссылка' },
283
+ { value: 'formula', icon: 'formula', label: 'Формула' },
284
+ { value: 'insert', icon: 'insert', label: 'Вставка' }
285
+ ];
286
+ </script>
287
+
288
+ <template>
289
+ <div class="m-auto max-w-[280px]">
290
+ <CdsSlideGroup v-model="formats" multiple show-arrows="always">
291
+ <CdsSlideGroupItem v-for="tool in tools" :key="tool.value" v-slot="{ isSelected, toggle }" :value="tool.value">
292
+ <CdsButton
293
+ :appearance="isSelected ? 'primary' : 'tertiary'"
294
+ size="sm"
295
+ class="m-1"
296
+ :icon="tool.icon"
297
+ :aria-label="tool.label"
298
+ @click="toggle"
299
+ />
300
+ </CdsSlideGroupItem>
301
+ </CdsSlideGroup>
302
+ </div>
303
+ </template>
304
+ ```
@@ -0,0 +1,9 @@
1
+ # CdsSlideGroup — 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 arrows hint that the strip scrolls and that there are more elements than visible. | Without arrows a cut-off element is the only hint of scrolling, and it is easy to miss. |
9
+ | Elements of the same kind and size page predictably and read as a single row. | A mix of components of different sizes makes the strip ragged — it no longer reads as one list. |
@@ -0,0 +1,11 @@
1
+ # CdsSlideGroup — 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
+ ## _CdsSlideGroup.variables.scss
8
+
9
+ ```scss
10
+ $slide-group-prev-basis: 32px !default;
11
+ ```
@@ -0,0 +1,88 @@
1
+ # CdsSlideView — 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 slide view shows one slide out of a set and switches them with a shift animation: arrows, swipes and `v-model` page forward and backward. It is the base for carousels and step-by-step interfaces — [CdsCarousel](../cds-carousel/api.md) is built on the slide view.
7
+
8
+ Family: [CdsSlideView](#cdsslideview) + subcomponents: [CdsSlideViewItem](#cdsslideviewitem).
9
+
10
+ ## CdsSlideView
11
+
12
+ **Props**
13
+
14
+ | Prop | Type | Default | Required | Description |
15
+ | --- | --- | --- | --- | --- |
16
+ | `continuous` | `boolean \| undefined` | — | no | Loops the navigation: from the last slide you move to the first one and back |
17
+ | `crossfade` | `boolean \| undefined` | — | no | Slides change with a smooth crossfade instead of a shift |
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
+ | `mandatory` | `boolean \| "force" \| undefined` | — | no | Requires at least one item to stay selected |
21
+ | `max` | `number \| undefined` | — | no | Maximum number of items that can be selected |
22
+ | `modelValue` | `any` | — | no | Value of the selected items of the group |
23
+ | `multiple` | `boolean \| undefined` | — | no | Allows selecting several items at once |
24
+ | `nextIcon` | `IconValue \| undefined` | `'next'` | no | Icon of the button that moves to the next slide |
25
+ | `prevIcon` | `IconValue \| undefined` | `'prev'` | no | Icon of the button that moves to the previous slide |
26
+ | `required` | `boolean \| "force" \| undefined` | — | no | Requires at least one item to stay selected |
27
+ | `reverse` | `boolean \| undefined` | — | no | Inverts the direction of the transition animation between slides |
28
+ | `selectedClass` | `string \| undefined` | — | no | CSS class applied in the selected state |
29
+ | `showArrows` | `string \| boolean \| undefined` | — | no | Shows the navigation arrows. `'hover'` — only while the pointer is over the component |
30
+ | `tag` | `string \| JSXComponent<any> \| undefined` | `'div'` | no | Custom HTML tag or component to render |
31
+ | `theme` | `string \| undefined` | — | no | Component theme |
32
+ | `touch` | `boolean \| TouchHandlers \| undefined` | — | no | Controls swipe navigation: `false` turns the gestures off, an object sets your own touch handlers |
33
+ | `transitionDuration` | `number \| undefined` | — | no | Duration of the transition animation between slides, in milliseconds |
34
+ | `verticalArrows` | `boolean \| "left" \| "right" \| undefined` | — | no | Places the navigation arrows vertically: `'left'` or `'right'` — the side, `true` — the default side |
35
+
36
+ **Events**
37
+
38
+ | Name | Type | Description |
39
+ | --- | --- | --- |
40
+ | `update:modelValue` | `[]` | Fires when the active slide changes. Passes the value of the new active slide |
41
+
42
+ **Slots**
43
+
44
+ | Name | Type | Description |
45
+ | --- | --- | --- |
46
+ | `additional` | `{ group: GroupProvide; }` | Extra content above the slides — indicator dots or your own navigation, for example |
47
+ | `default` | `{ group: GroupProvide; }` | Slides. The slot props carry the group state for controlling the active slide |
48
+ | `next` | `{ props: ControlProps; }` | Button that moves to the next slide. The slot props are ready to bind to your own button |
49
+ | `prev` | `{ props: ControlProps; }` | Button that moves to the previous slide. The slot props are ready to bind to your own button |
50
+
51
+ **Exposed**
52
+
53
+ | Name | Type | Description |
54
+ | --- | --- | --- |
55
+ | `group` | `GroupProvide` | State of the slide group: the list of elements, the active slide and the switching methods. |
56
+
57
+ ---
58
+
59
+ ## CdsSlideViewItem
60
+
61
+ **Props**
62
+
63
+ | Prop | Type | Default | Required | Description |
64
+ | --- | --- | --- | --- | --- |
65
+ | `disabled` | `boolean \| null \| undefined` | `null` | no | Disabled state |
66
+ | `eager` | `boolean \| undefined` | — | no | Renders the content of the component right away. Useful when you have content that is not in the DOM but has to be indexed for SEO. |
67
+ | `reverseTransition` | `string \| boolean \| undefined` | — | no | Transition used when the slide appears in the reverse direction. A transition component name, or `false` to turn the animation off |
68
+ | `selectedClass` | `string \| undefined` | — | no | CSS class applied in the selected state |
69
+ | `transition` | `string \| boolean \| undefined` | — | no | Transition used when the slide appears in the forward direction. A transition component name, or `false` to turn the animation off |
70
+ | `value` | `any` | — | no | Value of the component within the group |
71
+
72
+ **Events**
73
+
74
+ | Name | Type | Description |
75
+ | --- | --- | --- |
76
+ | `group:selected` | `[value: { value: boolean; }]` | Fires when a slide is selected inside the group. `value` tells whether the slide became active |
77
+
78
+ **Slots**
79
+
80
+ | Name | Type | Description |
81
+ | --- | --- | --- |
82
+ | `default` | `any` | Content of the slide |
83
+
84
+ **Exposed**
85
+
86
+ | Name | Type | Description |
87
+ | --- | --- | --- |
88
+ | `groupItem` | `GroupItemProvide` | State of the slide inside the group: whether it is selected, its value and the toggle method. |