@vanduo-oss/framework 1.4.4 → 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 (51) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/README.md +23 -9
  3. package/css/components/draggable.css +4 -0
  4. package/css/components/forms.css +1 -0
  5. package/css/utilities/print.css +19 -17
  6. package/css/vanduo.css +2 -3
  7. package/dist/build-info.json +3 -3
  8. package/dist/vanduo-core.css +19266 -0
  9. package/dist/vanduo-core.css.map +1 -0
  10. package/dist/vanduo-core.min.css +2 -0
  11. package/dist/vanduo-core.min.css.map +1 -0
  12. package/dist/vanduo.cjs.js +8 -7
  13. package/dist/vanduo.cjs.js.map +2 -2
  14. package/dist/vanduo.cjs.min.js +3 -3
  15. package/dist/vanduo.cjs.min.js.map +3 -3
  16. package/dist/vanduo.css +11 -33398
  17. package/dist/vanduo.css.map +1 -1
  18. package/dist/vanduo.d.ts +77 -0
  19. package/dist/vanduo.esm.js +8 -7
  20. package/dist/vanduo.esm.js.map +2 -2
  21. package/dist/vanduo.esm.min.js +3 -3
  22. package/dist/vanduo.esm.min.js.map +3 -3
  23. package/dist/vanduo.js +8 -7
  24. package/dist/vanduo.js.map +2 -2
  25. package/dist/vanduo.min.css +2 -2
  26. package/dist/vanduo.min.css.map +1 -1
  27. package/dist/vanduo.min.js +3 -3
  28. package/dist/vanduo.min.js.map +3 -3
  29. package/js/components/parallax.js +13 -7
  30. package/package.json +7 -3
  31. package/css/components/doc-tabs.css +0 -38
  32. package/dist/icons/phosphor/bold/Phosphor-Bold.svg +0 -3057
  33. package/dist/icons/phosphor/bold/Phosphor-Bold.ttf +0 -0
  34. package/dist/icons/phosphor/bold/Phosphor-Bold.woff +0 -0
  35. package/dist/icons/phosphor/bold/Phosphor-Bold.woff2 +0 -0
  36. package/dist/icons/phosphor/bold/style.css +0 -4627
  37. package/dist/icons/phosphor/duotone/Phosphor-Duotone.svg +0 -3054
  38. package/dist/icons/phosphor/duotone/Phosphor-Duotone.ttf +0 -0
  39. package/dist/icons/phosphor/duotone/Phosphor-Duotone.woff +0 -0
  40. package/dist/icons/phosphor/duotone/Phosphor-Duotone.woff2 +0 -0
  41. package/dist/icons/phosphor/duotone/style.css +0 -12115
  42. package/dist/icons/phosphor/light/Phosphor-Light.svg +0 -3057
  43. package/dist/icons/phosphor/light/Phosphor-Light.ttf +0 -0
  44. package/dist/icons/phosphor/light/Phosphor-Light.woff +0 -0
  45. package/dist/icons/phosphor/light/Phosphor-Light.woff2 +0 -0
  46. package/dist/icons/phosphor/light/style.css +0 -4627
  47. package/dist/icons/phosphor/thin/Phosphor-Thin.svg +0 -3057
  48. package/dist/icons/phosphor/thin/Phosphor-Thin.ttf +0 -0
  49. package/dist/icons/phosphor/thin/Phosphor-Thin.woff +0 -0
  50. package/dist/icons/phosphor/thin/Phosphor-Thin.woff2 +0 -0
  51. 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.4
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,25 +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.4
28
+ ## What's New in 1.4.6
29
29
 
30
- - **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. Cycle (`button[data-toggle="theme"]`) and select variants are unchanged.
31
- - **New stylesheet** — `css/components/theme-switcher.css` for menu layout, active state, and navbar alignment.
32
- - **Optional tooltips** — add `data-tooltip` on the toggle or menu options when the Tooltips component is loaded (opt-in).
33
- - Normative API: [openspec/specs/theme-switcher/spec.md](openspec/specs/theme-switcher/spec.md).
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
40
+
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.
42
+ - **Background-clip audit** — Playwright `@audit` harness at `tests/audit/background-clip-audit.spec.ts` for regression checks.
43
+ - Normative API: [openspec/specs/draggable/spec.md](openspec/specs/draggable/spec.md).
34
44
 
35
45
  ## Quick Start
36
46
 
37
47
  ### CDN
38
48
 
39
49
  ```html
40
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.4/dist/vanduo.min.css">
41
- <script src="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.4/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>
42
52
  <script>
43
53
  Vanduo.init();
44
54
  </script>
45
55
  ```
46
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
+
47
59
  ### Local Dist Files
48
60
 
49
61
  ```html
@@ -142,10 +154,12 @@ CI runs **Chromium Desktop smoke tests on pull requests** and the **full cross-b
142
154
 
143
155
  ## Release Notes
144
156
 
157
+ - Changelog: [CHANGELOG.md](CHANGELOG.md)
145
158
  - Architecture notes: [ARCHITECTURE.md](ARCHITECTURE.md)
146
159
  - Token model: [TOKENS.md](TOKENS.md)
147
- - `1.4.1` token migration notes: [changes-v141.md](changes-v141.md)
148
160
  - Theme Switcher spec: [openspec/specs/theme-switcher/spec.md](openspec/specs/theme-switcher/spec.md)
161
+ - Draggable spec: [openspec/specs/draggable/spec.md](openspec/specs/draggable/spec.md)
162
+ - Changelog policy: [openspec/specs/changelog/spec.md](openspec/specs/changelog/spec.md)
149
163
  - QA strategy: [QA-Automation-Strategy.md](QA-Automation-Strategy.md)
150
164
  - Contributor workflow: [CONTRIBUTING.md](CONTRIBUTING.md)
151
165
 
@@ -60,6 +60,7 @@
60
60
  padding: var(--vd-draggable-padding);
61
61
  margin: var(--vd-draggable-margin);
62
62
  background-color: var(--vd-draggable-bg);
63
+ background-clip: padding-box;
63
64
  border: 1px solid var(--vd-draggable-border-color);
64
65
  border-radius: var(--vd-btn-border-radius);
65
66
  cursor: grab;
@@ -124,6 +125,7 @@
124
125
  padding: var(--vd-drop-zone-padding);
125
126
  margin: var(--vd-draggable-margin);
126
127
  background-color: var(--vd-drop-zone-bg);
128
+ background-clip: padding-box;
127
129
  border: 2px dashed var(--vd-drop-zone-border-color);
128
130
  border-radius: var(--vd-btn-border-radius);
129
131
  transition: var(--vd-draggable-transition);
@@ -169,6 +171,7 @@
169
171
  gap: var(--vd-draggable-margin);
170
172
  padding: var(--vd-draggable-padding);
171
173
  background-color: var(--vd-bg-secondary);
174
+ background-clip: padding-box;
172
175
  border: 1px solid var(--vd-border-color);
173
176
  border-radius: var(--vd-btn-border-radius);
174
177
  }
@@ -184,6 +187,7 @@
184
187
  min-width: 8rem; /* 128px */
185
188
  padding: var(--vd-draggable-padding);
186
189
  background-color: var(--vd-draggable-bg);
190
+ background-clip: padding-box;
187
191
  border: 1px solid var(--vd-draggable-border-color);
188
192
  border-radius: var(--vd-btn-border-radius);
189
193
  cursor: grab;
@@ -397,6 +397,7 @@ label.label-lg {
397
397
  text-align: center;
398
398
  white-space: nowrap;
399
399
  background-color: var(--vd-bg-secondary);
400
+ background-clip: padding-box;
400
401
  border: var(--vd-input-border-width) solid var(--vd-input-border-color);
401
402
  }
402
403
 
@@ -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.4",
3
- "builtAt": "2026-06-07T19:14:20.877Z",
4
- "commit": "781df0d",
2
+ "version": "1.4.6",
3
+ "builtAt": "2026-06-13T10:32:26.875Z",
4
+ "commit": "82019ff",
5
5
  "mode": "development+production"
6
6
  }