@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
@@ -0,0 +1,47 @@
1
+ // core/search/worker-client.js
2
+ var _nextId = 0;
3
+ function createSearchWorker(workerUrl) {
4
+ if (typeof Worker === "undefined") return null;
5
+ if (!workerUrl) return null;
6
+ const url = workerUrl;
7
+ let worker;
8
+ try {
9
+ worker = new Worker(url, { type: "module" });
10
+ } catch {
11
+ return null;
12
+ }
13
+ const pending = /* @__PURE__ */ new Map();
14
+ worker.onmessage = (e) => {
15
+ const { id, ok, result, error } = e.data || {};
16
+ const p = pending.get(id);
17
+ if (!p) return;
18
+ pending.delete(id);
19
+ if (ok) p.resolve(result);
20
+ else p.reject(new Error(error || "Worker error"));
21
+ };
22
+ worker.onerror = () => {
23
+ for (const p of pending.values()) p.reject(new Error("Worker failed"));
24
+ pending.clear();
25
+ };
26
+ function send(type, payload) {
27
+ const id = ++_nextId;
28
+ return new Promise((resolve, reject) => {
29
+ pending.set(id, { resolve, reject });
30
+ worker.postMessage({ id, type, payload });
31
+ });
32
+ }
33
+ return {
34
+ setEntries(entries) {
35
+ return send("setEntries", { entries });
36
+ },
37
+ query(query, options) {
38
+ return send("query", { query, options });
39
+ },
40
+ terminate() {
41
+ worker.terminate();
42
+ }
43
+ };
44
+ }
45
+ export {
46
+ createSearchWorker
47
+ };
@@ -0,0 +1,26 @@
1
+ import {
2
+ tokenize
3
+ } from "./chunk-7FFAMRFV.js";
4
+
5
+ // core/highlight/languages/yaml.js
6
+ var RULES = [
7
+ { type: "comment", re: /#[^\n]*/y },
8
+ // Document markers and block scalar indicators.
9
+ { type: "punctuation", re: /^(?:---|\.\.\.)$/my },
10
+ { type: "string", re: /"(?:\\.|[^"\\])*"/y },
11
+ { type: "string", re: /'(?:''|[^'])*'/y },
12
+ // Keys are the primary structure in YAML, so they get the attr-name colour.
13
+ { type: "attr-name", re: /^[ \t]*-?[ \t]*[\w.$-]+(?=[ \t]*:(?:[ \t]|$))/my },
14
+ { type: "punctuation", re: /^[ \t]*-(?=[ \t]|$)/my },
15
+ { type: "keyword", re: /\b(?:true|false|null|yes|no|on|off|~)\b/yi },
16
+ { type: "number", re: /\b-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b/y },
17
+ // Anchors, aliases, tags and block scalar headers.
18
+ { type: "operator", re: /[&*]\w+|![\w/!-]*|[|>][+-]?\d*(?=\s*$)/my },
19
+ { type: "punctuation", re: /[:,[\]{}]/y }
20
+ ];
21
+ function lexYaml(code) {
22
+ return tokenize(code, RULES);
23
+ }
24
+ export {
25
+ lexYaml as default
26
+ };
package/dist/llms.txt CHANGED
@@ -1,4 +1,4 @@
1
- # VelinStyle 0.9.0
1
+ # VelinStyle 1.1.0
2
2
 
3
3
  > VelinStyle is the WCAG 2.2 AAA CSS framework with native JavaScript runtime and Web Components.
4
4
  > Full machine context: https://velinstyle.info/dist/velin-agent.json
@@ -7,7 +7,7 @@
7
7
  ## Framework
8
8
  - npm: @birdapi/velinstyle
9
9
  - VelinStyle is the WCAG 2.2 AAA CSS framework with native JavaScript runtime and Web Components.
10
- - Components: 36 canonical Web Components (`velin-*`); 38 lazy-loader entries
10
+ - Components: 38 canonical Web Components (`velin-*`); 40 lazy-loader entries
11
11
  - HTML attributes: 27 `velin-*` bridges
12
12
  - CLI: velinstyle (scan, scaffold, docs generate, search index, meta)
13
13
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-05-21T06:42:57.192Z",
3
+ "generatedAt": "2026-07-27T10:53:24.107Z",
4
4
  "entries": [
5
5
  {
6
6
  "id": "examples:samples/a11y-patterns.html",
@@ -57,7 +57,7 @@
57
57
  {
58
58
  "id": "api:commands",
59
59
  "title": "CLI commands",
60
- "excerpt": "VelinStyle CLI v0.9.0. Run velinstyle --help for full usage.",
60
+ "excerpt": "VelinStyle CLI v1.1.0. Run velinstyle --help for full usage.",
61
61
  "url": "docs/generated/cli/commands.html",
62
62
  "category": "api",
63
63
  "keywords": [
@@ -1041,6 +1041,19 @@
1041
1041
  ],
1042
1042
  "weight": 1.2
1043
1043
  },
1044
+ {
1045
+ "id": "components:velin-data-table",
1046
+ "title": "velin-data-table",
1047
+ "excerpt": "Source: components/velin-data-table.js",
1048
+ "url": "docs/generated/components/velin-data-table.html",
1049
+ "category": "components",
1050
+ "keywords": [
1051
+ "velin-data-table",
1052
+ "components",
1053
+ "velin-data-table"
1054
+ ],
1055
+ "weight": 1.3
1056
+ },
1044
1057
  {
1045
1058
  "id": "components:velin-dialog",
1046
1059
  "title": "velin-dialog",
@@ -1119,6 +1132,19 @@
1119
1132
  ],
1120
1133
  "weight": 1.3
1121
1134
  },
1135
+ {
1136
+ "id": "components:velin-form-summary",
1137
+ "title": "velin-form-summary",
1138
+ "excerpt": "Source: components/velin-form-summary.js",
1139
+ "url": "docs/generated/components/velin-form-summary.html",
1140
+ "category": "components",
1141
+ "keywords": [
1142
+ "velin-form-summary",
1143
+ "components",
1144
+ "velin-form-summary"
1145
+ ],
1146
+ "weight": 1.3
1147
+ },
1122
1148
  {
1123
1149
  "id": "docs:velin-grid",
1124
1150
  "title": "velin-grid",
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "mime": "application/vnd.velinstyle.meta+json",
4
- "generatedAt": "2026-05-21T06:42:57.710Z",
4
+ "generatedAt": "2026-07-27T10:53:24.534Z",
5
5
  "framework": {
6
6
  "name": "@birdapi/velinstyle",
7
- "version": "0.9.0",
7
+ "version": "1.1.0",
8
8
  "homepage": "https://velinstyle.info",
9
9
  "repository": "https://github.com/SkyliteDesign/velinstyle.git",
10
10
  "tagline": "VelinStyle is the WCAG 2.2 AAA CSS framework with native JavaScript runtime and Web Components."
@@ -47,10 +47,12 @@
47
47
  "velin-copy",
48
48
  "velin-countdown",
49
49
  "velin-counter",
50
+ "velin-data-table",
50
51
  "velin-dialog",
51
52
  "velin-drawer",
52
53
  "velin-dropdown",
53
54
  "velin-email",
55
+ "velin-form-summary",
54
56
  "velin-icon",
55
57
  "velin-lightbox",
56
58
  "velin-live-dot",
@@ -73,7 +75,7 @@
73
75
  "velin-toast",
74
76
  "velin-tooltip"
75
77
  ],
76
- "count": 36,
78
+ "count": 38,
77
79
  "loaderTags": [
78
80
  "velin-accordion",
79
81
  "velin-announcer",
@@ -86,10 +88,12 @@
86
88
  "velin-copy",
87
89
  "velin-countdown",
88
90
  "velin-counter",
91
+ "velin-data-table",
89
92
  "velin-dialog",
90
93
  "velin-drawer",
91
94
  "velin-dropdown",
92
95
  "velin-email",
96
+ "velin-form-summary",
93
97
  "velin-icon",
94
98
  "velin-lightbox",
95
99
  "velin-live-dot",
@@ -114,7 +118,7 @@
114
118
  "velin-tooltip",
115
119
  "velin-tooltip-wc"
116
120
  ],
117
- "loaderCount": 38,
121
+ "loaderCount": 40,
118
122
  "legacyAliases": [
119
123
  "velin-stepper-wc",
120
124
  "velin-tooltip-wc"
@@ -439,6 +443,17 @@
439
443
  "keyboard": "N/A",
440
444
  "reducedMotion": true
441
445
  },
446
+ "velin-data-table": {
447
+ "status": "pass",
448
+ "roles": [
449
+ "button"
450
+ ],
451
+ "keyboard": "Native buttons for column sort and pagination",
452
+ "liveRegion": "polite",
453
+ "reducedMotion": true,
454
+ "requiredAttributes": [],
455
+ "notes": "Enhances a light-DOM table. Sort state exposed via aria-sort; sort triggers are real buttons. Needs a caption, aria-label, or label attribute (warns otherwise). Filtered and off-page rows use hidden so they leave the a11y tree; sort, filter and page changes are announced."
456
+ },
442
457
  "velin-dialog": {
443
458
  "status": "pass",
444
459
  "roles": [
@@ -473,6 +488,17 @@
473
488
  "aria-label"
474
489
  ]
475
490
  },
491
+ "velin-form-summary": {
492
+ "status": "pass",
493
+ "roles": [
494
+ "alert",
495
+ "link"
496
+ ],
497
+ "keyboard": "Summary links move focus to the offending field",
498
+ "liveRegion": "assertive",
499
+ "requiredAttributes": [],
500
+ "notes": "Disables native validation bubbles and renders a focusable role=alert summary. Sets aria-invalid and wires aria-describedby to per-field messages (WCAG 3.3.1, 3.3.3, 4.1.2). Field errors clear as soon as the field becomes valid."
501
+ },
476
502
  "velin-icon": {
477
503
  "status": "pass",
478
504
  "roles": [
@@ -657,7 +683,7 @@
657
683
  },
658
684
  "searchIndex": {
659
685
  "path": "dist/search-index.json",
660
- "entryCount": 137
686
+ "entryCount": 139
661
687
  },
662
688
  "documentation": {
663
689
  "generated": "docs/generated/",