vatts 2.2.6 → 2.3.0-canary.1

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 (70) hide show
  1. package/LICENSE +12 -12
  2. package/README.md +65 -65
  3. package/dist/builder.js +79 -42
  4. package/dist/frameworks/FrontCore.d.ts +34 -0
  5. package/dist/frameworks/FrontCore.js +128 -0
  6. package/dist/{vue → frameworks/builds}/vue.build.js +1 -1
  7. package/dist/frameworks/react/client.d.ts +8 -0
  8. package/dist/{react → frameworks/react}/client.js +14 -14
  9. package/dist/{react → frameworks/react/components}/Link.js +2 -2
  10. package/dist/frameworks/react/entry.client.d.ts +14 -0
  11. package/dist/frameworks/react/entry.client.js +211 -0
  12. package/dist/frameworks/react/react-elements.d.ts +10 -0
  13. package/dist/{react → frameworks/renderers}/renderer-react.d.ts +2 -2
  14. package/dist/{react → frameworks/renderers}/renderer-react.js +53 -86
  15. package/dist/{vue → frameworks/renderers}/renderer.vue.d.ts +2 -2
  16. package/dist/frameworks/renderers/renderer.vue.js +193 -0
  17. package/dist/frameworks/themes/BuildingPage.d.ts +1 -0
  18. package/dist/frameworks/themes/BuildingPage.js +312 -0
  19. package/dist/frameworks/themes/DefaultNotFound.d.ts +1 -0
  20. package/dist/frameworks/themes/DefaultNotFound.js +330 -0
  21. package/dist/frameworks/themes/ErrorModal.d.ts +1 -0
  22. package/dist/frameworks/themes/ErrorModal.js +345 -0
  23. package/dist/frameworks/themes/ServerError.d.ts +1 -0
  24. package/dist/frameworks/themes/ServerError.js +401 -0
  25. package/dist/frameworks/themes/VattsDevBadge.d.ts +1 -0
  26. package/dist/frameworks/themes/VattsDevBadge.js +232 -0
  27. package/dist/frameworks/vue/App.vue +149 -0
  28. package/dist/frameworks/vue/client.d.ts +9 -0
  29. package/dist/{vue → frameworks/vue}/client.js +13 -11
  30. package/dist/{vue → frameworks/vue/components}/Link.vue +38 -38
  31. package/dist/{vue → frameworks/vue/components}/image/Image.vue +128 -128
  32. package/dist/frameworks/vue/entry.client.js +75 -0
  33. package/dist/global/global.d.ts +179 -180
  34. package/dist/hotReload.js +77 -77
  35. package/dist/index.js +12 -1
  36. package/dist/loaders.js +15 -15
  37. package/dist/renderer.js +2 -2
  38. package/dist/renderers/common.js +3 -3
  39. package/dist/utils/core-go.js +2 -2
  40. package/dist/utils/utils.js +5 -5
  41. package/package.json +10 -26
  42. package/dist/react/BuildingPage.d.ts +0 -2
  43. package/dist/react/BuildingPage.js +0 -270
  44. package/dist/react/DefaultNotFound.d.ts +0 -2
  45. package/dist/react/DefaultNotFound.js +0 -248
  46. package/dist/react/DevIndicator.d.ts +0 -5
  47. package/dist/react/DevIndicator.js +0 -203
  48. package/dist/react/ErrorModal.d.ts +0 -20
  49. package/dist/react/ErrorModal.js +0 -266
  50. package/dist/react/client.d.ts +0 -8
  51. package/dist/react/entry.client.d.ts +0 -6
  52. package/dist/react/entry.client.js +0 -325
  53. package/dist/react/server-error.d.ts +0 -8
  54. package/dist/react/server-error.js +0 -346
  55. package/dist/vue/App.vue +0 -199
  56. package/dist/vue/BuildingPage.vue +0 -281
  57. package/dist/vue/DefaultNotFound.vue +0 -329
  58. package/dist/vue/DevIndicator.vue +0 -226
  59. package/dist/vue/ErrorModal.vue +0 -317
  60. package/dist/vue/client.d.ts +0 -9
  61. package/dist/vue/entry.client.js +0 -110
  62. package/dist/vue/renderer.vue.js +0 -387
  63. package/dist/vue/server-error.vue +0 -351
  64. /package/dist/{react → frameworks/builds}/react.build.d.ts +0 -0
  65. /package/dist/{react → frameworks/builds}/react.build.js +0 -0
  66. /package/dist/{vue → frameworks/builds}/vue.build.d.ts +0 -0
  67. /package/dist/{react → frameworks/react/components}/Link.d.ts +0 -0
  68. /package/dist/{react → frameworks/react/components}/image/Image.d.ts +0 -0
  69. /package/dist/{react → frameworks/react/components}/image/Image.js +0 -0
  70. /package/dist/{vue → frameworks/vue}/entry.client.d.ts +0 -0
@@ -1,203 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.default = DevIndicator;
37
- /*
38
- * This file is part of the Vatts.js Project.
39
- * Copyright (c) 2026 mfraz
40
- *
41
- * Licensed under the Apache License, Version 2.0 (the "License");
42
- * you may not use this file except in compliance with the License.
43
- * You may obtain a copy of the License at
44
- *
45
- * http://www.apache.org/licenses/LICENSE-2.0
46
- *
47
- * Unless required by applicable law or agreed to in writing, software
48
- * distributed under the License is distributed on an "AS IS" BASIS,
49
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
50
- * See the License for the specific language governing permissions and
51
- * limitations under the License.
52
- */
53
- const react_1 = __importStar(require("react"));
54
- const react_dom_1 = require("react-dom");
55
- function DevIndicator({ hasBuildError = false, onClickBuildError, }) {
56
- const [isVisible, setIsVisible] = (0, react_1.useState)(true);
57
- const [hotState, setHotState] = (0, react_1.useState)('idle');
58
- const [mounted, setMounted] = (0, react_1.useState)(false);
59
- (0, react_1.useEffect)(() => {
60
- setMounted(true);
61
- const handler = (ev) => {
62
- const detail = ev?.detail;
63
- if (!detail || !detail.state)
64
- return;
65
- if (detail.state === 'reloading' || detail.state === 'full-reload') {
66
- setHotState('reloading');
67
- }
68
- if (detail.state === 'idle') {
69
- setHotState('idle');
70
- }
71
- };
72
- window.addEventListener('vatts:hotreload', handler);
73
- return () => window.removeEventListener('vatts:hotreload', handler);
74
- }, []);
75
- if (!isVisible || !mounted)
76
- return null;
77
- const isReloading = hotState === 'reloading';
78
- const isError = !!hasBuildError;
79
- // Criamos o elemento via Portal para injetar no final do <body>
80
- return (0, react_dom_1.createPortal)(react_1.default.createElement(react_1.default.Fragment, null,
81
- react_1.default.createElement("style", null, `
82
- @keyframes vatts-pulse {
83
- 0% { opacity: 0.4; }
84
- 50% { opacity: 1; }
85
- 100% { opacity: 0.4; }
86
- }
87
-
88
- @keyframes vatts-spin {
89
- 0% { transform: rotate(0deg); }
90
- 100% { transform: rotate(360deg); }
91
- }
92
-
93
- .vatts-dev-badge {
94
- position: fixed;
95
- bottom: 20px;
96
- right: 20px;
97
- /* Z-index absurdo para garantir que fique acima de tudo */
98
- z-index: 2147483647;
99
-
100
- display: flex;
101
- align-items: center;
102
- gap: 12px;
103
- padding: 8px 14px;
104
- background: rgba(0, 0, 0, 0.85);
105
- backdrop-filter: blur(12px);
106
- -webkit-backdrop-filter: blur(12px);
107
-
108
- border-radius: 10px;
109
- color: #fff;
110
- font-family: 'Inter', system-ui, sans-serif;
111
- font-size: 11px;
112
- font-weight: 600;
113
- letter-spacing: 0.05em;
114
-
115
- /* Estilo Monocromático Next.js */
116
- border: 1px solid rgba(255, 255, 255, 0.1);
117
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);
118
- transition: all 0.2s ease;
119
- cursor: default;
120
- user-select: none;
121
- }
122
-
123
- .vatts-dev-badge.clickable {
124
- cursor: pointer;
125
- }
126
-
127
- .vatts-dev-badge:hover {
128
- border-color: rgba(255, 255, 255, 0.3);
129
- transform: translateY(-2px);
130
- background: rgba(10, 10, 10, 0.95);
131
- }
132
-
133
- .vatts-status-dot {
134
- width: 7px;
135
- height: 7px;
136
- background: #ffffff; /* Branco para status OK (Estilo Vercel) */
137
- border-radius: 50%;
138
- box-shadow: 0 0 8px rgba(255, 255, 255, 0.3);
139
- animation: vatts-pulse 2.5s infinite ease-in-out;
140
- }
141
-
142
- .vatts-status-dot.reloading {
143
- background: #64748b; /* Slate */
144
- box-shadow: none;
145
- }
146
-
147
- .vatts-status-dot.error {
148
- background: #ef4444; /* Mantido vermelho por semântica de erro */
149
- box-shadow: 0 0 10px #ef4444;
150
- animation: vatts-pulse 1s infinite ease-in-out;
151
- }
152
-
153
- .vatts-spinner {
154
- width: 10px;
155
- height: 10px;
156
- border-radius: 50%;
157
- border: 2px solid rgba(255,255,255,0.1);
158
- border-top-color: #ffffff;
159
- animation: vatts-spin 0.8s linear infinite;
160
- }
161
-
162
- .vatts-logo {
163
- color: #ffffff;
164
- font-weight: 800;
165
- display: flex;
166
- align-items: center;
167
- }
168
-
169
- .vatts-logo span {
170
- color: #64748b;
171
- }
172
-
173
- .vatts-error-pill {
174
- margin-left: 8px;
175
- padding: 2px 6px;
176
- border-radius: 4px;
177
- background: #ffffff;
178
- color: #000000;
179
- font-size: 9px;
180
- font-weight: 900;
181
- }
182
- `),
183
- react_1.default.createElement("div", { className: `vatts-dev-badge${isError ? ' clickable' : ''}`, onClick: () => isError && onClickBuildError?.() },
184
- isReloading ? (react_1.default.createElement("div", { className: "vatts-spinner" })) : (react_1.default.createElement("div", { className: `vatts-status-dot${isReloading ? ' reloading' : ''}${isError ? ' error' : ''}` })),
185
- react_1.default.createElement("div", { className: "vatts-logo" },
186
- "VATTS",
187
- react_1.default.createElement("span", null, ".JS"),
188
- isError && react_1.default.createElement("span", { className: "vatts-error-pill" }, "ERROR")),
189
- react_1.default.createElement("button", { onClick: (e) => {
190
- e.stopPropagation();
191
- setIsVisible(false);
192
- }, style: {
193
- background: 'none',
194
- border: 'none',
195
- color: 'rgba(255,255,255,0.2)',
196
- cursor: 'pointer',
197
- fontSize: '16px',
198
- padding: '0 0 0 4px',
199
- marginLeft: '4px',
200
- display: 'flex',
201
- alignItems: 'center'
202
- } }, "\u00D7"))), document.body);
203
- }
@@ -1,20 +0,0 @@
1
- import React from 'react';
2
- export interface VattsBuildError {
3
- message?: string;
4
- name?: string;
5
- stack?: string;
6
- frame?: string;
7
- id?: string;
8
- plugin?: string;
9
- pluginCode?: string;
10
- loc?: any;
11
- watchFiles?: any;
12
- cause?: any;
13
- ts?: number;
14
- }
15
- export declare function ErrorModal({ error, isOpen, onClose, onCopy, }: {
16
- error: VattsBuildError | null;
17
- isOpen: boolean;
18
- onClose: () => void;
19
- onCopy?: () => void;
20
- }): React.ReactPortal | null;
@@ -1,266 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.ErrorModal = ErrorModal;
37
- /*
38
- * This file is part of the Vatts.js Project.
39
- * Copyright (c) 2026 mfraz
40
- *
41
- * Licensed under the Apache License, Version 2.0 (the "License");
42
- * you may not use this file except in compliance with the License.
43
- * You may obtain a copy of the License at
44
- *
45
- * http://www.apache.org/licenses/LICENSE-2.0
46
- *
47
- * Unless required by applicable law or agreed to in writing, software
48
- * distributed under the License is distributed on an "AS IS" BASIS,
49
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
50
- * See the License for the specific language governing permissions and
51
- * limitations under the License.
52
- */
53
- const react_1 = __importStar(require("react"));
54
- const react_dom_1 = require("react-dom");
55
- // --- ANSI PARSER LOGIC (Monochrome Adjusted) ---
56
- const ANSI_COLORS = {
57
- '30': '#475569',
58
- '31': '#ef4444', // Mantido um vermelho sutil para erros no log
59
- '32': '#ffffff', // Sucesso vira Branco
60
- '33': '#94a3b8', // Warning vira Cinza
61
- '34': '#cbd5e1',
62
- '35': '#e2e8f0',
63
- '36': '#ffffff', // Accent vira Branco
64
- '37': '#ffffff',
65
- '90': '#64748b',
66
- };
67
- function AnsiText({ text }) {
68
- const parts = (0, react_1.useMemo)(() => {
69
- const regex = /\u001b\[(\d+)(?:;\d+)*m/g;
70
- const result = [];
71
- let lastIndex = 0;
72
- let match;
73
- let currentColor = null;
74
- while ((match = regex.exec(text)) !== null) {
75
- const rawText = text.slice(lastIndex, match.index);
76
- if (rawText) {
77
- result.push({ text: rawText, color: currentColor });
78
- }
79
- const code = match[1];
80
- if (code === '39' || code === '0') {
81
- currentColor = null;
82
- }
83
- else if (ANSI_COLORS[code]) {
84
- currentColor = ANSI_COLORS[code];
85
- }
86
- lastIndex = regex.lastIndex;
87
- }
88
- const remaining = text.slice(lastIndex);
89
- if (remaining) {
90
- result.push({ text: remaining, color: currentColor });
91
- }
92
- return result;
93
- }, [text]);
94
- return (react_1.default.createElement("span", null, parts.map((part, i) => (react_1.default.createElement("span", { key: i, style: { color: part.color || 'inherit' } }, part.text)))));
95
- }
96
- // --- MAIN MODAL ---
97
- function ErrorModal({ error, isOpen, onClose, onCopy, }) {
98
- const [visible, setVisible] = (0, react_1.useState)(false);
99
- const [isHoveringClose, setIsHoveringClose] = (0, react_1.useState)(false);
100
- const [isHoveringCopy, setIsHoveringCopy] = (0, react_1.useState)(false);
101
- const [mounted, setMounted] = (0, react_1.useState)(false);
102
- // Paleta Next.js
103
- const primaryColor = '#ffffff';
104
- const primaryRgb = '255, 255, 255';
105
- const borderColor = 'rgba(255, 255, 255, 0.1)';
106
- (0, react_1.useEffect)(() => {
107
- setMounted(true);
108
- return () => setMounted(false);
109
- }, []);
110
- (0, react_1.useEffect)(() => {
111
- if (isOpen) {
112
- document.body.style.overflow = 'hidden';
113
- setTimeout(() => setVisible(true), 10);
114
- }
115
- else {
116
- document.body.style.overflow = '';
117
- setVisible(false);
118
- }
119
- return () => { document.body.style.overflow = ''; };
120
- }, [isOpen]);
121
- (0, react_1.useEffect)(() => {
122
- if (!isOpen)
123
- return;
124
- const onKey = (e) => {
125
- if (e.key === 'Escape')
126
- onClose();
127
- };
128
- window.addEventListener('keydown', onKey);
129
- return () => window.removeEventListener('keydown', onKey);
130
- }, [isOpen, onClose]);
131
- if (!mounted || !isOpen || !error)
132
- return null;
133
- const rawOutput = error.message || '';
134
- const stackOutput = error.stack ? `\n\nStack Trace:\n${error.stack}` : '';
135
- // --- STYLES ---
136
- const overlayStyle = {
137
- position: 'fixed',
138
- top: 0,
139
- left: 0,
140
- width: '100vw',
141
- height: '100vh',
142
- zIndex: 2147483647,
143
- background: visible ? 'rgba(0, 0, 0, 0.95)' : 'rgba(0, 0, 0, 0)',
144
- backdropFilter: 'blur(12px)',
145
- WebkitBackdropFilter: 'blur(12px)',
146
- display: 'flex',
147
- alignItems: 'center',
148
- justifyContent: 'center',
149
- padding: 24,
150
- transition: 'all 0.3s ease',
151
- opacity: visible ? 1 : 0,
152
- boxSizing: 'border-box',
153
- };
154
- const cardStyle = {
155
- width: '100%',
156
- maxWidth: '1080px',
157
- maxHeight: '90vh',
158
- display: 'flex',
159
- flexDirection: 'column',
160
- background: '#0a0a0a',
161
- boxShadow: `0 0 0 1px ${borderColor}, 0 50px 100px -20px rgba(0, 0, 0, 1)`,
162
- borderRadius: 16,
163
- overflow: 'hidden',
164
- transform: visible ? 'scale(1) translateY(0)' : 'scale(0.98) translateY(10px)',
165
- transition: 'transform 0.4s cubic-bezier(0.16, 1, 0.3, 1)',
166
- position: 'relative',
167
- };
168
- const neonLine = {
169
- height: '1px',
170
- width: '100%',
171
- background: `linear-gradient(90deg, transparent, #334155, #ffffff, #334155, transparent)`,
172
- boxShadow: `0 0 15px rgba(255, 255, 255, 0.05)`,
173
- };
174
- const headerStyle = {
175
- padding: '16px 24px',
176
- display: 'flex',
177
- justifyContent: 'space-between',
178
- alignItems: 'center',
179
- borderBottom: '1px solid rgba(255,255,255,0.06)',
180
- background: 'rgba(255,255,255,0.01)'
181
- };
182
- const terminalContent = {
183
- padding: 24,
184
- overflow: 'auto',
185
- flex: 1,
186
- fontFamily: '"JetBrains Mono", monospace',
187
- fontSize: 13,
188
- lineHeight: 1.6,
189
- color: '#e2e8f0',
190
- whiteSpace: 'pre-wrap',
191
- wordBreak: 'break-word',
192
- };
193
- const getBtnStyle = (kind, hovering) => {
194
- const base = {
195
- padding: '8px 16px',
196
- borderRadius: 8,
197
- fontSize: 11,
198
- fontWeight: 700,
199
- cursor: 'pointer',
200
- transition: 'all 0.2s ease',
201
- textTransform: 'uppercase',
202
- letterSpacing: '0.05em',
203
- border: 'none',
204
- outline: 'none',
205
- fontFamily: 'Inter, system-ui, sans-serif'
206
- };
207
- if (kind === 'primary') {
208
- return {
209
- ...base,
210
- background: hovering ? '#ffffff' : '#f1f5f9',
211
- color: '#000000',
212
- boxShadow: hovering ? `0 0 15px rgba(255, 255, 255, 0.2)` : 'none',
213
- };
214
- }
215
- return {
216
- ...base,
217
- background: hovering ? 'rgba(255, 255, 255, 0.08)' : 'transparent',
218
- color: hovering ? '#fff' : 'rgba(255, 255, 255, 0.4)',
219
- border: '1px solid transparent',
220
- borderColor: hovering ? 'rgba(255, 255, 255, 0.1)' : 'transparent',
221
- };
222
- };
223
- const modalContent = (react_1.default.createElement("div", { style: overlayStyle, onMouseDown: onClose },
224
- react_1.default.createElement("div", { style: cardStyle, onMouseDown: (e) => e.stopPropagation() },
225
- react_1.default.createElement("div", { style: neonLine }),
226
- react_1.default.createElement("div", { style: headerStyle },
227
- react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: 12 } },
228
- react_1.default.createElement("span", { style: {
229
- fontSize: 11,
230
- fontWeight: 900,
231
- color: '#ffffff',
232
- background: '#ef4444',
233
- padding: '2px 8px',
234
- borderRadius: 4,
235
- letterSpacing: '0.05em'
236
- } }, "ERROR"),
237
- error.plugin && (react_1.default.createElement("span", { style: {
238
- fontSize: 11,
239
- color: '#64748b',
240
- background: 'rgba(255, 255, 255, 0.03)',
241
- padding: '2px 8px',
242
- borderRadius: 4,
243
- fontFamily: 'monospace',
244
- border: '1px solid rgba(255, 255, 255, 0.05)'
245
- } }, error.plugin))),
246
- react_1.default.createElement("div", { style: { display: 'flex', gap: 8 } },
247
- onCopy && (react_1.default.createElement("button", { onClick: onCopy, onMouseEnter: () => setIsHoveringCopy(true), onMouseLeave: () => setIsHoveringCopy(false), style: getBtnStyle('secondary', isHoveringCopy) }, "Copy Log")),
248
- react_1.default.createElement("button", { onClick: onClose, onMouseEnter: () => setIsHoveringClose(true), onMouseLeave: () => setIsHoveringClose(false), style: getBtnStyle('primary', isHoveringClose) }, "Close"))),
249
- react_1.default.createElement("div", { style: terminalContent },
250
- react_1.default.createElement(AnsiText, { text: rawOutput }),
251
- stackOutput && (react_1.default.createElement("div", { style: { marginTop: 24, opacity: 0.4, borderTop: '1px dashed rgba(255,255,255,0.1)', paddingTop: 16 } },
252
- react_1.default.createElement(AnsiText, { text: stackOutput })))),
253
- react_1.default.createElement("div", { style: {
254
- padding: '10px 24px',
255
- background: 'rgba(255,255,255,0.01)',
256
- borderTop: '1px solid rgba(255,255,255,0.03)',
257
- display: 'flex',
258
- justifyContent: 'space-between',
259
- fontSize: 11,
260
- color: 'rgba(255,255,255,0.3)',
261
- fontFamily: 'Inter, sans-serif'
262
- } },
263
- react_1.default.createElement("span", null, "vatts-cli"),
264
- react_1.default.createElement("span", { style: { color: '#64748b', fontWeight: 500 } }, "Watching for changes...")))));
265
- return (0, react_dom_1.createPortal)(modalContent, document.body);
266
- }
@@ -1,8 +0,0 @@
1
- export { Link } from './Link';
2
- export { RouteConfig, Metadata } from "../types";
3
- export { router } from '../client/clientRouter';
4
- export { requireDynamic } from '../client/requireDynamic';
5
- export { importServer } from '../client/rpc';
6
- export { importPhpServer } from '../client/rpcPhp';
7
- export { default as Image } from "./image/Image";
8
- export { default as VattsImage } from "./image/Image";
@@ -1,6 +0,0 @@
1
- import { Root } from 'react-dom/client';
2
- declare global {
3
- interface Window {
4
- __VATTS_ROOT__?: Root;
5
- }
6
- }