@birdapi/velinstyle 1.2.1 → 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 (67) hide show
  1. package/README.de.md +134 -11
  2. package/README.md +139 -16
  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-cli.js +1 -1
  18. package/cli/index.js +149 -3
  19. package/cli/production/component-graph.json +166 -0
  20. package/cli/production/explain.js +52 -0
  21. package/cli/production/extract.js +238 -0
  22. package/cli/production/graph.js +102 -0
  23. package/cli/production/report.js +78 -0
  24. package/cli/production/run.js +312 -0
  25. package/cli/production/trim-css.js +177 -0
  26. package/cli/production/trim-fonts.js +23 -0
  27. package/cli/production/trim-icons.js +38 -0
  28. package/cli/production/trim-js.js +48 -0
  29. package/cli/production/trim-motion.js +22 -0
  30. package/cli/production/trim-themes.js +50 -0
  31. package/cli/production/watch.js +38 -0
  32. package/cli/review.js +48 -1
  33. package/cli/scripts/write-atelier-fixtures.mjs +33 -0
  34. package/components/index.js +3 -0
  35. package/components/runtime/component-loaders.js +3 -0
  36. package/components/velin-drawer.js +43 -4
  37. package/components/velin-empty-state.js +83 -0
  38. package/components/velin-modal.js +76 -15
  39. package/components/velin-otp-input.js +220 -0
  40. package/components/velin-password-strength.js +147 -0
  41. package/components/velin-sheet.js +49 -4
  42. package/core/a11y/component-contracts.json +23 -4
  43. package/core/meta/knowledge/components.json +75 -3
  44. package/dist/chunks/attributes-2ORR27KA.js +404 -0
  45. package/dist/chunks/chunk-Y6HN7HWX.js +116 -0
  46. package/dist/chunks/runtime-entry.js +1 -1
  47. package/dist/chunks/velin-drawer-A7Q7EBOS.js +162 -0
  48. package/dist/chunks/velin-empty-state-3NTUH2RF.js +81 -0
  49. package/dist/chunks/velin-modal-3MV4FYBK.js +231 -0
  50. package/dist/chunks/velin-otp-input-PSK42MM6.js +207 -0
  51. package/dist/chunks/velin-password-strength-TAXMLSED.js +136 -0
  52. package/dist/chunks/velin-sheet-N2VVYXFP.js +157 -0
  53. package/dist/llms.txt +3 -3
  54. package/dist/search-index.json +68 -5
  55. package/dist/velin-agent.json +283 -20
  56. package/dist/velinstyle-components.iife.js +2716 -2138
  57. package/dist/velinstyle-components.js +2772 -2190
  58. package/dist/velinstyle-components.min.js +254 -112
  59. package/dist/velinstyle.css +54 -6
  60. package/dist/velinstyle.d.ts +3 -0
  61. package/dist/velinstyle.min.css +1 -1
  62. package/package.json +143 -143
  63. package/packages/velinstyle-skills/catalog.json +1 -1
  64. package/src/components/data-table.css +19 -0
  65. package/src/components/empty-auth.css +33 -0
  66. package/src/components/table.css +16 -6
  67. package/src/velinstyle.css +1 -0
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "mime": "application/vnd.velinstyle.meta+json",
4
- "generatedAt": "2026-08-02T07:30:26.797Z",
4
+ "generatedAt": "2026-08-04T10:26:12.411Z",
5
5
  "framework": {
6
6
  "name": "@birdapi/velinstyle",
7
- "version": "1.2.1",
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.",
@@ -57,6 +57,7 @@
57
57
  "velin-drawer",
58
58
  "velin-dropdown",
59
59
  "velin-email",
60
+ "velin-empty-state",
60
61
  "velin-file-dropzone",
61
62
  "velin-form-summary",
62
63
  "velin-icon",
@@ -64,6 +65,8 @@
64
65
  "velin-live-dot",
65
66
  "velin-menubar",
66
67
  "velin-modal",
68
+ "velin-otp-input",
69
+ "velin-password-strength",
67
70
  "velin-persist",
68
71
  "velin-popover",
69
72
  "velin-progress-ring",
@@ -81,7 +84,7 @@
81
84
  "velin-toast",
82
85
  "velin-tooltip"
83
86
  ],
84
- "count": 40,
87
+ "count": 43,
85
88
  "loaderTags": [
86
89
  "velin-accordion",
87
90
  "velin-announcer",
@@ -100,6 +103,7 @@
100
103
  "velin-drawer",
101
104
  "velin-dropdown",
102
105
  "velin-email",
106
+ "velin-empty-state",
103
107
  "velin-file-dropzone",
104
108
  "velin-form-summary",
105
109
  "velin-icon",
@@ -107,6 +111,8 @@
107
111
  "velin-live-dot",
108
112
  "velin-menubar",
109
113
  "velin-modal",
114
+ "velin-otp-input",
115
+ "velin-password-strength",
110
116
  "velin-persist",
111
117
  "velin-popover",
112
118
  "velin-progress-ring",
@@ -126,7 +132,7 @@
126
132
  "velin-tooltip",
127
133
  "velin-tooltip-wc"
128
134
  ],
129
- "loaderCount": 42,
135
+ "loaderCount": 45,
130
136
  "legacyAliases": [
131
137
  "velin-stepper-wc",
132
138
  "velin-tooltip-wc"
@@ -618,6 +624,7 @@
618
624
  "reducedMotionSafe": true
619
625
  },
620
626
  "examples": [
627
+ "<velin-modal title=\"Confirm\"></velin-modal>",
621
628
  "<velin-modal><h2 slot=\"title\">…</h2></velin-modal>"
622
629
  ],
623
630
  "promptKeywords": [
@@ -1255,7 +1262,8 @@
1255
1262
  "reducedMotionSafe": true
1256
1263
  },
1257
1264
  "examples": [
1258
- "<velin-drawer></velin-drawer>"
1265
+ "<velin-drawer title=\"Filters\"></velin-drawer>",
1266
+ "<velin-drawer><span slot=\"title\">Filters</span></velin-drawer>"
1259
1267
  ],
1260
1268
  "promptKeywords": [
1261
1269
  "drawer",
@@ -1349,7 +1357,8 @@
1349
1357
  "reducedMotionSafe": true
1350
1358
  },
1351
1359
  "examples": [
1352
- "<velin-sheet></velin-sheet>"
1360
+ "<velin-sheet title=\"Actions\"></velin-sheet>",
1361
+ "<velin-sheet><span slot=\"title\">Actions</span></velin-sheet>"
1353
1362
  ],
1354
1363
  "promptKeywords": [
1355
1364
  "sheet",
@@ -1567,9 +1576,194 @@
1567
1576
  "auto-dismiss with pause on focus/hover"
1568
1577
  ]
1569
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
+ }
1570
1764
  }
1571
1765
  ],
1572
- "componentCount": 17,
1766
+ "componentCount": 20,
1573
1767
  "tokens": {
1574
1768
  "version": 1,
1575
1769
  "tokens": [
@@ -3960,14 +4154,38 @@
3960
4154
  },
3961
4155
  {
3962
4156
  "name": "build",
3963
- "summary": "Build custom CSS with selected layers from config",
4157
+ "summary": "Build custom CSS with selected layers from config, or production output with --production",
3964
4158
  "flags": [
3965
4159
  "--output",
3966
4160
  "-o",
4161
+ "--out",
3967
4162
  "--minify",
3968
- "--preset"
4163
+ "--preset",
4164
+ "--production",
4165
+ "--explain",
4166
+ "--watch",
4167
+ "--report",
4168
+ "--safelist"
3969
4169
  ],
3970
- "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"
3971
4189
  },
3972
4190
  {
3973
4191
  "name": "themes",
@@ -4073,26 +4291,46 @@
4073
4291
  },
4074
4292
  {
4075
4293
  "name": "scaffold",
4076
- "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)",
4077
4295
  "flags": [
4078
4296
  "--output",
4079
4297
  "-o",
4080
- "--json"
4298
+ "--json",
4299
+ "--atelier",
4300
+ "--from",
4301
+ "--base-url"
4081
4302
  ],
4082
4303
  "subcommands": [
4083
4304
  "list-intents"
4084
4305
  ],
4085
- "example": "velinstyle scaffold \"Steuerberater Landingpage mit Kontakt\""
4306
+ "example": "velinstyle scaffold --atelier 04,07 -o compose.html --from ./atelier/library"
4086
4307
  },
4087
4308
  {
4088
4309
  "name": "plan",
4089
- "summary": "Emit page plan JSON from a prompt (no HTML)",
4310
+ "summary": "Emit page plan JSON from a prompt or --atelier Library ids (beta)",
4090
4311
  "flags": [
4091
4312
  "--output",
4092
4313
  "-o",
4093
- "--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"
4094
4332
  ],
4095
- "example": "velinstyle plan \"SaaS landing with pricing\""
4333
+ "example": "velinstyle atelier 36 -o ./velin-atelier/36-calendar --format html"
4096
4334
  },
4097
4335
  {
4098
4336
  "name": "review",
@@ -4409,7 +4647,8 @@
4409
4647
  "dialog"
4410
4648
  ],
4411
4649
  "keyboard": "Escape, Tab trap",
4412
- "requiredAttributes": []
4650
+ "requiredAttributes": [],
4651
+ "notes": "Reactive title attribute + slot=title."
4413
4652
  },
4414
4653
  "velin-dropdown": {
4415
4654
  "status": "pass",
@@ -4428,6 +4667,13 @@
4428
4667
  "aria-label"
4429
4668
  ]
4430
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
+ },
4431
4677
  "velin-form-summary": {
4432
4678
  "status": "pass",
4433
4679
  "roles": [
@@ -4483,7 +4729,23 @@
4483
4729
  "dialog"
4484
4730
  ],
4485
4731
  "keyboard": "Escape, Tab trap",
4486
- "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."
4487
4749
  },
4488
4750
  "velin-persist": {
4489
4751
  "status": "pass",
@@ -4563,7 +4825,8 @@
4563
4825
  "roles": [
4564
4826
  "dialog"
4565
4827
  ],
4566
- "keyboard": "Escape, Tab trap"
4828
+ "keyboard": "Escape, Tab trap",
4829
+ "notes": "Reactive title/label + slot=title."
4567
4830
  },
4568
4831
  "velin-sparkline": {
4569
4832
  "status": "pass",
@@ -4623,7 +4886,7 @@
4623
4886
  },
4624
4887
  "searchIndex": {
4625
4888
  "path": "dist/search-index.json",
4626
- "entryCount": 153
4889
+ "entryCount": 158
4627
4890
  },
4628
4891
  "documentation": {
4629
4892
  "generated": "docs/generated/",