@birdapi/velinstyle 1.0.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 (43) hide show
  1. package/README.de.md +12 -8
  2. package/README.md +12 -8
  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/dist/chunks/attributes-353XDOAX.js +391 -0
  18. package/dist/chunks/chunk-ERF5YVP4.js +253 -0
  19. package/dist/chunks/chunk-QVHYL3R4.js +111 -0
  20. package/dist/chunks/go-HZ6XTFCK.js +31 -0
  21. package/dist/chunks/highlight-IBDX4XWS.js +37 -0
  22. package/dist/chunks/python-BMPKDKNO.js +32 -0
  23. package/dist/chunks/runtime-entry.js +1 -1
  24. package/dist/chunks/rust-2BWKI2MN.js +35 -0
  25. package/dist/chunks/velin-code-block-ITCLIC6T.js +132 -0
  26. package/dist/chunks/velin-data-table-KK7IDGTP.js +302 -0
  27. package/dist/chunks/velin-form-summary-XRQ7COQH.js +273 -0
  28. package/dist/chunks/velin-lightbox-NXA3U2FM.js +149 -0
  29. package/dist/chunks/yaml-O67LEQYT.js +26 -0
  30. package/dist/llms.txt +2 -2
  31. package/dist/search-index.json +28 -2
  32. package/dist/velin-agent.json +31 -5
  33. package/dist/velinstyle-components.iife.js +742 -4
  34. package/dist/velinstyle-components.js +744 -4
  35. package/dist/velinstyle-components.min.js +85 -85
  36. package/dist/velinstyle.css +129 -0
  37. package/dist/velinstyle.d.ts +2 -0
  38. package/dist/velinstyle.min.css +1 -1
  39. package/package.json +8 -2
  40. package/src/base/wc-placeholder.css +7 -0
  41. package/src/components/data-table.css +93 -0
  42. package/src/components/form-validation.css +40 -0
  43. package/src/velinstyle.css +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@birdapi/velinstyle",
3
- "version": "1.0.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";