@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
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "mime": "application/vnd.velinstyle.meta+json",
4
- "generatedAt": "2026-08-01T07:28:51.397Z",
4
+ "generatedAt": "2026-08-04T10:26:12.411Z",
5
5
  "framework": {
6
6
  "name": "@birdapi/velinstyle",
7
- "version": "1.2.0",
7
+ "version": "1.2.2",
8
8
  "homepage": "https://velinstyle.info",
9
9
  "repository": "https://github.com/SkyliteDesign/velinstyle.git",
10
10
  "tagline": "VelinStyle is a CSS framework with WCAG 2.2 AAA-oriented defaults, native JavaScript runtime, and Web Components.",
@@ -23,6 +23,7 @@
23
23
  "./attributes",
24
24
  "./highlight",
25
25
  "./meta",
26
+ "./transparency",
26
27
  "./a11y",
27
28
  "./skills-registry"
28
29
  ],
@@ -56,6 +57,7 @@
56
57
  "velin-drawer",
57
58
  "velin-dropdown",
58
59
  "velin-email",
60
+ "velin-empty-state",
59
61
  "velin-file-dropzone",
60
62
  "velin-form-summary",
61
63
  "velin-icon",
@@ -63,6 +65,8 @@
63
65
  "velin-live-dot",
64
66
  "velin-menubar",
65
67
  "velin-modal",
68
+ "velin-otp-input",
69
+ "velin-password-strength",
66
70
  "velin-persist",
67
71
  "velin-popover",
68
72
  "velin-progress-ring",
@@ -80,7 +84,7 @@
80
84
  "velin-toast",
81
85
  "velin-tooltip"
82
86
  ],
83
- "count": 40,
87
+ "count": 43,
84
88
  "loaderTags": [
85
89
  "velin-accordion",
86
90
  "velin-announcer",
@@ -99,6 +103,7 @@
99
103
  "velin-drawer",
100
104
  "velin-dropdown",
101
105
  "velin-email",
106
+ "velin-empty-state",
102
107
  "velin-file-dropzone",
103
108
  "velin-form-summary",
104
109
  "velin-icon",
@@ -106,6 +111,8 @@
106
111
  "velin-live-dot",
107
112
  "velin-menubar",
108
113
  "velin-modal",
114
+ "velin-otp-input",
115
+ "velin-password-strength",
109
116
  "velin-persist",
110
117
  "velin-popover",
111
118
  "velin-progress-ring",
@@ -125,7 +132,7 @@
125
132
  "velin-tooltip",
126
133
  "velin-tooltip-wc"
127
134
  ],
128
- "loaderCount": 42,
135
+ "loaderCount": 45,
129
136
  "legacyAliases": [
130
137
  "velin-stepper-wc",
131
138
  "velin-tooltip-wc"
@@ -617,6 +624,7 @@
617
624
  "reducedMotionSafe": true
618
625
  },
619
626
  "examples": [
627
+ "<velin-modal title=\"Confirm\"></velin-modal>",
620
628
  "<velin-modal><h2 slot=\"title\">…</h2></velin-modal>"
621
629
  ],
622
630
  "promptKeywords": [
@@ -1254,7 +1262,8 @@
1254
1262
  "reducedMotionSafe": true
1255
1263
  },
1256
1264
  "examples": [
1257
- "<velin-drawer></velin-drawer>"
1265
+ "<velin-drawer title=\"Filters\"></velin-drawer>",
1266
+ "<velin-drawer><span slot=\"title\">Filters</span></velin-drawer>"
1258
1267
  ],
1259
1268
  "promptKeywords": [
1260
1269
  "drawer",
@@ -1348,7 +1357,8 @@
1348
1357
  "reducedMotionSafe": true
1349
1358
  },
1350
1359
  "examples": [
1351
- "<velin-sheet></velin-sheet>"
1360
+ "<velin-sheet title=\"Actions\"></velin-sheet>",
1361
+ "<velin-sheet><span slot=\"title\">Actions</span></velin-sheet>"
1352
1362
  ],
1353
1363
  "promptKeywords": [
1354
1364
  "sheet",
@@ -1566,9 +1576,194 @@
1566
1576
  "auto-dismiss with pause on focus/hover"
1567
1577
  ]
1568
1578
  }
1579
+ },
1580
+ {
1581
+ "id": "velin-otp-input",
1582
+ "kind": "web-component",
1583
+ "tag": "velin-otp-input",
1584
+ "category": "forms",
1585
+ "subcategory": "otp",
1586
+ "purpose": "Segmented one-time-password / PIN digit entry with paste and keyboard support.",
1587
+ "family": "forms",
1588
+ "maturity": "core",
1589
+ "recommendedPages": [
1590
+ "auth",
1591
+ "saas"
1592
+ ],
1593
+ "recommendedSections": [],
1594
+ "compatibleWith": [
1595
+ "css-button",
1596
+ "velin-form-summary",
1597
+ "velin-secure-field"
1598
+ ],
1599
+ "incompatibleWith": [],
1600
+ "accessibility": {
1601
+ "role": "group",
1602
+ "notes": "Per-digit labels; autocomplete one-time-code"
1603
+ },
1604
+ "seo": {
1605
+ "impact": "none"
1606
+ },
1607
+ "performance": {
1608
+ "cost": "lazy-ok"
1609
+ },
1610
+ "variants": [],
1611
+ "density": [
1612
+ "default"
1613
+ ],
1614
+ "themeSupport": [
1615
+ "light",
1616
+ "dark"
1617
+ ],
1618
+ "motion": {
1619
+ "reducedMotionSafe": true
1620
+ },
1621
+ "examples": [
1622
+ "<velin-otp-input length=\"6\"></velin-otp-input>"
1623
+ ],
1624
+ "promptKeywords": [
1625
+ "otp",
1626
+ "2fa",
1627
+ "pin",
1628
+ "one-time password"
1629
+ ],
1630
+ "api": {
1631
+ "events": [
1632
+ "velin-change",
1633
+ "velin-complete"
1634
+ ],
1635
+ "attributes": [
1636
+ "length",
1637
+ "value",
1638
+ "disabled",
1639
+ "name"
1640
+ ]
1641
+ }
1642
+ },
1643
+ {
1644
+ "id": "velin-password-strength",
1645
+ "kind": "web-component",
1646
+ "tag": "velin-password-strength",
1647
+ "category": "forms",
1648
+ "subcategory": "password",
1649
+ "purpose": "Heuristic password strength meter linked to an input via for= or value.",
1650
+ "family": "forms",
1651
+ "maturity": "core",
1652
+ "recommendedPages": [
1653
+ "auth",
1654
+ "saas"
1655
+ ],
1656
+ "recommendedSections": [],
1657
+ "compatibleWith": [
1658
+ "css-input",
1659
+ "velin-secure-field",
1660
+ "velin-form-summary"
1661
+ ],
1662
+ "incompatibleWith": [],
1663
+ "accessibility": {
1664
+ "role": "progressbar",
1665
+ "notes": "aria-live polite label"
1666
+ },
1667
+ "seo": {
1668
+ "impact": "none"
1669
+ },
1670
+ "performance": {
1671
+ "cost": "lazy-ok"
1672
+ },
1673
+ "variants": [],
1674
+ "density": [
1675
+ "default"
1676
+ ],
1677
+ "themeSupport": [
1678
+ "light",
1679
+ "dark"
1680
+ ],
1681
+ "motion": {
1682
+ "reducedMotionSafe": true
1683
+ },
1684
+ "examples": [
1685
+ "<input id=\"pw\" type=\"password\"><velin-password-strength for=\"pw\"></velin-password-strength>"
1686
+ ],
1687
+ "promptKeywords": [
1688
+ "password strength",
1689
+ "meter",
1690
+ "signup"
1691
+ ],
1692
+ "api": {
1693
+ "events": [
1694
+ "velin-strength"
1695
+ ],
1696
+ "attributes": [
1697
+ "for",
1698
+ "value",
1699
+ "label"
1700
+ ]
1701
+ }
1702
+ },
1703
+ {
1704
+ "id": "velin-empty-state",
1705
+ "kind": "web-component",
1706
+ "tag": "velin-empty-state",
1707
+ "category": "feedback",
1708
+ "subcategory": "empty",
1709
+ "purpose": "Consistent empty / zero-data surface with illustration, title, description, and actions slots.",
1710
+ "family": "feedback",
1711
+ "maturity": "core",
1712
+ "recommendedPages": [
1713
+ "dashboard",
1714
+ "saas",
1715
+ "shop",
1716
+ "docs"
1717
+ ],
1718
+ "recommendedSections": [],
1719
+ "compatibleWith": [
1720
+ "css-button",
1721
+ "velin-icon"
1722
+ ],
1723
+ "incompatibleWith": [],
1724
+ "accessibility": {
1725
+ "role": "status"
1726
+ },
1727
+ "seo": {
1728
+ "impact": "none"
1729
+ },
1730
+ "performance": {
1731
+ "cost": "lazy-ok"
1732
+ },
1733
+ "variants": [],
1734
+ "density": [
1735
+ "default"
1736
+ ],
1737
+ "themeSupport": [
1738
+ "light",
1739
+ "dark"
1740
+ ],
1741
+ "motion": {
1742
+ "reducedMotionSafe": true
1743
+ },
1744
+ "examples": [
1745
+ "<velin-empty-state heading=\"No items yet\" description=\"Create your first entry.\"><button slot=\"actions\" class=\"velin-btn velin-btn--primary\">Create</button></velin-empty-state>"
1746
+ ],
1747
+ "promptKeywords": [
1748
+ "empty state",
1749
+ "no results",
1750
+ "zero data"
1751
+ ],
1752
+ "api": {
1753
+ "attributes": [
1754
+ "heading",
1755
+ "description"
1756
+ ],
1757
+ "slots": [
1758
+ "illustration",
1759
+ "title",
1760
+ "description",
1761
+ "actions"
1762
+ ]
1763
+ }
1569
1764
  }
1570
1765
  ],
1571
- "componentCount": 17,
1766
+ "componentCount": 20,
1572
1767
  "tokens": {
1573
1768
  "version": 1,
1574
1769
  "tokens": [
@@ -3922,6 +4117,7 @@
3922
4117
  "velin-code",
3923
4118
  "velin-copy",
3924
4119
  "velin-counter",
4120
+ "velin-disclosure",
3925
4121
  "velin-fade",
3926
4122
  "velin-grid",
3927
4123
  "velin-highlight",
@@ -3943,9 +4139,10 @@
3943
4139
  "velin-stagger",
3944
4140
  "velin-tabs",
3945
4141
  "velin-theme",
3946
- "velin-tooltip"
4142
+ "velin-tooltip",
4143
+ "velin-transparency"
3947
4144
  ],
3948
- "count": 27
4145
+ "count": 29
3949
4146
  },
3950
4147
  "cli": {
3951
4148
  "commands": [
@@ -3957,14 +4154,38 @@
3957
4154
  },
3958
4155
  {
3959
4156
  "name": "build",
3960
- "summary": "Build custom CSS with selected layers from config",
4157
+ "summary": "Build custom CSS with selected layers from config, or production output with --production",
3961
4158
  "flags": [
3962
4159
  "--output",
3963
4160
  "-o",
4161
+ "--out",
3964
4162
  "--minify",
3965
- "--preset"
4163
+ "--preset",
4164
+ "--production",
4165
+ "--explain",
4166
+ "--watch",
4167
+ "--report",
4168
+ "--safelist"
3966
4169
  ],
3967
- "example": "velinstyle build --preset lite -o ./lite.css"
4170
+ "example": "velinstyle build --production --explain -o ./dist/velin-production"
4171
+ },
4172
+ {
4173
+ "name": "production",
4174
+ "summary": "Content-aware production builder (CSS/JS/themes/icons/fonts/motion + report)",
4175
+ "flags": [
4176
+ "--out",
4177
+ "-o",
4178
+ "--explain",
4179
+ "--watch",
4180
+ "--report",
4181
+ "--safelist",
4182
+ "--no-js",
4183
+ "--no-icons",
4184
+ "--no-themes",
4185
+ "--no-motion",
4186
+ "--no-minify"
4187
+ ],
4188
+ "example": "velinstyle production . --explain --report ./report.json"
3968
4189
  },
3969
4190
  {
3970
4191
  "name": "themes",
@@ -4070,26 +4291,46 @@
4070
4291
  },
4071
4292
  {
4072
4293
  "name": "scaffold",
4073
- "summary": "Plan-first page HTML or recipe fragment from natural language",
4294
+ "summary": "Plan-first page HTML, recipe fragment, or Atelier Library compose (--atelier, beta)",
4074
4295
  "flags": [
4075
4296
  "--output",
4076
4297
  "-o",
4077
- "--json"
4298
+ "--json",
4299
+ "--atelier",
4300
+ "--from",
4301
+ "--base-url"
4078
4302
  ],
4079
4303
  "subcommands": [
4080
4304
  "list-intents"
4081
4305
  ],
4082
- "example": "velinstyle scaffold \"Steuerberater Landingpage mit Kontakt\""
4306
+ "example": "velinstyle scaffold --atelier 04,07 -o compose.html --from ./atelier/library"
4083
4307
  },
4084
4308
  {
4085
4309
  "name": "plan",
4086
- "summary": "Emit page plan JSON from a prompt (no HTML)",
4310
+ "summary": "Emit page plan JSON from a prompt or --atelier Library ids (beta)",
4087
4311
  "flags": [
4088
4312
  "--output",
4089
4313
  "-o",
4090
- "--json"
4314
+ "--json",
4315
+ "--atelier"
4316
+ ],
4317
+ "example": "velinstyle plan --atelier 04,07"
4318
+ },
4319
+ {
4320
+ "name": "atelier",
4321
+ "summary": "Pull curated Atelier Library showcase by number/id; blade/vue/react = wrappers only",
4322
+ "flags": [
4323
+ "--output",
4324
+ "-o",
4325
+ "--format",
4326
+ "--from",
4327
+ "--base-url",
4328
+ "--rewrite-vendor"
4329
+ ],
4330
+ "subcommands": [
4331
+ "list"
4091
4332
  ],
4092
- "example": "velinstyle plan \"SaaS landing with pricing\""
4333
+ "example": "velinstyle atelier 36 -o ./velin-atelier/36-calendar --format html"
4093
4334
  },
4094
4335
  {
4095
4336
  "name": "review",
@@ -4406,7 +4647,8 @@
4406
4647
  "dialog"
4407
4648
  ],
4408
4649
  "keyboard": "Escape, Tab trap",
4409
- "requiredAttributes": []
4650
+ "requiredAttributes": [],
4651
+ "notes": "Reactive title attribute + slot=title."
4410
4652
  },
4411
4653
  "velin-dropdown": {
4412
4654
  "status": "pass",
@@ -4425,6 +4667,13 @@
4425
4667
  "aria-label"
4426
4668
  ]
4427
4669
  },
4670
+ "velin-empty-state": {
4671
+ "status": "pass",
4672
+ "roles": [
4673
+ "status"
4674
+ ],
4675
+ "notes": "heading/description attributes or slots; actions slot for CTAs."
4676
+ },
4428
4677
  "velin-form-summary": {
4429
4678
  "status": "pass",
4430
4679
  "roles": [
@@ -4480,7 +4729,23 @@
4480
4729
  "dialog"
4481
4730
  ],
4482
4731
  "keyboard": "Escape, Tab trap",
4483
- "requiredAttributes": []
4732
+ "requiredAttributes": [],
4733
+ "notes": "Reactive title attribute + slot=title; footer slot."
4734
+ },
4735
+ "velin-otp-input": {
4736
+ "status": "pass",
4737
+ "roles": [
4738
+ "group"
4739
+ ],
4740
+ "keyboard": "Digits, arrows, backspace, paste",
4741
+ "notes": "autocomplete one-time-code on first digit."
4742
+ },
4743
+ "velin-password-strength": {
4744
+ "status": "pass",
4745
+ "roles": [
4746
+ "progressbar"
4747
+ ],
4748
+ "notes": "Heuristic meter; aria-live label; for= links to password input."
4484
4749
  },
4485
4750
  "velin-persist": {
4486
4751
  "status": "pass",
@@ -4560,7 +4825,8 @@
4560
4825
  "roles": [
4561
4826
  "dialog"
4562
4827
  ],
4563
- "keyboard": "Escape, Tab trap"
4828
+ "keyboard": "Escape, Tab trap",
4829
+ "notes": "Reactive title/label + slot=title."
4564
4830
  },
4565
4831
  "velin-sparkline": {
4566
4832
  "status": "pass",
@@ -4620,7 +4886,7 @@
4620
4886
  },
4621
4887
  "searchIndex": {
4622
4888
  "path": "dist/search-index.json",
4623
- "entryCount": 151
4889
+ "entryCount": 158
4624
4890
  },
4625
4891
  "documentation": {
4626
4892
  "generated": "docs/generated/",
@@ -4650,6 +4916,7 @@
4650
4916
  "Prefer registry-first skills (`velinstyle skills`) and workflow graphs (`velinstyle workflow`) before inventing custom pipelines.",
4651
4917
  "Honor skill status, confidence, compatibility, and onlyIf predicates when automating.",
4652
4918
  "Do not put secrets, API keys, or raw emails in velin-meta or page meta.",
4653
- "Resolve doc links against docs root (/docs/), not the current page folder."
4919
+ "Resolve doc links against docs root (/docs/), not the current page folder.",
4920
+ "Prefer Velin Transparency Framework (velin-transparency + provenance) for AI/trust/compliance labeling; run `velinstyle transparency doctor`."
4654
4921
  ]
4655
4922
  }