@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,409 @@
1
+ # CdsOverlay — 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
+ An overlay shows content on top of the page: it dims the page with a scrim, computes the position relative to an activator and manages the stacking order of the open layers. It is the base mechanism behind [CdsModal](../cds-modal/api.md), [CdsMenu](../cds-menu/api.md) and [CdsTooltip](../cds-tooltip/api.md) — take it when you need a popup of your own that is not among the ready-made ones.
7
+
8
+ ## Opening and closing
9
+
10
+ `v-model` controls the visibility. An open overlay closes on a click outside the content and on the `Esc` key.
11
+
12
+ **Example (SFC):**
13
+
14
+ ```vue
15
+ <script setup lang="ts">
16
+ import { CdsButton, CdsOverlay } from '@central-design-system/components';
17
+ import { ref } from 'vue';
18
+
19
+ const overlay = ref(false);
20
+ </script>
21
+
22
+ <template>
23
+ <div class="flex justify-center">
24
+ <CdsButton text="Показать оверлей" @click="overlay = true" />
25
+
26
+ <CdsOverlay v-model="overlay" location="center center">
27
+ <div class="w-[320px] rounded-200 bg-surface-primary p-4">
28
+ <p>Оверлей открыт. Кликните мимо контента или нажмите <code>Esc</code>, чтобы закрыть его.</p>
29
+ </div>
30
+ </CdsOverlay>
31
+ </div>
32
+ </template>
33
+ ```
34
+
35
+ ## Opening and closing
36
+
37
+ The `persistent` prop turns both ways off: the overlay closes only through `v-model` — for example, by a button inside the content. On a click outside, the content answers with a light "shake"; remove it with the `no-click-animation` prop if you do not need the animation.
38
+
39
+ **Example (SFC):**
40
+
41
+ ```vue
42
+ <script setup lang="ts">
43
+ import { CdsButton, CdsOverlay } from '@central-design-system/components';
44
+ import { ref } from 'vue';
45
+
46
+ const overlay = ref(false);
47
+ </script>
48
+
49
+ <template>
50
+ <div class="flex justify-center">
51
+ <CdsButton text="Открыть persistent-оверлей" @click="overlay = true" />
52
+
53
+ <CdsOverlay v-model="overlay" persistent location="center center">
54
+ <div class="flex w-[320px] flex-col gap-2 rounded-200 bg-surface-primary p-4">
55
+ <p>Клик мимо и <code>Esc</code> не закрывают оверлей — контент отвечает лёгким «покачиванием».</p>
56
+ <CdsButton class="self-end" appearance="secondary" text="Закрыть" @click="overlay = false" />
57
+ </div>
58
+ </CdsOverlay>
59
+ </div>
60
+ </template>
61
+ ```
62
+
63
+ ## Activator
64
+
65
+ The `activator` slot saves you from a manual `v-model`: pass the slot props (`v-bind="props"`) to an element — and a click on it will open the overlay. The `open-on-hover` and `open-on-focus` props switch the opening to hover or focus, and `activator="parent"` makes the parent element the activator.
66
+
67
+ **Example (SFC):**
68
+
69
+ ```vue
70
+ <script setup lang="ts">
71
+ import { CdsButton, CdsOverlay } from '@central-design-system/components';
72
+ </script>
73
+
74
+ <template>
75
+ <div class="flex justify-center">
76
+ <CdsOverlay location="center center">
77
+ <template #activator="{ props }">
78
+ <CdsButton v-bind="props" appearance="secondary" text="Открыть через активатор" />
79
+ </template>
80
+
81
+ <div class="w-[320px] rounded-200 bg-surface-primary p-4">
82
+ <p>Оверлей открылся кликом по активатору — <code>v-model</code> и свой обработчик не понадобились.</p>
83
+ </div>
84
+ </CdsOverlay>
85
+ </div>
86
+ </template>
87
+ ```
88
+
89
+ ## Scrim
90
+
91
+ The scrim is on by default: it dims the page and shows that the interface under the overlay is unavailable. The `:scrim="false"` prop removes it — a click outside still closes the overlay. The `opacity` prop tunes the dimming density, and a string in `scrim` sets a custom color for the scrim.
92
+
93
+ **Example (SFC):**
94
+
95
+ ```vue
96
+ <script setup lang="ts">
97
+ import { CdsButton, CdsOverlay } from '@central-design-system/components';
98
+ </script>
99
+
100
+ <template>
101
+ <div class="flex flex-wrap justify-center gap-2">
102
+ <CdsOverlay location="center center">
103
+ <template #activator="{ props }">
104
+ <CdsButton v-bind="props" appearance="secondary" text="Обычная подложка" />
105
+ </template>
106
+ <div class="w-[280px] rounded-200 bg-surface-primary p-4">Подложка по умолчанию.</div>
107
+ </CdsOverlay>
108
+
109
+ <CdsOverlay :scrim="false" location="center center">
110
+ <template #activator="{ props }">
111
+ <CdsButton v-bind="props" appearance="secondary" text="Без подложки" />
112
+ </template>
113
+ <div class="w-[280px] rounded-200 border bg-surface-primary p-4">
114
+ Страница под оверлеем не затемнена, клик мимо всё равно закрывает контент.
115
+ </div>
116
+ </CdsOverlay>
117
+
118
+ <CdsOverlay opacity="0.9" location="center center">
119
+ <template #activator="{ props }">
120
+ <CdsButton v-bind="props" appearance="secondary" text="Плотная подложка" />
121
+ </template>
122
+ <div class="w-[280px] rounded-200 bg-surface-primary p-4">
123
+ <code>opacity="0.9"</code> почти полностью скрывает страницу.
124
+ </div>
125
+ </CdsOverlay>
126
+ </div>
127
+ </template>
128
+ ```
129
+
130
+ ## Limiting to a container
131
+
132
+ The `contained` prop locks the overlay inside the parent block: the scrim and the content do not leave its bounds, and the rest of the page keeps working. The parent must have `position: relative`. To center the content inside the block rather than relative to the screen, pass the container to `target` and turn on `location-strategy="connected"`.
133
+
134
+ **Example (SFC):**
135
+
136
+ ```vue
137
+ <script setup lang="ts">
138
+ import { CdsButton, CdsOverlay } from '@central-design-system/components';
139
+ import { ref } from 'vue';
140
+
141
+ const container = ref<HTMLElement>();
142
+ const overlay = ref(false);
143
+ </script>
144
+
145
+ <template>
146
+ <div class="m-auto flex w-[360px] flex-col gap-2">
147
+ <div ref="container" class="relative h-[180px] overflow-hidden rounded-200 bg-surface-secondary p-4">
148
+ <p>Оверлей появится поверх этого блока, а остальная страница продолжит работать.</p>
149
+
150
+ <CdsOverlay
151
+ v-model="overlay"
152
+ contained
153
+ location-strategy="connected"
154
+ :target="container"
155
+ location="center center"
156
+ scroll-strategy="none"
157
+ >
158
+ <div class="rounded-200 bg-surface-primary p-4">Контент внутри блока</div>
159
+ </CdsOverlay>
160
+ </div>
161
+
162
+ <CdsButton class="self-center" appearance="secondary" text="Показать оверлей" @click="overlay = !overlay" />
163
+ </div>
164
+ </template>
165
+ ```
166
+
167
+ ## Positioning
168
+
169
+ By default the content is centered relative to the screen — this is what the `static` strategy and the `location` prop are responsible for. The `location-strategy="connected"` strategy attaches the content to the activator: `location` sets the side, `offset` — the distance to it. If there is not enough room near the screen edge, the content flips to the opposite side — that is how [CdsMenu](../cds-menu/api.md) works.
170
+
171
+ **Example (SFC):**
172
+
173
+ ```vue
174
+ <script setup lang="ts">
175
+ import { CdsButton, CdsOverlay } from '@central-design-system/components';
176
+
177
+ const locations = ['top', 'bottom', 'end'] as const;
178
+ </script>
179
+
180
+ <template>
181
+ <div class="flex flex-wrap justify-center gap-2">
182
+ <CdsOverlay
183
+ v-for="location in locations"
184
+ :key="location"
185
+ location-strategy="connected"
186
+ :location="location"
187
+ :offset="8"
188
+ :scrim="false"
189
+ scroll-strategy="reposition"
190
+ >
191
+ <template #activator="{ props }">
192
+ <CdsButton v-bind="props" appearance="secondary" :text="`location=&quot;${location}&quot;`" />
193
+ </template>
194
+
195
+ <div class="rounded-200 border bg-surface-primary px-4 py-2">Панель у активатора</div>
196
+ </CdsOverlay>
197
+ </div>
198
+ </template>
199
+ ```
200
+
201
+ ## Behavior on scroll
202
+
203
+ The `scroll-strategy` prop decides what happens to the page and the overlay on scroll: `block` (the default) blocks the page scroll, `close` closes the overlay, `reposition` recomputes the position of the content following the target, `none` does nothing.
204
+
205
+ **Example (SFC):**
206
+
207
+ ```vue
208
+ <script setup lang="ts">
209
+ import { CdsButton, CdsOverlay } from '@central-design-system/components';
210
+
211
+ const strategies = ['block', 'close', 'reposition', 'none'] as const;
212
+ </script>
213
+
214
+ <template>
215
+ <div class="flex flex-wrap justify-center gap-2">
216
+ <CdsOverlay
217
+ v-for="strategy in strategies"
218
+ :key="strategy"
219
+ location-strategy="connected"
220
+ location="bottom"
221
+ :offset="8"
222
+ :scrim="false"
223
+ :scroll-strategy="strategy"
224
+ >
225
+ <template #activator="{ props }">
226
+ <CdsButton v-bind="props" appearance="secondary" :text="strategy" />
227
+ </template>
228
+
229
+ <div class="w-[260px] rounded-200 border bg-surface-primary px-4 py-2">
230
+ Панель открыта — покрутите страницу и посмотрите, что произойдёт.
231
+ </div>
232
+ </CdsOverlay>
233
+ </div>
234
+ </template>
235
+ ```
236
+
237
+ ## Animation
238
+
239
+ The `transition` prop changes the animation of showing and hiding the content.
240
+
241
+ **Example (SFC):**
242
+
243
+ ```vue
244
+ <script setup lang="ts">
245
+ import { CdsButton, CdsOverlay } from '@central-design-system/components';
246
+
247
+ const transitions = ['fade-transition', 'scale-transition', 'slide-transition-y'] as const;
248
+ </script>
249
+
250
+ <template>
251
+ <div class="flex flex-wrap justify-center gap-2">
252
+ <CdsOverlay v-for="transition in transitions" :key="transition" :transition="transition" location="center center">
253
+ <template #activator="{ props }">
254
+ <CdsButton v-bind="props" appearance="tertiary" :text="transition" />
255
+ </template>
256
+
257
+ <div class="w-[280px] rounded-200 bg-surface-primary p-4">
258
+ <code>{{ transition }}</code>
259
+ </div>
260
+ </CdsOverlay>
261
+ </div>
262
+ </template>
263
+ ```
264
+
265
+ ## Loading on top of a block
266
+
267
+ While the data of a block is being updated, a `contained` overlay with [CdsProgressCircle](../cds-progress-circle/api.md) covers only that block: the user sees that loading is in progress and keeps working with the rest of the page. `persistent` prevents closing the overlay by an accidental click, and `scroll-strategy="none"` does not block the page scroll.
268
+
269
+ **Example (SFC):**
270
+
271
+ ```vue
272
+ <script setup lang="ts">
273
+ import { CdsButton, CdsOverlay, CdsProgressCircle } from '@central-design-system/components';
274
+ import { ref } from 'vue';
275
+
276
+ const snapshots = [
277
+ [
278
+ { label: 'Выручка', value: '1 240 500 ₽' },
279
+ { label: 'Заказы', value: '318' },
280
+ { label: 'Конверсия', value: '4,2%' }
281
+ ],
282
+ [
283
+ { label: 'Выручка', value: '1 262 300 ₽' },
284
+ { label: 'Заказы', value: '327' },
285
+ { label: 'Конверсия', value: '4,4%' }
286
+ ]
287
+ ];
288
+
289
+ const card = ref<HTMLElement>();
290
+ const loading = ref(false);
291
+ const index = ref(0);
292
+
293
+ const refresh = () => {
294
+ loading.value = true;
295
+
296
+ setTimeout(() => {
297
+ index.value = (index.value + 1) % snapshots.length;
298
+ loading.value = false;
299
+ }, 1600);
300
+ };
301
+ </script>
302
+
303
+ <template>
304
+ <div ref="card" class="relative m-auto w-[360px] overflow-hidden rounded-200 bg-surface-secondary p-4">
305
+ <div class="flex items-center justify-between">
306
+ <span class="h4">Продажи за сегодня</span>
307
+ <CdsButton appearance="tertiary" size="sm" icon="refresh" aria-label="Обновить" @click="refresh" />
308
+ </div>
309
+
310
+ <div class="mt-2 flex flex-col gap-1">
311
+ <div v-for="row in snapshots[index]" :key="row.label" class="flex justify-between">
312
+ <span class="text-content-secondary">{{ row.label }}</span>
313
+ <span>{{ row.value }}</span>
314
+ </div>
315
+ </div>
316
+
317
+ <CdsOverlay
318
+ v-model="loading"
319
+ contained
320
+ persistent
321
+ no-click-animation
322
+ location-strategy="connected"
323
+ :target="card"
324
+ location="center center"
325
+ scroll-strategy="none"
326
+ >
327
+ <CdsProgressCircle indeterminate :size="40" />
328
+ </CdsOverlay>
329
+ </div>
330
+ </template>
331
+ ```
332
+
333
+ ## Image preview
334
+
335
+ A click on a thumbnail opens the image at full size on top of the dimmed page. A dense scrim (`opacity="0.85"`) removes the visual noise, and the preview closes the usual way — by a click outside or the `Esc` key, no separate button needed.
336
+
337
+ **Example (SFC):**
338
+
339
+ ```vue
340
+ <script setup lang="ts">
341
+ import { CdsImage, CdsOverlay } from '@central-design-system/components';
342
+ import { ref } from 'vue';
343
+
344
+ const preview = ref(false);
345
+ </script>
346
+
347
+ <template>
348
+ <div class="flex justify-center">
349
+ <button type="button" class="w-[220px] cursor-pointer" aria-label="Открыть изображение" @click="preview = true">
350
+ <CdsImage src="/images/temp/city.webp" class="rounded-200" cover :aspect-ratio="16 / 10" alt="Вид на город" />
351
+ </button>
352
+
353
+ <CdsOverlay v-model="preview" location="center center" opacity="0.85">
354
+ <figure class="flex flex-col items-center gap-2">
355
+ <CdsImage
356
+ src="/images/temp/city.webp"
357
+ class="max-h-[70vh] w-[min(800px,90vw)] rounded-200"
358
+ alt="Вид на город"
359
+ />
360
+ <figcaption class="text-100 text-content-on-dark">
361
+ Кликните мимо изображения или нажмите Esc, чтобы закрыть
362
+ </figcaption>
363
+ </figure>
364
+ </CdsOverlay>
365
+ </div>
366
+ </template>
367
+ ```
368
+
369
+ ## Onboarding hint
370
+
371
+ A hint about a new feature is a panel attached to an element by the `connected` strategy; in a real interface you open it programmatically, for example by a first-visit flag, here — by a click on a button. Without a scrim (`:scrim="false"`) the hint does not get in the way of working with the page, `persistent` protects it from an accidental close — it disappears only by the "Понятно" button, and `scroll-strategy="reposition"` keeps it next to the activator on scroll.
372
+
373
+ **Example (SFC):**
374
+
375
+ ```vue
376
+ <script setup lang="ts">
377
+ import { CdsButton, CdsOverlay } from '@central-design-system/components';
378
+ import { ref } from 'vue';
379
+
380
+ const hint = ref(false);
381
+ </script>
382
+
383
+ <template>
384
+ <div class="flex justify-center">
385
+ <CdsOverlay
386
+ v-model="hint"
387
+ location-strategy="connected"
388
+ location="bottom"
389
+ :offset="8"
390
+ :scrim="false"
391
+ persistent
392
+ no-click-animation
393
+ :close-on-back="false"
394
+ scroll-strategy="reposition"
395
+ >
396
+ <template #activator="{ props }">
397
+ <CdsButton v-bind="props" appearance="secondary" prepend-icon="filters" text="Фильтры" />
398
+ </template>
399
+
400
+ <div class="flex w-[260px] flex-col gap-2 rounded-200 border bg-surface-primary p-4">
401
+ <p class="text-100">
402
+ Теперь фильтры можно сохранять: настройте условия один раз и возвращайтесь к ним в один клик.
403
+ </p>
404
+ <CdsButton class="self-end" size="sm" appearance="secondary" text="Понятно" @click="hint = false" />
405
+ </div>
406
+ </CdsOverlay>
407
+ </div>
408
+ </template>
409
+ ```
@@ -0,0 +1,9 @@
1
+ # CdsOverlay — guidelines
2
+
3
+ > Extracted from `docs/demos/Guidelines.vue` by `bun run generate:skill`. Do not edit manually.
4
+ > The full component contract is in [api.md](api.md).
5
+
6
+ | ✅ Do | ❌ Don't |
7
+ | --- | --- |
8
+ | A persistent overlay has an explicit button — the user can always close it. | The overlay closes neither by a click outside, nor by Esc, nor by a button — the user is trapped. |
9
+ | The loading state covers only the block being updated — the rest of the interface keeps working. | An overlay over the whole area for the sake of a single block stops work with the entire page. |
@@ -0,0 +1,12 @@
1
+ # CdsOverlay — 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
+ ## _CdsOverlay.variables.scss
8
+
9
+ ```scss
10
+ $overlay-opacity: 50% !default;
11
+ $overlay-scrim-background: rgb(var(--cds-color-surface-overlay)) !default;
12
+ ```
@@ -0,0 +1,21 @@
1
+ # CdsPage — API
2
+
3
+ > Generated from meta.json by `bun run generate:skill`. Do not edit manually.
4
+ > Examples: [examples.md](examples.md)
5
+
6
+ A page inside the layout: `CdsPage` gives the content a minimum height that accounts for the header and the footer, so a short page fills the whole screen instead of hanging as a narrow strip at the top.
7
+
8
+ ## CdsPage
9
+
10
+ **Props**
11
+
12
+ | Prop | Type | Default | Required | Description |
13
+ | --- | --- | --- | --- | --- |
14
+ | `padding` | `boolean \| undefined` | `false` | no | Adds paddings to the page. |
15
+ | `styleFn` | `((offset: number, height: number) => string) \| undefined` | — | no | Function that computes the styles of the page. It receives the total offset (header + footer) and the height of the area, and returns a style string. |
16
+
17
+ **Slots**
18
+
19
+ | Name | Type | Description |
20
+ | --- | --- | --- |
21
+ | `default` | `any` | Content of the page. |
@@ -0,0 +1,123 @@
1
+ # CdsPage — 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 page inside the layout: `CdsPage` gives the content a minimum height that accounts for the header and the footer, so a short page fills the whole screen instead of hanging as a narrow strip at the top.
7
+
8
+ ## Paddings
9
+
10
+ The `padding` prop adds inner paddings to the page — the usual layout for content screens. Without it the content sticks to the edges: that is how tables and maps that need the full width are laid out.
11
+
12
+ **Example (SFC):**
13
+
14
+ ```vue
15
+ <script setup lang="ts">
16
+ import { CdsLayout, CdsMain, CdsPage, CdsToggle } from '@central-design-system/components';
17
+ import { ref } from 'vue';
18
+
19
+ const padding = ref(true);
20
+ </script>
21
+
22
+ <template>
23
+ <div class="flex flex-col gap-4">
24
+ <CdsToggle v-model="padding" label="Внутренние отступы страницы" hide-details />
25
+
26
+ <div class="h-[240px]">
27
+ <CdsLayout container>
28
+ <CdsMain>
29
+ <CdsPage :padding="padding">
30
+ <div class="h-full rounded-200 bg-surface-secondary p-4 text-content-primary">Содержимое страницы</div>
31
+ </CdsPage>
32
+ </CdsMain>
33
+ </CdsLayout>
34
+ </div>
35
+ </div>
36
+ </template>
37
+ ```
38
+
39
+ ## Custom height
40
+
41
+ The `style-fn` prop replaces the minimum height calculation with your own. The function receives the total height of the header and the footer and the height of the layout area, and returns a style string. This is how a page can be fixed in height and give the scrolling to an inner list or table.
42
+
43
+ **Example (SFC):**
44
+
45
+ ```vue
46
+ <script setup lang="ts">
47
+ import { CdsHeader, CdsLayout, CdsMain, CdsPage, CdsToolbar, CdsToolbarTitle } from '@central-design-system/components';
48
+
49
+ // Вместо минимальной высоты фиксируем высоту страницы: внутренний список
50
+ // получает свой скролл, а страница не растягивает макет.
51
+ const styleFn = (offset: number, height: number) => `height: ${height - offset}px; overflow: hidden;`;
52
+ </script>
53
+
54
+ <template>
55
+ <div class="h-[320px]">
56
+ <CdsLayout container>
57
+ <CdsHeader bordered>
58
+ <CdsToolbar>
59
+ <CdsToolbarTitle>Реестр закупок</CdsToolbarTitle>
60
+ </CdsToolbar>
61
+ </CdsHeader>
62
+
63
+ <CdsMain>
64
+ <CdsPage padding :style-fn="styleFn" class="flex flex-col">
65
+ <div class="mb-2 text-content-secondary">Шапка страницы остаётся на месте</div>
66
+ <div class="flex-1 overflow-auto rounded-200 border border-line-primary">
67
+ <div v-for="n in 30" :key="n" class="border-b border-line-primary p-2 text-content-primary">
68
+ Закупка №{{ 2400 + n }}
69
+ </div>
70
+ </div>
71
+ </CdsPage>
72
+ </CdsMain>
73
+ </CdsLayout>
74
+ </div>
75
+ </template>
76
+ ```
77
+
78
+ ## A full-screen empty state
79
+
80
+ The minimum height accounts for the header and the footer, so the centering works against the real height of the page — the placeholder ends up exactly in the middle instead of right under the header.
81
+
82
+ **Example (SFC):**
83
+
84
+ ```vue
85
+ <script setup lang="ts">
86
+ import {
87
+ CdsEmptyState,
88
+ CdsFooter,
89
+ CdsHeader,
90
+ CdsLayout,
91
+ CdsMain,
92
+ CdsPage,
93
+ CdsToolbar,
94
+ CdsToolbarTitle
95
+ } from '@central-design-system/components';
96
+ </script>
97
+
98
+ <template>
99
+ <div class="h-[320px]">
100
+ <CdsLayout container>
101
+ <CdsHeader bordered>
102
+ <CdsToolbar>
103
+ <CdsToolbarTitle>Закупки</CdsToolbarTitle>
104
+ </CdsToolbar>
105
+ </CdsHeader>
106
+
107
+ <CdsMain>
108
+ <CdsPage padding class="flex items-center justify-center">
109
+ <CdsEmptyState
110
+ icon="shopping-cart"
111
+ title="Закупок пока нет"
112
+ text="Создайте первую закупку, чтобы она появилась здесь"
113
+ />
114
+ </CdsPage>
115
+ </CdsMain>
116
+
117
+ <CdsFooter bordered>
118
+ <div class="flex h-[40px] items-center px-4 text-content-secondary">Подвал</div>
119
+ </CdsFooter>
120
+ </CdsLayout>
121
+ </div>
122
+ </template>
123
+ ```
@@ -0,0 +1,67 @@
1
+ # CdsPagination — 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
+ Pagination splits a large data set into pages and helps you jump to the one you need: numbered buttons, "back" and "forward" arrows, jumps to the first and the last page, and a quick jump field. Extra numbers collapse into an ellipsis, and without an explicit limit the number of buttons adapts to the width of the container.
7
+
8
+ ## CdsPagination
9
+
10
+ **Props**
11
+
12
+ | Prop | Type | Default | Required | Description |
13
+ | --- | --- | --- | --- | --- |
14
+ | `activeColor` | `string \| undefined` | — | no | Color of the active page button |
15
+ | `ariaLabel` | `string \| undefined` | `'Навигация по страницам'` | no | ARIA label of the root navigation element |
16
+ | `color` | `string \| undefined` | — | no | Color of the page buttons |
17
+ | `currentPageAriaLabel` | `string \| undefined` | `'Текущая страница, страница {0}'` | no | ARIA label of the current (active) page. `{0}` is replaced with the page number |
18
+ | `disabled` | `boolean \| null \| undefined` | `null` | no | Disabled state |
19
+ | `ellipsis` | `string \| undefined` | `'...'` | no | Text displayed between pages when they are collapsed |
20
+ | `firstAriaLabel` | `string \| undefined` | `'Первая страница'` | no | ARIA label of the first page button |
21
+ | `firstIcon` | `IconValue \| undefined` | `'first'` | no | Icon of the first page button |
22
+ | `lastAriaLabel` | `string \| undefined` | `'Последняя страница'` | no | ARIA label of the last page button |
23
+ | `lastIcon` | `IconValue \| undefined` | `'last'` | no | Icon of the last page button |
24
+ | `length` | `string \| number \| undefined` | `1` | no | Number of pages |
25
+ | `modelValue` | `number \| undefined` | `(props) => props.start` | no | The v-model value — the number of the current page |
26
+ | `nextAriaLabel` | `string \| undefined` | `'Следующая страница'` | no | ARIA label of the next page button |
27
+ | `nextIcon` | `IconValue \| undefined` | `'next'` | no | Icon of the next page button |
28
+ | `pageAriaLabel` | `string \| undefined` | `'Перейти к странице {0}'` | no | ARIA label of a page button. `{0}` is replaced with the page number |
29
+ | `prevIcon` | `IconValue \| undefined` | `'prev'` | no | Icon of the previous page button |
30
+ | `previousAriaLabel` | `string \| undefined` | `'Предыдущая страница'` | no | ARIA label of the previous page button |
31
+ | `quickJumper` | `boolean \| undefined` | `false` | no | Shows the quick jump field |
32
+ | `quickJumperLabel` | `string \| undefined` | `'Перейти к странице'` | no | Caption text before the quick jump field |
33
+ | `showFirstLastPage` | `boolean \| "only-first" \| undefined` | `false` | no | Shows the first/last page buttons. `'only-first'` shows only the first page button |
34
+ | `start` | `string \| number \| undefined` | `1` | no | Initial page |
35
+ | `tag` | `string \| JSXComponent<any> \| undefined` | `'nav'` | no | Custom HTML tag or component to render |
36
+ | `theme` | `string \| undefined` | — | no | Component theme |
37
+ | `totalVisible` | `string \| number \| undefined` | — | no | Number of page buttons visible at once |
38
+
39
+ **Events**
40
+
41
+ | Name | Type | Description |
42
+ | --- | --- | --- |
43
+ | `first` | `[value: number]` | Fired on a jump to the first page |
44
+ | `last` | `[value: number]` | Fired on a jump to the last page |
45
+ | `next` | `[value: number]` | Fired on a jump to the next page |
46
+ | `prev` | `[value: number]` | Fired on a jump to the previous page |
47
+ | `quickJump` | `[value: number]` | Fired on a jump made through the quick jump field |
48
+ | `update:modelValue` | `[value: number]` | Fired when the v-model value changes |
49
+
50
+ **Slots**
51
+
52
+ | Name | Type | Description |
53
+ | --- | --- | --- |
54
+ | `first` | `CdsPaginationControlSlot` | Slot of the first page button |
55
+ | `item` | `CdsPaginationItemSlot` | Slot of a single page button |
56
+ | `last` | `CdsPaginationControlSlot` | Slot of the last page button |
57
+ | `next` | `CdsPaginationControlSlot` | Slot of the next page button |
58
+ | `prev` | `CdsPaginationControlSlot` | Slot of the previous page button |
59
+
60
+ **Exposed**
61
+
62
+ | Name | Type | Description |
63
+ | --- | --- | --- |
64
+ | `setFirst` | `() => void` | Jumps to the first page. |
65
+ | `setLast` | `() => void` | Jumps to the last page. |
66
+ | `setNext` | `() => void` | Jumps to the next page. |
67
+ | `setPrev` | `() => void` | Jumps to the previous page. |