@birdapi/velinstyle 0.9.0 → 1.1.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 (51) hide show
  1. package/README.de.md +15 -11
  2. package/README.md +15 -11
  3. package/cli/cli-manifest.json +1 -1
  4. package/cli/docgen/extract-a11y.js +4 -2
  5. package/cli/index.js +4 -2
  6. package/components/index.js +2 -0
  7. package/components/runtime/component-loaders.js +2 -0
  8. package/components/velin-data-table.js +361 -0
  9. package/components/velin-form-summary.js +348 -0
  10. package/core/a11y/component-contracts.json +18 -1
  11. package/core/highlight/languages/go.js +28 -0
  12. package/core/highlight/languages/python.js +29 -0
  13. package/core/highlight/languages/rust.js +32 -0
  14. package/core/highlight/languages/yaml.js +23 -0
  15. package/core/highlight/registry.js +13 -2
  16. package/core/meta/build.js +1 -1
  17. package/core/search/worker-client.js +2 -3
  18. package/dist/chunks/attributes-353XDOAX.js +391 -0
  19. package/dist/chunks/attributes-ADOKLKA7.js +391 -0
  20. package/dist/chunks/chunk-ERF5YVP4.js +253 -0
  21. package/dist/chunks/chunk-IEHKRARD.js +109 -0
  22. package/dist/chunks/chunk-QVHYL3R4.js +111 -0
  23. package/dist/chunks/go-HZ6XTFCK.js +31 -0
  24. package/dist/chunks/highlight-IBDX4XWS.js +37 -0
  25. package/dist/chunks/python-BMPKDKNO.js +32 -0
  26. package/dist/chunks/runtime-entry.js +1 -1
  27. package/dist/chunks/rust-2BWKI2MN.js +35 -0
  28. package/dist/chunks/velin-code-block-ITCLIC6T.js +132 -0
  29. package/dist/chunks/velin-data-table-KK7IDGTP.js +302 -0
  30. package/dist/chunks/velin-form-summary-XRQ7COQH.js +273 -0
  31. package/dist/chunks/velin-lightbox-NXA3U2FM.js +149 -0
  32. package/dist/chunks/velin-search-FDHEMCSO.js +557 -0
  33. package/dist/chunks/worker-client-MPT7PNQ4.js +47 -0
  34. package/dist/chunks/yaml-O67LEQYT.js +26 -0
  35. package/dist/llms.txt +2 -2
  36. package/dist/search-index.json +28 -2
  37. package/dist/velin-agent.json +31 -5
  38. package/dist/velinstyle-components.iife.js +745 -7
  39. package/dist/velinstyle-components.js +746 -5
  40. package/dist/velinstyle-components.min.js +85 -85
  41. package/dist/velinstyle.css +141 -19
  42. package/dist/velinstyle.d.ts +2 -0
  43. package/dist/velinstyle.min.css +1 -1
  44. package/package.json +8 -2
  45. package/src/base/wc-placeholder.css +7 -0
  46. package/src/components/data-table.css +93 -0
  47. package/src/components/form-validation.css +40 -0
  48. package/src/velinstyle.css +1 -0
  49. package/dist/llms.test.txt +0 -40
  50. package/dist/search-index.test.json +0 -1773
  51. package/dist/velin-agent.test.json +0 -684
@@ -1,684 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "mime": "application/vnd.velinstyle.meta+json",
4
- "generatedAt": "2026-05-21T06:38:42.509Z",
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
- }