@birdapi/velinstyle 1.1.0 → 1.2.1

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