@vanduo-oss/framework 1.4.5 → 1.4.6

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 (49) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/README.md +18 -9
  3. package/css/utilities/print.css +19 -17
  4. package/css/vanduo.css +2 -3
  5. package/dist/build-info.json +3 -3
  6. package/dist/vanduo-core.css +19266 -0
  7. package/dist/vanduo-core.css.map +1 -0
  8. package/dist/vanduo-core.min.css +2 -0
  9. package/dist/vanduo-core.min.css.map +1 -0
  10. package/dist/vanduo.cjs.js +8 -7
  11. package/dist/vanduo.cjs.js.map +2 -2
  12. package/dist/vanduo.cjs.min.js +3 -3
  13. package/dist/vanduo.cjs.min.js.map +3 -3
  14. package/dist/vanduo.css +6 -33398
  15. package/dist/vanduo.css.map +1 -1
  16. package/dist/vanduo.d.ts +77 -0
  17. package/dist/vanduo.esm.js +8 -7
  18. package/dist/vanduo.esm.js.map +2 -2
  19. package/dist/vanduo.esm.min.js +3 -3
  20. package/dist/vanduo.esm.min.js.map +3 -3
  21. package/dist/vanduo.js +8 -7
  22. package/dist/vanduo.js.map +2 -2
  23. package/dist/vanduo.min.css +2 -2
  24. package/dist/vanduo.min.css.map +1 -1
  25. package/dist/vanduo.min.js +3 -3
  26. package/dist/vanduo.min.js.map +3 -3
  27. package/js/components/parallax.js +13 -7
  28. package/package.json +7 -3
  29. package/css/components/doc-tabs.css +0 -38
  30. package/dist/icons/phosphor/bold/Phosphor-Bold.svg +0 -3057
  31. package/dist/icons/phosphor/bold/Phosphor-Bold.ttf +0 -0
  32. package/dist/icons/phosphor/bold/Phosphor-Bold.woff +0 -0
  33. package/dist/icons/phosphor/bold/Phosphor-Bold.woff2 +0 -0
  34. package/dist/icons/phosphor/bold/style.css +0 -4627
  35. package/dist/icons/phosphor/duotone/Phosphor-Duotone.svg +0 -3054
  36. package/dist/icons/phosphor/duotone/Phosphor-Duotone.ttf +0 -0
  37. package/dist/icons/phosphor/duotone/Phosphor-Duotone.woff +0 -0
  38. package/dist/icons/phosphor/duotone/Phosphor-Duotone.woff2 +0 -0
  39. package/dist/icons/phosphor/duotone/style.css +0 -12115
  40. package/dist/icons/phosphor/light/Phosphor-Light.svg +0 -3057
  41. package/dist/icons/phosphor/light/Phosphor-Light.ttf +0 -0
  42. package/dist/icons/phosphor/light/Phosphor-Light.woff +0 -0
  43. package/dist/icons/phosphor/light/Phosphor-Light.woff2 +0 -0
  44. package/dist/icons/phosphor/light/style.css +0 -4627
  45. package/dist/icons/phosphor/thin/Phosphor-Thin.svg +0 -3057
  46. package/dist/icons/phosphor/thin/Phosphor-Thin.ttf +0 -0
  47. package/dist/icons/phosphor/thin/Phosphor-Thin.woff +0 -0
  48. package/dist/icons/phosphor/thin/Phosphor-Thin.woff2 +0 -0
  49. package/dist/icons/phosphor/thin/style.css +0 -4627
package/CHANGELOG.md ADDED
@@ -0,0 +1,71 @@
1
+ # Changelog
2
+
3
+ All notable changes to the Vanduo Framework are documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ Full release notes — covering the framework, the documentation site, and
9
+ ecosystem packages side by side — live at <https://vanduo.dev/#changelog>.
10
+
11
+ ## [1.4.6] - 2026-06-12
12
+
13
+ ### Added
14
+ - Hand-written `dist/vanduo.d.ts` declaring the `Vanduo` runtime, exposed via the package `types` field.
15
+ - No-icons `vanduo-core.css` / `vanduo-core.min.css` build artifact (`@vanduo-oss/framework/css/core`) for consumers who ship their own icon set.
16
+ - This `CHANGELOG.md`.
17
+ - Playwright regression coverage for the parallax component and the print stylesheet.
18
+
19
+ ### Changed
20
+ - `css/vanduo.css` now bundles only the `regular` + `fill` icon weights, cutting the minified stylesheet ~47%. Import `css/icons/icons-all.css` for all six weights.
21
+ - The build now ships only the icon weights the bundle references into `dist/icons/`; the full six-weight set still ships under `icons/` for `icons-all.css` consumers.
22
+ - `check:versions` now also validates `README.md`, `SECURITY.md`, `llms.txt`, and this changelog — not just the dist banners.
23
+
24
+ ### Fixed
25
+ - Parallax speed/direction modifiers and the print stylesheet's element hide-list now use the canonical `vd-` prefix left behind by the 1.4.1 rename. The parallax JS still accepts the legacy unprefixed `parallax-*` / `data-speed` forms for back-compat.
26
+
27
+ ### Removed
28
+ - Unused internal `doc-tabs` styles dropped from the bundle.
29
+
30
+ ### Security
31
+ - Documented Subresource Integrity (`integrity` + `crossorigin`) for CDN tags; an ESLint rule now flags raw `innerHTML` assignment. The docs site ships a Content Security Policy restricting origins to self + jsDelivr.
32
+
33
+ ## [1.4.5] - 2026-06-11
34
+
35
+ ### Fixed
36
+ - Rounded-corner background bleed on draggable surfaces and input-group addons (`background-clip: padding-box`) at large `data-radius` presets.
37
+
38
+ ## [1.4.4] - 2026-06-07
39
+
40
+ ### Added
41
+ - Theme Switcher icon-menu variant (System / Light / Dark) with tooltips and keyboard navigation; cycle and select variants remain available.
42
+
43
+ ## [1.4.3] - 2026-05-27
44
+
45
+ ### Changed
46
+ - Music Player moved out of the core bundle into the ecosystem.
47
+
48
+ ### Fixed
49
+ - Suggest autocomplete uses DOM-safe match highlighting.
50
+ - Code Snippet HTML highlighting no longer corrupts extracted markup.
51
+
52
+ ## [1.4.2] - 2026-05-23
53
+
54
+ ### Fixed
55
+ - Modal and dialog size tiers render as real desktop width steps matching the documented API.
56
+
57
+ ## [1.4.1] - 2026-05-23
58
+
59
+ ### Changed
60
+ - Strict `--vd-*` token API: legacy unprefixed token aliases removed (see [TOKENS.md](TOKENS.md) for migration).
61
+ - Removed the legacy font-preference migration path.
62
+
63
+ ## [1.4.0] - 2026-05-19
64
+
65
+ ### Changed
66
+ - Scoped runtime and lifecycle architecture; canonical `lowerCamelCase` registry names.
67
+ - Security and hygiene hardening across components.
68
+
69
+ ---
70
+
71
+ Releases prior to 1.4.0 are documented at <https://vanduo.dev/#changelog>.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Vanduo Framework v1.4.5
1
+ # Vanduo Framework v1.4.6
2
2
 
3
3
  <p align="center">
4
4
  <img src="vanduo-banner.svg" alt="Vanduo Framework Banner" width="100%">
@@ -25,29 +25,37 @@ Vanduo is a zero-dependency UI framework built with HTML, CSS, and vanilla JavaS
25
25
  - Theme Switcher menu variant for icon-only light/dark/system selection in navbars
26
26
  - Playwright-based browser coverage across Chromium, Firefox, and WebKit
27
27
 
28
- ## What's New in 1.4.5
28
+ ## What's New in 1.4.6
29
+
30
+ - **Leaner default CSS** — `css/vanduo.css` now bundles the `regular` + `fill` icon weights only (~45% smaller minified CSS). Need all six weights? Import `css/icons/icons-all.css`.
31
+ - **No-icons core build** — new `dist/vanduo-core.min.css` (`@vanduo-oss/framework/css/core`) drops the bundled icons entirely (~123 KB lighter) for consumers who ship their own icon set.
32
+ - **Smaller package** — the build ships only the icon weights the bundle actually uses into `dist/icons/`, instead of all six.
33
+ - **TypeScript types** — a hand-written `dist/vanduo.d.ts` for the `Vanduo` runtime, exposed via the `types` field.
34
+ - **In-repo changelog** — a new [CHANGELOG.md](CHANGELOG.md) (Keep a Changelog), now validated by `check:versions`.
35
+ - **Version-consistency now covers prose** — `pnpm check:versions` validates README, `SECURITY.md`, `llms.txt`, and `CHANGELOG.md`, not just the dist banners.
36
+ - **Lint guard** — raw `innerHTML` assignment is now flagged by ESLint outside the sanitization helpers.
37
+ - **Parallax & print fixes (now tested)** — speed/direction classes and the print stylesheet's hide-list now use the canonical `vd-` prefix, with new Playwright regression specs; removed the unused internal `doc-tabs` styles from the bundle.
38
+
39
+ ## Previous: 1.4.5
29
40
 
30
41
  - **Rounded-corner background fixes** — draggable surfaces and input-group addons use `background-clip: padding-box` so opaque fills no longer bleed past border arcs at large `data-radius` presets.
31
42
  - **Background-clip audit** — Playwright `@audit` harness at `tests/audit/background-clip-audit.spec.ts` for regression checks.
32
43
  - Normative API: [openspec/specs/draggable/spec.md](openspec/specs/draggable/spec.md).
33
44
 
34
- ## Previous: 1.4.4
35
-
36
- - **Theme Switcher menu variant** — `.vd-theme-switcher[data-theme-ui="menu"]` opens an icon-only picker; option click applies the theme without cycling on toggle.
37
- - Normative API: [openspec/specs/theme-switcher/spec.md](openspec/specs/theme-switcher/spec.md).
38
-
39
45
  ## Quick Start
40
46
 
41
47
  ### CDN
42
48
 
43
49
  ```html
44
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.5/dist/vanduo.min.css">
45
- <script src="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.5/dist/vanduo.min.js"></script>
50
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.6/dist/vanduo.min.css">
51
+ <script src="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.6/dist/vanduo.min.js"></script>
46
52
  <script>
47
53
  Vanduo.init();
48
54
  </script>
49
55
  ```
50
56
 
57
+ > **Production tip:** harden CDN tags with Subresource Integrity — add `integrity="sha384-…" crossorigin="anonymous"`. Copy the hash from [jsdelivr.com](https://www.jsdelivr.com/) (per-file "SRI" button) or generate it with `openssl dgst -sha384 -binary dist/vanduo.min.js | openssl base64 -A`.
58
+
51
59
  ### Local Dist Files
52
60
 
53
61
  ```html
@@ -146,6 +154,7 @@ CI runs **Chromium Desktop smoke tests on pull requests** and the **full cross-b
146
154
 
147
155
  ## Release Notes
148
156
 
157
+ - Changelog: [CHANGELOG.md](CHANGELOG.md)
149
158
  - Architecture notes: [ARCHITECTURE.md](ARCHITECTURE.md)
150
159
  - Token model: [TOKENS.md](TOKENS.md)
151
160
  - Theme Switcher spec: [openspec/specs/theme-switcher/spec.md](openspec/specs/theme-switcher/spec.md)
@@ -61,38 +61,40 @@
61
61
  page-break-inside: avoid;
62
62
  }
63
63
 
64
- /* Hide non-essential elements */
65
- .navbar,
66
- .navbar-menu,
67
- .navbar-toggle,
68
- .navbar-overlay,
69
- .sidenav,
70
- .modal,
71
- .modal-backdrop,
72
- .tooltip,
73
- .dropdown-menu,
74
- .btn-group,
75
- .pagination,
64
+ /* Hide non-essential UI chrome */
65
+ .vd-navbar,
66
+ .vd-navbar-menu,
67
+ .vd-navbar-toggle,
68
+ .vd-navbar-overlay,
69
+ .vd-sidenav,
70
+ .vd-sidenav-overlay,
71
+ .vd-modal,
72
+ .vd-modal-backdrop,
73
+ .vd-tooltip,
74
+ .vd-dropdown-menu,
75
+ .vd-btn-group,
76
+ .vd-pagination,
76
77
  .skip-link,
77
- .d-print-none {
78
+ .vd-d-print-none {
78
79
  display: none !important;
79
80
  }
80
81
 
81
82
  /* Show print-only elements */
82
- .d-print-block {
83
+ .vd-d-print-block {
83
84
  display: block !important;
84
85
  }
85
86
 
86
- .d-print-inline {
87
+ .vd-d-print-inline {
87
88
  display: inline !important;
88
89
  }
89
90
 
90
- .d-print-inline-block {
91
+ .vd-d-print-inline-block {
91
92
  display: inline-block !important;
92
93
  }
93
94
 
94
95
  /* Container adjustments */
95
- .container {
96
+ .vd-container,
97
+ .vd-container-responsive {
96
98
  width: 100% !important;
97
99
  max-width: none !important;
98
100
  padding: 0 !important;
package/css/vanduo.css CHANGED
@@ -14,8 +14,8 @@
14
14
  @import url('core/grid.css');
15
15
  @import url('core/helpers.css');
16
16
 
17
- /* Layer 2: Icons */
18
- @import url('icons/icons-all.css');
17
+ /* Layer 2: Icons (regular + fill; import css/icons/icons-all.css for all 6 weights) */
18
+ @import url('icons/icons.css');
19
19
 
20
20
  /* Layer 3: Utilities */
21
21
  @import url('utilities/shadow.css');
@@ -55,7 +55,6 @@
55
55
  @import url('components/theme-customizer.css');
56
56
  @import url('components/theme-switcher.css');
57
57
  @import url('components/image-box.css');
58
- @import url('components/doc-tabs.css');
59
58
  @import url('components/doc-search.css');
60
59
  @import url('components/draggable.css');
61
60
  @import url('components/flow.css');
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "1.4.5",
3
- "builtAt": "2026-06-11T18:11:31.153Z",
4
- "commit": "70ed923",
2
+ "version": "1.4.6",
3
+ "builtAt": "2026-06-13T10:32:26.875Z",
4
+ "commit": "82019ff",
5
5
  "mode": "development+production"
6
6
  }