vanduo-framework 1.1.8
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/LICENSE +35 -0
- package/README.md +205 -0
- package/css/components/alerts.css +224 -0
- package/css/components/avatar.css +275 -0
- package/css/components/badges.css +230 -0
- package/css/components/breadcrumbs.css +146 -0
- package/css/components/button-group.css +82 -0
- package/css/components/buttons.css +530 -0
- package/css/components/cards.css +304 -0
- package/css/components/chips.css +259 -0
- package/css/components/code-snippet.css +555 -0
- package/css/components/collapsible.css +267 -0
- package/css/components/collections.css +253 -0
- package/css/components/doc-search.css +464 -0
- package/css/components/doc-tabs.css +38 -0
- package/css/components/draggable.css +317 -0
- package/css/components/dropdown.css +266 -0
- package/css/components/footer.css +375 -0
- package/css/components/forms.css +1774 -0
- package/css/components/image-box.css +279 -0
- package/css/components/modals.css +285 -0
- package/css/components/navbar.css +530 -0
- package/css/components/pagination.css +186 -0
- package/css/components/preloader.css +340 -0
- package/css/components/progress.css +107 -0
- package/css/components/sidenav.css +301 -0
- package/css/components/skeleton.css +241 -0
- package/css/components/spinner.css +144 -0
- package/css/components/tabs.css +327 -0
- package/css/components/theme-customizer.css +835 -0
- package/css/components/toast.css +357 -0
- package/css/components/tooltips.css +270 -0
- package/css/core/colors.css +1017 -0
- package/css/core/fonts.css +266 -0
- package/css/core/grid.css +1699 -0
- package/css/core/helpers.css +2202 -0
- package/css/core/reset.css +128 -0
- package/css/core/tokens.css +213 -0
- package/css/core/typography.css +405 -0
- package/css/core/vd-aliases.css +47 -0
- package/css/effects/parallax.css +113 -0
- package/css/icons/icons-all.css +23 -0
- package/css/icons/icons.css +25 -0
- package/css/utilities/media.css +167 -0
- package/css/utilities/print.css +111 -0
- package/css/utilities/shadow.css +243 -0
- package/css/utilities/table.css +381 -0
- package/css/utilities/transforms.css +71 -0
- package/css/utilities/transitions.css +87 -0
- package/css/vanduo.css +80 -0
- package/dist/build-info.json +6 -0
- package/dist/fonts/fira-sans/fira-sans-bold.woff2 +0 -0
- package/dist/fonts/fira-sans/fira-sans-medium.woff2 +0 -0
- package/dist/fonts/fira-sans/fira-sans-regular.woff2 +0 -0
- package/dist/fonts/ibm-plex/ibm-plex-sans-bold.woff2 +0 -0
- package/dist/fonts/ibm-plex/ibm-plex-sans-medium.woff2 +0 -0
- package/dist/fonts/ibm-plex/ibm-plex-sans-regular.woff2 +0 -0
- package/dist/fonts/inter/inter-bold.woff2 +0 -0
- package/dist/fonts/inter/inter-medium.woff2 +0 -0
- package/dist/fonts/inter/inter-regular.woff2 +0 -0
- package/dist/fonts/inter/inter-semibold.woff2 +0 -0
- package/dist/fonts/jetbrains-mono/jetbrains-mono-bold.woff2 +0 -0
- package/dist/fonts/jetbrains-mono/jetbrains-mono-regular.woff2 +0 -0
- package/dist/fonts/open-sans/open-sans-bold.woff2 +0 -0
- package/dist/fonts/open-sans/open-sans-medium.woff2 +0 -0
- package/dist/fonts/open-sans/open-sans-regular.woff2 +0 -0
- package/dist/fonts/rubik/rubik-bold.woff2 +0 -0
- package/dist/fonts/rubik/rubik-medium.woff2 +0 -0
- package/dist/fonts/rubik/rubik-regular.woff2 +0 -0
- package/dist/fonts/source-sans/source-sans-bold.woff2 +0 -0
- package/dist/fonts/source-sans/source-sans-regular.woff2 +0 -0
- package/dist/fonts/source-sans/source-sans-semibold.woff2 +0 -0
- package/dist/fonts/titillium-web/titillium-web-bold.woff2 +0 -0
- package/dist/fonts/titillium-web/titillium-web-regular.woff2 +0 -0
- package/dist/fonts/titillium-web/titillium-web-semibold.woff2 +0 -0
- package/dist/fonts/ubuntu/ubuntu-bold.woff2 +0 -0
- package/dist/fonts/ubuntu/ubuntu-medium.woff2 +0 -0
- package/dist/fonts/ubuntu/ubuntu-regular.woff2 +0 -0
- package/dist/icons/phosphor/LICENSE +21 -0
- 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 +4627 -0
- 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 +12115 -0
- package/dist/icons/phosphor/fill/Phosphor-Fill.ttf +0 -0
- package/dist/icons/phosphor/fill/Phosphor-Fill.woff +0 -0
- package/dist/icons/phosphor/fill/Phosphor-Fill.woff2 +0 -0
- package/dist/icons/phosphor/fill/style.css +4627 -0
- 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 +4627 -0
- package/dist/icons/phosphor/regular/Phosphor.ttf +0 -0
- package/dist/icons/phosphor/regular/Phosphor.woff +0 -0
- package/dist/icons/phosphor/regular/Phosphor.woff2 +0 -0
- package/dist/icons/phosphor/regular/style.css +4627 -0
- 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 +4627 -0
- package/dist/vanduo.cjs.js +5569 -0
- package/dist/vanduo.cjs.js.map +7 -0
- package/dist/vanduo.cjs.min.js +48 -0
- package/dist/vanduo.cjs.min.js.map +7 -0
- package/dist/vanduo.css +60666 -0
- package/dist/vanduo.css.map +1 -0
- package/dist/vanduo.esm.js +5548 -0
- package/dist/vanduo.esm.js.map +7 -0
- package/dist/vanduo.esm.min.js +48 -0
- package/dist/vanduo.esm.min.js.map +7 -0
- package/dist/vanduo.js +5545 -0
- package/dist/vanduo.js.map +7 -0
- package/dist/vanduo.min.css +2 -0
- package/dist/vanduo.min.css.map +1 -0
- package/dist/vanduo.min.js +48 -0
- package/dist/vanduo.min.js.map +7 -0
- package/fonts/fira-sans/fira-sans-bold.woff2 +0 -0
- package/fonts/fira-sans/fira-sans-medium.woff2 +0 -0
- package/fonts/fira-sans/fira-sans-regular.woff2 +0 -0
- package/fonts/ibm-plex/ibm-plex-sans-bold.woff2 +0 -0
- package/fonts/ibm-plex/ibm-plex-sans-medium.woff2 +0 -0
- package/fonts/ibm-plex/ibm-plex-sans-regular.woff2 +0 -0
- package/fonts/inter/inter-bold.woff2 +0 -0
- package/fonts/inter/inter-medium.woff2 +0 -0
- package/fonts/inter/inter-regular.woff2 +0 -0
- package/fonts/inter/inter-semibold.woff2 +0 -0
- package/fonts/jetbrains-mono/jetbrains-mono-bold.woff2 +0 -0
- package/fonts/jetbrains-mono/jetbrains-mono-regular.woff2 +0 -0
- package/fonts/open-sans/open-sans-bold.woff2 +0 -0
- package/fonts/open-sans/open-sans-medium.woff2 +0 -0
- package/fonts/open-sans/open-sans-regular.woff2 +0 -0
- package/fonts/rubik/rubik-bold.woff2 +0 -0
- package/fonts/rubik/rubik-medium.woff2 +0 -0
- package/fonts/rubik/rubik-regular.woff2 +0 -0
- package/fonts/source-sans/source-sans-bold.woff2 +0 -0
- package/fonts/source-sans/source-sans-regular.woff2 +0 -0
- package/fonts/source-sans/source-sans-semibold.woff2 +0 -0
- package/fonts/titillium-web/titillium-web-bold.woff2 +0 -0
- package/fonts/titillium-web/titillium-web-regular.woff2 +0 -0
- package/fonts/titillium-web/titillium-web-semibold.woff2 +0 -0
- package/fonts/ubuntu/ubuntu-bold.woff2 +0 -0
- package/fonts/ubuntu/ubuntu-medium.woff2 +0 -0
- package/fonts/ubuntu/ubuntu-regular.woff2 +0 -0
- package/icons/phosphor/LICENSE +21 -0
- package/icons/phosphor/bold/Phosphor-Bold.ttf +0 -0
- package/icons/phosphor/bold/Phosphor-Bold.woff +0 -0
- package/icons/phosphor/bold/Phosphor-Bold.woff2 +0 -0
- package/icons/phosphor/bold/style.css +4627 -0
- package/icons/phosphor/duotone/Phosphor-Duotone.ttf +0 -0
- package/icons/phosphor/duotone/Phosphor-Duotone.woff +0 -0
- package/icons/phosphor/duotone/Phosphor-Duotone.woff2 +0 -0
- package/icons/phosphor/duotone/style.css +12115 -0
- package/icons/phosphor/fill/Phosphor-Fill.ttf +0 -0
- package/icons/phosphor/fill/Phosphor-Fill.woff +0 -0
- package/icons/phosphor/fill/Phosphor-Fill.woff2 +0 -0
- package/icons/phosphor/fill/style.css +4627 -0
- package/icons/phosphor/light/Phosphor-Light.ttf +0 -0
- package/icons/phosphor/light/Phosphor-Light.woff +0 -0
- package/icons/phosphor/light/Phosphor-Light.woff2 +0 -0
- package/icons/phosphor/light/style.css +4627 -0
- package/icons/phosphor/regular/Phosphor.ttf +0 -0
- package/icons/phosphor/regular/Phosphor.woff +0 -0
- package/icons/phosphor/regular/Phosphor.woff2 +0 -0
- package/icons/phosphor/regular/style.css +4627 -0
- package/icons/phosphor/thin/Phosphor-Thin.ttf +0 -0
- package/icons/phosphor/thin/Phosphor-Thin.woff +0 -0
- package/icons/phosphor/thin/Phosphor-Thin.woff2 +0 -0
- package/icons/phosphor/thin/style.css +4627 -0
- package/js/components/code-snippet.js +639 -0
- package/js/components/collapsible.js +226 -0
- package/js/components/doc-search.js +936 -0
- package/js/components/draggable.js +725 -0
- package/js/components/dropdown.js +362 -0
- package/js/components/font-switcher.js +253 -0
- package/js/components/grid.js +279 -0
- package/js/components/image-box.js +372 -0
- package/js/components/modals.js +367 -0
- package/js/components/navbar.js +264 -0
- package/js/components/pagination.js +286 -0
- package/js/components/parallax.js +216 -0
- package/js/components/preloader.js +183 -0
- package/js/components/select.js +444 -0
- package/js/components/sidenav.js +303 -0
- package/js/components/tabs.js +303 -0
- package/js/components/theme-customizer.js +784 -0
- package/js/components/theme-switcher.js +183 -0
- package/js/components/toast.js +343 -0
- package/js/components/tooltips.js +306 -0
- package/js/index.js +52 -0
- package/js/utils/helpers.js +306 -0
- package/js/utils/lifecycle.js +135 -0
- package/js/vanduo.js +120 -0
- package/package.json +78 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vanduo Framework - Lifecycle Manager
|
|
3
|
+
* Central registry for component instances and cleanup
|
|
4
|
+
* Prevents memory leaks in SPAs by tracking event listeners
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
(function() {
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Lifecycle Manager
|
|
12
|
+
* Simple registry that tracks component instances and their cleanup functions
|
|
13
|
+
*/
|
|
14
|
+
const Lifecycle = {
|
|
15
|
+
// Map of element -> { componentName, cleanupFunctions }
|
|
16
|
+
instances: new Map(),
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Register a component instance
|
|
20
|
+
* @param {HTMLElement} element - The DOM element
|
|
21
|
+
* @param {string} componentName - Name of the component
|
|
22
|
+
* @param {Array<Function>} cleanupFns - Functions to call on destroy
|
|
23
|
+
*/
|
|
24
|
+
register: function(element, componentName, cleanupFns = []) {
|
|
25
|
+
if (this.instances.has(element)) {
|
|
26
|
+
// Already registered, merge cleanup functions
|
|
27
|
+
const existing = this.instances.get(element);
|
|
28
|
+
existing.cleanup = existing.cleanup.concat(cleanupFns);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
this.instances.set(element, {
|
|
33
|
+
component: componentName,
|
|
34
|
+
cleanup: cleanupFns,
|
|
35
|
+
registeredAt: Date.now()
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Unregister a single element and run its cleanup
|
|
41
|
+
* @param {HTMLElement} element - The element to unregister
|
|
42
|
+
*/
|
|
43
|
+
unregister: function(element) {
|
|
44
|
+
const instance = this.instances.get(element);
|
|
45
|
+
if (!instance) return;
|
|
46
|
+
|
|
47
|
+
// Run all cleanup functions
|
|
48
|
+
instance.cleanup.forEach(function(fn) {
|
|
49
|
+
try {
|
|
50
|
+
fn();
|
|
51
|
+
} catch (e) {
|
|
52
|
+
console.warn('[Vanduo Lifecycle] Cleanup error:', e);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
this.instances.delete(element);
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Destroy all instances of a specific component
|
|
61
|
+
* @param {string} componentName - Optional component name filter
|
|
62
|
+
*/
|
|
63
|
+
destroyAll: function(componentName) {
|
|
64
|
+
const toRemove = [];
|
|
65
|
+
|
|
66
|
+
this.instances.forEach(function(instance, element) {
|
|
67
|
+
if (!componentName || instance.component === componentName) {
|
|
68
|
+
toRemove.push(element);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
toRemove.forEach(function(element) {
|
|
73
|
+
Lifecycle.unregister(element);
|
|
74
|
+
});
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Destroy all instances within a specific container
|
|
79
|
+
* Useful for SPAs when navigating between pages
|
|
80
|
+
* @param {HTMLElement} container - Container element
|
|
81
|
+
*/
|
|
82
|
+
destroyAllInContainer: function(container) {
|
|
83
|
+
const toRemove = [];
|
|
84
|
+
|
|
85
|
+
this.instances.forEach(function(instance, element) {
|
|
86
|
+
if (container.contains(element)) {
|
|
87
|
+
toRemove.push(element);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
toRemove.forEach(function(element) {
|
|
92
|
+
Lifecycle.unregister(element);
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Get all registered instances (for debugging)
|
|
98
|
+
* @returns {Array} Array of instance info objects
|
|
99
|
+
*/
|
|
100
|
+
getAll: function() {
|
|
101
|
+
const result = [];
|
|
102
|
+
this.instances.forEach(function(instance, element) {
|
|
103
|
+
result.push({
|
|
104
|
+
element: element,
|
|
105
|
+
component: instance.component,
|
|
106
|
+
registeredAt: instance.registeredAt
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
return result;
|
|
110
|
+
},
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Check if an element is registered
|
|
114
|
+
* @param {HTMLElement} element - The element to check
|
|
115
|
+
* @returns {boolean}
|
|
116
|
+
*/
|
|
117
|
+
has: function(element) {
|
|
118
|
+
return this.instances.has(element);
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
// Auto-cleanup on page unload
|
|
123
|
+
window.addEventListener('beforeunload', function() {
|
|
124
|
+
Lifecycle.destroyAll();
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// Expose globally
|
|
128
|
+
window.VanduoLifecycle = Lifecycle;
|
|
129
|
+
|
|
130
|
+
// Register with Vanduo framework if available
|
|
131
|
+
if (typeof window.Vanduo !== 'undefined') {
|
|
132
|
+
window.Vanduo.register('lifecycle', Lifecycle);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
})();
|
package/js/vanduo.js
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vanduo Framework - Main JavaScript File
|
|
3
|
+
* v1.1.6
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
(function() {
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Vanduo Framework Object
|
|
11
|
+
*/
|
|
12
|
+
const Vanduo = {
|
|
13
|
+
version: '1.1.6',
|
|
14
|
+
components: {},
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Initialize framework
|
|
18
|
+
* Call this after DOM is ready and all components are loaded
|
|
19
|
+
*/
|
|
20
|
+
init: function() {
|
|
21
|
+
// Initialize components when DOM is ready
|
|
22
|
+
if (typeof ready !== 'undefined') {
|
|
23
|
+
ready(() => {
|
|
24
|
+
this.initComponents();
|
|
25
|
+
});
|
|
26
|
+
} else {
|
|
27
|
+
// Fallback if helpers.js is not loaded
|
|
28
|
+
if (document.readyState === 'loading') {
|
|
29
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
30
|
+
this.initComponents();
|
|
31
|
+
});
|
|
32
|
+
} else {
|
|
33
|
+
this.initComponents();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Initialize all components
|
|
40
|
+
*/
|
|
41
|
+
initComponents: function() {
|
|
42
|
+
// Initialize all registered components
|
|
43
|
+
Object.keys(this.components).forEach((name) => {
|
|
44
|
+
const component = this.components[name];
|
|
45
|
+
if (component.init && typeof component.init === 'function') {
|
|
46
|
+
try {
|
|
47
|
+
component.init();
|
|
48
|
+
} catch (e) {
|
|
49
|
+
console.warn('[Vanduo] Failed to initialize component "' + name + '":', e);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
console.log('Vanduo Framework v1.1.6 initialized');
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Register a component
|
|
59
|
+
* @param {string} name - Component name
|
|
60
|
+
* @param {Object} component - Component object with init method
|
|
61
|
+
*/
|
|
62
|
+
register: function(name, component) {
|
|
63
|
+
this.components[name] = component;
|
|
64
|
+
// Note: Components are NOT auto-initialized on registration
|
|
65
|
+
// Call Vanduo.init() explicitly after all components are registered
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Re-initialize a component (useful after dynamic DOM changes)
|
|
70
|
+
* @param {string} name - Component name
|
|
71
|
+
*/
|
|
72
|
+
reinit: function(name) {
|
|
73
|
+
var component = this.components[name];
|
|
74
|
+
if (component && component.init && typeof component.init === 'function') {
|
|
75
|
+
try {
|
|
76
|
+
component.init();
|
|
77
|
+
} catch (e) {
|
|
78
|
+
console.warn('[Vanduo] Failed to reinitialize component "' + name + '":', e);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Destroy all component instances and clean up event listeners
|
|
85
|
+
* Uses lifecycle manager for memory leak prevention
|
|
86
|
+
*/
|
|
87
|
+
destroyAll: function() {
|
|
88
|
+
// First, destroy components that have their own destroyAll
|
|
89
|
+
var names = Object.keys(this.components);
|
|
90
|
+
for (var i = 0; i < names.length; i++) {
|
|
91
|
+
var component = this.components[names[i]];
|
|
92
|
+
if (component && component.destroyAll && typeof component.destroyAll === 'function') {
|
|
93
|
+
try {
|
|
94
|
+
component.destroyAll();
|
|
95
|
+
} catch (e) {
|
|
96
|
+
console.warn('[Vanduo] Failed to destroy component "' + names[i] + '":', e);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Then, cleanup any remaining registered elements via lifecycle manager
|
|
102
|
+
if (typeof window.VanduoLifecycle !== 'undefined') {
|
|
103
|
+
window.VanduoLifecycle.destroyAll();
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Get component instance
|
|
109
|
+
* @param {string} name - Component name
|
|
110
|
+
* @returns {Object|null}
|
|
111
|
+
*/
|
|
112
|
+
getComponent: function(name) {
|
|
113
|
+
return this.components[name] || null;
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
// Expose to global scope
|
|
118
|
+
window.Vanduo = Vanduo;
|
|
119
|
+
|
|
120
|
+
})();
|
package/package.json
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "vanduo-framework",
|
|
3
|
+
"version": "1.1.8",
|
|
4
|
+
"description": "Zero-dependency CSS/JS framework built on Fibonacci/Golden Ratio design system with Open Color integration",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"css",
|
|
7
|
+
"framework",
|
|
8
|
+
"fibonacci",
|
|
9
|
+
"golden-ratio",
|
|
10
|
+
"open-color",
|
|
11
|
+
"dark-mode",
|
|
12
|
+
"accessibility"
|
|
13
|
+
],
|
|
14
|
+
"homepage": "https://vanduo.dev",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/Nostromo-618/vanduo-framework"
|
|
18
|
+
},
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"author": "Nostromo-618",
|
|
21
|
+
"type": "module",
|
|
22
|
+
"main": "dist/vanduo.cjs.js",
|
|
23
|
+
"module": "dist/vanduo.esm.js",
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"import": "./dist/vanduo.esm.js",
|
|
27
|
+
"require": "./dist/vanduo.cjs.js",
|
|
28
|
+
"default": "./dist/vanduo.esm.js"
|
|
29
|
+
},
|
|
30
|
+
"./css": "./dist/vanduo.min.css",
|
|
31
|
+
"./iife": "./dist/vanduo.min.js",
|
|
32
|
+
"./package.json": "./package.json"
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist/",
|
|
36
|
+
"css/",
|
|
37
|
+
"js/",
|
|
38
|
+
"fonts/",
|
|
39
|
+
"icons/"
|
|
40
|
+
],
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@eslint/js": "^10.0.1",
|
|
43
|
+
"@playwright/test": "^1.58.2",
|
|
44
|
+
"esbuild": "^0.27.3",
|
|
45
|
+
"eslint": "^10.0.1",
|
|
46
|
+
"husky": "^9.1.7",
|
|
47
|
+
"lightningcss": "^1.31.1",
|
|
48
|
+
"stylelint": "^17.3.0",
|
|
49
|
+
"stylelint-config-standard": "^40.0.0"
|
|
50
|
+
},
|
|
51
|
+
"engines": {
|
|
52
|
+
"node": ">=18.0.0",
|
|
53
|
+
"pnpm": ">=8.0.0"
|
|
54
|
+
},
|
|
55
|
+
"scripts": {
|
|
56
|
+
"build": "node scripts/build.js --minify",
|
|
57
|
+
"dev": "node scripts/build.js",
|
|
58
|
+
"release:assets": "node scripts/upload-release-assets.js",
|
|
59
|
+
"lint": "pnpm run lint:css && pnpm run lint:js",
|
|
60
|
+
"lint:css": "stylelint 'css/**/*.css'",
|
|
61
|
+
"lint:js": "eslint 'js/**/*.js'",
|
|
62
|
+
"lint:fix": "pnpm run lint:css -- --fix && pnpm run lint:js -- --fix",
|
|
63
|
+
"clean": "rm -rf dist",
|
|
64
|
+
"test": "playwright test",
|
|
65
|
+
"test:ui": "playwright test --ui",
|
|
66
|
+
"test:headed": "playwright test --headed",
|
|
67
|
+
"test:debug": "playwright test --debug",
|
|
68
|
+
"test:a11y": "playwright test --grep @a11y",
|
|
69
|
+
"test:e2e": "playwright test --grep @e2e",
|
|
70
|
+
"test:perf": "playwright test --grep @perf",
|
|
71
|
+
"test:mobile": "playwright test --project='*Mobile*'",
|
|
72
|
+
"test:desktop": "playwright test --project='*Desktop*'",
|
|
73
|
+
"test:chromium": "playwright test --project='Chromium*'",
|
|
74
|
+
"test:firefox": "playwright test --project='Firefox*'",
|
|
75
|
+
"test:webkit": "playwright test --project='WebKit*'",
|
|
76
|
+
"report": "playwright show-report"
|
|
77
|
+
}
|
|
78
|
+
}
|