@birdapi/velinstyle 1.0.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 (321) hide show
  1. package/README.de.md +87 -158
  2. package/README.md +188 -115
  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-a11y.js +4 -2
  27. package/cli/docgen/extract-attributes.js +126 -10
  28. package/cli/docgen/extract-cli.js +3 -2
  29. package/cli/docgen/extract-components.js +61 -2
  30. package/cli/docgen/extract-utilities.js +10 -10
  31. package/cli/doctor.js +119 -0
  32. package/cli/index.js +535 -46
  33. package/cli/meta.js +84 -1
  34. package/cli/perf-audit.js +15 -2
  35. package/cli/prompt-engine.js +243 -0
  36. package/cli/review.js +268 -0
  37. package/cli/scaffold.js +119 -4
  38. package/cli/scanner-rules-data.js +7 -0
  39. package/cli/scanner.js +357 -4
  40. package/cli/serve.js +81 -0
  41. package/cli/skills.js +223 -0
  42. package/cli/wc-api.js +89 -0
  43. package/cli/workflow.js +42 -0
  44. package/components/index.js +4 -0
  45. package/components/runtime/component-loaders.js +4 -0
  46. package/components/velin-accordion.js +62 -13
  47. package/components/velin-bottom-nav.js +10 -0
  48. package/components/velin-calendar.js +212 -0
  49. package/components/velin-command.js +18 -2
  50. package/components/velin-data-table.js +438 -0
  51. package/components/velin-dialog.js +4 -1
  52. package/components/velin-drawer.js +2 -4
  53. package/components/velin-file-dropzone.js +162 -0
  54. package/components/velin-form-summary.js +348 -0
  55. package/components/velin-icon.js +22 -1
  56. package/components/velin-lightbox.js +5 -3
  57. package/components/velin-modal.js +2 -4
  58. package/components/velin-search.js +1 -1
  59. package/components/velin-sheet.js +2 -4
  60. package/core/a11y/component-contracts.json +35 -1
  61. package/core/highlight/languages/go.js +28 -0
  62. package/core/highlight/languages/python.js +29 -0
  63. package/core/highlight/languages/rust.js +32 -0
  64. package/core/highlight/languages/yaml.js +23 -0
  65. package/core/highlight/registry.js +13 -2
  66. package/core/meta/build.js +126 -6
  67. package/core/meta/design-constraints/contact.json +9 -0
  68. package/core/meta/design-constraints/faq.json +9 -0
  69. package/core/meta/design-constraints/hero.json +13 -0
  70. package/core/meta/knowledge/components.json +622 -0
  71. package/core/meta/knowledge/tokens.json +282 -0
  72. package/core/meta/pages/registry.json +294 -0
  73. package/core/meta/schema.js +3 -1
  74. package/core/meta/sections/registry.json +185 -0
  75. package/dist/chunks/{attributes-TPANLMLF.js → attributes-A423NX5J.js} +3 -3
  76. package/dist/chunks/{attributes-ADOKLKA7.js → attributes-F6UPIEVP.js} +2 -2
  77. package/dist/chunks/{attributes-STYCS3O5.js → attributes-GLYXGGAL.js} +3 -3
  78. package/dist/chunks/{attributes-5Q2WXGRC.js → attributes-UFTYOSAU.js} +20 -3
  79. package/dist/chunks/attributes-XGLXLR2T.js +391 -0
  80. package/dist/chunks/attributes-YF4NI2QS.js +391 -0
  81. package/dist/chunks/browser-AUABBYUK.js +1544 -0
  82. package/dist/chunks/{chunk-SRL6EWHP.js → chunk-2LSKX57P.js} +13 -11
  83. package/dist/chunks/{chunk-RSMRR27R.js → chunk-2TGCVDUL.js} +11 -9
  84. package/dist/chunks/{chunk-XIET2VSZ.js → chunk-5JWGUAPC.js} +17 -13
  85. package/dist/chunks/chunk-7YSO2OQ2.js +113 -0
  86. package/dist/chunks/{chunk-IEHKRARD.js → chunk-BHR3ZG6U.js} +10 -8
  87. package/dist/chunks/{chunk-J472ERN2.js → chunk-ERF5YVP4.js} +15 -4
  88. package/dist/chunks/{chunk-XYLJ2GCB.js → chunk-JMSIHEYX.js} +55 -7
  89. package/dist/chunks/{chunk-MKZP2TBH.js → chunk-L7ZGUU4D.js} +2 -2
  90. package/dist/chunks/chunk-TUGIPKW5.js +113 -0
  91. package/dist/chunks/go-HZ6XTFCK.js +31 -0
  92. package/dist/chunks/{highlight-GJHHV4KM.js → highlight-IBDX4XWS.js} +1 -1
  93. package/dist/chunks/{highlight-XTHRKBA3.js → highlight-M2ELQNYK.js} +1 -1
  94. package/dist/chunks/python-BMPKDKNO.js +32 -0
  95. package/dist/chunks/runtime-entry.js +1 -1
  96. package/dist/chunks/rust-2BWKI2MN.js +35 -0
  97. package/dist/chunks/{velin-accordion-FBIPAEXG.js → velin-accordion-WSY6BMLA.js} +64 -10
  98. package/dist/chunks/{velin-bottom-nav-7GEMPIM6.js → velin-bottom-nav-5RVRNGIP.js} +25 -0
  99. package/dist/chunks/{velin-bottom-nav-2N2TYWOF.js → velin-bottom-nav-N5F4UO2I.js} +26 -1
  100. package/dist/chunks/velin-calendar-OFE6THUD.js +210 -0
  101. package/dist/chunks/velin-calendar-PGVNJTXK.js +217 -0
  102. package/dist/chunks/velin-calendar-XC7JRDSH.js +217 -0
  103. package/dist/chunks/{velin-code-block-CIAURDRJ.js → velin-code-block-ITCLIC6T.js} +1 -1
  104. package/dist/chunks/{velin-code-block-TSUKPY4C.js → velin-code-block-ZGWG7JI5.js} +12 -3
  105. package/dist/chunks/{velin-combobox-NXS4QB4R.js → velin-combobox-56V2ZWT5.js} +1 -1
  106. package/dist/chunks/{velin-command-ONKO2A3J.js → velin-command-2HO2EKR6.js} +29 -2
  107. package/dist/chunks/{velin-command-TMLSRGIU.js → velin-command-ZJSLPK7B.js} +30 -3
  108. package/dist/chunks/{velin-copy-NYDBOKXT.js → velin-copy-XDQSV2XU.js} +1 -1
  109. package/dist/chunks/{velin-countdown-4ZVDGK4R.js → velin-countdown-V4Z5MA63.js} +1 -1
  110. package/dist/chunks/velin-data-table-KK7IDGTP.js +302 -0
  111. package/dist/chunks/velin-data-table-UVR42UUM.js +372 -0
  112. package/dist/chunks/{velin-dialog-GTTZI564.js → velin-dialog-3YK2RPRV.js} +9 -2
  113. package/dist/chunks/{velin-dialog-ELFOZIXZ.js → velin-dialog-S24KAP4S.js} +3 -1
  114. package/dist/chunks/{velin-drawer-BE6TYN3H.js → velin-drawer-5PNU624J.js} +2 -4
  115. package/dist/chunks/{velin-drawer-DLL2GLT6.js → velin-drawer-CCM6S25D.js} +3 -5
  116. package/dist/chunks/{velin-email-RBX6ZR4S.js → velin-email-TNFONXPW.js} +1 -1
  117. package/dist/chunks/velin-file-dropzone-QRGF2JNA.js +154 -0
  118. package/dist/chunks/velin-file-dropzone-XIZMJ3NB.js +154 -0
  119. package/dist/chunks/velin-form-summary-XRQ7COQH.js +273 -0
  120. package/dist/chunks/{velin-icon-7M76DOPB.js → velin-icon-A6NCXGUK.js} +59 -17
  121. package/dist/chunks/{velin-icon-ZTSKUOVN.js → velin-icon-EC4B5XCM.js} +18 -5
  122. package/dist/chunks/{velin-lightbox-6E7CAATP.js → velin-lightbox-FFK4TUUP.js} +7 -6
  123. package/dist/chunks/{velin-lightbox-I75U6JF4.js → velin-lightbox-P725FLTY.js} +15 -5
  124. package/dist/chunks/{velin-menubar-J66JXRWW.js → velin-menubar-6I2LM5HL.js} +1 -1
  125. package/dist/chunks/{velin-modal-5HYNNNUI.js → velin-modal-ICTMGRSU.js} +7 -8
  126. package/dist/chunks/{velin-modal-AEOTZ67O.js → velin-modal-JBNODH7D.js} +2 -4
  127. package/dist/chunks/{velin-popover-T72HK3DF.js → velin-popover-WZG2GHBL.js} +25 -4
  128. package/dist/chunks/{velin-rating-N4DI2XNL.js → velin-rating-QBBYRRBU.js} +1 -1
  129. package/dist/chunks/{velin-search-7B4KJ6TX.js → velin-search-B3L6J2RP.js} +2 -2
  130. package/dist/chunks/{velin-search-2XRQFBCS.js → velin-search-L3UG6NDQ.js} +5 -4
  131. package/dist/chunks/{velin-secure-field-6PV7RZDJ.js → velin-secure-field-DGYMP7OK.js} +1 -1
  132. package/dist/chunks/{velin-segmented-control-GYD5BIXQ.js → velin-segmented-control-P74GJPAR.js} +1 -1
  133. package/dist/chunks/{velin-sheet-R2Y67X6H.js → velin-sheet-M5GZZD7G.js} +2 -4
  134. package/dist/chunks/{velin-sheet-OUK6572T.js → velin-sheet-X7RXIWKV.js} +3 -5
  135. package/dist/chunks/{velin-stepper-X54WGHDG.js → velin-stepper-4YQJUHPC.js} +12 -5
  136. package/dist/chunks/{velin-toast-OMMOA2DK.js → velin-toast-UG5LWTG2.js} +5 -1
  137. package/dist/chunks/{velin-tooltip-BDHGRTQB.js → velin-tooltip-ZDH5SDLU.js} +1 -1
  138. package/dist/chunks/yaml-O67LEQYT.js +26 -0
  139. package/dist/llms.txt +29 -7
  140. package/dist/search-index.json +182 -10
  141. package/dist/velin-agent.json +3997 -26
  142. package/dist/velinstyle-components.iife.js +1952 -287
  143. package/dist/velinstyle-components.js +1956 -287
  144. package/dist/velinstyle-components.min.js +267 -119
  145. package/dist/velinstyle.css +381 -67
  146. package/dist/velinstyle.d.ts +4 -0
  147. package/dist/velinstyle.min.css +1 -1
  148. package/package.json +26 -6
  149. package/packages/skill-engine/README.md +24 -0
  150. package/packages/skill-engine/package.json +7 -0
  151. package/packages/skill-engine/src/catalog.js +29 -0
  152. package/packages/skill-engine/src/index.js +5 -0
  153. package/packages/skill-engine/src/install.js +69 -0
  154. package/packages/skill-engine/src/registry.js +27 -0
  155. package/packages/skill-engine/src/resolve.js +68 -0
  156. package/packages/skill-engine/src/validate.js +40 -0
  157. package/packages/velinstyle-skills/README.md +6 -0
  158. package/packages/velinstyle-skills/adapter.json +8 -0
  159. package/packages/velinstyle-skills/bundles/landing-starter.bundle.yaml +12 -0
  160. package/packages/velinstyle-skills/bundles/review-suite.bundle.yaml +11 -0
  161. package/packages/velinstyle-skills/catalog.json +1004 -0
  162. package/packages/velinstyle-skills/graphs/component-ship.graph.yaml +14 -0
  163. package/packages/velinstyle-skills/graphs/landingpage.graph.yaml +21 -0
  164. package/packages/velinstyle-skills/graphs/release-gate.graph.yaml +15 -0
  165. package/packages/velinstyle-skills/index.js +22 -0
  166. package/packages/velinstyle-skills/package.json +7 -0
  167. package/packages/velinstyle-skills/packs/accessibility.pack.yaml +9 -0
  168. package/packages/velinstyle-skills/packs/design.pack.yaml +10 -0
  169. package/packages/velinstyle-skills/packs/documentation.pack.yaml +8 -0
  170. package/packages/velinstyle-skills/packs/enterprise.pack.yaml +10 -0
  171. package/packages/velinstyle-skills/packs/frontend.pack.yaml +10 -0
  172. package/packages/velinstyle-skills/packs/review.pack.yaml +9 -0
  173. package/packages/velinstyle-skills/projects/admin-panel.project.yaml +12 -0
  174. package/packages/velinstyle-skills/projects/blog.project.yaml +11 -0
  175. package/packages/velinstyle-skills/projects/documentation-portal.project.yaml +13 -0
  176. package/packages/velinstyle-skills/projects/ecommerce-shop.project.yaml +12 -0
  177. package/packages/velinstyle-skills/projects/landing-page.project.yaml +12 -0
  178. package/packages/velinstyle-skills/projects/laravel-dashboard.project.yaml +12 -0
  179. package/packages/velinstyle-skills/projects/marketing-website.project.yaml +14 -0
  180. package/packages/velinstyle-skills/projects/portfolio.project.yaml +12 -0
  181. package/packages/velinstyle-skills/registry.json +142 -0
  182. package/packages/velinstyle-skills/scripts/generate-assets.mjs +163 -0
  183. package/packages/velinstyle-skills/skills/velin-a11y-focus-keyboard/SKILL.md +57 -0
  184. package/packages/velinstyle-skills/skills/velin-a11y-page-checklist/SKILL.md +57 -0
  185. package/packages/velinstyle-skills/skills/velin-a11y-scan-fix/SKILL.md +57 -0
  186. package/packages/velinstyle-skills/skills/velin-ai-agent-briefing/SKILL.md +57 -0
  187. package/packages/velinstyle-skills/skills/velin-ai-plan-scaffold-review/SKILL.md +57 -0
  188. package/packages/velinstyle-skills/skills/velin-ai-skill-authoring/SKILL.md +57 -0
  189. package/packages/velinstyle-skills/skills/velin-components-accessibility-map/SKILL.md +57 -0
  190. package/packages/velinstyle-skills/skills/velin-components-api-contract/SKILL.md +57 -0
  191. package/packages/velinstyle-skills/skills/velin-components-recipe/SKILL.md +57 -0
  192. package/packages/velinstyle-skills/skills/velin-components-select-compose/SKILL.md +57 -0
  193. package/packages/velinstyle-skills/skills/velin-design-hero-compose/SKILL.md +57 -0
  194. package/packages/velinstyle-skills/skills/velin-design-section-rhythm/SKILL.md +57 -0
  195. package/packages/velinstyle-skills/skills/velin-design-surface-roles/SKILL.md +57 -0
  196. package/packages/velinstyle-skills/skills/velin-dev-component-wire/SKILL.md +57 -0
  197. package/packages/velinstyle-skills/skills/velin-dev-page-scaffold/SKILL.md +57 -0
  198. package/packages/velinstyle-skills/skills/velin-dev-plan-first/SKILL.md +57 -0
  199. package/packages/velinstyle-skills/skills/velin-docs-component-guide/SKILL.md +57 -0
  200. package/packages/velinstyle-skills/skills/velin-docs-generate-api/SKILL.md +57 -0
  201. package/packages/velinstyle-skills/skills/velin-dx-doctor-setup/SKILL.md +57 -0
  202. package/packages/velinstyle-skills/skills/velin-dx-project-init/SKILL.md +57 -0
  203. package/packages/velinstyle-skills/skills/velin-migration-legacy-wc/SKILL.md +57 -0
  204. package/packages/velinstyle-skills/skills/velin-migration-prefix-classes/SKILL.md +57 -0
  205. package/packages/velinstyle-skills/skills/velin-motion-reduced-safe/SKILL.md +57 -0
  206. package/packages/velinstyle-skills/skills/velin-motion-reveal-feedback/SKILL.md +57 -0
  207. package/packages/velinstyle-skills/skills/velin-perf-audit-fix/SKILL.md +57 -0
  208. package/packages/velinstyle-skills/skills/velin-perf-runtime-tree-shake/SKILL.md +57 -0
  209. package/packages/velinstyle-skills/skills/velin-release-changelog-sync/SKILL.md +57 -0
  210. package/packages/velinstyle-skills/skills/velin-release-meta-rebuild/SKILL.md +57 -0
  211. package/packages/velinstyle-skills/skills/velin-review-conversion-hero/SKILL.md +57 -0
  212. package/packages/velinstyle-skills/skills/velin-review-page-gate/SKILL.md +57 -0
  213. package/packages/velinstyle-skills/skills/velin-review-seo-meta/SKILL.md +57 -0
  214. package/packages/velinstyle-skills/skills/velin-security-sanitize-html/SKILL.md +57 -0
  215. package/packages/velinstyle-skills/skills/velin-security-scan-pii/SKILL.md +57 -0
  216. package/packages/velinstyle-skills/skills/velin-testing-a11y-suite/SKILL.md +57 -0
  217. package/packages/velinstyle-skills/skills/velin-testing-visual-smoke/SKILL.md +57 -0
  218. package/packages/velinstyle-skills/skills/velin-themes-apply-token/SKILL.md +57 -0
  219. package/packages/velinstyle-skills/skills/velin-themes-contrast-check/SKILL.md +57 -0
  220. package/packages/velinstyle-skills/skills/velin-utilities-layout-apply/SKILL.md +57 -0
  221. package/packages/velinstyle-skills/skills/velin-utilities-prefix-fix/SKILL.md +57 -0
  222. package/packages/velinstyle-skills/skills/velin-utilities-token-map/SKILL.md +57 -0
  223. package/packages/velinstyle-skills/templates/admin-panel.template.yaml +12 -0
  224. package/packages/velinstyle-skills/templates/blog.template.yaml +12 -0
  225. package/packages/velinstyle-skills/templates/documentation-portal.template.yaml +12 -0
  226. package/packages/velinstyle-skills/templates/ecommerce-shop.template.yaml +13 -0
  227. package/packages/velinstyle-skills/templates/landing-page.template.yaml +12 -0
  228. package/packages/velinstyle-skills/templates/laravel-dashboard.template.yaml +11 -0
  229. package/packages/velinstyle-skills/templates/marketing-website.template.yaml +13 -0
  230. package/packages/velinstyle-skills/templates/portfolio.template.yaml +12 -0
  231. package/schemas/component-knowledge.schema.json +33 -0
  232. package/schemas/design-constraint.schema.json +15 -0
  233. package/schemas/design-intelligence.schema.json +19 -0
  234. package/schemas/design-rule.schema.json +19 -0
  235. package/schemas/page-template.schema.json +24 -0
  236. package/schemas/review-report.schema.json +36 -0
  237. package/schemas/section.schema.json +22 -0
  238. package/schemas/skill-bundle.schema.json +15 -0
  239. package/schemas/skill-graph.schema.json +25 -0
  240. package/schemas/skill-pack.schema.json +14 -0
  241. package/schemas/skill-project.schema.json +16 -0
  242. package/schemas/skill-record.schema.json +27 -0
  243. package/schemas/skill-registry.schema.json +17 -0
  244. package/schemas/skill-template.schema.json +17 -0
  245. package/schemas/token-graph.schema.json +27 -0
  246. package/schemas/utility.schema.json +166 -0
  247. package/src/base/wc-placeholder.css +7 -0
  248. package/src/components/alert.css +22 -1
  249. package/src/components/calendar-dropzone.css +5 -0
  250. package/src/components/data-table.css +93 -0
  251. package/src/components/form-validation.css +40 -0
  252. package/src/layout/app-shell.css +33 -0
  253. package/src/tokens/shadow.css +13 -0
  254. package/src/utilities/border.css +2 -0
  255. package/src/utilities/display.css +1 -24
  256. package/src/utilities/responsive.css +16 -1
  257. package/src/utilities/spacing.css +32 -0
  258. package/src/velinstyle.css +3 -0
  259. package/dist/chunks/attributes-3BZLI7XF.js +0 -364
  260. package/dist/chunks/attributes-4N5JP4CG.js +0 -364
  261. package/dist/chunks/attributes-AIR7SVLK.js +0 -364
  262. package/dist/chunks/attributes-BGRN5XZO.js +0 -364
  263. package/dist/chunks/attributes-BVSQAYLR.js +0 -364
  264. package/dist/chunks/attributes-CDYFUY7Y.js +0 -364
  265. package/dist/chunks/attributes-JMYJZBPE.js +0 -364
  266. package/dist/chunks/attributes-R5JY3X4O.js +0 -374
  267. package/dist/chunks/attributes-TNSPQTHX.js +0 -374
  268. package/dist/chunks/chunk-2354NEBP.js +0 -109
  269. package/dist/chunks/chunk-2VNA7G7S.js +0 -109
  270. package/dist/chunks/chunk-AQLRJSGG.js +0 -109
  271. package/dist/chunks/chunk-EWPSDMQT.js +0 -109
  272. package/dist/chunks/chunk-LA7264K4.js +0 -85
  273. package/dist/chunks/chunk-QTJJ3DPO.js +0 -109
  274. package/dist/chunks/chunk-RZQVWFHW.js +0 -109
  275. package/dist/chunks/chunk-U4XHMZ7D.js +0 -109
  276. package/dist/chunks/chunk-V5YIUA6G.js +0 -109
  277. package/dist/chunks/chunk-ZPSPKUYD.js +0 -109
  278. package/dist/chunks/velin-bottom-nav-N3DFQR66.js +0 -86
  279. package/dist/chunks/velin-carousel-Y5VCOABZ.js +0 -213
  280. package/dist/chunks/velin-code-block-ASUBTAQV.js +0 -119
  281. package/dist/chunks/velin-code-block-Y6CM726Q.js +0 -119
  282. package/dist/chunks/velin-combobox-2KDTCQ7N.js +0 -155
  283. package/dist/chunks/velin-command-M7RNHUPR.js +0 -136
  284. package/dist/chunks/velin-copy-T5KDTDXP.js +0 -81
  285. package/dist/chunks/velin-countdown-5XSTN3BH.js +0 -101
  286. package/dist/chunks/velin-counter-ISCTEAHI.js +0 -118
  287. package/dist/chunks/velin-dialog-D2GUHSCD.js +0 -144
  288. package/dist/chunks/velin-dialog-IJLFDXAJ.js +0 -144
  289. package/dist/chunks/velin-dialog-TNS3WXMB.js +0 -144
  290. package/dist/chunks/velin-drawer-MJS6WCF7.js +0 -130
  291. package/dist/chunks/velin-email-N5B5ZYTE.js +0 -90
  292. package/dist/chunks/velin-icon-KZO3IEHG.js +0 -164
  293. package/dist/chunks/velin-lightbox-QOTB4PRL.js +0 -140
  294. package/dist/chunks/velin-lightbox-UCD6N7HF.js +0 -140
  295. package/dist/chunks/velin-live-dot-XHUZCIDZ.js +0 -67
  296. package/dist/chunks/velin-menubar-SFEXJE56.js +0 -86
  297. package/dist/chunks/velin-modal-2HOBXE6F.js +0 -176
  298. package/dist/chunks/velin-modal-GLI2XZZB.js +0 -176
  299. package/dist/chunks/velin-popover-EXINRIGJ.js +0 -145
  300. package/dist/chunks/velin-popover-OXX7MRZ6.js +0 -145
  301. package/dist/chunks/velin-popover-YKCCROJG.js +0 -145
  302. package/dist/chunks/velin-rating-XRQJV4LO.js +0 -91
  303. package/dist/chunks/velin-scroll-top-F2FCZNYD.js +0 -58
  304. package/dist/chunks/velin-search-4YHJWYSS.js +0 -556
  305. package/dist/chunks/velin-search-LWHY23Q5.js +0 -474
  306. package/dist/chunks/velin-secure-field-H7FSBUJW.js +0 -95
  307. package/dist/chunks/velin-segmented-control-PQX6LKOJ.js +0 -109
  308. package/dist/chunks/velin-sheet-3OGI4HD7.js +0 -119
  309. package/dist/chunks/velin-sparkline-GVEANJVW.js +0 -184
  310. package/dist/chunks/velin-sparkline-KDA3GQAN.js +0 -162
  311. package/dist/chunks/velin-stepper-2ZIHLKGM.js +0 -141
  312. package/dist/chunks/velin-stepper-FYEUEWE6.js +0 -141
  313. package/dist/chunks/velin-stepper-wc-QU3KRVQR.js +0 -133
  314. package/dist/chunks/velin-theme-toggle-BNNS7WLV.js +0 -285
  315. package/dist/chunks/velin-theme-toggle-NO7V4TWI.js +0 -285
  316. package/dist/chunks/velin-theme-toggle-QELCJM2Q.js +0 -291
  317. package/dist/chunks/velin-toast-RCZ4CSUC.js +0 -109
  318. package/dist/chunks/velin-toast-WEUBTJG6.js +0 -109
  319. package/dist/chunks/velin-tooltip-664IOHZA.js +0 -112
  320. package/dist/chunks/velin-tooltip-wc-LXDVT6DE.js +0 -103
  321. 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.0.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,12 +47,17 @@
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
  ],
52
56
  "scripts": {
53
- "build": "npm run build:css:min && npm run build:css:dev && npm run build:js:min && npm run build:js:dev && npm run build:js:iife && npm run build:js:chunks && npm run build:loaders && npm run build:types && npm run build:themes && npm run build:icons",
57
+ "build": "npm run build:css:min && npm run build:css:dev && npm run build:js:min && npm run build:js:dev && npm run build:js:iife && npm run build:js:chunks && npm run build:loaders && npm run build:react:src && npm run build:types && npm run build:themes && npm run build:icons",
54
58
  "build:loaders": "node scripts/generate-component-loaders.mjs",
59
+ "build:react:src": "node scripts/generate-react-wrappers.mjs",
60
+ "build:react": "npm run build:react:src && npm --prefix packages/react run build",
55
61
  "build:types": "node scripts/generate-types.mjs",
56
62
  "build:js:chunks": "esbuild components/runtime-entry.js --bundle --splitting --format=esm --outdir=dist/chunks --chunk-names=[name]-[hash]",
57
63
  "build:css:min": "lightningcss --bundle --minify src/velinstyle.css -o dist/velinstyle.min.css",
@@ -78,14 +84,28 @@
78
84
  "tokens:validate:full": "node cli/index.js tokens validate --input examples/tokens.full.json",
79
85
  "docs:generate": "node cli/index.js docs generate",
80
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",
81
90
  "meta:build": "node cli/index.js meta",
82
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",
94
+ "release:check": "node scripts/check-release-sync.mjs",
95
+ "release:sync": "node scripts/check-release-sync.mjs --fix",
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",
98
+ "pack:check": "npm pack --dry-run",
83
99
  "docs:prepare": "npm run build && node scripts/prepare-docs-pages.js",
84
100
  "docs:patch-nav": "node scripts/patch-docs-nav.js",
85
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",
86
102
  "readme:capture": "node tools/capture-readme-demos.mjs",
87
103
  "readme:assets:webp": "node tools/readme-png-to-webp.mjs",
88
- "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"
89
109
  },
90
110
  "keywords": [
91
111
  "css",
@@ -104,11 +124,11 @@
104
124
  "author": "SkyliteDesign",
105
125
  "license": "MIT",
106
126
  "devDependencies": {
127
+ "@playwright/test": "^1.60.0",
107
128
  "axe-core": "^4.10.0",
108
129
  "esbuild": "^0.24.0",
109
130
  "jsdom": "^26.1.0",
110
131
  "lightningcss-cli": "^1.28.0",
111
- "@playwright/test": "^1.60.0",
112
132
  "playwright": "^1.60.0",
113
133
  "serve": "^14.0.0",
114
134
  "sharp": "^0.34.5",
@@ -117,6 +137,6 @@
117
137
  "vitest": "^3.2.0"
118
138
  },
119
139
  "dependencies": {
120
- "isomorphic-dompurify": "^3.13.0"
140
+ "isomorphic-dompurify": "^3.21.0"
121
141
  }
122
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