@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,546 @@
1
+ # CdsTextInput — 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 text field is the basic way to get data from the user: a name, an email, an amount, a search query. Around the native `input` the component gathers everything a form needs: a label, a description, hints, error messages, icons, clearing and a character counter.
7
+
8
+ ## Label and description
9
+
10
+ The `label` prop names the field, `description` adds a supporting text under the label. The slots of the same name accept arbitrary markup.
11
+
12
+ **Example (SFC):**
13
+
14
+ ```vue
15
+ <script setup lang="ts">
16
+ import { CdsTextInput } from '@central-design-system/components';
17
+ </script>
18
+
19
+ <template>
20
+ <CdsTextInput
21
+ label="Заголовок"
22
+ description="Описание для элемента формы или вспомогательный текст"
23
+ placeholder="Введите текст"
24
+ class="max-w-sm m-auto"
25
+ />
26
+ </template>
27
+ ```
28
+
29
+ ## Messages and hints
30
+
31
+ There is a single text line under the field, and props split it by state: `messages` is visible at rest, `hint` — on focus, `error-messages` — on an error and on top of the rest. The `messages` and `details` slots override the content.
32
+
33
+ **Example (SFC):**
34
+
35
+ ```vue
36
+ <script setup lang="ts">
37
+ import { CdsTextInput } from '@central-design-system/components';
38
+ </script>
39
+
40
+ <template>
41
+ <CdsTextInput
42
+ label="Заголовок"
43
+ placeholder="Введите текст"
44
+ hint="Сообщение подсказка"
45
+ messages="Пользовательское сообщение"
46
+ class="max-w-sm m-auto"
47
+ />
48
+ </template>
49
+ ```
50
+
51
+ ## Hiding the details
52
+
53
+ The `hide-details` prop removes the bottom block entirely — fields can then sit right next to each other. The `auto` value hides the block only while there is nothing to show: as soon as an error or a hint appears, the block is rendered and pushes the content below.
54
+
55
+ **Example (SFC):**
56
+
57
+ ```vue
58
+ <script setup lang="ts">
59
+ import { CdsButton, CdsForm, CdsTextInput } from '@central-design-system/components';
60
+ </script>
61
+
62
+ <template>
63
+ <CdsForm class="flex flex-col gap-2 w-[350px] m-auto">
64
+ <template #default="{ reset }">
65
+ <CdsTextInput
66
+ label="Логин"
67
+ placeholder="Очистите поле!"
68
+ hide-details="auto"
69
+ :rules="[(value: string) => !!value || 'Логин не может быть пустым']"
70
+ clearable
71
+ />
72
+ <CdsTextInput
73
+ label="Пароль"
74
+ placeholder="Введите пароль"
75
+ type="password"
76
+ hide-details="auto"
77
+ :rules="[(value: string) => !!value || 'Пароль не может быть пустым']"
78
+ />
79
+
80
+ <div class="flex gap-2 mt-2 justify-end">
81
+ <CdsButton text="Сбросить" appearance="tertiary" @click="reset" />
82
+ <CdsButton type="submit" text="Отправить" />
83
+ </div>
84
+ </template>
85
+ </CdsForm>
86
+ </template>
87
+ ```
88
+
89
+ ## Icons
90
+
91
+ The `prepend-icon` and `append-icon` props put an icon outside the field, `prepend-inner-icon` and `append-inner-icon` — inside it.
92
+
93
+ **Example (SFC):**
94
+
95
+ ```vue
96
+ <script setup lang="ts">
97
+ import { CdsTextInput } from '@central-design-system/components';
98
+ </script>
99
+
100
+ <template>
101
+ <div class="max-w-sm m-auto">
102
+ <CdsTextInput prepend-icon="user-avatar" placeholder="prepend-icon" />
103
+ <CdsTextInput append-icon="add" placeholder="append-icon" />
104
+ <CdsTextInput prepend-inner-icon="user-avatar" placeholder="prepend-inner-icon" />
105
+ <CdsTextInput append-inner-icon="add" placeholder="append-inner-icon" />
106
+ <CdsTextInput prepend-icon="user-avatar" append-icon="add" placeholder="prepend-icon & append-icon" />
107
+ <CdsTextInput
108
+ prepend-inner-icon="user-avatar"
109
+ append-inner-icon="add"
110
+ placeholder="prepend-inner-icon & append-inner-icon"
111
+ />
112
+ </div>
113
+ </template>
114
+ ```
115
+
116
+ ## Prefix and suffix
117
+
118
+ The `prefix` and `suffix` props add an immutable text at the edges of the entered value — a currency, a country code, a domain.
119
+
120
+ **Example (SFC):**
121
+
122
+ ```vue
123
+ <script setup lang="ts">
124
+ import { CdsTextInput } from '@central-design-system/components';
125
+ </script>
126
+
127
+ <template>
128
+ <div class="max-w-sm m-auto">
129
+ <CdsTextInput type="number" label="Число" prefix="$" value="100" />
130
+ <CdsTextInput type="email" label="Электронная почта" suffix="@email.com" value="example" />
131
+ <CdsTextInput type="tel" label="Телефон" prefix="+7" placeholder="(000) 000-00-00" />
132
+ <CdsTextInput type="time" label="Время" model-value="10:45:00" prefix="UTC" />
133
+ </div>
134
+ </template>
135
+ ```
136
+
137
+ ## Clearing
138
+
139
+ The `clearable` prop shows the clear icon on hover or focus, `persistent-clearable` keeps it visible at all times.
140
+
141
+ **Example (SFC):**
142
+
143
+ ```vue
144
+ <script setup lang="ts">
145
+ import { CdsTextInput } from '@central-design-system/components';
146
+ import { ref } from 'vue';
147
+
148
+ const value = ref('Очисти меня!');
149
+ </script>
150
+
151
+ <template>
152
+ <CdsTextInput
153
+ v-model="value"
154
+ placeholder="Введите значение"
155
+ hint="Это поле можно очистить"
156
+ clearable
157
+ persistent-clearable
158
+ class="max-w-sm m-auto"
159
+ />
160
+ </template>
161
+ ```
162
+
163
+ ## States
164
+
165
+ `disabled` blocks the input and lowers the contrast, `readonly` forbids changes but keeps focus and copying, `loading` shows a loading indicator — as a bar or as a circle (`loading="circle"`).
166
+
167
+ **Example (SFC):**
168
+
169
+ ```vue
170
+ <script setup lang="ts">
171
+ import { CdsTextInput } from '@central-design-system/components';
172
+ </script>
173
+
174
+ <template>
175
+ <div class="max-w-sm m-auto">
176
+ <CdsTextInput label="Disabled" value="Значение" disabled />
177
+ <CdsTextInput label="Readonly" value="Только для чтения" readonly />
178
+ <CdsTextInput label="Loading" value="Загрузка" loading />
179
+ <CdsTextInput label="Loading circle" value="Загрузка" loading="circle" />
180
+ </div>
181
+ </template>
182
+ ```
183
+
184
+ ## Validation
185
+
186
+ The `rules` prop accepts an array of validator functions: each one returns either `true` or a string with an error message. `validate-on` sets the moment they run — `blur`, `input` or `submit` (only on a `validate()` call).
187
+
188
+ **Example (SFC):**
189
+
190
+ ```vue
191
+ <script setup lang="ts">
192
+ import { CdsTextInput } from '@central-design-system/components';
193
+ import { ref } from 'vue';
194
+
195
+ const title = ref('Удалите значение');
196
+ </script>
197
+
198
+ <template>
199
+ <CdsTextInput
200
+ v-model="title"
201
+ :rules="[
202
+ (value: string) => !!value || 'Не может быть пустым',
203
+ (value: string) => value.length <= 10 || 'Допустимое значение 10 символов'
204
+ ]"
205
+ label="Заголовок"
206
+ placeholder="Введите текст"
207
+ required
208
+ class="max-w-sm m-auto"
209
+ />
210
+ </template>
211
+ ```
212
+
213
+ ## Validation
214
+
215
+ Validators are plain functions: declare them once and reuse them across the fields of a form. Here the title is checked for being required and for its length (together with `maxlength` and the counter), and the email — for its format.
216
+
217
+ **Example (SFC):**
218
+
219
+ ```vue
220
+ <script setup lang="ts">
221
+ import { CdsForm, CdsTextInput } from '@central-design-system/components';
222
+ import { ref } from 'vue';
223
+
224
+ const title = ref('Предварительный отчёт');
225
+ const email = ref('');
226
+
227
+ const rules = {
228
+ required: (value: string) => !!value || 'Обязательное поле',
229
+ counter: (value: string) => value.length <= 20 || 'Не больше 20 символов',
230
+ email: (value: string) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value) || 'Некорректная почта'
231
+ };
232
+ </script>
233
+
234
+ <template>
235
+ <CdsForm class="flex flex-col gap-2 w-[350px] m-auto">
236
+ <CdsTextInput
237
+ v-model="title"
238
+ label="Заголовок"
239
+ :rules="[rules.required, rules.counter]"
240
+ persistent-counter
241
+ maxlength="20"
242
+ counter="20"
243
+ />
244
+
245
+ <CdsTextInput
246
+ v-model="email"
247
+ label="Электронная почта"
248
+ placeholder="name@company.ru"
249
+ :rules="[rules.required, rules.email]"
250
+ />
251
+ </CdsForm>
252
+ </template>
253
+ ```
254
+
255
+ ## Errors from outside
256
+
257
+ The `error-messages` prop shows ready messages — the ones coming from the server, for example — independently of `rules`. `error` turns on the visual error state without any text, `max-errors` limits the number of messages.
258
+
259
+ **Example (SFC):**
260
+
261
+ ```vue
262
+ <script setup lang="ts">
263
+ import { CdsTextInput } from '@central-design-system/components';
264
+ </script>
265
+
266
+ <template>
267
+ <div class="flex flex-col max-w-sm m-auto gap-2">
268
+ <CdsTextInput
269
+ label="Состояние ошибки"
270
+ placeholder="errorMessages (string)"
271
+ error-messages="Поле заполнено некорректно"
272
+ />
273
+ <CdsTextInput
274
+ label="Состояние ошибки"
275
+ placeholder="errorMessages (array)"
276
+ :error-messages="['Ошибка 1', 'Ошибка 2']"
277
+ :max-errors="2"
278
+ />
279
+ <CdsTextInput label="Состояние ошибки" placeholder="Без сообщения, но error: true" error />
280
+ </div>
281
+ </template>
282
+ ```
283
+
284
+ ## Counter
285
+
286
+ The `counter` prop shows a character counter: `true` — without a limit, a number — with a limit. `counter-value` accepts your own counting formula, `persistent-counter` keeps the counter visible outside of focus.
287
+
288
+ **Example (SFC):**
289
+
290
+ ```vue
291
+ <script setup lang="ts">
292
+ import { CdsTextInput } from '@central-design-system/components';
293
+
294
+ const wordCount = (value: unknown) => (value ?? '').toString().trim().split(/\s+/).filter(Boolean).length;
295
+ </script>
296
+
297
+ <template>
298
+ <div class="max-w-sm m-auto">
299
+ <CdsTextInput label="counter true" placeholder="Просто счётчик" counter />
300
+ <CdsTextInput label="counter с лимитом" placeholder="До 20 символов" counter="20" maxlength="20" />
301
+ <CdsTextInput label="persistentCounter" placeholder="Счётчик всегда виден" counter persistent-counter />
302
+ <CdsTextInput label="counterValue (слова)" placeholder="Считаем слова" counter :counter-value="wordCount" />
303
+ </div>
304
+ </template>
305
+ ```
306
+
307
+ ## Colors
308
+
309
+ The `color` prop sets the main color, `active-color` — the color on focus, `icon-color` — the color of the icons, `bg-color` — the background of the field.
310
+
311
+ **Example (SFC):**
312
+
313
+ ```vue
314
+ <script setup lang="ts">
315
+ import { CdsTextInput } from '@central-design-system/components';
316
+ </script>
317
+
318
+ <template>
319
+ <div class="max-w-sm m-auto">
320
+ <CdsTextInput label="color" value="Цвет компонента" color="green" />
321
+ <CdsTextInput label="activeColor" placeholder="Цвет при фокусе" active-color="purple" />
322
+ <CdsTextInput
323
+ label="iconColor"
324
+ placeholder="Цвет иконки"
325
+ prepend-inner-icon="user-avatar"
326
+ icon-color="brand-primary"
327
+ />
328
+ <CdsTextInput label="bgColor" placeholder="Цвет фона" bg-color="status-success-fill" />
329
+ </div>
330
+ </template>
331
+ ```
332
+
333
+ ## Slots
334
+
335
+ When props are not enough, the content of any block is replaced by a slot. `prepend` / `append` put elements outside the field, `prepend-inner` / `append-inner` — inside it; unlike the `*-icon` props, slots accept any components — buttons, links, badges.
336
+
337
+ **Example (SFC):**
338
+
339
+ ```vue
340
+ <script setup lang="ts">
341
+ import {
342
+ CdsButton,
343
+ CdsFunctionalButton,
344
+ CdsIcon,
345
+ CdsProgressBar,
346
+ CdsTextInput
347
+ } from '@central-design-system/components';
348
+ import { ref } from 'vue';
349
+
350
+ const showed = ref(false);
351
+ </script>
352
+
353
+ <template>
354
+ <CdsTextInput loading placeholder="Введите текст" class="max-w-sm m-auto">
355
+ <template #label>
356
+ <span class="inline-flex items-center gap-1">
357
+ <CdsIcon name="user-avatar" />
358
+ <strong>Кастомный заголовок</strong>
359
+ </span>
360
+ </template>
361
+ <template #description>
362
+ <em>Описание через <span class="text-purple-500 font-bold">слот</span></em>
363
+ </template>
364
+ <template #messages>
365
+ <span class="text-green-500">✓ Кастомное сообщение</span>
366
+ </template>
367
+
368
+ <template #prepend="props">
369
+ <CdsButton appearance="tertiary" icon="add" :size="props.size.value" />
370
+ </template>
371
+ <template #append="props">
372
+ <CdsButton appearance="primary" text="OK" :size="props.size.value" />
373
+ </template>
374
+
375
+ <template #prepend-inner="props">
376
+ <CdsIcon name="user-avatar" :size="props.size.value" />
377
+ </template>
378
+ <template #append-inner>
379
+ <CdsFunctionalButton :icon="showed ? 'visibility-off' : 'visibility-on'" @click="showed = !showed" />
380
+ </template>
381
+
382
+ <template #loader>
383
+ <CdsProgressBar color="purple" height="4" indeterminate />
384
+ </template>
385
+ </CdsTextInput>
386
+ </template>
387
+ ```
388
+
389
+ ## Searching through a list
390
+
391
+ A search field is made of the `prepend-inner-icon="search"` icon and `clearable` — the user resets the query in one click and sees the full list again. A label is not needed here: the role of the field is obvious from the icon and the placeholder.
392
+
393
+ **Example (SFC):**
394
+
395
+ ```vue
396
+ <script setup lang="ts">
397
+ import { CdsTextInput } from '@central-design-system/components';
398
+ import { computed, ref } from 'vue';
399
+
400
+ const query = ref('');
401
+
402
+ const items = ['Договор поставки', 'Договор аренды', 'Акт сверки', 'Счёт на оплату'];
403
+
404
+ const filtered = computed(() => items.filter((item) => item.toLowerCase().includes(query.value.trim().toLowerCase())));
405
+ </script>
406
+
407
+ <template>
408
+ <div class="flex w-full max-w-md flex-col gap-3 m-auto">
409
+ <CdsTextInput v-model="query" placeholder="Поиск по документам" prepend-inner-icon="search" clearable />
410
+
411
+ <ul class="m-0 flex list-none flex-col gap-1 p-0">
412
+ <li v-for="item in filtered" :key="item">{{ item }}</li>
413
+ <li v-if="filtered.length === 0">Ничего не найдено</li>
414
+ </ul>
415
+ </div>
416
+ </template>
417
+ ```
418
+
419
+ ## Password with a preview
420
+
421
+ The `append-inner` slot accepts interactive elements — a button that toggles `type` between `password` and `text`, for example. The hint in `hint` states the password requirements before the user makes a mistake.
422
+
423
+ **Example (SFC):**
424
+
425
+ ```vue
426
+ <script setup lang="ts">
427
+ import { CdsFunctionalButton, CdsTextInput } from '@central-design-system/components';
428
+ import { ref } from 'vue';
429
+
430
+ const password = ref('qwerty123');
431
+ const visible = ref(false);
432
+ </script>
433
+
434
+ <template>
435
+ <CdsTextInput
436
+ v-model="password"
437
+ class="w-full max-w-md m-auto"
438
+ label="Пароль"
439
+ :type="visible ? 'text' : 'password'"
440
+ hint="Минимум 8 символов"
441
+ >
442
+ <template #append-inner>
443
+ <CdsFunctionalButton
444
+ :icon="visible ? 'visibility-off' : 'visibility-on'"
445
+ :aria-label="visible ? 'Скрыть пароль' : 'Показать пароль'"
446
+ @click="visible = !visible"
447
+ />
448
+ </template>
449
+ </CdsTextInput>
450
+ </template>
451
+ ```
452
+
453
+ ## Events
454
+
455
+ Every icon zone emits its own click event: `click:prepend`, `click:append`, `click:prepend-inner`, `click:append-inner` and `click:clear` (the last one fires after the value has already been reset). Here the icon on the left cycles through the options, the lock inside the field toggles, and the submit button clears the message. When you need a complex element instead of an icon — a button, a badge — use the slots of the same name, like in the password example above.
456
+
457
+ **Example (SFC):**
458
+
459
+ ```vue
460
+ <script setup lang="ts">
461
+ import { CdsTextInput } from '@central-design-system/components';
462
+ import { computed, ref } from 'vue';
463
+
464
+ const message = ref('Привет!');
465
+ const locked = ref(false);
466
+ const iconIndex = ref(0);
467
+
468
+ const icons = ['comment', 'star', 'flag', 'bookmark'];
469
+ const icon = computed(() => icons[iconIndex.value]);
470
+
471
+ const changeIcon = () => {
472
+ iconIndex.value = (iconIndex.value + 1) % icons.length;
473
+ };
474
+
475
+ const toggleLock = () => {
476
+ locked.value = !locked.value;
477
+ };
478
+
479
+ const resetIcon = () => {
480
+ iconIndex.value = 0;
481
+ };
482
+
483
+ const sendMessage = () => {
484
+ resetIcon();
485
+ message.value = '';
486
+ };
487
+ </script>
488
+
489
+ <template>
490
+ <CdsTextInput
491
+ v-model="message"
492
+ class="w-[350px] m-auto"
493
+ label="Сообщение"
494
+ :prepend-icon="icon"
495
+ :append-inner-icon="locked ? 'locked' : 'unlocked'"
496
+ append-icon="telegram"
497
+ clearable
498
+ @click:prepend="changeIcon"
499
+ @click:append-inner="toggleLock"
500
+ @click:append="sendMessage"
501
+ @click:clear="resetIcon"
502
+ />
503
+ </template>
504
+ ```
505
+
506
+ ## An error from the server
507
+
508
+ The server response goes into `error-messages` as is — validation through `rules` is not needed for that. Reset the error when the value changes, so that the field does not complain about an input that is already fixed.
509
+
510
+ **Example (SFC):**
511
+
512
+ ```vue
513
+ <script setup lang="ts">
514
+ import { CdsButton, CdsTextInput } from '@central-design-system/components';
515
+ import { ref } from 'vue';
516
+
517
+ const email = ref('taken@company.ru');
518
+ const loading = ref(false);
519
+ const serverErrors = ref<string[]>([]);
520
+
521
+ const save = async () => {
522
+ loading.value = true;
523
+ serverErrors.value = [];
524
+
525
+ // Имитация ответа сервера
526
+ await new Promise((resolve) => setTimeout(resolve, 1000));
527
+
528
+ loading.value = false;
529
+ serverErrors.value = ['Эта почта уже занята — укажите другую'];
530
+ };
531
+ </script>
532
+
533
+ <template>
534
+ <form class="flex w-full max-w-md flex-col gap-4 m-auto" @submit.prevent="save">
535
+ <CdsTextInput
536
+ v-model="email"
537
+ label="Электронная почта"
538
+ placeholder="name@company.ru"
539
+ :error-messages="serverErrors"
540
+ @update:model-value="serverErrors = []"
541
+ />
542
+
543
+ <CdsButton class="self-start" type="submit" text="Сохранить" :loading="loading" />
544
+ </form>
545
+ </template>
546
+ ```
@@ -0,0 +1,10 @@
1
+ # CdsTextInput — 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 label is always visible and names the field, the placeholder shows a sample value. | A placeholder used instead of a label disappears on input — the user forgets what they are filling in. |
9
+ | The error message says exactly what to fix. | “Invalid value” does not help: it is unclear what is wrong and what to do. |
10
+ | The placeholder is a short sample value in the right format. | Instructions in the placeholder duplicate the label and vanish on input. |
@@ -0,0 +1,17 @@
1
+ # CdsTextInput — 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
+ ## _CdsTextInput.variables.scss
8
+
9
+ ```scss
10
+ @use 'sass:map';
11
+ @use '../../../styles/tools';
12
+ @use '../../../styles/settings';
13
+
14
+ $text-input-affix-color: rgb(var(--cds-color-content-tertiary)) !default;
15
+ $text-input-padding-start: var(--cds-spacing-100) !default;
16
+ $text-input-padding-end: 0 !default;
17
+ ```
@@ -0,0 +1,44 @@
1
+ # CdsTimePicker — 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
+ Time selection: hours, minutes and — if you want — seconds. The value can be typed on the keyboard or stepped through with the arrows, and `v-model` receives a string in the given format (`HH:mm` by default), which is convenient to store and to send to the server.
7
+
8
+ ## CdsTimePicker
9
+
10
+ **Props**
11
+
12
+ | Prop | Type | Default | Required | Description |
13
+ | --- | --- | --- | --- | --- |
14
+ | `allowedHours` | `number[] \| undefined` | — | no | Configures which hours are available for selection. |
15
+ | `allowedMinutes` | `number[] \| undefined` | — | no | Configures which minutes are available for selection. |
16
+ | `allowedSeconds` | `number[] \| undefined` | — | no | Configures which seconds are available for selection. |
17
+ | `allowedTime` | `((hr: number \| null, min: number \| null, sec: number \| null) => boolean) \| undefined` | — | no | Configures which time is available for selection. |
18
+ | `defaultDate` | `string \| undefined` | — | no | Date used by default when the model is empty (in the YYYY/MM/DD format). |
19
+ | `disabled` | `boolean \| null \| undefined` | `null` | no | Disabled state |
20
+ | `format12h` | `boolean \| undefined` | — | no | Shows the time in the 12-hour AM/PM format. |
21
+ | `locale` | `string \| TDateLocale \| undefined` | — | no | Locale for the dates. A locale name ('ru' \| 'en') or a `TDateLocale` object. The current locale from `useLocale` is taken by default, otherwise `ru`. |
22
+ | `mask` | `string \| undefined` | `'HH:mm'` | no | Date/time format |
23
+ | `modelValue` | `string \| TDatetimeValueRange \| (string \| TDatetimeValueRange)[] \| null \| undefined` | `null` | no | Value of the model |
24
+ | `nowBtn` | `boolean \| undefined` | — | no | Shows the "Now" button. |
25
+ | `readonly` | `boolean \| null \| undefined` | `null` | no | Read-only state |
26
+ | `theme` | `string \| undefined` | — | no | Component theme |
27
+ | `withSeconds` | `boolean \| undefined` | — | no | Adds seconds to the time selection. |
28
+
29
+ **Events**
30
+
31
+ | Name | Type | Description |
32
+ | --- | --- | --- |
33
+ | `update:modelValue` | `[value: string \| undefined, date: IRawDate]` | The value changed (v-model). Passes the formatted value and the date object. |
34
+
35
+ **Exposed**
36
+
37
+ | Name | Type | Description |
38
+ | --- | --- | --- |
39
+ | `setAm` | `() => void` | Switches the 12-hour format to the first half of the day (AM). |
40
+ | `setHour` | `(hour: number) => void` | Sets the hours. |
41
+ | `setMinute` | `(minute: number) => void` | Sets the minutes. |
42
+ | `setNow` | `() => void` | Sets the current system time. |
43
+ | `setPm` | `() => void` | Switches the 12-hour format to the second half of the day (PM). |
44
+ | `setSecond` | `(second: number) => void` | Sets the seconds. |