@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@birdapi/velinstyle",
3
- "version": "0.9.0",
3
+ "version": "1.1.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -50,8 +50,10 @@
50
50
  "icons/velin-icons.svg"
51
51
  ],
52
52
  "scripts": {
53
- "build": "npm run build:css:min && npm run build:css:dev && npm run build:js:min && npm run build:js:dev && npm run build:js:iife && npm run build:js:chunks && npm run build:loaders && npm run build:types && npm run build:themes && npm run build:icons",
53
+ "build": "npm run build:css:min && npm run build:css:dev && npm run build:js:min && npm run build:js:dev && npm run build:js:iife && npm run build:js:chunks && npm run build:loaders && npm run build:react:src && npm run build:types && npm run build:themes && npm run build:icons",
54
54
  "build:loaders": "node scripts/generate-component-loaders.mjs",
55
+ "build:react:src": "node scripts/generate-react-wrappers.mjs",
56
+ "build:react": "npm run build:react:src && npm --prefix packages/react run build",
55
57
  "build:types": "node scripts/generate-types.mjs",
56
58
  "build:js:chunks": "esbuild components/runtime-entry.js --bundle --splitting --format=esm --outdir=dist/chunks --chunk-names=[name]-[hash]",
57
59
  "build:css:min": "lightningcss --bundle --minify src/velinstyle.css -o dist/velinstyle.min.css",
@@ -80,6 +82,10 @@
80
82
  "search:index": "node cli/index.js search index",
81
83
  "meta:build": "node cli/index.js meta",
82
84
  "ci:checks": "node scripts/ci-checks.mjs",
85
+ "release:check": "node scripts/check-release-sync.mjs",
86
+ "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",
88
+ "pack:check": "npm pack --dry-run",
83
89
  "docs:prepare": "npm run build && node scripts/prepare-docs-pages.js",
84
90
  "docs:patch-nav": "node scripts/patch-docs-nav.js",
85
91
  "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",
@@ -99,4 +99,11 @@
99
99
  opacity: 0;
100
100
  visibility: hidden;
101
101
  }
102
+
103
+ /* The table renders before upgrade, so only reserve the block for enhancement. */
104
+ velin-data-table:not(:defined),
105
+ velin-form-summary:not(:defined) {
106
+ display: block;
107
+ contain: layout style;
108
+ }
102
109
  }
@@ -0,0 +1,93 @@
1
+ @layer components {
2
+ .velin-data-table {
3
+ display: block;
4
+ }
5
+
6
+ /*
7
+ * Wins over the stacked `display: block` rows in table.css so filtering and
8
+ * pagination keep hidden rows out of the layout and the a11y tree.
9
+ */
10
+ .velin-data-table tr[hidden] {
11
+ display: none;
12
+ }
13
+
14
+ .velin-data-table__th {
15
+ padding: 0;
16
+ }
17
+
18
+ .velin-data-table__sort {
19
+ display: flex;
20
+ align-items: center;
21
+ gap: var(--velin-space-2);
22
+ inline-size: 100%;
23
+ min-block-size: 2.75rem;
24
+ padding: var(--velin-space-3) var(--velin-space-4);
25
+ border: none;
26
+ background: none;
27
+ font: inherit;
28
+ font-weight: var(--velin-weight-semibold);
29
+ color: inherit;
30
+ text-align: inherit;
31
+ cursor: pointer;
32
+ }
33
+
34
+ .velin-data-table__sort:hover {
35
+ background-color: var(--velin-color-surface-dim);
36
+ }
37
+
38
+ .velin-data-table__sort-icon {
39
+ flex-shrink: 0;
40
+ inline-size: 0.75rem;
41
+ color: var(--velin-color-text-muted);
42
+ }
43
+
44
+ /* Direction is announced via aria-sort; the glyph is decorative. */
45
+ .velin-data-table__sort-icon::after {
46
+ content: "\2195";
47
+ }
48
+
49
+ [aria-sort="ascending"] .velin-data-table__sort-icon::after {
50
+ content: "\2191";
51
+ }
52
+
53
+ [aria-sort="descending"] .velin-data-table__sort-icon::after {
54
+ content: "\2193";
55
+ }
56
+
57
+ [aria-sort="ascending"] .velin-data-table__sort-icon,
58
+ [aria-sort="descending"] .velin-data-table__sort-icon {
59
+ color: var(--velin-color-primary);
60
+ }
61
+
62
+ .velin-data-table__empty td {
63
+ padding-block: var(--velin-space-6);
64
+ color: var(--velin-color-text-muted);
65
+ text-align: center;
66
+ }
67
+
68
+ .velin-data-table__pagination {
69
+ display: flex;
70
+ align-items: center;
71
+ justify-content: space-between;
72
+ gap: var(--velin-space-3);
73
+ flex-wrap: wrap;
74
+ margin-block-start: var(--velin-space-4);
75
+ }
76
+
77
+ .velin-data-table__page-status {
78
+ margin: 0;
79
+ color: var(--velin-color-text-muted);
80
+ font-size: var(--velin-text-sm);
81
+ }
82
+
83
+ @media (forced-colors: active) {
84
+ .velin-data-table__sort:hover {
85
+ background-color: Highlight;
86
+ color: HighlightText;
87
+ }
88
+
89
+ .velin-data-table__sort-icon {
90
+ color: CanvasText;
91
+ }
92
+ }
93
+ }
@@ -58,6 +58,46 @@
58
58
  white-space: normal;
59
59
  }
60
60
 
61
+ /* Error summary (velin-form-summary) */
62
+ .velin-form-summary {
63
+ display: block;
64
+ }
65
+
66
+ .velin-form-summary[hidden] {
67
+ display: none;
68
+ }
69
+
70
+ .velin-form-summary__panel {
71
+ margin-block-end: var(--velin-space-4);
72
+ }
73
+
74
+ .velin-form-summary__heading {
75
+ margin: 0 0 var(--velin-space-2);
76
+ font-weight: var(--velin-weight-semibold);
77
+ }
78
+
79
+ .velin-form-summary__list {
80
+ margin: 0;
81
+ padding-inline-start: var(--velin-space-5);
82
+ }
83
+
84
+ .velin-form-summary__list li + li {
85
+ margin-block-start: var(--velin-space-1);
86
+ }
87
+
88
+ /* inline-block + min-block-size keeps the target size at 24px (WCAG 2.5.8). */
89
+ .velin-form-summary__list a {
90
+ display: inline-block;
91
+ min-block-size: 1.5rem;
92
+ padding-block: var(--velin-space-1);
93
+ color: inherit;
94
+ text-decoration: underline;
95
+ }
96
+
97
+ .velin-field-error:empty {
98
+ display: none;
99
+ }
100
+
61
101
  @supports selector(:user-invalid) {
62
102
  .velin-form--validated .velin-input:user-valid,
63
103
  .velin-form--validated .velin-select:user-valid,
@@ -51,6 +51,7 @@
51
51
  @import "components/alert.css";
52
52
  @import "components/badge.css";
53
53
  @import "components/table.css";
54
+ @import "components/data-table.css";
54
55
  @import "components/tooltip.css";
55
56
  @import "components/modal.css";
56
57
  @import "components/breadcrumb.css";
@@ -1,40 +0,0 @@
1
- # VelinStyle 0.9.0
2
-
3
- > VelinStyle is the WCAG 2.2 AAA CSS framework with native JavaScript runtime and Web Components.
4
- > Full machine context: https://velinstyle.info/dist/velin-agent.json
5
- > MIME: application/vnd.velinstyle.meta+json
6
-
7
- ## Framework
8
- - npm: @birdapi/velinstyle
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
11
- - HTML attributes: 27 `velin-*` bridges
12
- - CLI: velinstyle (scan, scaffold, docs generate, search index, meta)
13
-
14
- ## Conventions
15
- - 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.
16
- - Use only velin-* utility classes and documented Web Components.
17
- - Prefer data-velin-theme on <html> for theme switching.
18
- - Run velinstyle scan on generated HTML before shipping.
19
- - Do not put secrets, API keys, or raw emails in velin-meta or page meta.
20
- - Resolve doc links against docs root (/docs/), not the current page folder.
21
-
22
- ## Key guides
23
- - [Velin-Meta](https://velinstyle.info/docs/guides/velin-meta.html)
24
- - [VelinSearch](https://velinstyle.info/docs/guides/velin-search.html)
25
- - [Syntax highlighting](https://velinstyle.info/docs/guides/syntax-highlight.html)
26
- - [Prompt scaffolding](https://velinstyle.info/docs/guides/prompt-scaffolding.html)
27
- - [API reference (generated)](https://velinstyle.info/docs/guides/api-reference.html)
28
-
29
- ## Generated reference
30
- - [Components index](https://velinstyle.info/docs/generated/components/)
31
- - [Tokens](https://velinstyle.info/docs/generated/tokens/)
32
- - [Utilities](https://velinstyle.info/docs/generated/utilities/)
33
- - [CLI commands](https://velinstyle.info/docs/generated/cli/commands.md)
34
-
35
- ## Usage for agents
36
- ```
37
- npx velinstyle meta
38
- npx velinstyle docs generate
39
- npx velinstyle search index
40
- ```