@dammgo/vena-visual-engine 0.2.1 → 0.2.3

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.
@@ -0,0 +1,28 @@
1
+ /**
2
+ * VENA Visual Engine - Core Infrastructure
3
+ * Shared fonts and base UnoCSS presets for the entire ecosystem.
4
+ */
5
+ export declare const coreTheme: {
6
+ colors: {
7
+ bos: {
8
+ slate: string;
9
+ pink: string;
10
+ indigo: string;
11
+ white: string;
12
+ gray: string;
13
+ cobalt: string;
14
+ void: string;
15
+ surface: string;
16
+ armor: string;
17
+ success: string;
18
+ warning: string;
19
+ error: string;
20
+ };
21
+ matrix: {
22
+ green: string;
23
+ dark: string;
24
+ };
25
+ };
26
+ };
27
+ export declare const corePresets: (import("unocss").Preset<import("unocss").PresetMiniTheme> | import("unocss").Preset<any>)[];
28
+ export declare const coreShortcuts: string[][];
@@ -0,0 +1,45 @@
1
+ import { presetUno, presetWebFonts } from 'unocss';
2
+ /**
3
+ * VENA Visual Engine - Core Infrastructure
4
+ * Shared fonts and base UnoCSS presets for the entire ecosystem.
5
+ */
6
+ export const coreTheme = {
7
+ colors: {
8
+ bos: {
9
+ slate: '#020617',
10
+ pink: '#E91E63',
11
+ indigo: '#818cf8',
12
+ white: '#f8fafc',
13
+ gray: '#94a3b8',
14
+ cobalt: '#00d4ff',
15
+ void: '#0d1117',
16
+ surface: '#161b22',
17
+ armor: '#30363d',
18
+ success: '#10b981',
19
+ warning: '#f59e0b',
20
+ error: '#ef4444',
21
+ },
22
+ matrix: {
23
+ green: '#00FF41',
24
+ dark: '#0D0208',
25
+ }
26
+ }
27
+ };
28
+ export const corePresets = [
29
+ presetUno(),
30
+ presetWebFonts({
31
+ provider: 'google',
32
+ fonts: {
33
+ brand: 'Montserrat:400,700,900',
34
+ ui: 'Inter:400,500,600,700',
35
+ mono: 'JetBrains Mono:400,700',
36
+ },
37
+ }),
38
+ ];
39
+ export const coreShortcuts = [
40
+ ['bos-surface', 'bg-bos-surface/40 backdrop-blur-md border border-bos-armor/30 rounded-bos-sm shadow-none'],
41
+ ['precision-bracket', 'relative before:content-[""] before:absolute before:-top-1 before:-left-1 before:w-2 before:h-2 before:border-t-1 before:border-l-1 before:border-bos-pink after:content-[""] after:absolute after:-bottom-1 after:-right-1 after:w-2 after:h-2 after:border-b-1 after:border-r-1 after:border-bos-pink'],
42
+ ['infra-grid', 'relative before:content-[""] before:absolute before:inset-0 before:opacity-0 before:pointer-events-none before:[background-image:radial-gradient(#f8fafc_1px,transparent_1px)] before:[background-size:10px_10px] focus-within:before:opacity-10 before:transition-opacity'],
43
+ ['synapse-line', 'h-1 bg-white/5 relative overflow-hidden after:content-[""] after:absolute after:inset-0 after:bg-gradient-to-r after:from-transparent after:via-bos-pink after:to-transparent after:animate-pulse'],
44
+ ['bos-input-base', 'bos-surface infra-grid px-4 py-3 font-mono text-sm bg-transparent outline-none focus:precision-bracket transition-all placeholder:opacity-20'],
45
+ ];
package/dist/index.js CHANGED
@@ -1,119 +1,58 @@
1
- import { definePreset, presetUno, presetWebFonts } from 'unocss';
1
+ import { definePreset } from 'unocss';
2
+ import { coreTheme, coreShortcuts, corePresets } from './core';
3
+ import { erpbsgShortcuts, erpbsgPreflights, erpbsgTheme } from './protocols/erpbsg';
4
+ import { dammgoShortcuts } from './protocols/dammgo';
5
+ import { venaShortcuts, venaRules } from './protocols/vena';
6
+ import { labShortcuts, labTheme } from './protocols/lab';
2
7
  export const presetVena = definePreset((options = {}) => {
3
8
  const protocol = options.protocol || 'erpbsg';
4
- // --- 1. THEME DEFINITION (DNA) ---
9
+ // --- 1. THEME ASSEMBLY ---
10
+ const protocolThemes = {
11
+ erpbsg: erpbsgTheme,
12
+ 'kode-reboot': labTheme,
13
+ };
5
14
  const theme = {
6
- colors: {
7
- bos: {
8
- slate: '#020617',
9
- pink: '#E91E63',
10
- indigo: '#818cf8',
11
- white: '#f8fafc',
12
- gray: '#94a3b8',
13
- cobalt: '#00d4ff',
14
- void: '#0d1117',
15
- surface: '#161b22',
16
- armor: '#30363d',
17
- success: '#10b981',
18
- warning: '#f59e0b',
19
- error: '#ef4444',
20
- },
21
- matrix: {
22
- green: '#00FF41',
23
- dark: '#0D0208',
24
- }
25
- },
26
- borderRadius: {
27
- 'bos-sm': protocol === 'kode-reboot' ? '0px' : '2px',
28
- 'bos-md': protocol === 'kode-reboot' ? '0px' : '4px',
29
- 'bos-lg': protocol === 'kode-reboot' ? '0px' : '6px',
30
- }
15
+ ...coreTheme,
16
+ ...(protocolThemes[protocol] || {})
31
17
  };
32
- // --- 2. SIGNATURE SHORTCUTS (SHARED CORE) ---
33
- const coreShortcuts = [
34
- ['bos-surface', 'bg-bos-surface/40 backdrop-blur-md border border-bos-armor/30 rounded-bos-sm shadow-none'],
35
- ['precision-bracket', 'relative before:content-[""] before:absolute before:-top-1 before:-left-1 before:w-2 before:h-2 before:border-t-1 before:border-l-1 before:border-bos-pink after:content-[""] after:absolute after:-bottom-1 after:-right-1 after:w-2 after:h-2 after:border-b-1 after:border-r-1 after:border-bos-pink'],
36
- ['infra-grid', 'relative before:content-[""] before:absolute before:inset-0 before:opacity-0 before:pointer-events-none before:[background-image:radial-gradient(#f8fafc_1px,transparent_1px)] before:[background-size:10px_10px] focus-within:before:opacity-10 before:transition-opacity'],
37
- ['synapse-line', 'h-1 bg-white/5 relative overflow-hidden after:content-[""] after:absolute after:inset-0 after:bg-gradient-to-r after:from-transparent after:via-bos-pink after:to-transparent after:animate-pulse'],
38
- ['bos-input-base', 'bos-surface infra-grid px-4 py-3 font-mono text-sm bg-transparent outline-none focus:precision-bracket transition-all placeholder:opacity-20'],
39
- ];
40
- // --- 3. PROTOCOL SPECIFIC SHORTCUTS ---
18
+ // --- 2. SHORTCUT ASSEMBLY ---
41
19
  const protocolShortcuts = {
42
- erpbsg: [
43
- ['erpbsg-card', 'bos-surface p-6 hover:border-bos-pink/30 transition-all duration-500'],
44
- ['erpbsg-input', 'w-full bg-bos-white border border-white/10 rounded-bos-sm px-6 py-4 text-bos-slate font-bold placeholder:text-bos-slate/30 focus:outline-none focus:ring-4 focus:ring-bos-pink/10 transition-all z-10 relative'],
45
- ['erpbsg-button', 'px-10 py-5 rounded-bos-sm bg-bos-pink text-bos-white font-brand font-900 uppercase tracking-[0.3em] text-[10px] hover:bg-bos-white hover:text-bos-pink transition-all duration-500 shadow-2xl relative overflow-hidden'],
46
- ['erpbsg-gradient-text', 'text-transparent bg-clip-text bg-gradient-to-r from-bos-pink to-bos-indigo'],
47
- ['erpbsg-input-compact', 'px-4 py-2 text-xs'],
48
- ['erpbsg-button-compact', 'px-6 py-3 text-[9px]'],
49
- // erpbsg Identity & Navigation
50
- ['erpbsg-button-manual', 'w-full p-1 border-b border-white/[0.03] hover:border-bos-pink/30 transition-all duration-500 bg-transparent'],
51
- ['erpbsg-button-manual-content', 'flex items-center justify-between py-4 px-2'],
52
- ['erpbsg-button-manual-label', 'font-brand font-black text-[10px] text-bos-gray/40 uppercase tracking-widest group-hover:text-bos-white transition-colors'],
53
- ['erpbsg-button-manual-sub', 'font-ui text-[9px] text-bos-gray/20 uppercase tracking-wider group-hover:text-bos-gray/60 transition-colors'],
54
- ['erpbsg-button-manual-icon', 'w-8 h-8 rounded-full border border-white/[0.03] flex items-center justify-center text-bos-gray/20 group-hover:border-bos-pink/30 group-hover:bg-bos-pink/5 group-hover:text-bos-pink transition-all'],
55
- ['erpbsg-button-back', 'mb-12 flex items-center gap-3 text-bos-gray/40 hover:text-bos-white transition-all bg-transparent border-none p-0 outline-none'],
56
- ['erpbsg-button-back-icon', 'w-6 h-6 rounded-full border border-white/[0.03] flex items-center justify-center text-bos-gray/20 group-hover:border-bos-pink/30 group-hover:text-bos-pink transition-all'],
57
- ['erpbsg-button-back-text', 'text-[10px] font-brand font-black uppercase tracking-[0.3em]'],
58
- ],
59
- dammgo: [
60
- ['dammgo-hero', 'font-brand font-900 text-8xl md:text-[12rem] tracking-tighter uppercase leading-[0.8]'],
61
- ],
62
- vena: [
63
- ['vena-monitor', 'bg-black border-[0.5px] border-bos-cobalt/20 p-4 font-mono text-[11px] text-bos-cobalt/80'],
64
- ['vena-pulse-line', 'h-[1px] bg-bos-cobalt/10 relative overflow-hidden after:content-[""] after:absolute after:inset-0 after:bg-bos-cobalt after:animate-scan'],
65
- ],
66
- 'kode-reboot': [
67
- ['kode-terminal', 'bg-matrix-dark border border-matrix-green/30 p-8 font-mono text-matrix-green shadow-[0_0_20px_rgba(0,255,65,0.1)]'],
68
- ['kode-button', 'px-6 py-3 border border-matrix-green text-matrix-green font-mono uppercase tracking-widest hover:bg-matrix-green hover:text-matrix-dark transition-all'],
69
- ]
20
+ erpbsg: erpbsgShortcuts,
21
+ dammgo: dammgoShortcuts,
22
+ vena: venaShortcuts,
23
+ 'kode-reboot': labShortcuts,
70
24
  };
71
- // --- 4. TYPOGRAPHY (ALTITUDE-AWARE) ---
72
25
  const typographyShortcuts = [
73
- // Triple Vertical Shielding Protocol
26
+ // Triple Vertical Shielding Protocol (Altitude-Aware)
74
27
  ['bos-title-hero', 'font-brand font-900 text-5xl lg:text-6xl font-black tracking-tighter uppercase leading-[0.9] text-bos-white [@media(min-height:600px)]:text-6xl [@media(min-height:600px)]:xl:text-7xl [@media(min-height:850px)]:text-8xl [@media(min-height:1000px)]:text-[9.5rem]'],
75
28
  ['bos-title-terminal', 'font-brand font-900 text-4xl md:text-6xl tracking-tighter uppercase leading-none text-bos-white'],
76
29
  ['bos-title-section', 'font-brand font-900 text-[10px] text-bos-gray uppercase tracking-[0.4em] opacity-40'],
77
30
  ];
78
- // --- 5. PREFLIGHTS (INFRASTRUCTURE RESETS) ---
31
+ // --- 3. RULE ASSEMBLY ---
32
+ const protocolRules = {
33
+ vena: venaRules,
34
+ };
35
+ // --- 4. PREFLIGHT INJECTION ---
79
36
  const preflights = [];
80
37
  if (protocol === 'erpbsg') {
81
38
  preflights.push({
82
- getCSS: () => `
83
- html, body {
84
- height: 100%;
85
- margin: 0;
86
- padding: 0;
87
- overflow: hidden;
88
- background-color: #020617;
89
- }
90
- #root { height: 100%; }
91
- `
39
+ getCSS: () => erpbsgPreflights
92
40
  });
93
41
  }
42
+ // --- 5. FINAL FACTORY OUTPUT ---
94
43
  return {
95
44
  name: '@dammgo/vena-visual-engine',
96
45
  theme,
97
- presets: [
98
- presetUno(),
99
- presetWebFonts({
100
- provider: 'google',
101
- fonts: {
102
- brand: 'Montserrat:400,700,900',
103
- ui: 'Inter:400,500,600,700',
104
- mono: 'JetBrains Mono:400,700',
105
- },
106
- }),
107
- ],
46
+ presets: corePresets,
108
47
  shortcuts: [
109
48
  ...coreShortcuts,
110
49
  ...(protocolShortcuts[protocol] || []),
111
50
  ...typographyShortcuts,
112
51
  ],
113
- preflights,
114
52
  rules: [
115
- ['animate-scan', { animation: 'scan 2s linear infinite' }],
53
+ ...(protocolRules[protocol] || []),
116
54
  ],
55
+ preflights,
117
56
  };
118
57
  });
119
58
  export default presetVena;
@@ -0,0 +1 @@
1
+ export declare const dammgoShortcuts: string[][];
@@ -0,0 +1,3 @@
1
+ export const dammgoShortcuts = [
2
+ ['dammgo-hero', 'font-brand font-900 text-8xl md:text-[12rem] tracking-tighter uppercase leading-[0.8]'],
3
+ ];
@@ -0,0 +1,9 @@
1
+ export declare const erpbsgTheme: {
2
+ borderRadius: {
3
+ 'bos-sm': string;
4
+ 'bos-md': string;
5
+ 'bos-lg': string;
6
+ };
7
+ };
8
+ export declare const erpbsgShortcuts: string[][];
9
+ export declare const erpbsgPreflights = "\n html, body { \n height: 100%; \n margin: 0; \n padding: 0; \n overflow: hidden; \n background-color: #020617;\n }\n #root { height: 100%; }\n \n /* Shared Atmosphere for erpbsg projects */\n .erpbsg-atmosphere {\n position: relative;\n height: 100vh;\n width: 100vw;\n overflow: hidden;\n background-color: #020617;\n }\n \n .erpbsg-atmosphere::before {\n content: \"\";\n position: absolute;\n inset: 0;\n background-image: radial-gradient(rgba(248, 250, 252, 0.05) 1px, transparent 1px);\n background-size: 30px 30px;\n pointer-events: none;\n opacity: 0.4;\n }\n";
@@ -0,0 +1,59 @@
1
+ export const erpbsgTheme = {
2
+ borderRadius: {
3
+ 'bos-sm': '2px',
4
+ 'bos-md': '4px',
5
+ 'bos-lg': '6px',
6
+ }
7
+ };
8
+ export const erpbsgShortcuts = [
9
+ // --- INFRAESTRUCTURA DE TERMINAL ---
10
+ ['erpbsg-terminal-operativa', 'flex-1 flex flex-col justify-start md:justify-center items-center p-8 md:p-20 relative z-10 bg-bos-slate/20 backdrop-blur-sm h-screen overflow-y-auto'],
11
+ ['erpbsg-storytelling', 'hidden md:flex flex-1 flex-col justify-between p-20 relative z-10 border-r border-white/5 h-screen'],
12
+ // --- ELEMENTOS DE TEXTURA TÉCNICA ---
13
+ ['erpbsg-title-access', 'text-xl xs:text-2xl sm:text-4xl lg:text-5xl font-brand font-black text-bos-white tracking-[-0.05em] uppercase leading-[0.9] whitespace-nowrap'],
14
+ ['erpbsg-technical-label', 'text-[10px] font-brand font-black text-bos-pink uppercase tracking-[0.4em] block'],
15
+ ['erpbsg-technical-sub', 'font-ui text-[9px] text-bos-gray/40 uppercase tracking-[0.3em]'],
16
+ // --- COMPONENTES SOBERANOS ---
17
+ ['erpbsg-card', 'bos-surface p-6 hover:border-bos-pink/30 transition-all duration-500'],
18
+ ['erpbsg-input', 'w-full bg-bos-white border border-white/10 rounded-bos-sm px-6 py-4 text-bos-slate font-bold placeholder:text-bos-slate/30 focus:outline-none focus:ring-4 focus:ring-bos-pink/10 transition-all z-10 relative'],
19
+ ['erpbsg-button', 'px-10 py-5 rounded-bos-sm bg-bos-pink text-bos-white font-brand font-900 uppercase tracking-[0.3em] text-[10px] hover:bg-bos-white hover:text-bos-pink transition-all duration-500 shadow-2xl relative overflow-hidden'],
20
+ ['erpbsg-gradient-text', 'text-transparent bg-clip-text bg-gradient-to-r from-bos-pink to-bos-indigo'],
21
+ // --- NAVEGACIÓN Y COMANDO ---
22
+ ['erpbsg-button-manual', 'w-full p-1 border-b border-white/[0.03] hover:border-bos-pink/30 transition-all duration-500 bg-transparent'],
23
+ ['erpbsg-button-manual-content', 'flex items-center justify-between py-4 px-2'],
24
+ ['erpbsg-button-manual-label', 'font-brand font-black text-[10px] text-bos-gray/40 uppercase tracking-widest group-hover:text-bos-white transition-colors'],
25
+ ['erpbsg-button-manual-sub', 'font-ui text-[9px] text-bos-gray/20 uppercase tracking-wider group-hover:text-bos-gray/60 transition-colors'],
26
+ ['erpbsg-button-manual-icon', 'w-8 h-8 rounded-full border border-white/[0.03] flex items-center justify-center text-bos-gray/20 group-hover:border-bos-pink/30 group-hover:bg-bos-pink/5 group-hover:text-bos-pink transition-all'],
27
+ ['erpbsg-button-back', 'mb-12 flex items-center gap-3 text-bos-gray/40 hover:text-bos-white transition-all bg-transparent border-none p-0 outline-none'],
28
+ ['erpbsg-button-back-icon', 'w-6 h-6 rounded-full border border-white/[0.03] flex items-center justify-center text-bos-gray/20 group-hover:border-bos-pink/30 group-hover:text-bos-pink transition-all'],
29
+ ['erpbsg-button-back-text', 'text-[10px] font-brand font-black uppercase tracking-[0.3em]'],
30
+ ];
31
+ export const erpbsgPreflights = `
32
+ html, body {
33
+ height: 100%;
34
+ margin: 0;
35
+ padding: 0;
36
+ overflow: hidden;
37
+ background-color: #020617;
38
+ }
39
+ #root { height: 100%; }
40
+
41
+ /* Shared Atmosphere for erpbsg projects */
42
+ .erpbsg-atmosphere {
43
+ position: relative;
44
+ height: 100vh;
45
+ width: 100vw;
46
+ overflow: hidden;
47
+ background-color: #020617;
48
+ }
49
+
50
+ .erpbsg-atmosphere::before {
51
+ content: "";
52
+ position: absolute;
53
+ inset: 0;
54
+ background-image: radial-gradient(rgba(248, 250, 252, 0.05) 1px, transparent 1px);
55
+ background-size: 30px 30px;
56
+ pointer-events: none;
57
+ opacity: 0.4;
58
+ }
59
+ `;
@@ -0,0 +1,8 @@
1
+ export declare const labTheme: {
2
+ borderRadius: {
3
+ 'bos-sm': string;
4
+ 'bos-md': string;
5
+ 'bos-lg': string;
6
+ };
7
+ };
8
+ export declare const labShortcuts: string[][];
@@ -0,0 +1,11 @@
1
+ export const labTheme = {
2
+ borderRadius: {
3
+ 'bos-sm': '0px',
4
+ 'bos-md': '0px',
5
+ 'bos-lg': '0px',
6
+ }
7
+ };
8
+ export const labShortcuts = [
9
+ ['kode-terminal', 'bg-matrix-dark border border-matrix-green/30 p-8 font-mono text-matrix-green shadow-[0_0_20px_rgba(0,255,65,0.1)]'],
10
+ ['kode-button', 'px-6 py-3 border border-matrix-green text-matrix-green font-mono uppercase tracking-widest hover:bg-matrix-green hover:text-matrix-dark transition-all'],
11
+ ];
@@ -0,0 +1,2 @@
1
+ export declare const venaShortcuts: string[][];
2
+ export declare const venaRules: any[];
@@ -0,0 +1,7 @@
1
+ export const venaShortcuts = [
2
+ ['vena-monitor', 'bg-black border-[0.5px] border-bos-cobalt/20 p-4 font-mono text-[11px] text-bos-cobalt/80'],
3
+ ['vena-pulse-line', 'h-[1px] bg-bos-cobalt/10 relative overflow-hidden after:content-[""] after:absolute after:inset-0 after:bg-bos-cobalt after:animate-scan'],
4
+ ];
5
+ export const venaRules = [
6
+ ['animate-scan', { animation: 'scan 2s linear infinite' }],
7
+ ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dammgo/vena-visual-engine",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "The Sovereign Visual Engine. A rebellion against generic AI-generated interfaces, built for infrastructure longevity.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "scripts": {
38
38
  "dev": "unocss",
39
- "build": "unocss build && tsc",
39
+ "build": "tsc",
40
40
  "showroom:dev": "astro dev --root showroom",
41
41
  "showroom:build": "astro build --root showroom",
42
42
  "test": "echo \"Error: no test specified\" && exit 1"