@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.
- package/CHANGELOG.md +71 -0
- package/README.md +23 -9
- package/css/components/draggable.css +4 -0
- package/css/components/forms.css +1 -0
- package/css/utilities/print.css +19 -17
- package/css/vanduo.css +2 -3
- package/dist/build-info.json +3 -3
- package/dist/vanduo-core.css +19266 -0
- package/dist/vanduo-core.css.map +1 -0
- package/dist/vanduo-core.min.css +2 -0
- package/dist/vanduo-core.min.css.map +1 -0
- package/dist/vanduo.cjs.js +8 -7
- package/dist/vanduo.cjs.js.map +2 -2
- package/dist/vanduo.cjs.min.js +3 -3
- package/dist/vanduo.cjs.min.js.map +3 -3
- package/dist/vanduo.css +11 -33398
- package/dist/vanduo.css.map +1 -1
- package/dist/vanduo.d.ts +77 -0
- package/dist/vanduo.esm.js +8 -7
- package/dist/vanduo.esm.js.map +2 -2
- package/dist/vanduo.esm.min.js +3 -3
- package/dist/vanduo.esm.min.js.map +3 -3
- package/dist/vanduo.js +8 -7
- package/dist/vanduo.js.map +2 -2
- package/dist/vanduo.min.css +2 -2
- package/dist/vanduo.min.css.map +1 -1
- package/dist/vanduo.min.js +3 -3
- package/dist/vanduo.min.js.map +3 -3
- package/js/components/parallax.js +13 -7
- package/package.json +7 -3
- package/css/components/doc-tabs.css +0 -38
- package/dist/icons/phosphor/bold/Phosphor-Bold.svg +0 -3057
- package/dist/icons/phosphor/bold/Phosphor-Bold.ttf +0 -0
- package/dist/icons/phosphor/bold/Phosphor-Bold.woff +0 -0
- package/dist/icons/phosphor/bold/Phosphor-Bold.woff2 +0 -0
- package/dist/icons/phosphor/bold/style.css +0 -4627
- package/dist/icons/phosphor/duotone/Phosphor-Duotone.svg +0 -3054
- package/dist/icons/phosphor/duotone/Phosphor-Duotone.ttf +0 -0
- package/dist/icons/phosphor/duotone/Phosphor-Duotone.woff +0 -0
- package/dist/icons/phosphor/duotone/Phosphor-Duotone.woff2 +0 -0
- package/dist/icons/phosphor/duotone/style.css +0 -12115
- package/dist/icons/phosphor/light/Phosphor-Light.svg +0 -3057
- package/dist/icons/phosphor/light/Phosphor-Light.ttf +0 -0
- package/dist/icons/phosphor/light/Phosphor-Light.woff +0 -0
- package/dist/icons/phosphor/light/Phosphor-Light.woff2 +0 -0
- package/dist/icons/phosphor/light/style.css +0 -4627
- package/dist/icons/phosphor/thin/Phosphor-Thin.svg +0 -3057
- package/dist/icons/phosphor/thin/Phosphor-Thin.ttf +0 -0
- package/dist/icons/phosphor/thin/Phosphor-Thin.woff +0 -0
- package/dist/icons/phosphor/thin/Phosphor-Thin.woff2 +0 -0
- 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.
|
|
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.
|
|
28
|
+
## What's New in 1.4.6
|
|
29
29
|
|
|
30
|
-
- **
|
|
31
|
-
- **
|
|
32
|
-
- **
|
|
33
|
-
-
|
|
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.
|
|
41
|
-
<script src="https://cdn.jsdelivr.net/gh/vanduo-oss/framework@v1.4.
|
|
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;
|
package/css/components/forms.css
CHANGED
package/css/utilities/print.css
CHANGED
|
@@ -61,38 +61,40 @@
|
|
|
61
61
|
page-break-inside: avoid;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
/* Hide non-essential
|
|
65
|
-
.navbar,
|
|
66
|
-
.navbar-menu,
|
|
67
|
-
.navbar-toggle,
|
|
68
|
-
.navbar-overlay,
|
|
69
|
-
.sidenav,
|
|
70
|
-
.
|
|
71
|
-
.modal
|
|
72
|
-
.
|
|
73
|
-
.
|
|
74
|
-
.
|
|
75
|
-
.
|
|
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
|
|
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');
|
package/dist/build-info.json
CHANGED