@birdapi/velinstyle 1.2.0 → 1.2.2

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 (89) hide show
  1. package/README.de.md +150 -24
  2. package/README.md +155 -33
  3. package/cli/__fixtures__/atelier-library/showcases/01-login/app.css +1 -0
  4. package/cli/__fixtures__/atelier-library/showcases/01-login/app.js +2 -0
  5. package/cli/__fixtures__/atelier-library/showcases/01-login/index.html +5 -0
  6. package/cli/__fixtures__/atelier-library/showcases/04-pricing/app.css +1 -0
  7. package/cli/__fixtures__/atelier-library/showcases/04-pricing/app.js +2 -0
  8. package/cli/__fixtures__/atelier-library/showcases/04-pricing/index.html +5 -0
  9. package/cli/__fixtures__/atelier-library/showcases/36-calendar/app.css +1 -0
  10. package/cli/__fixtures__/atelier-library/showcases/36-calendar/app.js +2 -0
  11. package/cli/__fixtures__/atelier-library/showcases/36-calendar/index.html +5 -0
  12. package/cli/atelier-catalog.json +1267 -0
  13. package/cli/atelier-formats.js +159 -0
  14. package/cli/atelier.js +382 -0
  15. package/cli/blueprints/empty-state.html +3 -5
  16. package/cli/cli-manifest.json +23 -10
  17. package/cli/docgen/extract-attributes.js +2 -0
  18. package/cli/docgen/extract-cli.js +1 -1
  19. package/cli/index.js +181 -6
  20. package/cli/production/component-graph.json +166 -0
  21. package/cli/production/explain.js +52 -0
  22. package/cli/production/extract.js +238 -0
  23. package/cli/production/graph.js +102 -0
  24. package/cli/production/report.js +78 -0
  25. package/cli/production/run.js +312 -0
  26. package/cli/production/trim-css.js +177 -0
  27. package/cli/production/trim-fonts.js +23 -0
  28. package/cli/production/trim-icons.js +38 -0
  29. package/cli/production/trim-js.js +48 -0
  30. package/cli/production/trim-motion.js +22 -0
  31. package/cli/production/trim-themes.js +50 -0
  32. package/cli/production/watch.js +38 -0
  33. package/cli/review.js +48 -1
  34. package/cli/scripts/write-atelier-fixtures.mjs +33 -0
  35. package/cli/transparency.js +221 -0
  36. package/components/index.js +3 -0
  37. package/components/runtime/component-loaders.js +3 -0
  38. package/components/velin-drawer.js +43 -4
  39. package/components/velin-empty-state.js +83 -0
  40. package/components/velin-modal.js +76 -15
  41. package/components/velin-otp-input.js +220 -0
  42. package/components/velin-password-strength.js +147 -0
  43. package/components/velin-sheet.js +49 -4
  44. package/core/a11y/component-contracts.json +23 -4
  45. package/core/attributes/registry.js +14 -0
  46. package/core/meta/knowledge/components.json +75 -3
  47. package/core/meta/schema.js +10 -0
  48. package/core/transparency/attach.js +74 -0
  49. package/core/transparency/claims.js +97 -0
  50. package/core/transparency/doctor.js +142 -0
  51. package/core/transparency/engine.js +75 -0
  52. package/core/transparency/export.js +98 -0
  53. package/core/transparency/index.js +30 -0
  54. package/core/transparency/migrate.js +130 -0
  55. package/core/transparency/normalize.js +125 -0
  56. package/core/transparency/policy.js +105 -0
  57. package/core/transparency/providers.js +235 -0
  58. package/core/transparency/registry.js +104 -0
  59. package/core/transparency/renderer.js +111 -0
  60. package/core/transparency/reporter.js +113 -0
  61. package/core/transparency/validator.js +112 -0
  62. package/dist/chunks/attach-H2ZSEAE6.js +365 -0
  63. package/dist/chunks/attributes-2ORR27KA.js +404 -0
  64. package/dist/chunks/attributes-DZCXX2RZ.js +404 -0
  65. package/dist/chunks/chunk-CQMTCEI6.js +113 -0
  66. package/dist/chunks/chunk-Y6HN7HWX.js +116 -0
  67. package/dist/chunks/runtime-entry.js +1 -1
  68. package/dist/chunks/velin-drawer-A7Q7EBOS.js +162 -0
  69. package/dist/chunks/velin-empty-state-3NTUH2RF.js +81 -0
  70. package/dist/chunks/velin-modal-3MV4FYBK.js +231 -0
  71. package/dist/chunks/velin-otp-input-PSK42MM6.js +207 -0
  72. package/dist/chunks/velin-password-strength-TAXMLSED.js +136 -0
  73. package/dist/chunks/velin-sheet-N2VVYXFP.js +157 -0
  74. package/dist/llms.txt +5 -4
  75. package/dist/search-index.json +94 -5
  76. package/dist/velin-agent.json +290 -23
  77. package/dist/velinstyle-components.iife.js +3189 -2202
  78. package/dist/velinstyle-components.js +3187 -2196
  79. package/dist/velinstyle-components.min.js +261 -119
  80. package/dist/velinstyle.css +214 -6
  81. package/dist/velinstyle.d.ts +3 -0
  82. package/dist/velinstyle.min.css +1 -1
  83. package/package.json +143 -142
  84. package/packages/velinstyle-skills/catalog.json +1 -1
  85. package/src/components/data-table.css +19 -0
  86. package/src/components/empty-auth.css +33 -0
  87. package/src/components/table.css +16 -6
  88. package/src/components/transparency.css +138 -0
  89. package/src/velinstyle.css +2 -0
package/package.json CHANGED
@@ -1,142 +1,143 @@
1
- {
2
- "name": "@birdapi/velinstyle",
3
- "version": "1.2.0",
4
- "publishConfig": {
5
- "access": "public",
6
- "registry": "https://registry.npmjs.org"
7
- },
8
- "types": "dist/velinstyle.d.ts",
9
- "sideEffects": [
10
- "components/index.js",
11
- "components/velin-*.js"
12
- ],
13
- "description": "WCAG 2.2 AAA CSS + Web Components: OKLCH themes, PII scanner, perf CLI, runtime tree-shaking. Ship inclusive UI faster.",
14
- "type": "module",
15
- "main": "dist/velinstyle.css",
16
- "module": "dist/velinstyle-components.js",
17
- "exports": {
18
- ".": "./components/runtime-entry.js",
19
- "./bundle": "./dist/velinstyle-components.min.js",
20
- "./css": "./dist/velinstyle.min.css",
21
- "./sanitize": "./components/sanitize.js",
22
- "./runtime": "./components/runtime/index.js",
23
- "./secure": "./components/velin-secure-field.js",
24
- "./email": "./components/velin-email.js",
25
- "./search": "./core/search/index.js",
26
- "./motion": "./core/motion/index.js",
27
- "./attributes": "./core/attributes/index.js",
28
- "./highlight": "./core/highlight/index.js",
29
- "./meta": "./core/meta/index.js",
30
- "./a11y": "./components/a11y-entry.js",
31
- "./skills-registry": "./packages/velinstyle-skills/registry.json"
32
- },
33
- "bin": {
34
- "velinstyle": "cli/index.js"
35
- },
36
- "repository": {
37
- "type": "git",
38
- "url": "https://github.com/SkyliteDesign/velinstyle.git"
39
- },
40
- "homepage": "https://velinstyle.info",
41
- "bugs": {
42
- "url": "https://github.com/SkyliteDesign/velinstyle/issues"
43
- },
44
- "files": [
45
- "dist/",
46
- "src/",
47
- "components/",
48
- "core/",
49
- "cli/",
50
- "packages/skill-engine/",
51
- "packages/velinstyle-skills/",
52
- "schemas/",
53
- "examples/search-index.schema.json",
54
- "icons/velin-icons.svg"
55
- ],
56
- "scripts": {
57
- "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",
58
- "build:loaders": "node scripts/generate-component-loaders.mjs",
59
- "build:react:src": "node scripts/generate-react-wrappers.mjs",
60
- "build:react": "npm run build:react:src && npm --prefix packages/react run build",
61
- "build:types": "node scripts/generate-types.mjs",
62
- "build:js:chunks": "esbuild components/runtime-entry.js --bundle --splitting --format=esm --outdir=dist/chunks --chunk-names=[name]-[hash]",
63
- "build:css:min": "lightningcss --bundle --minify src/velinstyle.css -o dist/velinstyle.min.css",
64
- "build:css:dev": "lightningcss --bundle src/velinstyle.css -o dist/velinstyle.css",
65
- "build:js:min": "esbuild components/index.js --bundle --minify --format=esm --outfile=dist/velinstyle-components.min.js",
66
- "build:js:dev": "esbuild components/index.js --bundle --format=esm --outfile=dist/velinstyle-components.js",
67
- "build:js:iife": "esbuild components/index.js --bundle --format=iife --outfile=dist/velinstyle-components.iife.js",
68
- "build:themes": "node scripts/build-themes.js",
69
- "build:icons": "node icons/build-sprite.js",
70
- "dev": "npx serve . --cors -l 3000",
71
- "watch": "lightningcss --bundle src/velinstyle.css -o dist/velinstyle.css --watch",
72
- "lint": "stylelint \"src/**/*.css\"",
73
- "test": "vitest run",
74
- "test:a11y": "node tests/a11y/run.js",
75
- "test:a11y:coverage": "node tests/a11y/coverage.js",
76
- "test:contrast": "node scripts/check-contrast.js",
77
- "test:security": "vitest run tests/sanitize.test.js tests/cli-security-scanner.test.js",
78
- "test:perf": "vitest run tests/perf-audit.test.js",
79
- "test:search:bench": "vitest run tests/search-benchmark.test.js",
80
- "test:e2e": "playwright test",
81
- "test:e2e:chromium": "playwright test --project=chromium",
82
- "docs:patch-theme-picker": "node scripts/patch-docs-theme-picker.mjs",
83
- "tokens:validate": "node cli/index.js tokens validate --input examples/tokens.sample.json",
84
- "tokens:validate:full": "node cli/index.js tokens validate --input examples/tokens.full.json",
85
- "docs:generate": "node cli/index.js docs generate",
86
- "search:index": "node cli/index.js search index",
87
- "skills:generate": "node packages/velinstyle-skills/scripts/generate-assets.mjs && node -e \"import('./packages/velinstyle-skills/index.js').then(m=>m.writeCatalogFile())\"",
88
- "skills:validate": "node scripts/validate-skills.mjs",
89
- "skills:doctor": "node scripts/check-skills-paths.mjs",
90
- "meta:build": "node cli/index.js meta",
91
- "ci:checks": "node scripts/ci-checks.mjs",
92
- "check:blueprints": "node scripts/check-blueprint-classes.mjs",
93
- "check:chaos": "node scripts/check-chaos-detection.mjs",
94
- "release:check": "node scripts/check-release-sync.mjs",
95
- "release:sync": "node scripts/check-release-sync.mjs --fix",
96
- "intelligence:validate": "node scripts/validate-intelligence-schemas.mjs",
97
- "prepublishOnly": "npm run build && npm run check:blueprints && npm run search:index && npm run skills:generate && npm run skills:validate && npm run skills:doctor && npm run meta:build && npm run intelligence:validate && npm run release:check -- --skip-site",
98
- "pack:check": "npm pack --dry-run",
99
- "docs:prepare": "npm run build && node scripts/prepare-docs-pages.js",
100
- "docs:patch-nav": "node scripts/patch-docs-nav.js",
101
- "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",
102
- "readme:capture": "node tools/capture-readme-demos.mjs",
103
- "readme:assets:webp": "node tools/readme-png-to-webp.mjs",
104
- "demos:sync": "node tools/sync-demos-to-repo.mjs --out showcase-demos && node tools/sync-demos-to-repo.mjs --out ../velinstyle-demos",
105
- "strategy:bootstrap-issues": "node scripts/bootstrap-github-backlog.mjs",
106
- "strategy:bootstrap-issues:dry": "node scripts/bootstrap-github-backlog.mjs --dry-run",
107
- "strategy:bootstrap-next30": "node scripts/bootstrap-github-backlog.mjs --issues-only --seed=../interne_docs/strategy/next-30-issues.json --map=../interne_docs/strategy/next-30-issue-map.json",
108
- "strategy:bootstrap-next30:dry": "node scripts/bootstrap-github-backlog.mjs --dry-run --issues-only --seed=../interne_docs/strategy/next-30-issues.json --map=../interne_docs/strategy/next-30-issue-map.json"
109
- },
110
- "keywords": [
111
- "css",
112
- "framework",
113
- "accessibility",
114
- "a11y",
115
- "wcag",
116
- "mobile-first",
117
- "container-queries",
118
- "oklch",
119
- "web-components",
120
- "design-tokens",
121
- "dark-mode",
122
- "rtl"
123
- ],
124
- "author": "SkyliteDesign",
125
- "license": "MIT",
126
- "devDependencies": {
127
- "@playwright/test": "^1.60.0",
128
- "axe-core": "^4.10.0",
129
- "esbuild": "^0.24.0",
130
- "jsdom": "^26.1.0",
131
- "lightningcss-cli": "^1.28.0",
132
- "playwright": "^1.60.0",
133
- "serve": "^14.0.0",
134
- "sharp": "^0.34.5",
135
- "stylelint": "^16.0.0",
136
- "stylelint-config-standard": "^36.0.0",
137
- "vitest": "^3.2.0"
138
- },
139
- "dependencies": {
140
- "isomorphic-dompurify": "^3.21.0"
141
- }
142
- }
1
+ {
2
+ "name": "@birdapi/velinstyle",
3
+ "version": "1.2.2",
4
+ "publishConfig": {
5
+ "access": "public",
6
+ "registry": "https://registry.npmjs.org"
7
+ },
8
+ "types": "dist/velinstyle.d.ts",
9
+ "sideEffects": [
10
+ "components/index.js",
11
+ "components/velin-*.js"
12
+ ],
13
+ "description": "WCAG 2.2 AAA CSS + Web Components: OKLCH themes, PII scanner, perf CLI, runtime tree-shaking. Ship inclusive UI faster.",
14
+ "type": "module",
15
+ "main": "dist/velinstyle.css",
16
+ "module": "dist/velinstyle-components.js",
17
+ "exports": {
18
+ ".": "./components/runtime-entry.js",
19
+ "./bundle": "./dist/velinstyle-components.min.js",
20
+ "./css": "./dist/velinstyle.min.css",
21
+ "./sanitize": "./components/sanitize.js",
22
+ "./runtime": "./components/runtime/index.js",
23
+ "./secure": "./components/velin-secure-field.js",
24
+ "./email": "./components/velin-email.js",
25
+ "./search": "./core/search/index.js",
26
+ "./motion": "./core/motion/index.js",
27
+ "./attributes": "./core/attributes/index.js",
28
+ "./highlight": "./core/highlight/index.js",
29
+ "./meta": "./core/meta/index.js",
30
+ "./transparency": "./core/transparency/index.js",
31
+ "./a11y": "./components/a11y-entry.js",
32
+ "./skills-registry": "./packages/velinstyle-skills/registry.json"
33
+ },
34
+ "bin": {
35
+ "velinstyle": "cli/index.js"
36
+ },
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/SkyliteDesign/velinstyle.git"
40
+ },
41
+ "homepage": "https://velinstyle.info",
42
+ "bugs": {
43
+ "url": "https://github.com/SkyliteDesign/velinstyle/issues"
44
+ },
45
+ "files": [
46
+ "dist/",
47
+ "src/",
48
+ "components/",
49
+ "core/",
50
+ "cli/",
51
+ "packages/skill-engine/",
52
+ "packages/velinstyle-skills/",
53
+ "schemas/",
54
+ "examples/search-index.schema.json",
55
+ "icons/velin-icons.svg"
56
+ ],
57
+ "scripts": {
58
+ "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",
59
+ "build:loaders": "node scripts/generate-component-loaders.mjs",
60
+ "build:react:src": "node scripts/generate-react-wrappers.mjs",
61
+ "build:react": "npm run build:react:src && npm --prefix packages/react run build",
62
+ "build:types": "node scripts/generate-types.mjs",
63
+ "build:js:chunks": "esbuild components/runtime-entry.js --bundle --splitting --format=esm --outdir=dist/chunks --chunk-names=[name]-[hash]",
64
+ "build:css:min": "lightningcss --bundle --minify src/velinstyle.css -o dist/velinstyle.min.css",
65
+ "build:css:dev": "lightningcss --bundle src/velinstyle.css -o dist/velinstyle.css",
66
+ "build:js:min": "esbuild components/index.js --bundle --minify --format=esm --outfile=dist/velinstyle-components.min.js",
67
+ "build:js:dev": "esbuild components/index.js --bundle --format=esm --outfile=dist/velinstyle-components.js",
68
+ "build:js:iife": "esbuild components/index.js --bundle --format=iife --outfile=dist/velinstyle-components.iife.js",
69
+ "build:themes": "node scripts/build-themes.js",
70
+ "build:icons": "node icons/build-sprite.js",
71
+ "dev": "npx serve . --cors -l 3000",
72
+ "watch": "lightningcss --bundle src/velinstyle.css -o dist/velinstyle.css --watch",
73
+ "lint": "stylelint \"src/**/*.css\"",
74
+ "test": "vitest run",
75
+ "test:a11y": "node tests/a11y/run.js",
76
+ "test:a11y:coverage": "node tests/a11y/coverage.js",
77
+ "test:contrast": "node scripts/check-contrast.js",
78
+ "test:security": "vitest run tests/sanitize.test.js tests/cli-security-scanner.test.js",
79
+ "test:perf": "vitest run tests/perf-audit.test.js",
80
+ "test:search:bench": "vitest run tests/search-benchmark.test.js",
81
+ "test:e2e": "playwright test",
82
+ "test:e2e:chromium": "playwright test --project=chromium",
83
+ "docs:patch-theme-picker": "node scripts/patch-docs-theme-picker.mjs",
84
+ "tokens:validate": "node cli/index.js tokens validate --input examples/tokens.sample.json",
85
+ "tokens:validate:full": "node cli/index.js tokens validate --input examples/tokens.full.json",
86
+ "docs:generate": "node cli/index.js docs generate",
87
+ "search:index": "node cli/index.js search index",
88
+ "skills:generate": "node packages/velinstyle-skills/scripts/generate-assets.mjs && node -e \"import('./packages/velinstyle-skills/index.js').then(m=>m.writeCatalogFile())\"",
89
+ "skills:validate": "node scripts/validate-skills.mjs",
90
+ "skills:doctor": "node scripts/check-skills-paths.mjs",
91
+ "meta:build": "node cli/index.js meta",
92
+ "ci:checks": "node scripts/ci-checks.mjs",
93
+ "check:blueprints": "node scripts/check-blueprint-classes.mjs",
94
+ "check:chaos": "node scripts/check-chaos-detection.mjs",
95
+ "release:check": "node scripts/check-release-sync.mjs",
96
+ "release:sync": "node scripts/check-release-sync.mjs --fix",
97
+ "intelligence:validate": "node scripts/validate-intelligence-schemas.mjs",
98
+ "prepublishOnly": "npm run build && npm run check:blueprints && npm run search:index && npm run skills:generate && npm run skills:validate && npm run skills:doctor && npm run meta:build && npm run intelligence:validate && npm run release:check -- --skip-site",
99
+ "pack:check": "npm pack --dry-run",
100
+ "docs:prepare": "npm run build && node scripts/prepare-docs-pages.js",
101
+ "docs:patch-nav": "node scripts/patch-docs-nav.js",
102
+ "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",
103
+ "readme:capture": "node tools/capture-readme-demos.mjs",
104
+ "readme:assets:webp": "node tools/readme-png-to-webp.mjs",
105
+ "demos:sync": "node tools/sync-demos-to-repo.mjs --out showcase-demos && node tools/sync-demos-to-repo.mjs --out ../velinstyle-demos",
106
+ "strategy:bootstrap-issues": "node scripts/bootstrap-github-backlog.mjs",
107
+ "strategy:bootstrap-issues:dry": "node scripts/bootstrap-github-backlog.mjs --dry-run",
108
+ "strategy:bootstrap-next30": "node scripts/bootstrap-github-backlog.mjs --issues-only --seed=../interne_docs/strategy/next-30-issues.json --map=../interne_docs/strategy/next-30-issue-map.json",
109
+ "strategy:bootstrap-next30:dry": "node scripts/bootstrap-github-backlog.mjs --dry-run --issues-only --seed=../interne_docs/strategy/next-30-issues.json --map=../interne_docs/strategy/next-30-issue-map.json"
110
+ },
111
+ "keywords": [
112
+ "css",
113
+ "framework",
114
+ "accessibility",
115
+ "a11y",
116
+ "wcag",
117
+ "mobile-first",
118
+ "container-queries",
119
+ "oklch",
120
+ "web-components",
121
+ "design-tokens",
122
+ "dark-mode",
123
+ "rtl"
124
+ ],
125
+ "author": "SkyliteDesign",
126
+ "license": "MIT",
127
+ "devDependencies": {
128
+ "@playwright/test": "^1.60.0",
129
+ "axe-core": "^4.10.0",
130
+ "esbuild": "^0.24.0",
131
+ "jsdom": "^26.1.0",
132
+ "lightningcss-cli": "^1.28.0",
133
+ "playwright": "^1.60.0",
134
+ "serve": "^14.0.0",
135
+ "sharp": "^0.34.5",
136
+ "stylelint": "^16.0.0",
137
+ "stylelint-config-standard": "^36.0.0",
138
+ "vitest": "^3.2.0"
139
+ },
140
+ "dependencies": {
141
+ "isomorphic-dompurify": "^3.21.0"
142
+ }
143
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "generatedAt": "2026-08-01T07:28:49.920Z",
3
+ "generatedAt": "2026-08-04T10:26:09.763Z",
4
4
  "totals": {
5
5
  "skills": 40,
6
6
  "packs": 6,
@@ -65,6 +65,25 @@
65
65
  text-align: center;
66
66
  }
67
67
 
68
+ /* Row severity (class + data-severity alias) */
69
+ .velin-data-table__row--danger,
70
+ .velin-data-table tr[data-severity="danger"] {
71
+ background-color: color-mix(in oklch, var(--velin-color-danger) 12%, transparent);
72
+ box-shadow: inset 3px 0 0 var(--velin-color-danger);
73
+ }
74
+
75
+ .velin-data-table__row--warning,
76
+ .velin-data-table tr[data-severity="warning"] {
77
+ background-color: color-mix(in oklch, var(--velin-color-warning) 12%, transparent);
78
+ box-shadow: inset 3px 0 0 var(--velin-color-warning);
79
+ }
80
+
81
+ .velin-data-table__row--selected,
82
+ .velin-data-table tr[data-severity="selected"] {
83
+ background-color: color-mix(in oklch, var(--velin-color-primary) 12%, transparent);
84
+ box-shadow: inset 3px 0 0 var(--velin-color-primary);
85
+ }
86
+
68
87
  .velin-data-table__pagination {
69
88
  display: flex;
70
89
  align-items: center;
@@ -0,0 +1,33 @@
1
+ @layer components {
2
+ .velin-otp-input {
3
+ display: block;
4
+ }
5
+
6
+ .velin-password-strength {
7
+ display: block;
8
+ }
9
+
10
+ .velin-empty-state {
11
+ display: block;
12
+ text-align: center;
13
+ padding: var(--velin-space-8) var(--velin-space-4);
14
+ }
15
+
16
+ .velin-empty-state__title {
17
+ margin: 0 0 var(--velin-space-2);
18
+ font-size: var(--velin-text-xl);
19
+ font-weight: var(--velin-weight-bold);
20
+ }
21
+
22
+ .velin-empty-state__description {
23
+ margin: 0 0 var(--velin-space-4);
24
+ color: var(--velin-color-text-muted);
25
+ }
26
+
27
+ .velin-empty-state__actions {
28
+ display: flex;
29
+ flex-wrap: wrap;
30
+ gap: var(--velin-space-3);
31
+ justify-content: center;
32
+ }
33
+ }
@@ -55,12 +55,22 @@
55
55
  }
56
56
 
57
57
  /* Row color variants */
58
- .velin-table-primary { background-color: color-mix(in oklch, var(--velin-color-primary) 10%, transparent); }
59
- .velin-table-secondary { background-color: color-mix(in oklch, var(--velin-color-secondary) 10%, transparent); }
60
- .velin-table-success { background-color: color-mix(in oklch, var(--velin-color-success) 10%, transparent); }
61
- .velin-table-warning { background-color: color-mix(in oklch, var(--velin-color-warning) 10%, transparent); }
62
- .velin-table-danger { background-color: color-mix(in oklch, var(--velin-color-danger) 10%, transparent); }
63
- .velin-table-info { background-color: color-mix(in oklch, var(--velin-color-info) 10%, transparent); }
58
+ .velin-table-primary,
59
+ .velin-table--primary { background-color: color-mix(in oklch, var(--velin-color-primary) 10%, transparent); }
60
+ .velin-table-secondary,
61
+ .velin-table--secondary { background-color: color-mix(in oklch, var(--velin-color-secondary) 10%, transparent); }
62
+ .velin-table-success,
63
+ .velin-table--success { background-color: color-mix(in oklch, var(--velin-color-success) 10%, transparent); }
64
+ .velin-table-warning,
65
+ .velin-table--warning { background-color: color-mix(in oklch, var(--velin-color-warning) 10%, transparent); }
66
+ .velin-table-danger,
67
+ .velin-table--danger { background-color: color-mix(in oklch, var(--velin-color-danger) 10%, transparent); }
68
+ .velin-table-info,
69
+ .velin-table--info { background-color: color-mix(in oklch, var(--velin-color-info) 10%, transparent); }
70
+ .velin-table--selected {
71
+ background-color: color-mix(in oklch, var(--velin-color-primary) 12%, transparent);
72
+ box-shadow: inset 3px 0 0 var(--velin-color-primary);
73
+ }
64
74
 
65
75
  /* Caption top */
66
76
  .velin-table .velin-caption-top {
@@ -0,0 +1,138 @@
1
+ @layer components {
2
+ .velin-transparency {
3
+ --velin-tx-bg: color-mix(in oklab, var(--velin-color-surface) 88%, transparent);
4
+ --velin-tx-fg: var(--velin-color-text);
5
+ --velin-tx-border: var(--velin-color-border);
6
+ --velin-tx-accent: var(--velin-color-info, var(--velin-color-primary));
7
+ box-sizing: border-box;
8
+ z-index: var(--velin-z-overlay, 1900);
9
+ font-family: var(--velin-font-sans, system-ui, sans-serif);
10
+ font-size: var(--velin-text-xs, 0.75rem);
11
+ line-height: 1.3;
12
+ color: var(--velin-tx-fg);
13
+ }
14
+
15
+ .velin-transparency--tone-information { --velin-tx-accent: var(--velin-color-info, var(--velin-color-primary)); }
16
+ .velin-transparency--tone-warning { --velin-tx-accent: var(--velin-color-warning); }
17
+ .velin-transparency--tone-neutral { --velin-tx-accent: var(--velin-color-text-muted); }
18
+ .velin-transparency--tone-verified { --velin-tx-accent: var(--velin-color-success); }
19
+ .velin-transparency--tone-generated { --velin-tx-accent: var(--velin-color-primary); }
20
+ .velin-transparency--tone-human { --velin-tx-accent: var(--velin-color-success); }
21
+ .velin-transparency--tone-mixed { --velin-tx-accent: var(--velin-color-secondary, var(--velin-color-primary)); }
22
+
23
+ .velin-transparency--badge,
24
+ .velin-transparency--icon,
25
+ .velin-transparency--overlay {
26
+ position: absolute;
27
+ display: inline-flex;
28
+ align-items: center;
29
+ gap: 0.35rem;
30
+ max-width: min(16rem, 90%);
31
+ padding: 0.25rem 0.55rem;
32
+ border-radius: var(--velin-radius-full, 999px);
33
+ border: 1px solid color-mix(in oklab, var(--velin-tx-accent) 45%, var(--velin-tx-border));
34
+ background: var(--velin-tx-bg);
35
+ backdrop-filter: blur(8px);
36
+ box-shadow: var(--velin-shadow-sm, 0 1px 2px rgb(0 0 0 / 0.15));
37
+ }
38
+
39
+ .velin-transparency--pos-top-right { top: 0.5rem; right: 0.5rem; left: auto; bottom: auto; }
40
+ .velin-transparency--pos-top-left { top: 0.5rem; left: 0.5rem; right: auto; bottom: auto; }
41
+ .velin-transparency--pos-bottom-right { bottom: 0.5rem; right: 0.5rem; top: auto; left: auto; }
42
+ .velin-transparency--pos-bottom-left { bottom: 0.5rem; left: 0.5rem; top: auto; right: auto; }
43
+
44
+ .velin-transparency--ribbon {
45
+ position: absolute;
46
+ top: 0.85rem;
47
+ right: -0.35rem;
48
+ padding: 0.3rem 0.85rem;
49
+ border-radius: var(--velin-radius-sm, 4px);
50
+ background: var(--velin-tx-accent);
51
+ color: var(--velin-color-on-primary, #fff);
52
+ transform: rotate(8deg);
53
+ box-shadow: var(--velin-shadow-sm, 0 1px 2px rgb(0 0 0 / 0.2));
54
+ }
55
+
56
+ .velin-transparency--inline {
57
+ position: static;
58
+ display: inline-flex;
59
+ align-items: center;
60
+ gap: 0.35rem;
61
+ margin-inline: 0.25rem;
62
+ padding: 0.15rem 0.45rem;
63
+ border-radius: var(--velin-radius-md, 6px);
64
+ border: 1px solid var(--velin-tx-border);
65
+ background: var(--velin-color-surface-dim, var(--velin-tx-bg));
66
+ }
67
+
68
+ .velin-transparency--footer,
69
+ .velin-transparency--banner {
70
+ position: static;
71
+ display: flex;
72
+ flex-wrap: wrap;
73
+ gap: 0.35rem 0.75rem;
74
+ width: 100%;
75
+ margin-block-start: 0.5rem;
76
+ padding: 0.55rem 0.75rem;
77
+ border-block-start: 2px solid var(--velin-tx-accent);
78
+ background: color-mix(in oklab, var(--velin-tx-accent) 8%, var(--velin-color-surface));
79
+ border-radius: 0 0 var(--velin-radius-md, 6px) var(--velin-radius-md, 6px);
80
+ }
81
+
82
+ .velin-transparency--panel,
83
+ .velin-transparency--tooltip {
84
+ position: absolute;
85
+ display: grid;
86
+ gap: 0.25rem;
87
+ min-width: 12rem;
88
+ max-width: min(20rem, 92%);
89
+ padding: 0.65rem 0.75rem;
90
+ border-radius: var(--velin-radius-md, 6px);
91
+ border: 1px solid var(--velin-tx-border);
92
+ background: var(--velin-color-surface);
93
+ box-shadow: var(--velin-shadow-md, 0 8px 24px rgb(0 0 0 / 0.18));
94
+ }
95
+
96
+ .velin-transparency--panel .velin-transparency__details,
97
+ .velin-transparency--tooltip .velin-transparency__details,
98
+ .velin-transparency--footer .velin-transparency__details,
99
+ .velin-transparency--ribbon .velin-transparency__details {
100
+ display: block;
101
+ }
102
+
103
+ .velin-transparency__label {
104
+ font-weight: var(--velin-weight-semibold, 600);
105
+ color: var(--velin-tx-accent);
106
+ }
107
+
108
+ .velin-transparency__details {
109
+ color: var(--velin-color-text-muted);
110
+ font-weight: var(--velin-weight-normal, 400);
111
+ }
112
+
113
+ .velin-transparency--icon {
114
+ min-width: 1.75rem;
115
+ min-height: 1.75rem;
116
+ padding: 0.25rem;
117
+ justify-content: center;
118
+ }
119
+
120
+ .velin-transparency--icon .velin-transparency__label {
121
+ position: absolute;
122
+ width: 1px;
123
+ height: 1px;
124
+ overflow: hidden;
125
+ clip: rect(0, 0, 0, 0);
126
+ }
127
+
128
+ .velin-transparency--icon::before {
129
+ content: "ⓘ";
130
+ color: var(--velin-tx-accent);
131
+ font-style: normal;
132
+ }
133
+
134
+ [velin-transparency],
135
+ [velin-disclosure] {
136
+ position: relative;
137
+ }
138
+ }
@@ -51,6 +51,7 @@
51
51
  @import "components/nav.css";
52
52
  @import "components/alert.css";
53
53
  @import "components/badge.css";
54
+ @import "components/transparency.css";
54
55
  @import "components/table.css";
55
56
  @import "components/data-table.css";
56
57
  @import "components/tooltip.css";
@@ -75,6 +76,7 @@
75
76
  @import "components/attributes.css";
76
77
  @import "components/highlight.css";
77
78
  @import "components/calendar-dropzone.css";
79
+ @import "components/empty-auth.css";
78
80
 
79
81
  /* Utilities */
80
82
  @import "utilities/color.css";