@birdapi/velinstyle 1.1.0 → 1.2.0

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 (308) hide show
  1. package/README.de.md +87 -162
  2. package/README.md +188 -119
  3. package/cli/blueprint.js +98 -5
  4. package/cli/blueprints/app-chrome.html +18 -0
  5. package/cli/blueprints/benefits-grid.html +9 -0
  6. package/cli/blueprints/bottom-nav-mobile.html +2 -1
  7. package/cli/blueprints/cookie-consent.html +1 -1
  8. package/cli/blueprints/cta-band.html +6 -0
  9. package/cli/blueprints/faq-section.html +18 -0
  10. package/cli/blueprints/filter-bar.html +4 -4
  11. package/cli/blueprints/form-contact.html +6 -5
  12. package/cli/blueprints/hero-section.html +3 -3
  13. package/cli/blueprints/notification-center.html +1 -1
  14. package/cli/blueprints/onboarding.html +2 -1
  15. package/cli/blueprints/ops-console.html +29 -0
  16. package/cli/blueprints/pricing-band.html +37 -0
  17. package/cli/blueprints/process-steps.html +10 -0
  18. package/cli/blueprints/services-grid.html +9 -0
  19. package/cli/blueprints/settings-panel.html +8 -6
  20. package/cli/blueprints/split-hero.html +25 -0
  21. package/cli/blueprints/testimonials.html +8 -0
  22. package/cli/blueprints/trust-bar.html +10 -0
  23. package/cli/cli-manifest.json +81 -17
  24. package/cli/contrast-utils.js +97 -0
  25. package/cli/create.js +370 -0
  26. package/cli/docgen/extract-attributes.js +126 -10
  27. package/cli/docgen/extract-cli.js +3 -2
  28. package/cli/docgen/extract-components.js +61 -2
  29. package/cli/docgen/extract-utilities.js +10 -10
  30. package/cli/doctor.js +119 -0
  31. package/cli/index.js +531 -44
  32. package/cli/meta.js +84 -1
  33. package/cli/perf-audit.js +15 -2
  34. package/cli/prompt-engine.js +243 -0
  35. package/cli/review.js +268 -0
  36. package/cli/scaffold.js +119 -4
  37. package/cli/scanner-rules-data.js +7 -0
  38. package/cli/scanner.js +357 -4
  39. package/cli/serve.js +81 -0
  40. package/cli/skills.js +223 -0
  41. package/cli/wc-api.js +89 -0
  42. package/cli/workflow.js +42 -0
  43. package/components/index.js +2 -0
  44. package/components/runtime/component-loaders.js +2 -0
  45. package/components/velin-accordion.js +62 -13
  46. package/components/velin-bottom-nav.js +10 -0
  47. package/components/velin-calendar.js +212 -0
  48. package/components/velin-command.js +18 -2
  49. package/components/velin-data-table.js +78 -1
  50. package/components/velin-dialog.js +4 -1
  51. package/components/velin-drawer.js +2 -4
  52. package/components/velin-file-dropzone.js +162 -0
  53. package/components/velin-icon.js +22 -1
  54. package/components/velin-lightbox.js +5 -3
  55. package/components/velin-modal.js +2 -4
  56. package/components/velin-search.js +1 -1
  57. package/components/velin-sheet.js +2 -4
  58. package/core/a11y/component-contracts.json +20 -3
  59. package/core/meta/build.js +125 -5
  60. package/core/meta/design-constraints/contact.json +9 -0
  61. package/core/meta/design-constraints/faq.json +9 -0
  62. package/core/meta/design-constraints/hero.json +13 -0
  63. package/core/meta/knowledge/components.json +622 -0
  64. package/core/meta/knowledge/tokens.json +282 -0
  65. package/core/meta/pages/registry.json +294 -0
  66. package/core/meta/schema.js +3 -1
  67. package/core/meta/sections/registry.json +185 -0
  68. package/dist/chunks/{attributes-STYCS3O5.js → attributes-A423NX5J.js} +3 -3
  69. package/dist/chunks/{attributes-353XDOAX.js → attributes-F6UPIEVP.js} +1 -1
  70. package/dist/chunks/{attributes-ADOKLKA7.js → attributes-GLYXGGAL.js} +3 -3
  71. package/dist/chunks/{attributes-TPANLMLF.js → attributes-UFTYOSAU.js} +3 -3
  72. package/dist/chunks/attributes-XGLXLR2T.js +391 -0
  73. package/dist/chunks/attributes-YF4NI2QS.js +391 -0
  74. package/dist/chunks/browser-AUABBYUK.js +1544 -0
  75. package/dist/chunks/{chunk-RSMRR27R.js → chunk-2LSKX57P.js} +12 -10
  76. package/dist/chunks/{chunk-IEHKRARD.js → chunk-2TGCVDUL.js} +11 -9
  77. package/dist/chunks/{chunk-SRL6EWHP.js → chunk-5JWGUAPC.js} +17 -13
  78. package/dist/chunks/chunk-7YSO2OQ2.js +113 -0
  79. package/dist/chunks/{chunk-QVHYL3R4.js → chunk-BHR3ZG6U.js} +6 -6
  80. package/dist/chunks/{chunk-J472ERN2.js → chunk-JMSIHEYX.js} +15 -4
  81. package/dist/chunks/{chunk-MKZP2TBH.js → chunk-L7ZGUU4D.js} +2 -2
  82. package/dist/chunks/chunk-TUGIPKW5.js +113 -0
  83. package/dist/chunks/{highlight-GJHHV4KM.js → highlight-M2ELQNYK.js} +1 -1
  84. package/dist/chunks/runtime-entry.js +1 -1
  85. package/dist/chunks/{velin-accordion-FBIPAEXG.js → velin-accordion-WSY6BMLA.js} +64 -10
  86. package/dist/chunks/{velin-bottom-nav-7GEMPIM6.js → velin-bottom-nav-5RVRNGIP.js} +25 -0
  87. package/dist/chunks/{velin-bottom-nav-N3DFQR66.js → velin-bottom-nav-N5F4UO2I.js} +26 -1
  88. package/dist/chunks/velin-calendar-OFE6THUD.js +210 -0
  89. package/dist/chunks/velin-calendar-PGVNJTXK.js +217 -0
  90. package/dist/chunks/velin-calendar-XC7JRDSH.js +217 -0
  91. package/dist/chunks/{velin-code-block-CIAURDRJ.js → velin-code-block-ZGWG7JI5.js} +1 -1
  92. package/dist/chunks/{velin-combobox-NXS4QB4R.js → velin-combobox-56V2ZWT5.js} +1 -1
  93. package/dist/chunks/{velin-command-ONKO2A3J.js → velin-command-2HO2EKR6.js} +29 -2
  94. package/dist/chunks/{velin-command-TMLSRGIU.js → velin-command-ZJSLPK7B.js} +30 -3
  95. package/dist/chunks/{velin-copy-NYDBOKXT.js → velin-copy-XDQSV2XU.js} +1 -1
  96. package/dist/chunks/{velin-countdown-4ZVDGK4R.js → velin-countdown-V4Z5MA63.js} +1 -1
  97. package/dist/chunks/velin-data-table-UVR42UUM.js +372 -0
  98. package/dist/chunks/{velin-dialog-GTTZI564.js → velin-dialog-3YK2RPRV.js} +9 -2
  99. package/dist/chunks/{velin-dialog-ELFOZIXZ.js → velin-dialog-S24KAP4S.js} +3 -1
  100. package/dist/chunks/{velin-drawer-BE6TYN3H.js → velin-drawer-5PNU624J.js} +2 -4
  101. package/dist/chunks/{velin-drawer-DLL2GLT6.js → velin-drawer-CCM6S25D.js} +3 -5
  102. package/dist/chunks/{velin-email-RBX6ZR4S.js → velin-email-TNFONXPW.js} +1 -1
  103. package/dist/chunks/velin-file-dropzone-QRGF2JNA.js +154 -0
  104. package/dist/chunks/velin-file-dropzone-XIZMJ3NB.js +154 -0
  105. package/dist/chunks/{velin-icon-7M76DOPB.js → velin-icon-A6NCXGUK.js} +59 -17
  106. package/dist/chunks/{velin-icon-ZTSKUOVN.js → velin-icon-EC4B5XCM.js} +18 -5
  107. package/dist/chunks/{velin-lightbox-6E7CAATP.js → velin-lightbox-FFK4TUUP.js} +7 -6
  108. package/dist/chunks/{velin-lightbox-NXA3U2FM.js → velin-lightbox-P725FLTY.js} +5 -4
  109. package/dist/chunks/{velin-menubar-J66JXRWW.js → velin-menubar-6I2LM5HL.js} +1 -1
  110. package/dist/chunks/{velin-modal-5HYNNNUI.js → velin-modal-ICTMGRSU.js} +7 -8
  111. package/dist/chunks/{velin-modal-AEOTZ67O.js → velin-modal-JBNODH7D.js} +2 -4
  112. package/dist/chunks/{velin-popover-T72HK3DF.js → velin-popover-WZG2GHBL.js} +25 -4
  113. package/dist/chunks/{velin-rating-N4DI2XNL.js → velin-rating-QBBYRRBU.js} +1 -1
  114. package/dist/chunks/{velin-search-7B4KJ6TX.js → velin-search-B3L6J2RP.js} +2 -2
  115. package/dist/chunks/{velin-search-2XRQFBCS.js → velin-search-L3UG6NDQ.js} +5 -4
  116. package/dist/chunks/{velin-secure-field-6PV7RZDJ.js → velin-secure-field-DGYMP7OK.js} +1 -1
  117. package/dist/chunks/{velin-segmented-control-GYD5BIXQ.js → velin-segmented-control-P74GJPAR.js} +1 -1
  118. package/dist/chunks/{velin-sheet-R2Y67X6H.js → velin-sheet-M5GZZD7G.js} +2 -4
  119. package/dist/chunks/{velin-sheet-OUK6572T.js → velin-sheet-X7RXIWKV.js} +3 -5
  120. package/dist/chunks/{velin-stepper-X54WGHDG.js → velin-stepper-4YQJUHPC.js} +12 -5
  121. package/dist/chunks/{velin-toast-OMMOA2DK.js → velin-toast-UG5LWTG2.js} +5 -1
  122. package/dist/chunks/{velin-tooltip-BDHGRTQB.js → velin-tooltip-ZDH5SDLU.js} +1 -1
  123. package/dist/llms.txt +29 -7
  124. package/dist/search-index.json +156 -10
  125. package/dist/velin-agent.json +3973 -28
  126. package/dist/velinstyle-components.iife.js +1211 -284
  127. package/dist/velinstyle-components.js +1213 -284
  128. package/dist/velinstyle-components.min.js +266 -118
  129. package/dist/velinstyle.css +252 -67
  130. package/dist/velinstyle.d.ts +2 -0
  131. package/dist/velinstyle.min.css +1 -1
  132. package/package.json +20 -6
  133. package/packages/skill-engine/README.md +24 -0
  134. package/packages/skill-engine/package.json +7 -0
  135. package/packages/skill-engine/src/catalog.js +29 -0
  136. package/packages/skill-engine/src/index.js +5 -0
  137. package/packages/skill-engine/src/install.js +69 -0
  138. package/packages/skill-engine/src/registry.js +27 -0
  139. package/packages/skill-engine/src/resolve.js +68 -0
  140. package/packages/skill-engine/src/validate.js +40 -0
  141. package/packages/velinstyle-skills/README.md +6 -0
  142. package/packages/velinstyle-skills/adapter.json +8 -0
  143. package/packages/velinstyle-skills/bundles/landing-starter.bundle.yaml +12 -0
  144. package/packages/velinstyle-skills/bundles/review-suite.bundle.yaml +11 -0
  145. package/packages/velinstyle-skills/catalog.json +1004 -0
  146. package/packages/velinstyle-skills/graphs/component-ship.graph.yaml +14 -0
  147. package/packages/velinstyle-skills/graphs/landingpage.graph.yaml +21 -0
  148. package/packages/velinstyle-skills/graphs/release-gate.graph.yaml +15 -0
  149. package/packages/velinstyle-skills/index.js +22 -0
  150. package/packages/velinstyle-skills/package.json +7 -0
  151. package/packages/velinstyle-skills/packs/accessibility.pack.yaml +9 -0
  152. package/packages/velinstyle-skills/packs/design.pack.yaml +10 -0
  153. package/packages/velinstyle-skills/packs/documentation.pack.yaml +8 -0
  154. package/packages/velinstyle-skills/packs/enterprise.pack.yaml +10 -0
  155. package/packages/velinstyle-skills/packs/frontend.pack.yaml +10 -0
  156. package/packages/velinstyle-skills/packs/review.pack.yaml +9 -0
  157. package/packages/velinstyle-skills/projects/admin-panel.project.yaml +12 -0
  158. package/packages/velinstyle-skills/projects/blog.project.yaml +11 -0
  159. package/packages/velinstyle-skills/projects/documentation-portal.project.yaml +13 -0
  160. package/packages/velinstyle-skills/projects/ecommerce-shop.project.yaml +12 -0
  161. package/packages/velinstyle-skills/projects/landing-page.project.yaml +12 -0
  162. package/packages/velinstyle-skills/projects/laravel-dashboard.project.yaml +12 -0
  163. package/packages/velinstyle-skills/projects/marketing-website.project.yaml +14 -0
  164. package/packages/velinstyle-skills/projects/portfolio.project.yaml +12 -0
  165. package/packages/velinstyle-skills/registry.json +142 -0
  166. package/packages/velinstyle-skills/scripts/generate-assets.mjs +163 -0
  167. package/packages/velinstyle-skills/skills/velin-a11y-focus-keyboard/SKILL.md +57 -0
  168. package/packages/velinstyle-skills/skills/velin-a11y-page-checklist/SKILL.md +57 -0
  169. package/packages/velinstyle-skills/skills/velin-a11y-scan-fix/SKILL.md +57 -0
  170. package/packages/velinstyle-skills/skills/velin-ai-agent-briefing/SKILL.md +57 -0
  171. package/packages/velinstyle-skills/skills/velin-ai-plan-scaffold-review/SKILL.md +57 -0
  172. package/packages/velinstyle-skills/skills/velin-ai-skill-authoring/SKILL.md +57 -0
  173. package/packages/velinstyle-skills/skills/velin-components-accessibility-map/SKILL.md +57 -0
  174. package/packages/velinstyle-skills/skills/velin-components-api-contract/SKILL.md +57 -0
  175. package/packages/velinstyle-skills/skills/velin-components-recipe/SKILL.md +57 -0
  176. package/packages/velinstyle-skills/skills/velin-components-select-compose/SKILL.md +57 -0
  177. package/packages/velinstyle-skills/skills/velin-design-hero-compose/SKILL.md +57 -0
  178. package/packages/velinstyle-skills/skills/velin-design-section-rhythm/SKILL.md +57 -0
  179. package/packages/velinstyle-skills/skills/velin-design-surface-roles/SKILL.md +57 -0
  180. package/packages/velinstyle-skills/skills/velin-dev-component-wire/SKILL.md +57 -0
  181. package/packages/velinstyle-skills/skills/velin-dev-page-scaffold/SKILL.md +57 -0
  182. package/packages/velinstyle-skills/skills/velin-dev-plan-first/SKILL.md +57 -0
  183. package/packages/velinstyle-skills/skills/velin-docs-component-guide/SKILL.md +57 -0
  184. package/packages/velinstyle-skills/skills/velin-docs-generate-api/SKILL.md +57 -0
  185. package/packages/velinstyle-skills/skills/velin-dx-doctor-setup/SKILL.md +57 -0
  186. package/packages/velinstyle-skills/skills/velin-dx-project-init/SKILL.md +57 -0
  187. package/packages/velinstyle-skills/skills/velin-migration-legacy-wc/SKILL.md +57 -0
  188. package/packages/velinstyle-skills/skills/velin-migration-prefix-classes/SKILL.md +57 -0
  189. package/packages/velinstyle-skills/skills/velin-motion-reduced-safe/SKILL.md +57 -0
  190. package/packages/velinstyle-skills/skills/velin-motion-reveal-feedback/SKILL.md +57 -0
  191. package/packages/velinstyle-skills/skills/velin-perf-audit-fix/SKILL.md +57 -0
  192. package/packages/velinstyle-skills/skills/velin-perf-runtime-tree-shake/SKILL.md +57 -0
  193. package/packages/velinstyle-skills/skills/velin-release-changelog-sync/SKILL.md +57 -0
  194. package/packages/velinstyle-skills/skills/velin-release-meta-rebuild/SKILL.md +57 -0
  195. package/packages/velinstyle-skills/skills/velin-review-conversion-hero/SKILL.md +57 -0
  196. package/packages/velinstyle-skills/skills/velin-review-page-gate/SKILL.md +57 -0
  197. package/packages/velinstyle-skills/skills/velin-review-seo-meta/SKILL.md +57 -0
  198. package/packages/velinstyle-skills/skills/velin-security-sanitize-html/SKILL.md +57 -0
  199. package/packages/velinstyle-skills/skills/velin-security-scan-pii/SKILL.md +57 -0
  200. package/packages/velinstyle-skills/skills/velin-testing-a11y-suite/SKILL.md +57 -0
  201. package/packages/velinstyle-skills/skills/velin-testing-visual-smoke/SKILL.md +57 -0
  202. package/packages/velinstyle-skills/skills/velin-themes-apply-token/SKILL.md +57 -0
  203. package/packages/velinstyle-skills/skills/velin-themes-contrast-check/SKILL.md +57 -0
  204. package/packages/velinstyle-skills/skills/velin-utilities-layout-apply/SKILL.md +57 -0
  205. package/packages/velinstyle-skills/skills/velin-utilities-prefix-fix/SKILL.md +57 -0
  206. package/packages/velinstyle-skills/skills/velin-utilities-token-map/SKILL.md +57 -0
  207. package/packages/velinstyle-skills/templates/admin-panel.template.yaml +12 -0
  208. package/packages/velinstyle-skills/templates/blog.template.yaml +12 -0
  209. package/packages/velinstyle-skills/templates/documentation-portal.template.yaml +12 -0
  210. package/packages/velinstyle-skills/templates/ecommerce-shop.template.yaml +13 -0
  211. package/packages/velinstyle-skills/templates/landing-page.template.yaml +12 -0
  212. package/packages/velinstyle-skills/templates/laravel-dashboard.template.yaml +11 -0
  213. package/packages/velinstyle-skills/templates/marketing-website.template.yaml +13 -0
  214. package/packages/velinstyle-skills/templates/portfolio.template.yaml +12 -0
  215. package/schemas/component-knowledge.schema.json +33 -0
  216. package/schemas/design-constraint.schema.json +15 -0
  217. package/schemas/design-intelligence.schema.json +19 -0
  218. package/schemas/design-rule.schema.json +19 -0
  219. package/schemas/page-template.schema.json +24 -0
  220. package/schemas/review-report.schema.json +36 -0
  221. package/schemas/section.schema.json +22 -0
  222. package/schemas/skill-bundle.schema.json +15 -0
  223. package/schemas/skill-graph.schema.json +25 -0
  224. package/schemas/skill-pack.schema.json +14 -0
  225. package/schemas/skill-project.schema.json +16 -0
  226. package/schemas/skill-record.schema.json +27 -0
  227. package/schemas/skill-registry.schema.json +17 -0
  228. package/schemas/skill-template.schema.json +17 -0
  229. package/schemas/token-graph.schema.json +27 -0
  230. package/schemas/utility.schema.json +166 -0
  231. package/src/components/alert.css +22 -1
  232. package/src/components/calendar-dropzone.css +5 -0
  233. package/src/layout/app-shell.css +33 -0
  234. package/src/tokens/shadow.css +13 -0
  235. package/src/utilities/border.css +2 -0
  236. package/src/utilities/display.css +1 -24
  237. package/src/utilities/responsive.css +16 -1
  238. package/src/utilities/spacing.css +32 -0
  239. package/src/velinstyle.css +2 -0
  240. package/dist/chunks/attributes-3BZLI7XF.js +0 -364
  241. package/dist/chunks/attributes-4N5JP4CG.js +0 -364
  242. package/dist/chunks/attributes-5Q2WXGRC.js +0 -374
  243. package/dist/chunks/attributes-AIR7SVLK.js +0 -364
  244. package/dist/chunks/attributes-BGRN5XZO.js +0 -364
  245. package/dist/chunks/attributes-BVSQAYLR.js +0 -364
  246. package/dist/chunks/attributes-CDYFUY7Y.js +0 -364
  247. package/dist/chunks/attributes-JMYJZBPE.js +0 -364
  248. package/dist/chunks/attributes-R5JY3X4O.js +0 -374
  249. package/dist/chunks/attributes-TNSPQTHX.js +0 -374
  250. package/dist/chunks/chunk-2354NEBP.js +0 -109
  251. package/dist/chunks/chunk-2VNA7G7S.js +0 -109
  252. package/dist/chunks/chunk-AQLRJSGG.js +0 -109
  253. package/dist/chunks/chunk-EWPSDMQT.js +0 -109
  254. package/dist/chunks/chunk-LA7264K4.js +0 -85
  255. package/dist/chunks/chunk-QTJJ3DPO.js +0 -109
  256. package/dist/chunks/chunk-RZQVWFHW.js +0 -109
  257. package/dist/chunks/chunk-U4XHMZ7D.js +0 -109
  258. package/dist/chunks/chunk-V5YIUA6G.js +0 -109
  259. package/dist/chunks/chunk-XIET2VSZ.js +0 -109
  260. package/dist/chunks/chunk-XYLJ2GCB.js +0 -205
  261. package/dist/chunks/chunk-ZPSPKUYD.js +0 -109
  262. package/dist/chunks/highlight-XTHRKBA3.js +0 -37
  263. package/dist/chunks/velin-bottom-nav-2N2TYWOF.js +0 -86
  264. package/dist/chunks/velin-carousel-Y5VCOABZ.js +0 -213
  265. package/dist/chunks/velin-code-block-ASUBTAQV.js +0 -119
  266. package/dist/chunks/velin-code-block-TSUKPY4C.js +0 -123
  267. package/dist/chunks/velin-code-block-Y6CM726Q.js +0 -119
  268. package/dist/chunks/velin-combobox-2KDTCQ7N.js +0 -155
  269. package/dist/chunks/velin-command-M7RNHUPR.js +0 -136
  270. package/dist/chunks/velin-copy-T5KDTDXP.js +0 -81
  271. package/dist/chunks/velin-countdown-5XSTN3BH.js +0 -101
  272. package/dist/chunks/velin-counter-ISCTEAHI.js +0 -118
  273. package/dist/chunks/velin-dialog-D2GUHSCD.js +0 -144
  274. package/dist/chunks/velin-dialog-IJLFDXAJ.js +0 -144
  275. package/dist/chunks/velin-dialog-TNS3WXMB.js +0 -144
  276. package/dist/chunks/velin-drawer-MJS6WCF7.js +0 -130
  277. package/dist/chunks/velin-email-N5B5ZYTE.js +0 -90
  278. package/dist/chunks/velin-icon-KZO3IEHG.js +0 -164
  279. package/dist/chunks/velin-lightbox-I75U6JF4.js +0 -140
  280. package/dist/chunks/velin-lightbox-QOTB4PRL.js +0 -140
  281. package/dist/chunks/velin-lightbox-UCD6N7HF.js +0 -140
  282. package/dist/chunks/velin-live-dot-XHUZCIDZ.js +0 -67
  283. package/dist/chunks/velin-menubar-SFEXJE56.js +0 -86
  284. package/dist/chunks/velin-modal-2HOBXE6F.js +0 -176
  285. package/dist/chunks/velin-modal-GLI2XZZB.js +0 -176
  286. package/dist/chunks/velin-popover-EXINRIGJ.js +0 -145
  287. package/dist/chunks/velin-popover-OXX7MRZ6.js +0 -145
  288. package/dist/chunks/velin-popover-YKCCROJG.js +0 -145
  289. package/dist/chunks/velin-rating-XRQJV4LO.js +0 -91
  290. package/dist/chunks/velin-scroll-top-F2FCZNYD.js +0 -58
  291. package/dist/chunks/velin-search-4YHJWYSS.js +0 -556
  292. package/dist/chunks/velin-search-LWHY23Q5.js +0 -474
  293. package/dist/chunks/velin-secure-field-H7FSBUJW.js +0 -95
  294. package/dist/chunks/velin-segmented-control-PQX6LKOJ.js +0 -109
  295. package/dist/chunks/velin-sheet-3OGI4HD7.js +0 -119
  296. package/dist/chunks/velin-sparkline-GVEANJVW.js +0 -184
  297. package/dist/chunks/velin-sparkline-KDA3GQAN.js +0 -162
  298. package/dist/chunks/velin-stepper-2ZIHLKGM.js +0 -141
  299. package/dist/chunks/velin-stepper-FYEUEWE6.js +0 -141
  300. package/dist/chunks/velin-stepper-wc-QU3KRVQR.js +0 -133
  301. package/dist/chunks/velin-theme-toggle-BNNS7WLV.js +0 -285
  302. package/dist/chunks/velin-theme-toggle-NO7V4TWI.js +0 -285
  303. package/dist/chunks/velin-theme-toggle-QELCJM2Q.js +0 -291
  304. package/dist/chunks/velin-toast-RCZ4CSUC.js +0 -109
  305. package/dist/chunks/velin-toast-WEUBTJG6.js +0 -109
  306. package/dist/chunks/velin-tooltip-664IOHZA.js +0 -112
  307. package/dist/chunks/velin-tooltip-wc-LXDVT6DE.js +0 -103
  308. package/dist/chunks/worker-client-R6DBYPFT.js +0 -46
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@birdapi/velinstyle",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -27,7 +27,8 @@
27
27
  "./attributes": "./core/attributes/index.js",
28
28
  "./highlight": "./core/highlight/index.js",
29
29
  "./meta": "./core/meta/index.js",
30
- "./a11y": "./components/a11y-entry.js"
30
+ "./a11y": "./components/a11y-entry.js",
31
+ "./skills-registry": "./packages/velinstyle-skills/registry.json"
31
32
  },
32
33
  "bin": {
33
34
  "velinstyle": "cli/index.js"
@@ -46,6 +47,9 @@
46
47
  "components/",
47
48
  "core/",
48
49
  "cli/",
50
+ "packages/skill-engine/",
51
+ "packages/velinstyle-skills/",
52
+ "schemas/",
49
53
  "examples/search-index.schema.json",
50
54
  "icons/velin-icons.svg"
51
55
  ],
@@ -80,18 +84,28 @@
80
84
  "tokens:validate:full": "node cli/index.js tokens validate --input examples/tokens.full.json",
81
85
  "docs:generate": "node cli/index.js docs generate",
82
86
  "search:index": "node cli/index.js search index",
87
+ "skills:generate": "node packages/velinstyle-skills/scripts/generate-assets.mjs && node -e \"import('./packages/velinstyle-skills/index.js').then(m=>m.writeCatalogFile())\"",
88
+ "skills:validate": "node scripts/validate-skills.mjs",
89
+ "skills:doctor": "node scripts/check-skills-paths.mjs",
83
90
  "meta:build": "node cli/index.js meta",
84
91
  "ci:checks": "node scripts/ci-checks.mjs",
92
+ "check:blueprints": "node scripts/check-blueprint-classes.mjs",
93
+ "check:chaos": "node scripts/check-chaos-detection.mjs",
85
94
  "release:check": "node scripts/check-release-sync.mjs",
86
95
  "release:sync": "node scripts/check-release-sync.mjs --fix",
87
- "prepublishOnly": "npm run build && npm run search:index && npm run meta:build && npm run release:check -- --skip-site",
96
+ "intelligence:validate": "node scripts/validate-intelligence-schemas.mjs",
97
+ "prepublishOnly": "npm run build && npm run check:blueprints && npm run search:index && npm run skills:generate && npm run skills:validate && npm run skills:doctor && npm run meta:build && npm run intelligence:validate && npm run release:check -- --skip-site",
88
98
  "pack:check": "npm pack --dry-run",
89
99
  "docs:prepare": "npm run build && node scripts/prepare-docs-pages.js",
90
100
  "docs:patch-nav": "node scripts/patch-docs-nav.js",
91
101
  "docs:sync-site": "npm run build && npm run docs:generate && python ../velinstyle-site/tools/sync-framework-0.9.0.py && python ../velinstyle-site/tools/patch-site-a11y-aaa.py && python ../velinstyle-site/tools/patch-docs-090-final.py",
92
102
  "readme:capture": "node tools/capture-readme-demos.mjs",
93
103
  "readme:assets:webp": "node tools/readme-png-to-webp.mjs",
94
- "demos:sync": "node tools/sync-demos-to-repo.mjs --out showcase-demos && node tools/sync-demos-to-repo.mjs --out ../velinstyle-demos"
104
+ "demos:sync": "node tools/sync-demos-to-repo.mjs --out showcase-demos && node tools/sync-demos-to-repo.mjs --out ../velinstyle-demos",
105
+ "strategy:bootstrap-issues": "node scripts/bootstrap-github-backlog.mjs",
106
+ "strategy:bootstrap-issues:dry": "node scripts/bootstrap-github-backlog.mjs --dry-run",
107
+ "strategy:bootstrap-next30": "node scripts/bootstrap-github-backlog.mjs --issues-only --seed=../interne_docs/strategy/next-30-issues.json --map=../interne_docs/strategy/next-30-issue-map.json",
108
+ "strategy:bootstrap-next30:dry": "node scripts/bootstrap-github-backlog.mjs --dry-run --issues-only --seed=../interne_docs/strategy/next-30-issues.json --map=../interne_docs/strategy/next-30-issue-map.json"
95
109
  },
96
110
  "keywords": [
97
111
  "css",
@@ -110,11 +124,11 @@
110
124
  "author": "SkyliteDesign",
111
125
  "license": "MIT",
112
126
  "devDependencies": {
127
+ "@playwright/test": "^1.60.0",
113
128
  "axe-core": "^4.10.0",
114
129
  "esbuild": "^0.24.0",
115
130
  "jsdom": "^26.1.0",
116
131
  "lightningcss-cli": "^1.28.0",
117
- "@playwright/test": "^1.60.0",
118
132
  "playwright": "^1.60.0",
119
133
  "serve": "^14.0.0",
120
134
  "sharp": "^0.34.5",
@@ -123,6 +137,6 @@
123
137
  "vitest": "^3.2.0"
124
138
  },
125
139
  "dependencies": {
126
- "isomorphic-dompurify": "^3.13.0"
140
+ "isomorphic-dompurify": "^3.21.0"
127
141
  }
128
142
  }
@@ -0,0 +1,24 @@
1
+ # `@velinstyle/skill-engine`
2
+
3
+ Internal runtime helpers for VelinStyle **AI Skills** (registry resolution, workflow graphs, install/run orchestration).
4
+
5
+ **Consumers:** `packages/velinstyle-skills` and the `velinstyle skills` / `workflow` CLI.
6
+
7
+ **Status:** Foundation / beta — not a standalone public product API yet.
8
+
9
+ ## Docs
10
+
11
+ - Beginner: [`../../docs/guides/ai-skills.md`](../../docs/guides/ai-skills.md)
12
+ - Strategy: [`../../../interne_docs/strategy/AI_SKILLS.md`](../../../interne_docs/strategy/AI_SKILLS.md) (local monorepo)
13
+ - Architecture: [`../../ARCHITECTURE.md`](../../ARCHITECTURE.md)
14
+
15
+ ## Usage
16
+
17
+ Prefer the CLI:
18
+
19
+ ```bash
20
+ velinstyle skills list
21
+ velinstyle workflow landingpage --json
22
+ ```
23
+
24
+ Direct imports are for framework tooling and advanced integrations — expect breaking changes until skills leave Foundation.
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "@birdapi/skill-engine",
3
+ "version": "1.0.0",
4
+ "private": true,
5
+ "type": "module",
6
+ "main": "src/index.js"
7
+ }
@@ -0,0 +1,29 @@
1
+ export function buildCatalogProjection(registry) {
2
+ return {
3
+ version: registry.version,
4
+ generatedAt: new Date().toISOString(),
5
+ totals: {
6
+ skills: (registry.skills || []).length,
7
+ packs: (registry.packs || []).length,
8
+ workflowGraphs: (registry.workflowGraphs || []).length,
9
+ bundles: (registry.bundles || []).length,
10
+ templates: (registry.templates || []).length,
11
+ projects: (registry.projects || []).length,
12
+ },
13
+ skills: (registry.skills || []).map((skill) => ({
14
+ id: skill.id,
15
+ name: skill.name || skill.id,
16
+ category: skill.category,
17
+ priority: skill.priority,
18
+ status: skill.status,
19
+ confidence: skill.confidence,
20
+ capabilities: skill.capabilities || [],
21
+ description: skill.description || '',
22
+ })),
23
+ packs: registry.packs || [],
24
+ workflowGraphs: (registry.workflowGraphs || []).map((item) => ({ id: item.id, name: item.name, entry: item.entry })),
25
+ bundles: registry.bundles || [],
26
+ templates: registry.templates || [],
27
+ projects: registry.projects || [],
28
+ };
29
+ }
@@ -0,0 +1,5 @@
1
+ export { loadRegistry, listSkills, findSkillById } from './registry.js';
2
+ export { resolveSkillGraph, resolveWorkflowGraph } from './resolve.js';
3
+ export { validateRegistry } from './validate.js';
4
+ export { buildCatalogProjection } from './catalog.js';
5
+ export { installSelection } from './install.js';
@@ -0,0 +1,69 @@
1
+ import { cpSync, existsSync, mkdirSync } from 'fs';
2
+ import { dirname, join } from 'path';
3
+ import { findSkillById } from './registry.js';
4
+ import { resolveSkillGraph, resolveWorkflowGraph } from './resolve.js';
5
+
6
+ function ensureDir(path) {
7
+ if (!existsSync(path)) mkdirSync(path, { recursive: true });
8
+ }
9
+
10
+ function copySkillFromRegistry(registry, skillsRoot, targetRoot, skillId) {
11
+ const skill = findSkillById(registry, skillId);
12
+ if (!skill || !skill.prosePath) return false;
13
+ const prosePath = join(skillsRoot, skill.prosePath);
14
+ const targetDir = join(targetRoot, skillId);
15
+ ensureDir(targetDir);
16
+ cpSync(prosePath, join(targetDir, 'SKILL.md'));
17
+ return true;
18
+ }
19
+
20
+ export function installSelection(registry, options) {
21
+ const { selection, skillsRoot, targetRoot, includeDependencies = true } = options;
22
+ ensureDir(targetRoot);
23
+ const installed = [];
24
+ const issues = [];
25
+
26
+ const addSkill = (skillId) => {
27
+ if (installed.includes(skillId)) return;
28
+ if (includeDependencies) {
29
+ const resolved = resolveSkillGraph(registry, skillId);
30
+ issues.push(...resolved.issues);
31
+ for (const dep of resolved.orderedSkillIds) {
32
+ if (copySkillFromRegistry(registry, skillsRoot, targetRoot, dep)) installed.push(dep);
33
+ }
34
+ return;
35
+ }
36
+ if (copySkillFromRegistry(registry, skillsRoot, targetRoot, skillId)) installed.push(skillId);
37
+ };
38
+
39
+ if (selection.startsWith('bundle:')) {
40
+ const bundleId = selection.replace('bundle:', '');
41
+ const bundle = (registry.bundles || []).find((item) => item.id === bundleId);
42
+ if (!bundle) issues.push(`Unknown bundle ${bundleId}`);
43
+ for (const packId of bundle?.packs || []) {
44
+ const pack = (registry.packs || []).find((item) => item.id === packId);
45
+ for (const skillId of pack?.skills || []) addSkill(skillId);
46
+ }
47
+ } else if (selection.startsWith('project:')) {
48
+ const projectId = selection.replace('project:', '');
49
+ const project = (registry.projects || []).find((item) => item.id === projectId);
50
+ if (!project) issues.push(`Unknown project ${projectId}`);
51
+ for (const skillId of project?.skills || []) addSkill(skillId);
52
+ if (project?.workflowGraph) {
53
+ const resolved = resolveWorkflowGraph(registry, project.workflowGraph);
54
+ issues.push(...resolved.issues);
55
+ for (const skillId of resolved.orderedSteps) addSkill(skillId);
56
+ }
57
+ } else {
58
+ const pack = (registry.packs || []).find((item) => item.id === selection);
59
+ if (pack) {
60
+ for (const skillId of pack.skills || []) addSkill(skillId);
61
+ } else {
62
+ addSkill(selection);
63
+ }
64
+ }
65
+
66
+ const indexPath = join(targetRoot, 'README.md');
67
+ ensureDir(dirname(indexPath));
68
+ return { installed, issues };
69
+ }
@@ -0,0 +1,27 @@
1
+ import { readFileSync } from 'fs';
2
+
3
+ export function loadRegistry(registryPath) {
4
+ return JSON.parse(readFileSync(registryPath, 'utf-8'));
5
+ }
6
+
7
+ export function listSkills(registry, filters = {}) {
8
+ const {
9
+ capability,
10
+ status,
11
+ priority,
12
+ origin,
13
+ category,
14
+ } = filters;
15
+ return (registry.skills || []).filter((skill) => {
16
+ if (capability && !(skill.capabilities || []).includes(capability)) return false;
17
+ if (status && skill.status !== status) return false;
18
+ if (priority && skill.priority !== priority) return false;
19
+ if (origin && skill.origin !== origin) return false;
20
+ if (category && skill.category !== category) return false;
21
+ return true;
22
+ });
23
+ }
24
+
25
+ export function findSkillById(registry, skillId) {
26
+ return (registry.skills || []).find((skill) => skill.id === skillId) || null;
27
+ }
@@ -0,0 +1,68 @@
1
+ import { findSkillById } from './registry.js';
2
+
3
+ function visitSkill(registry, skillId, visiting, visited, ordered, issues) {
4
+ if (visited.has(skillId)) return;
5
+ if (visiting.has(skillId)) {
6
+ issues.push(`Dependency cycle detected at ${skillId}`);
7
+ return;
8
+ }
9
+ const skill = findSkillById(registry, skillId);
10
+ if (!skill) {
11
+ issues.push(`Unknown skill reference: ${skillId}`);
12
+ return;
13
+ }
14
+ visiting.add(skillId);
15
+ for (const dep of skill.dependsOn || []) visitSkill(registry, dep, visiting, visited, ordered, issues);
16
+ visiting.delete(skillId);
17
+ visited.add(skillId);
18
+ ordered.push(skillId);
19
+ }
20
+
21
+ export function resolveSkillGraph(registry, skillId) {
22
+ const issues = [];
23
+ const ordered = [];
24
+ visitSkill(registry, skillId, new Set(), new Set(), ordered, issues);
25
+ return { orderedSkillIds: ordered, issues };
26
+ }
27
+
28
+ export function resolveWorkflowGraph(registry, workflowId) {
29
+ const graph = (registry.workflowGraphs || []).find((item) => item.id === workflowId);
30
+ if (!graph) return { orderedSteps: [], issues: [`Unknown workflow graph: ${workflowId}`] };
31
+ const nodeMap = new Map(Object.entries(graph.nodes || {}));
32
+ const inDegree = new Map();
33
+ for (const [nodeId] of nodeMap.entries()) inDegree.set(nodeId, 0);
34
+ for (const edge of graph.edges || []) {
35
+ if (!inDegree.has(edge.from) || !inDegree.has(edge.to)) {
36
+ return { orderedSteps: [], issues: [`Invalid edge ${edge.from} -> ${edge.to}`] };
37
+ }
38
+ inDegree.set(edge.to, (inDegree.get(edge.to) || 0) + 1);
39
+ }
40
+ const queue = [];
41
+ for (const [nodeId, deg] of inDegree.entries()) if (deg === 0) queue.push(nodeId);
42
+ const orderedNodes = [];
43
+ while (queue.length) {
44
+ const nodeId = queue.shift();
45
+ orderedNodes.push(nodeId);
46
+ for (const edge of graph.edges || []) {
47
+ if (edge.from !== nodeId) continue;
48
+ const next = (inDegree.get(edge.to) || 0) - 1;
49
+ inDegree.set(edge.to, next);
50
+ if (next === 0) queue.push(edge.to);
51
+ }
52
+ }
53
+ if (orderedNodes.length !== nodeMap.size) {
54
+ return { orderedSteps: [], issues: [`Workflow graph has a cycle: ${workflowId}`] };
55
+ }
56
+ const orderedSteps = [];
57
+ const issues = [];
58
+ for (const nodeId of orderedNodes) {
59
+ const node = nodeMap.get(nodeId);
60
+ if (!node?.skill) continue;
61
+ const resolved = resolveSkillGraph(registry, node.skill);
62
+ issues.push(...resolved.issues);
63
+ for (const depSkill of resolved.orderedSkillIds) {
64
+ if (!orderedSteps.includes(depSkill)) orderedSteps.push(depSkill);
65
+ }
66
+ }
67
+ return { orderedSteps, issues };
68
+ }
@@ -0,0 +1,40 @@
1
+ import { findSkillById } from './registry.js';
2
+ import { resolveWorkflowGraph } from './resolve.js';
3
+
4
+ const allowedPriority = new Set(['core', 'recommended', 'advanced', 'experimental']);
5
+ const allowedStatus = new Set(['draft', 'experimental', 'beta', 'stable', 'deprecated', 'legacy']);
6
+
7
+ export function validateRegistry(registry) {
8
+ const errors = [];
9
+ const warnings = [];
10
+ const ids = new Set();
11
+ for (const skill of registry.skills || []) {
12
+ if (!skill.id) errors.push('Skill without id');
13
+ if (ids.has(skill.id)) errors.push(`Duplicate skill id: ${skill.id}`);
14
+ ids.add(skill.id);
15
+ if (!allowedPriority.has(skill.priority)) errors.push(`Invalid priority for ${skill.id}`);
16
+ if (!allowedStatus.has(skill.status)) errors.push(`Invalid status for ${skill.id}`);
17
+ for (const dep of skill.dependsOn || []) {
18
+ if (!findSkillById(registry, dep)) errors.push(`Unknown dependency ${dep} in ${skill.id}`);
19
+ }
20
+ }
21
+
22
+ for (const wf of registry.workflowGraphs || []) {
23
+ const resolved = resolveWorkflowGraph(registry, wf.id);
24
+ errors.push(...resolved.issues);
25
+ }
26
+
27
+ for (const pack of registry.packs || []) {
28
+ for (const skillId of pack.skills || []) {
29
+ if (!findSkillById(registry, skillId)) errors.push(`Pack ${pack.id} references unknown skill ${skillId}`);
30
+ }
31
+ }
32
+
33
+ for (const project of registry.projects || []) {
34
+ if (project.workflowGraph && !(registry.workflowGraphs || []).some((wf) => wf.id === project.workflowGraph)) {
35
+ errors.push(`Project ${project.id} references unknown workflow graph ${project.workflowGraph}`);
36
+ }
37
+ }
38
+
39
+ return { ok: errors.length === 0, errors, warnings };
40
+ }
@@ -0,0 +1,6 @@
1
+ # VelinStyle Skills Registry
2
+
3
+ Registry-first skill assets for AI Runtime + Skill Engine.
4
+
5
+ - Source of truth: `registry.json`
6
+ - Derived: `catalog.json`, `skills/**/SKILL.md`, `packs/*.yaml`, `graphs/*.yaml`, `bundles/*.yaml`, `templates/*.yaml`, `projects/*.yaml`
@@ -0,0 +1,8 @@
1
+ {
2
+ "id": "velinstyle",
3
+ "name": "VelinStyle Adapter",
4
+ "frameworkPackage": "@birdapi/velinstyle",
5
+ "registryFile": "registry.json",
6
+ "catalogFile": "catalog.json",
7
+ "description": "Bridges the shared skill engine to VelinStyle CLI and meta surfaces."
8
+ }
@@ -0,0 +1,12 @@
1
+ id: landing-starter
2
+ origin: official
3
+ packs:
4
+ - frontend
5
+ - design
6
+ - review
7
+ graphs:
8
+ - landingpage
9
+ templates:
10
+ - landing-page
11
+ docs:
12
+ - docs/guides/ai-skills.html
@@ -0,0 +1,11 @@
1
+ id: review-suite
2
+ origin: official
3
+ packs:
4
+ - accessibility
5
+ - review
6
+ graphs:
7
+ - release-gate
8
+ templates:
9
+
10
+ docs:
11
+ - docs/guides/ai-skills.html