@mandujs/core 0.54.27 → 0.54.29
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/package.json
CHANGED
|
@@ -195,7 +195,20 @@ export function ErrorOverlay({
|
|
|
195
195
|
const handleKeyDown = (e: KeyboardEvent) => {
|
|
196
196
|
if (e.key === 'Escape') {
|
|
197
197
|
onClose();
|
|
198
|
-
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
// Don't hijack single-letter shortcuts while the user is typing in an
|
|
201
|
+
// editable element, or when a modifier is held (e.g. real Ctrl/Cmd+C).
|
|
202
|
+
const target = e.target as HTMLElement | null;
|
|
203
|
+
const isEditable = !!target && (
|
|
204
|
+
target.tagName === 'INPUT' ||
|
|
205
|
+
target.tagName === 'TEXTAREA' ||
|
|
206
|
+
target.isContentEditable
|
|
207
|
+
);
|
|
208
|
+
if (isEditable || e.ctrlKey || e.metaKey || e.altKey) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
if (e.key === 'i' || e.key === 'I') {
|
|
199
212
|
onIgnore();
|
|
200
213
|
} else if (e.key === 'c' || e.key === 'C') {
|
|
201
214
|
onCopy();
|
|
@@ -142,6 +142,12 @@ export class PersistenceManager {
|
|
|
142
142
|
activeTab: 'unknown',
|
|
143
143
|
},
|
|
144
144
|
});
|
|
145
|
+
// A repeatedly-failing flush (e.g. a non-quota storage error) must not
|
|
146
|
+
// let pendingEvents grow unbounded. Keep only the most recent batch.
|
|
147
|
+
const cap = this.config.maxPersistEvents;
|
|
148
|
+
if (this.pendingEvents.length > cap) {
|
|
149
|
+
this.pendingEvents = this.pendingEvents.slice(-cap);
|
|
150
|
+
}
|
|
145
151
|
}
|
|
146
152
|
}
|
|
147
153
|
|
|
@@ -7,28 +7,31 @@
|
|
|
7
7
|
// Color Tokens
|
|
8
8
|
// ============================================================================
|
|
9
9
|
|
|
10
|
+
// Aligned with mandujs.com brand tokens (app/globals.css + styles/tokens.css):
|
|
11
|
+
// primary peach #FF8C66, secondary dark-brown #4A3222, warm-brown dark surfaces
|
|
12
|
+
// (#1F1B16/#2A2520/#3E3028), cream text, and the docs-grade semantic palette.
|
|
10
13
|
export const colors = {
|
|
11
14
|
brand: {
|
|
12
|
-
primary: '#
|
|
13
|
-
secondary: '#
|
|
14
|
-
accent: '#
|
|
15
|
+
primary: '#F5EDE0', // 만두피 크림 (mandujs cream surface)
|
|
16
|
+
secondary: '#4A3222', // 구운 다크 브라운 (mandujs --color-secondary)
|
|
17
|
+
accent: '#FF8C66', // 만두 시그니처 피치 오렌지 (mandujs --color-primary)
|
|
15
18
|
},
|
|
16
19
|
semantic: {
|
|
17
|
-
success: '#
|
|
18
|
-
warning: '#
|
|
19
|
-
error: '#
|
|
20
|
-
info: '#
|
|
20
|
+
success: '#6B9E47', // 올리브 그린 (mandujs --color-success)
|
|
21
|
+
warning: '#E8A93A', // 웜 앰버 (mandujs --color-warn)
|
|
22
|
+
error: '#C85450', // 머티드 레드-브라운 (mandujs --color-danger)
|
|
23
|
+
info: '#4A90C2', // 차분한 블루 (mandujs --color-info)
|
|
21
24
|
},
|
|
22
25
|
background: {
|
|
23
|
-
dark: '#
|
|
24
|
-
medium: '#
|
|
25
|
-
light: '#
|
|
26
|
-
overlay: 'rgba(
|
|
26
|
+
dark: '#1F1B16', // 딥 브라운 (mandujs --color-background-dark)
|
|
27
|
+
medium: '#2A2520', // 웜 서피스 (mandujs --color-surface-dark)
|
|
28
|
+
light: '#3E3028', // 웜 라이트 서피스 (mandujs --color-dark-surface)
|
|
29
|
+
overlay: 'rgba(20, 14, 8, 0.88)',
|
|
27
30
|
},
|
|
28
31
|
text: {
|
|
29
|
-
primary: '#
|
|
30
|
-
secondary: '#
|
|
31
|
-
muted: '#
|
|
32
|
+
primary: '#FFF0E6', // 웜 크림 화이트 (mandujs --color-dark-text)
|
|
33
|
+
secondary: '#C9BCAD', // 웜 베이지 그레이
|
|
34
|
+
muted: '#7A6B5D', // 웜 뮤트 브라운 (mandujs --color-dark-muted)
|
|
32
35
|
},
|
|
33
36
|
} as const;
|
|
34
37
|
|
|
@@ -38,8 +41,9 @@ export const colors = {
|
|
|
38
41
|
|
|
39
42
|
export const typography = {
|
|
40
43
|
fontFamily: {
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
// Aligned with mandujs.com (app/globals.css --font-mono / --font-sans).
|
|
45
|
+
mono: "'Consolas', 'Monaco', 'Ubuntu Mono', 'JetBrains Mono', ui-monospace, monospace",
|
|
46
|
+
sans: "'Pretendard Variable', 'Pretendard', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
43
47
|
},
|
|
44
48
|
fontSize: {
|
|
45
49
|
xs: '10px',
|
|
@@ -99,11 +103,12 @@ export const borderWidth = {
|
|
|
99
103
|
// ============================================================================
|
|
100
104
|
|
|
101
105
|
export const shadows = {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
106
|
+
// Warm-tinted shadows to match the brown-toned dark surfaces.
|
|
107
|
+
sm: '0 1px 3px rgba(20, 12, 4, 0.14)',
|
|
108
|
+
md: '0 4px 8px rgba(20, 12, 4, 0.20)',
|
|
109
|
+
lg: '0 10px 20px rgba(20, 12, 4, 0.26)',
|
|
110
|
+
xl: '0 20px 30px rgba(20, 12, 4, 0.34)',
|
|
111
|
+
overlay: '0 25px 50px rgba(20, 12, 4, 0.5)',
|
|
107
112
|
} as const;
|
|
108
113
|
|
|
109
114
|
// ============================================================================
|