@birdapi/velinstyle 0.8.0 → 0.9.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 (313) hide show
  1. package/README.de.md +135 -246
  2. package/README.md +134 -245
  3. package/cli/blueprints/onboarding.html +2 -2
  4. package/cli/cli-manifest.json +97 -0
  5. package/cli/docgen/extract-a11y.js +89 -0
  6. package/cli/docgen/extract-attributes.js +95 -0
  7. package/cli/docgen/extract-cli.js +50 -0
  8. package/cli/docgen/extract-components.js +175 -0
  9. package/cli/docgen/extract-meta.js +32 -0
  10. package/cli/docgen/extract-rules.js +76 -0
  11. package/cli/docgen/extract-tokens.js +79 -0
  12. package/cli/docgen/extract-utilities.js +75 -0
  13. package/cli/docgen/markdown.js +43 -0
  14. package/cli/docs-generate.js +196 -0
  15. package/cli/index.js +121 -5
  16. package/cli/meta.js +97 -0
  17. package/cli/perf-audit.js +174 -0
  18. package/cli/pii-scanner.js +134 -0
  19. package/cli/scanner-rules-data.js +62 -0
  20. package/cli/scanner.js +68 -1
  21. package/cli/search-index.js +163 -0
  22. package/cli/tokens-build.js +21 -1
  23. package/cli/tokens-validate.js +69 -0
  24. package/components/a11y-entry.js +42 -0
  25. package/components/a11y-utils.js +71 -0
  26. package/components/focus-manager.js +45 -8
  27. package/components/index.js +22 -12
  28. package/components/runtime/component-loaders.js +43 -0
  29. package/components/runtime/index.js +77 -0
  30. package/components/runtime-entry.js +10 -0
  31. package/components/sanitize.js +135 -54
  32. package/components/velin-accordion.js +12 -0
  33. package/components/velin-bottom-nav.js +19 -0
  34. package/components/velin-carousel.js +2 -2
  35. package/components/velin-code-block.js +142 -0
  36. package/components/velin-command.js +15 -0
  37. package/components/velin-copy.js +18 -5
  38. package/components/velin-counter.js +3 -0
  39. package/components/velin-dialog.js +9 -1
  40. package/components/velin-email.js +94 -0
  41. package/components/velin-icon.js +65 -22
  42. package/components/velin-lightbox.js +8 -3
  43. package/components/velin-live-dot.js +5 -0
  44. package/components/velin-modal.js +6 -3
  45. package/components/velin-popover.js +34 -2
  46. package/components/velin-reveal.js +7 -65
  47. package/components/velin-scroll-top.js +1 -1
  48. package/components/velin-search.js +267 -0
  49. package/components/velin-secure-field.js +99 -0
  50. package/components/velin-sparkline.js +27 -7
  51. package/components/{velin-stepper-wc.js → velin-stepper.js} +37 -8
  52. package/components/velin-theme-toggle.js +12 -5
  53. package/components/velin-toast.js +4 -0
  54. package/components/{velin-tooltip-wc.js → velin-tooltip.js} +22 -3
  55. package/core/a11y/component-contracts.json +221 -0
  56. package/core/attributes/index.js +6 -0
  57. package/core/attributes/registry.js +268 -0
  58. package/core/highlight/highlight.js +114 -0
  59. package/core/highlight/index.js +29 -0
  60. package/core/highlight/languages/_utils.js +52 -0
  61. package/core/highlight/languages/blade.js +16 -0
  62. package/core/highlight/languages/css.js +26 -0
  63. package/core/highlight/languages/html.js +17 -0
  64. package/core/highlight/languages/js.js +58 -0
  65. package/core/highlight/languages/json.js +14 -0
  66. package/core/highlight/languages/markdown.js +16 -0
  67. package/core/highlight/languages/php.js +39 -0
  68. package/core/highlight/languages/plain.js +7 -0
  69. package/core/highlight/languages/shell.js +33 -0
  70. package/core/highlight/languages/sql.js +20 -0
  71. package/core/highlight/languages/typescript.js +28 -0
  72. package/core/highlight/observe.js +53 -0
  73. package/core/highlight/registry.js +107 -0
  74. package/core/highlight/render.js +35 -0
  75. package/core/highlight/types.js +28 -0
  76. package/core/meta/build.js +293 -0
  77. package/core/meta/index.js +17 -0
  78. package/core/meta/schema.js +49 -0
  79. package/core/motion/effects.js +54 -0
  80. package/core/motion/index.js +76 -0
  81. package/core/motion/scheduler.js +72 -0
  82. package/core/motion/scroll.js +32 -0
  83. package/core/motion/stagger.js +24 -0
  84. package/core/search/docs-url.js +96 -0
  85. package/core/search/engine.js +139 -0
  86. package/core/search/highlight.js +48 -0
  87. package/core/search/index.js +126 -0
  88. package/core/search/providers.js +36 -0
  89. package/core/search/types.js +61 -0
  90. package/core/search/worker-client.js +56 -0
  91. package/core/search/worker.js +20 -0
  92. package/dist/chunks/a11y-utils-IRC7LOPF.js +16 -0
  93. package/dist/chunks/attributes-3BZLI7XF.js +364 -0
  94. package/dist/chunks/attributes-4N5JP4CG.js +364 -0
  95. package/dist/chunks/attributes-5Q2WXGRC.js +374 -0
  96. package/dist/chunks/attributes-AIR7SVLK.js +364 -0
  97. package/dist/chunks/attributes-BGRN5XZO.js +364 -0
  98. package/dist/chunks/attributes-BVSQAYLR.js +364 -0
  99. package/dist/chunks/attributes-CDYFUY7Y.js +364 -0
  100. package/dist/chunks/attributes-JMYJZBPE.js +364 -0
  101. package/dist/chunks/attributes-R5JY3X4O.js +374 -0
  102. package/dist/chunks/attributes-STYCS3O5.js +391 -0
  103. package/dist/chunks/attributes-TNSPQTHX.js +374 -0
  104. package/dist/chunks/attributes-TPANLMLF.js +391 -0
  105. package/dist/chunks/blade-LIQLVKZQ.js +19 -0
  106. package/dist/chunks/browser-MRKYZPEH.js +1149 -0
  107. package/dist/chunks/chunk-2354NEBP.js +109 -0
  108. package/dist/chunks/chunk-2VNA7G7S.js +109 -0
  109. package/dist/chunks/chunk-42VVPW6N.js +132 -0
  110. package/dist/chunks/chunk-7FFAMRFV.js +44 -0
  111. package/dist/chunks/chunk-7MCGPHVC.js +69 -0
  112. package/dist/chunks/chunk-AQLRJSGG.js +109 -0
  113. package/dist/chunks/chunk-EWPSDMQT.js +109 -0
  114. package/dist/chunks/chunk-F7OLHTGX.js +22 -0
  115. package/dist/chunks/chunk-J472ERN2.js +242 -0
  116. package/dist/chunks/chunk-LA7264K4.js +85 -0
  117. package/dist/chunks/chunk-M5CHQVP6.js +61 -0
  118. package/dist/chunks/chunk-MKZP2TBH.js +89 -0
  119. package/dist/chunks/chunk-QTJJ3DPO.js +109 -0
  120. package/dist/chunks/chunk-RDE3QE7Z.js +89 -0
  121. package/dist/chunks/chunk-RSMRR27R.js +109 -0
  122. package/dist/chunks/chunk-RZQVWFHW.js +109 -0
  123. package/dist/chunks/chunk-SRL6EWHP.js +109 -0
  124. package/dist/chunks/chunk-U4XHMZ7D.js +109 -0
  125. package/dist/chunks/chunk-V5YIUA6G.js +109 -0
  126. package/dist/chunks/chunk-XIET2VSZ.js +109 -0
  127. package/dist/chunks/chunk-XYLJ2GCB.js +205 -0
  128. package/dist/chunks/chunk-Z4JYQ2XX.js +51 -0
  129. package/dist/chunks/chunk-ZPSPKUYD.js +109 -0
  130. package/dist/chunks/css-MQ5YU77P.js +28 -0
  131. package/dist/chunks/highlight-GJHHV4KM.js +37 -0
  132. package/dist/chunks/highlight-XTHRKBA3.js +37 -0
  133. package/dist/chunks/html-ZODC4DLQ.js +20 -0
  134. package/dist/chunks/js-MNSNYTJU.js +7 -0
  135. package/dist/chunks/json-VEM2HFH3.js +17 -0
  136. package/dist/chunks/markdown-E7OPGS3S.js +19 -0
  137. package/dist/chunks/php-MLL7T3LT.js +41 -0
  138. package/dist/chunks/plain-LJJDC5TN.js +8 -0
  139. package/dist/chunks/runtime-entry.js +14 -0
  140. package/dist/chunks/shell-QTRK4U4E.js +35 -0
  141. package/dist/chunks/sql-PPWLHGJ2.js +23 -0
  142. package/dist/chunks/typescript-JT3CCYWL.js +30 -0
  143. package/dist/chunks/velin-accordion-FBIPAEXG.js +105 -0
  144. package/dist/chunks/velin-accordion-QAQO7BI7.js +117 -0
  145. package/dist/chunks/velin-announcer-PVTXXCWR.js +33 -0
  146. package/dist/chunks/velin-bottom-nav-2N2TYWOF.js +86 -0
  147. package/dist/chunks/velin-bottom-nav-7GEMPIM6.js +86 -0
  148. package/dist/chunks/velin-bottom-nav-CTU6FFZV.js +101 -0
  149. package/dist/chunks/velin-bottom-nav-N3DFQR66.js +86 -0
  150. package/dist/chunks/velin-carousel-Y5VCOABZ.js +213 -0
  151. package/dist/chunks/velin-carousel-ZTBANFQQ.js +213 -0
  152. package/dist/chunks/velin-code-block-ASUBTAQV.js +119 -0
  153. package/dist/chunks/velin-code-block-CIAURDRJ.js +132 -0
  154. package/dist/chunks/velin-code-block-TSUKPY4C.js +123 -0
  155. package/dist/chunks/velin-code-block-Y6CM726Q.js +119 -0
  156. package/dist/chunks/velin-collapse-5XYBUIID.js +80 -0
  157. package/dist/chunks/velin-combobox-2KDTCQ7N.js +155 -0
  158. package/dist/chunks/velin-combobox-NXS4QB4R.js +155 -0
  159. package/dist/chunks/velin-combobox-UGA56HP3.js +155 -0
  160. package/dist/chunks/velin-command-CKDNO4BW.js +148 -0
  161. package/dist/chunks/velin-command-M7RNHUPR.js +136 -0
  162. package/dist/chunks/velin-command-ONKO2A3J.js +136 -0
  163. package/dist/chunks/velin-command-TMLSRGIU.js +136 -0
  164. package/dist/chunks/velin-copy-G2TZ5YBB.js +81 -0
  165. package/dist/chunks/velin-copy-NYDBOKXT.js +81 -0
  166. package/dist/chunks/velin-copy-T5KDTDXP.js +81 -0
  167. package/dist/chunks/velin-countdown-4ZVDGK4R.js +101 -0
  168. package/dist/chunks/velin-countdown-5XSTN3BH.js +101 -0
  169. package/dist/chunks/velin-countdown-7AIY66CU.js +101 -0
  170. package/dist/chunks/velin-counter-ISCTEAHI.js +118 -0
  171. package/dist/chunks/velin-counter-L5FYJF7A.js +121 -0
  172. package/dist/chunks/velin-dialog-D2GUHSCD.js +144 -0
  173. package/dist/chunks/velin-dialog-ELFOZIXZ.js +152 -0
  174. package/dist/chunks/velin-dialog-GTTZI564.js +147 -0
  175. package/dist/chunks/velin-dialog-IJLFDXAJ.js +144 -0
  176. package/dist/chunks/velin-dialog-TNS3WXMB.js +144 -0
  177. package/dist/chunks/velin-drawer-BE6TYN3H.js +130 -0
  178. package/dist/chunks/velin-drawer-DLL2GLT6.js +130 -0
  179. package/dist/chunks/velin-drawer-MJS6WCF7.js +130 -0
  180. package/dist/chunks/velin-dropdown-PLUIFA5M.js +172 -0
  181. package/dist/chunks/velin-email-N5B5ZYTE.js +90 -0
  182. package/dist/chunks/velin-email-NTM6DG3V.js +90 -0
  183. package/dist/chunks/velin-email-RBX6ZR4S.js +90 -0
  184. package/dist/chunks/velin-haptic-4QQTM3RK.js +50 -0
  185. package/dist/chunks/velin-icon-7M76DOPB.js +164 -0
  186. package/dist/chunks/velin-icon-KZO3IEHG.js +164 -0
  187. package/dist/chunks/velin-icon-WTFPG2DD.js +191 -0
  188. package/dist/chunks/velin-icon-ZTSKUOVN.js +193 -0
  189. package/dist/chunks/velin-lightbox-6E7CAATP.js +149 -0
  190. package/dist/chunks/velin-lightbox-I75U6JF4.js +140 -0
  191. package/dist/chunks/velin-lightbox-QOTB4PRL.js +140 -0
  192. package/dist/chunks/velin-lightbox-UCD6N7HF.js +140 -0
  193. package/dist/chunks/velin-live-dot-RJHX2DGY.js +74 -0
  194. package/dist/chunks/velin-live-dot-XHUZCIDZ.js +67 -0
  195. package/dist/chunks/velin-menubar-I426AED2.js +86 -0
  196. package/dist/chunks/velin-menubar-J66JXRWW.js +86 -0
  197. package/dist/chunks/velin-menubar-SFEXJE56.js +86 -0
  198. package/dist/chunks/velin-modal-2HOBXE6F.js +176 -0
  199. package/dist/chunks/velin-modal-5HYNNNUI.js +176 -0
  200. package/dist/chunks/velin-modal-AEOTZ67O.js +177 -0
  201. package/dist/chunks/velin-modal-GLI2XZZB.js +176 -0
  202. package/dist/chunks/velin-persist-DFPL3QP4.js +110 -0
  203. package/dist/chunks/velin-popover-EXINRIGJ.js +145 -0
  204. package/dist/chunks/velin-popover-HQW6Q2Y6.js +172 -0
  205. package/dist/chunks/velin-popover-OXX7MRZ6.js +145 -0
  206. package/dist/chunks/velin-popover-T72HK3DF.js +151 -0
  207. package/dist/chunks/velin-popover-YKCCROJG.js +145 -0
  208. package/dist/chunks/velin-progress-ring-E4YRLZHH.js +66 -0
  209. package/dist/chunks/velin-rating-6CDBI6DG.js +91 -0
  210. package/dist/chunks/velin-rating-N4DI2XNL.js +91 -0
  211. package/dist/chunks/velin-rating-XRQJV4LO.js +91 -0
  212. package/dist/chunks/velin-scroll-top-F2FCZNYD.js +58 -0
  213. package/dist/chunks/velin-scroll-top-OHYVVHHY.js +58 -0
  214. package/dist/chunks/velin-scrollspy-OKCT4FDV.js +50 -0
  215. package/dist/chunks/velin-search-2XRQFBCS.js +556 -0
  216. package/dist/chunks/velin-search-4YHJWYSS.js +556 -0
  217. package/dist/chunks/velin-search-7B4KJ6TX.js +557 -0
  218. package/dist/chunks/velin-search-LWHY23Q5.js +474 -0
  219. package/dist/chunks/velin-secure-field-6PV7RZDJ.js +95 -0
  220. package/dist/chunks/velin-secure-field-H7FSBUJW.js +95 -0
  221. package/dist/chunks/velin-secure-field-OFNAXCDP.js +95 -0
  222. package/dist/chunks/velin-segmented-control-EKL4E3BL.js +109 -0
  223. package/dist/chunks/velin-segmented-control-GYD5BIXQ.js +109 -0
  224. package/dist/chunks/velin-segmented-control-PQX6LKOJ.js +109 -0
  225. package/dist/chunks/velin-sheet-3OGI4HD7.js +119 -0
  226. package/dist/chunks/velin-sheet-OUK6572T.js +119 -0
  227. package/dist/chunks/velin-sheet-R2Y67X6H.js +119 -0
  228. package/dist/chunks/velin-sparkline-GVEANJVW.js +184 -0
  229. package/dist/chunks/velin-sparkline-KDA3GQAN.js +162 -0
  230. package/dist/chunks/velin-sparkline-XVTFC6GE.js +181 -0
  231. package/dist/chunks/velin-stepper-2ZIHLKGM.js +141 -0
  232. package/dist/chunks/velin-stepper-7ECRUYHD.js +148 -0
  233. package/dist/chunks/velin-stepper-FYEUEWE6.js +141 -0
  234. package/dist/chunks/velin-stepper-X54WGHDG.js +141 -0
  235. package/dist/chunks/velin-stepper-wc-QU3KRVQR.js +133 -0
  236. package/dist/chunks/velin-tabs-5UQ5ZVMV.js +138 -0
  237. package/dist/chunks/velin-theme-toggle-32J2CBNC.js +291 -0
  238. package/dist/chunks/velin-theme-toggle-BNNS7WLV.js +285 -0
  239. package/dist/chunks/velin-theme-toggle-NO7V4TWI.js +285 -0
  240. package/dist/chunks/velin-theme-toggle-QELCJM2Q.js +291 -0
  241. package/dist/chunks/velin-toast-OMMOA2DK.js +109 -0
  242. package/dist/chunks/velin-toast-RCZ4CSUC.js +109 -0
  243. package/dist/chunks/velin-toast-RSF2IHT3.js +113 -0
  244. package/dist/chunks/velin-toast-WEUBTJG6.js +109 -0
  245. package/dist/chunks/velin-tooltip-664IOHZA.js +112 -0
  246. package/dist/chunks/velin-tooltip-BDHGRTQB.js +112 -0
  247. package/dist/chunks/velin-tooltip-HVUOKNVX.js +112 -0
  248. package/dist/chunks/velin-tooltip-wc-LXDVT6DE.js +103 -0
  249. package/dist/chunks/worker-client-R6DBYPFT.js +46 -0
  250. package/dist/llms.test.txt +40 -0
  251. package/dist/llms.txt +40 -0
  252. package/dist/search-index.json +1773 -0
  253. package/dist/search-index.test.json +1773 -0
  254. package/dist/themes/brutalist.min.css +1 -1
  255. package/dist/themes/midnight.min.css +1 -1
  256. package/dist/themes/pastel.min.css +1 -1
  257. package/dist/themes/retro.min.css +1 -1
  258. package/dist/themes/sunset.min.css +1 -1
  259. package/dist/velin-agent.json +684 -0
  260. package/dist/velin-agent.test.json +684 -0
  261. package/dist/velinstyle-components.iife.js +7715 -3515
  262. package/dist/velinstyle-components.js +7087 -2859
  263. package/dist/velinstyle-components.min.js +196 -109
  264. package/dist/velinstyle.css +604 -65
  265. package/dist/velinstyle.d.ts +54 -0
  266. package/dist/velinstyle.min.css +1 -1
  267. package/examples/search-index.schema.json +33 -0
  268. package/package.json +56 -10
  269. package/src/a11y/authentication.css +37 -0
  270. package/src/a11y/consistent-help.css +22 -0
  271. package/src/a11y/dragging-alternatives.css +30 -0
  272. package/src/a11y/focus-appearance.css +20 -0
  273. package/src/a11y/high-contrast-aaa.css +16 -26
  274. package/src/a11y/skip-link.css +3 -1
  275. package/src/a11y/sr-only.css +1 -1
  276. package/src/base/reset.css +0 -36
  277. package/src/base/wc-placeholder.css +102 -0
  278. package/src/components/attributes.css +42 -0
  279. package/src/components/highlight.css +182 -0
  280. package/src/components/input-group.css +1 -2
  281. package/src/components/nav.css +2 -3
  282. package/src/components/search.css +95 -0
  283. package/src/components/stepper.css +2 -4
  284. package/src/components/timeline.css +1 -2
  285. package/src/components/tooltip.css +2 -4
  286. package/src/layout/container.css +5 -5
  287. package/src/layout/grid.css +8 -8
  288. package/src/layout/patterns.css +5 -5
  289. package/src/themes/brutalist.css +2 -11
  290. package/src/themes/corporate.css +0 -9
  291. package/src/themes/earth.css +0 -9
  292. package/src/themes/forest.css +0 -9
  293. package/src/themes/midnight.css +1 -10
  294. package/src/themes/neon.css +0 -9
  295. package/src/themes/nordic.css +0 -9
  296. package/src/themes/ocean.css +0 -9
  297. package/src/themes/pastel.css +1 -10
  298. package/src/themes/retro.css +2 -11
  299. package/src/themes/sharp.css +0 -7
  300. package/src/themes/soft.css +0 -7
  301. package/src/themes/sunset.css +1 -10
  302. package/src/tokens/color.css +45 -46
  303. package/src/tokens/fonts.css +10 -0
  304. package/src/tokens/typography.css +4 -5
  305. package/src/utilities/animation.css +2 -2
  306. package/src/utilities/display.css +3 -3
  307. package/src/utilities/divide.css +2 -6
  308. package/src/utilities/responsive.css +4 -4
  309. package/src/utilities/safe-area.css +1 -1
  310. package/src/utilities/scroll-animation.css +34 -0
  311. package/src/utilities/spacing.css +17 -8
  312. package/src/utilities/text.css +4 -1
  313. package/src/velinstyle.css +9 -0
@@ -0,0 +1,684 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "mime": "application/vnd.velinstyle.meta+json",
4
+ "generatedAt": "2026-05-21T06:42:57.710Z",
5
+ "framework": {
6
+ "name": "@birdapi/velinstyle",
7
+ "version": "0.9.0",
8
+ "homepage": "https://velinstyle.info",
9
+ "repository": "https://github.com/SkyliteDesign/velinstyle.git",
10
+ "tagline": "VelinStyle is the WCAG 2.2 AAA CSS framework with native JavaScript runtime and Web Components."
11
+ },
12
+ "packageExports": [
13
+ ".",
14
+ "./bundle",
15
+ "./css",
16
+ "./sanitize",
17
+ "./runtime",
18
+ "./secure",
19
+ "./email",
20
+ "./search",
21
+ "./motion",
22
+ "./attributes",
23
+ "./highlight",
24
+ "./meta",
25
+ "./a11y"
26
+ ],
27
+ "release": {
28
+ "breaking": [
29
+ "Canonical tags: velin-tooltip, velin-stepper (legacy *-wc aliases deprecated).",
30
+ ".velin-mb-* is margin-bottom only; use .velin-my-* for block axis."
31
+ ],
32
+ "migration": [
33
+ "Replace velin-tooltip-wc / velin-stepper-wc with velin-tooltip / velin-stepper.",
34
+ "Point AI tools at velin-agent.json or docs/llms.txt for framework context."
35
+ ]
36
+ },
37
+ "components": {
38
+ "tags": [
39
+ "velin-accordion",
40
+ "velin-announcer",
41
+ "velin-bottom-nav",
42
+ "velin-carousel",
43
+ "velin-code-block",
44
+ "velin-collapse",
45
+ "velin-combobox",
46
+ "velin-command",
47
+ "velin-copy",
48
+ "velin-countdown",
49
+ "velin-counter",
50
+ "velin-dialog",
51
+ "velin-drawer",
52
+ "velin-dropdown",
53
+ "velin-email",
54
+ "velin-icon",
55
+ "velin-lightbox",
56
+ "velin-live-dot",
57
+ "velin-menubar",
58
+ "velin-modal",
59
+ "velin-persist",
60
+ "velin-popover",
61
+ "velin-progress-ring",
62
+ "velin-rating",
63
+ "velin-scroll-top",
64
+ "velin-scrollspy",
65
+ "velin-search",
66
+ "velin-secure-field",
67
+ "velin-segmented-control",
68
+ "velin-sheet",
69
+ "velin-sparkline",
70
+ "velin-stepper",
71
+ "velin-tabs",
72
+ "velin-theme-toggle",
73
+ "velin-toast",
74
+ "velin-tooltip"
75
+ ],
76
+ "count": 36,
77
+ "loaderTags": [
78
+ "velin-accordion",
79
+ "velin-announcer",
80
+ "velin-bottom-nav",
81
+ "velin-carousel",
82
+ "velin-code-block",
83
+ "velin-collapse",
84
+ "velin-combobox",
85
+ "velin-command",
86
+ "velin-copy",
87
+ "velin-countdown",
88
+ "velin-counter",
89
+ "velin-dialog",
90
+ "velin-drawer",
91
+ "velin-dropdown",
92
+ "velin-email",
93
+ "velin-icon",
94
+ "velin-lightbox",
95
+ "velin-live-dot",
96
+ "velin-menubar",
97
+ "velin-modal",
98
+ "velin-persist",
99
+ "velin-popover",
100
+ "velin-progress-ring",
101
+ "velin-rating",
102
+ "velin-scroll-top",
103
+ "velin-scrollspy",
104
+ "velin-search",
105
+ "velin-secure-field",
106
+ "velin-segmented-control",
107
+ "velin-sheet",
108
+ "velin-sparkline",
109
+ "velin-stepper",
110
+ "velin-stepper-wc",
111
+ "velin-tabs",
112
+ "velin-theme-toggle",
113
+ "velin-toast",
114
+ "velin-tooltip",
115
+ "velin-tooltip-wc"
116
+ ],
117
+ "loaderCount": 38,
118
+ "legacyAliases": [
119
+ "velin-stepper-wc",
120
+ "velin-tooltip-wc"
121
+ ],
122
+ "helpers": [
123
+ "velin-flip",
124
+ "velin-haptic",
125
+ "velin-reveal"
126
+ ]
127
+ },
128
+ "attributes": {
129
+ "names": [
130
+ "velin-accordion",
131
+ "velin-anchor",
132
+ "velin-code",
133
+ "velin-copy",
134
+ "velin-counter",
135
+ "velin-fade",
136
+ "velin-grid",
137
+ "velin-highlight",
138
+ "velin-hover",
139
+ "velin-lazy",
140
+ "velin-loading",
141
+ "velin-modal",
142
+ "velin-notify",
143
+ "velin-parallax",
144
+ "velin-progress",
145
+ "velin-quote",
146
+ "velin-reveal",
147
+ "velin-scale",
148
+ "velin-scroll",
149
+ "velin-scroll-top",
150
+ "velin-search",
151
+ "velin-skeleton",
152
+ "velin-slide",
153
+ "velin-stagger",
154
+ "velin-tabs",
155
+ "velin-theme",
156
+ "velin-tooltip"
157
+ ],
158
+ "count": 27
159
+ },
160
+ "cli": {
161
+ "commands": [
162
+ {
163
+ "name": "init",
164
+ "summary": "Create velinstyle.config.js",
165
+ "flags": [],
166
+ "example": "velinstyle init"
167
+ },
168
+ {
169
+ "name": "build",
170
+ "summary": "Build custom CSS with selected layers from config",
171
+ "flags": [],
172
+ "example": "velinstyle build"
173
+ },
174
+ {
175
+ "name": "themes",
176
+ "summary": "List available built-in themes",
177
+ "flags": [],
178
+ "example": "velinstyle themes"
179
+ },
180
+ {
181
+ "name": "add",
182
+ "summary": "Add a single component CSS file to your project",
183
+ "flags": [],
184
+ "example": "velinstyle add button"
185
+ },
186
+ {
187
+ "name": "icons",
188
+ "summary": "Manage icon providers (list, add, remove, build)",
189
+ "flags": [
190
+ "--icons",
191
+ "--variant"
192
+ ],
193
+ "subcommands": [
194
+ "list",
195
+ "add",
196
+ "remove",
197
+ "build"
198
+ ],
199
+ "example": "velinstyle icons add lucide --icons menu,search"
200
+ },
201
+ {
202
+ "name": "scan",
203
+ "summary": "Security, accessibility, CSS, and PII scanner",
204
+ "flags": [
205
+ "--format",
206
+ "--severity",
207
+ "--only",
208
+ "--fix",
209
+ "--fix-dry-run",
210
+ "--fix-lang"
211
+ ],
212
+ "example": "velinstyle scan . --only pii --fix-dry-run"
213
+ },
214
+ {
215
+ "name": "prefix",
216
+ "summary": "Add missing velin- prefix to classes (dry-run; use --write)",
217
+ "flags": [
218
+ "--write",
219
+ "--map",
220
+ "--bootstrap-display"
221
+ ],
222
+ "example": "velinstyle prefix src/ --write"
223
+ },
224
+ {
225
+ "name": "blueprint",
226
+ "summary": "Print HTML blueprint snippets",
227
+ "flags": [
228
+ "--output",
229
+ "-o"
230
+ ],
231
+ "subcommands": [
232
+ "list"
233
+ ],
234
+ "example": "velinstyle blueprint modal -o snippet.html"
235
+ },
236
+ {
237
+ "name": "scaffold",
238
+ "summary": "Generate layout HTML from natural language prompt",
239
+ "flags": [
240
+ "--output",
241
+ "-o",
242
+ "--json"
243
+ ],
244
+ "subcommands": [
245
+ "list-intents"
246
+ ],
247
+ "example": "velinstyle scaffold \"dashboard with sidebar\""
248
+ },
249
+ {
250
+ "name": "layout",
251
+ "summary": "Responsive layout audit (flex, grid, viewport)",
252
+ "flags": [
253
+ "--json",
254
+ "--write",
255
+ "--dry-run"
256
+ ],
257
+ "subcommands": [
258
+ "audit",
259
+ "suggest",
260
+ "fix"
261
+ ],
262
+ "example": "velinstyle layout suggest index.html"
263
+ },
264
+ {
265
+ "name": "perf",
266
+ "summary": "Performance audit for images and scripts",
267
+ "flags": [
268
+ "--json",
269
+ "--write",
270
+ "--dry-run"
271
+ ],
272
+ "subcommands": [
273
+ "audit",
274
+ "suggest",
275
+ "fix"
276
+ ],
277
+ "example": "velinstyle perf audit samples/"
278
+ },
279
+ {
280
+ "name": "tokens",
281
+ "summary": "Build or validate design tokens JSON",
282
+ "flags": [
283
+ "--input",
284
+ "--output",
285
+ "-o"
286
+ ],
287
+ "subcommands": [
288
+ "build",
289
+ "validate"
290
+ ],
291
+ "example": "velinstyle tokens validate --input examples/tokens.full.json"
292
+ },
293
+ {
294
+ "name": "docs",
295
+ "summary": "Generate developer reference Markdown",
296
+ "flags": [
297
+ "--scope",
298
+ "--out"
299
+ ],
300
+ "subcommands": [
301
+ "generate"
302
+ ],
303
+ "example": "velinstyle docs generate --scope all"
304
+ },
305
+ {
306
+ "name": "meta",
307
+ "summary": "Build Velin-Meta agent bundle (velin-agent.json, llms.txt)",
308
+ "flags": [
309
+ "--out",
310
+ "--llms-out",
311
+ "--base-url",
312
+ "--no-llms"
313
+ ],
314
+ "subcommands": [
315
+ "page"
316
+ ],
317
+ "example": "velinstyle meta"
318
+ }
319
+ ]
320
+ },
321
+ "tooling": {
322
+ "categories": [
323
+ "scan",
324
+ "prefix",
325
+ "scaffold",
326
+ "layout",
327
+ "perf",
328
+ "tokens",
329
+ "docs",
330
+ "search",
331
+ "meta"
332
+ ],
333
+ "scannerRuleCount": 37
334
+ },
335
+ "a11y": {
336
+ "wcagLevel": "AAA",
337
+ "modules": "src/a11y/*.css",
338
+ "matrix": "docs/generated/a11y/wcag22-aaa-matrix.md",
339
+ "componentContracts": {
340
+ "velin-accordion": {
341
+ "status": "pass",
342
+ "roles": [
343
+ "group"
344
+ ],
345
+ "keyboard": "Arrow/Home/End between summaries",
346
+ "reducedMotion": true,
347
+ "requiredAttributes": [],
348
+ "notes": "Wires aria-controls on summary elements."
349
+ },
350
+ "velin-announcer": {
351
+ "status": "pass",
352
+ "roles": [
353
+ "status"
354
+ ],
355
+ "liveRegion": "polite|assertive",
356
+ "keyboard": "N/A",
357
+ "reducedMotion": true
358
+ },
359
+ "velin-bottom-nav": {
360
+ "status": "pass",
361
+ "roles": [
362
+ "navigation"
363
+ ],
364
+ "requiredAttributes": [
365
+ "aria-label"
366
+ ],
367
+ "keyboard": "Native links or buttons in slot",
368
+ "notes": "Host aria-label; slotchange syncs aria-current and infers item labels from data-nav/title."
369
+ },
370
+ "velin-carousel": {
371
+ "status": "pass",
372
+ "roles": [
373
+ "group",
374
+ "button"
375
+ ],
376
+ "keyboard": "Arrows, Home, End, dots",
377
+ "reducedMotion": true
378
+ },
379
+ "velin-code-block": {
380
+ "status": "pass",
381
+ "roles": [
382
+ "button"
383
+ ],
384
+ "requiredAttributes": [],
385
+ "keyboard": "Expand toggle keyboard",
386
+ "notes": "Expand uses aria-expanded and aria-controls."
387
+ },
388
+ "velin-collapse": {
389
+ "status": "pass",
390
+ "roles": [
391
+ "button"
392
+ ],
393
+ "keyboard": "Enter/Space on trigger",
394
+ "requiredAttributes": []
395
+ },
396
+ "velin-combobox": {
397
+ "status": "pass",
398
+ "roles": [
399
+ "combobox",
400
+ "listbox"
401
+ ],
402
+ "keyboard": "Roving, Escape, Enter",
403
+ "requiredAttributes": [
404
+ "aria-label"
405
+ ]
406
+ },
407
+ "velin-command": {
408
+ "status": "pass",
409
+ "roles": [
410
+ "dialog"
411
+ ],
412
+ "keyboard": "Escape, arrows in results, Tab trap",
413
+ "requiredAttributes": []
414
+ },
415
+ "velin-copy": {
416
+ "status": "pass",
417
+ "roles": [
418
+ "button"
419
+ ],
420
+ "requiredAttributes": [
421
+ "aria-label"
422
+ ],
423
+ "keyboard": "Native button"
424
+ },
425
+ "velin-countdown": {
426
+ "status": "pass",
427
+ "roles": [
428
+ "timer"
429
+ ],
430
+ "liveRegion": "polite",
431
+ "keyboard": "N/A"
432
+ },
433
+ "velin-counter": {
434
+ "status": "pass",
435
+ "roles": [
436
+ "status"
437
+ ],
438
+ "liveRegion": "polite",
439
+ "keyboard": "N/A",
440
+ "reducedMotion": true
441
+ },
442
+ "velin-dialog": {
443
+ "status": "pass",
444
+ "roles": [
445
+ "dialog"
446
+ ],
447
+ "keyboard": "Native dialog, Escape",
448
+ "requiredAttributes": [],
449
+ "notes": "aria-labelledby on dialog, aria-modal true."
450
+ },
451
+ "velin-drawer": {
452
+ "status": "pass",
453
+ "roles": [
454
+ "dialog"
455
+ ],
456
+ "keyboard": "Escape, Tab trap",
457
+ "requiredAttributes": []
458
+ },
459
+ "velin-dropdown": {
460
+ "status": "pass",
461
+ "roles": [
462
+ "menu",
463
+ "button"
464
+ ],
465
+ "keyboard": "Roving, typeahead, Escape"
466
+ },
467
+ "velin-email": {
468
+ "status": "pass",
469
+ "roles": [
470
+ "button"
471
+ ],
472
+ "requiredAttributes": [
473
+ "aria-label"
474
+ ]
475
+ },
476
+ "velin-icon": {
477
+ "status": "pass",
478
+ "roles": [
479
+ "img",
480
+ "presentation"
481
+ ],
482
+ "requiredAttributes": [
483
+ "label"
484
+ ],
485
+ "notes": "Decorative when no label; SVG aria-hidden. Do not set aria-hidden on host in JS."
486
+ },
487
+ "velin-lightbox": {
488
+ "status": "pass",
489
+ "roles": [
490
+ "dialog"
491
+ ],
492
+ "keyboard": "Escape, arrows, Tab trap",
493
+ "liveRegion": "polite"
494
+ },
495
+ "velin-live-dot": {
496
+ "status": "pass",
497
+ "roles": [
498
+ "status"
499
+ ],
500
+ "requiredAttributes": [],
501
+ "notes": "Status exposed via aria-label on host, not color alone."
502
+ },
503
+ "velin-menubar": {
504
+ "status": "pass",
505
+ "roles": [
506
+ "menubar",
507
+ "menu"
508
+ ],
509
+ "requiredAttributes": [
510
+ "aria-label"
511
+ ],
512
+ "keyboard": "Roving arrows"
513
+ },
514
+ "velin-modal": {
515
+ "status": "pass",
516
+ "roles": [
517
+ "dialog"
518
+ ],
519
+ "keyboard": "Escape, Tab trap",
520
+ "requiredAttributes": []
521
+ },
522
+ "velin-persist": {
523
+ "status": "pass",
524
+ "keyboard": "N/A",
525
+ "notes": "display:contents; auto-saves form field values (WCAG 3.3.7 Redundant Entry helper). Clears on form submit."
526
+ },
527
+ "velin-popover": {
528
+ "status": "pass",
529
+ "roles": [
530
+ "dialog",
531
+ "tooltip"
532
+ ],
533
+ "keyboard": "Escape, Enter/Space on trigger; focus opens hover mode",
534
+ "notes": "aria-labelledby or default aria-label; non-button triggers get role=button."
535
+ },
536
+ "velin-progress-ring": {
537
+ "status": "pass",
538
+ "roles": [
539
+ "progressbar"
540
+ ],
541
+ "requiredAttributes": []
542
+ },
543
+ "velin-rating": {
544
+ "status": "pass",
545
+ "roles": [
546
+ "radiogroup"
547
+ ],
548
+ "keyboard": "Roving, arrows"
549
+ },
550
+ "velin-scroll-top": {
551
+ "status": "pass",
552
+ "roles": [
553
+ "button"
554
+ ],
555
+ "requiredAttributes": [
556
+ "aria-label"
557
+ ],
558
+ "reducedMotion": true
559
+ },
560
+ "velin-scrollspy": {
561
+ "status": "pass",
562
+ "keyboard": "Native nav links",
563
+ "notes": "Sets aria-current on active link."
564
+ },
565
+ "velin-search": {
566
+ "status": "pass",
567
+ "roles": [
568
+ "combobox",
569
+ "listbox"
570
+ ],
571
+ "requiredAttributes": [
572
+ "aria-label"
573
+ ],
574
+ "keyboard": "Arrows, Enter, Escape",
575
+ "notes": "Default aria-label Search when unset."
576
+ },
577
+ "velin-secure-field": {
578
+ "status": "pass",
579
+ "roles": [
580
+ "textbox"
581
+ ],
582
+ "requiredAttributes": [],
583
+ "notes": "Native label association."
584
+ },
585
+ "velin-segmented-control": {
586
+ "status": "pass",
587
+ "roles": [
588
+ "group"
589
+ ],
590
+ "requiredAttributes": [
591
+ "aria-label"
592
+ ],
593
+ "keyboard": "Roving"
594
+ },
595
+ "velin-sheet": {
596
+ "status": "pass",
597
+ "roles": [
598
+ "dialog"
599
+ ],
600
+ "keyboard": "Escape, Tab trap"
601
+ },
602
+ "velin-sparkline": {
603
+ "status": "pass",
604
+ "roles": [
605
+ "img",
606
+ "presentation"
607
+ ],
608
+ "requiredAttributes": [
609
+ "label"
610
+ ],
611
+ "notes": "Uses label, aria-label, or figcaption aria-labelledby."
612
+ },
613
+ "velin-stepper": {
614
+ "status": "pass",
615
+ "roles": [
616
+ "list"
617
+ ],
618
+ "keyboard": "N/A (display); pair with buttons calling next()/prev()",
619
+ "notes": "aria-label per step (completed/current/upcoming); sr-only Completed text; aria-current on active step."
620
+ },
621
+ "velin-tabs": {
622
+ "status": "pass",
623
+ "roles": [
624
+ "tablist",
625
+ "tab",
626
+ "tabpanel"
627
+ ],
628
+ "keyboard": "Roving, auto-select arrows"
629
+ },
630
+ "velin-theme-toggle": {
631
+ "status": "pass",
632
+ "roles": [
633
+ "button",
634
+ "menu"
635
+ ],
636
+ "keyboard": "Menu arrows, Escape",
637
+ "notes": "aria-pressed on theme toggle."
638
+ },
639
+ "velin-toast": {
640
+ "status": "pass",
641
+ "roles": [
642
+ "status",
643
+ "alert"
644
+ ],
645
+ "liveRegion": "polite|assertive",
646
+ "keyboard": "Close button"
647
+ },
648
+ "velin-tooltip": {
649
+ "status": "pass",
650
+ "roles": [
651
+ "tooltip"
652
+ ],
653
+ "keyboard": "Escape, focusin"
654
+ }
655
+ },
656
+ "init": "import { initA11y } from '@birdapi/velinstyle/a11y'; initA11y();"
657
+ },
658
+ "searchIndex": {
659
+ "path": "dist/search-index.json",
660
+ "entryCount": 137
661
+ },
662
+ "documentation": {
663
+ "generated": "docs/generated/",
664
+ "guides": {
665
+ "velinMeta": "docs/guides/velin-meta.html",
666
+ "velinSearch": "docs/guides/velin-search.html",
667
+ "syntaxHighlight": "docs/guides/syntax-highlight.html",
668
+ "promptScaffolding": "docs/guides/prompt-scaffolding.html",
669
+ "apiReference": "docs/guides/api-reference.html"
670
+ },
671
+ "agentFiles": {
672
+ "json": "dist/velin-agent.json",
673
+ "llmsTxt": "dist/llms.txt"
674
+ }
675
+ },
676
+ "conventions": [
677
+ "Positioning: VelinStyle is the WCAG 2.2 AAA CSS framework with native JavaScript runtime and Web Components — not a JS-only library or a utility-only CSS kit.",
678
+ "Use only velin-* utility classes and documented Web Components.",
679
+ "Prefer data-velin-theme on <html> for theme switching.",
680
+ "Run velinstyle scan on generated HTML before shipping.",
681
+ "Do not put secrets, API keys, or raw emails in velin-meta or page meta.",
682
+ "Resolve doc links against docs root (/docs/), not the current page folder."
683
+ ]
684
+ }