@molecule/app-ide-react 1.21.2 → 1.22.0

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,11 @@
1
+ import { type JSX } from 'react';
2
+ import type { ContextCompaction, ContextUsage } from '@molecule/app-ai-chat';
3
+ /** Merge final usage into its pre-dispatch sample without counting one request twice. */
4
+ export declare function mergeContextHistory(history: ContextUsage[], incoming: ContextUsage[]): ContextUsage[];
5
+ /** A context indicator with measured request composition and a bounded usage history. */
6
+ export declare function ContextUsageIndicator({ usage, history, compactions, }: {
7
+ usage: ContextUsage;
8
+ history?: ContextUsage[];
9
+ compactions?: ContextCompaction[];
10
+ }): JSX.Element;
11
+ //# sourceMappingURL=ContextUsageIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextUsageIndicator.d.ts","sourceRoot":"","sources":["../../src/components/ContextUsageIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAY,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAqB,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAM/F,yFAAyF;AACzF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,YAAY,EAAE,EACvB,QAAQ,EAAE,YAAY,EAAE,GACvB,YAAY,EAAE,CAiBhB;AAiBD,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,OAAY,EACZ,WAAgB,GACjB,EAAE;IACD,KAAK,EAAE,YAAY,CAAA;IACnB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAA;IACxB,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAA;CAClC,GAAG,GAAG,CAAC,OAAO,CAyOd"}
@@ -0,0 +1,101 @@
1
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { formatTokenCount } from '@molecule/app-ai-models';
4
+ import { t } from '@molecule/app-i18n';
5
+ import { getClassMap } from '@molecule/app-ui';
6
+ import { Modal } from '@molecule/app-ui-react';
7
+ /** Merge final usage into its pre-dispatch sample without counting one request twice. */
8
+ export function mergeContextHistory(history, incoming) {
9
+ const samples = new Map();
10
+ for (const usage of [...history, ...incoming]) {
11
+ if (!usage.requestId && !usage.at)
12
+ continue;
13
+ const key = usage.requestId ?? usage.at;
14
+ const previous = samples.get(key);
15
+ // A slow history response must not replace provider-reported usage with an estimate.
16
+ if (previous?.composition?.actualInputTokens != null &&
17
+ usage.composition?.actualInputTokens == null)
18
+ continue;
19
+ samples.set(key, usage);
20
+ }
21
+ const result = [...samples.values()].sort((a, b) => (a.at ?? '').localeCompare(b.at ?? ''));
22
+ // Keep the first sample so the chart's origin survives long conversations.
23
+ return result.length > 128 ? [result[0], ...result.slice(-127)] : result;
24
+ }
25
+ const categoryNames = {
26
+ system: 'System instructions',
27
+ summary: 'Previous summary',
28
+ toolDefinitions: 'Tool definitions',
29
+ serverTools: 'Provider tools',
30
+ userText: 'User messages',
31
+ assistantText: 'Assistant messages',
32
+ reasoning: 'Reasoning',
33
+ toolCalls: 'Tool arguments',
34
+ toolResults: 'Tool results',
35
+ images: 'Images',
36
+ attachments: 'Attachments',
37
+ structuralOverhead: 'Request structure',
38
+ };
39
+ /** A context indicator with measured request composition and a bounded usage history. */
40
+ export function ContextUsageIndicator({ usage, history = [], compactions = [], }) {
41
+ const cm = getClassMap();
42
+ const [open, setOpen] = useState(false);
43
+ const target = usage.backgroundCompactAtTokens ?? usage.compactAtTokens;
44
+ const limit = Math.max(1, target ?? usage.contextWindow);
45
+ const ratio = Math.max(0, usage.inputTokens / limit);
46
+ const percent = Math.round(ratio * 100);
47
+ const title = t('ide.chat.context.title', undefined, { defaultValue: 'Context usage' });
48
+ const targetLabel = target
49
+ ? t('ide.chat.context.target', undefined, { defaultValue: 'Compaction target' })
50
+ : t('ide.chat.context.window', undefined, { defaultValue: 'Context window' });
51
+ const composition = usage.composition;
52
+ const label = t('ide.chat.context.indicator', {
53
+ tokens: formatTokenCount(usage.inputTokens),
54
+ limit: formatTokenCount(limit),
55
+ target: targetLabel,
56
+ percent,
57
+ }, { defaultValue: '{{tokens}} / {{limit}} tokens · {{target}} ({{percent}}%)' });
58
+ const samples = mergeContextHistory(history, [usage]);
59
+ const maxTokens = Math.max(limit, ...samples.map((sample) => sample.inputTokens), 1);
60
+ const start = Date.parse(samples[0]?.at ?? '') || 0;
61
+ const end = Date.parse(samples.at(-1)?.at ?? '') || start;
62
+ const points = samples
63
+ .map((sample, i) => {
64
+ const x = end > start
65
+ ? 8 + 304 * ((Date.parse(sample.at ?? '') - start) / (end - start))
66
+ : 8 + 304 * (i / Math.max(1, samples.length - 1));
67
+ return `${x},${88 - (80 * sample.inputTokens) / maxTokens}`;
68
+ })
69
+ .join(' ');
70
+ return (_jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: cm.cn(cm.button({ variant: 'ghost', size: 'xs' }), cm.touchTargetCompact), style: { marginLeft: 'auto', display: 'inline-flex', gap: 4 }, "data-mol-id": "chat-context-usage", title: label, "aria-label": `${title}: ${label}`, "aria-haspopup": "dialog", onClick: () => setOpen(true), children: [_jsxs("span", { children: [percent, "%"] }), _jsxs("svg", { width: "18", height: "18", viewBox: "0 0 18 18", "aria-hidden": "true", children: [_jsx("circle", { cx: "9", cy: "9", r: "8", fill: "none", stroke: "currentColor", strokeWidth: "2", opacity: ".15" }), _jsx("circle", { cx: "9", cy: "9", r: "8", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeDasharray: `${16 * Math.PI}`, strokeDashoffset: `${16 * Math.PI * (1 - Math.min(ratio, 1))}`, transform: "rotate(-90 9 9)" })] })] }), _jsxs(Modal, { open: open, onClose: () => setOpen(false), title: title, size: "lg", children: [_jsx("p", { children: label }), target != null && (_jsx("p", { className: cm.textMuted, children: t('ide.chat.context.targetHelp', undefined, {
71
+ defaultValue: 'Compaction is scheduled around this target; progress can continue while the summary is prepared.',
72
+ }) })), composition && (_jsxs(_Fragment, { children: [_jsx("p", { children: composition.actualInputTokens != null
73
+ ? t('ide.chat.context.actual', { tokens: composition.actualInputTokens.toLocaleString() }, {
74
+ defaultValue: 'Provider-reported input: {{tokens}} tokens (including cached input).',
75
+ })
76
+ : t('ide.chat.context.pending', undefined, {
77
+ defaultValue: 'Provider usage is pending; current token counts are estimates.',
78
+ }) }), _jsx("p", { className: cm.textMuted, children: t('ide.chat.context.estimate', {
79
+ tokens: composition.estimatedTokens.toLocaleString(),
80
+ bytes: composition.totalBytes.toLocaleString(),
81
+ chars: composition.totalChars.toLocaleString(),
82
+ }, {
83
+ defaultValue: 'Known text estimate: {{tokens}} tokens. Request: {{chars}} characters / {{bytes}} bytes. Shares describe estimated tokens, not billed allocation.',
84
+ }) }), (composition.unknownTokenItems > 0 || composition.serializationFailures > 0) && (_jsx("p", { className: cm.textMuted, children: t('ide.chat.context.unknown', undefined, {
85
+ defaultValue: 'Some image, attachment, or unmeasurable content has an unknown token cost and is excluded from estimated shares.',
86
+ }) })), _jsx("div", { style: { overflowX: 'auto' }, children: _jsxs("table", { style: { width: '100%', textAlign: 'left' }, children: [_jsx("caption", { className: cm.srOnly, children: t('ide.chat.context.breakdown', undefined, {
87
+ defaultValue: 'Request composition',
88
+ }) }), _jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: t('ide.chat.context.category', undefined, { defaultValue: 'Category' }) }), _jsx("th", { children: t('ide.chat.context.tokens', undefined, { defaultValue: 'Est. tokens' }) }), _jsx("th", { children: t('ide.chat.context.share', undefined, { defaultValue: 'Share' }) }), _jsx("th", { children: t('ide.chat.context.bytes', undefined, { defaultValue: 'Bytes' }) })] }) }), _jsx("tbody", { children: composition.categories
89
+ .filter((category) => category.bytes > 0 || category.unknownItems > 0)
90
+ .map((category) => (_jsxs("tr", { children: [_jsx("th", { scope: "row", children: t(`ide.chat.context.category.${category.id}`, undefined, {
91
+ defaultValue: categoryNames[category.id],
92
+ }) }), _jsxs("td", { children: [category.estimatedTokens?.toLocaleString() ?? '—', category.unknownItems > 0 ? ' + ?' : ''] }), _jsx("td", { children: category.percent == null ? '—' : `${category.percent}%` }), _jsx("td", { children: category.bytes.toLocaleString() })] }, category.id))) })] }) })] })), samples.length > 1 && (_jsxs("figure", { style: { margin: '16px 0' }, children: [_jsx("figcaption", { children: t('ide.chat.context.history', { count: samples.length }, { defaultValue: 'Context over time · {{count}} requests' }) }), _jsxs("svg", { viewBox: "0 0 320 96", role: "img", "aria-label": t('ide.chat.context.chart', undefined, {
93
+ defaultValue: 'Input tokens over time; dashed line marks the current target',
94
+ }), style: { width: '100%', height: 120 }, children: [_jsx("line", { x1: "8", x2: "312", y1: 88 - (80 * limit) / maxTokens, y2: 88 - (80 * limit) / maxTokens, stroke: "currentColor", opacity: ".4", strokeDasharray: "4 4" }), _jsx("polyline", { points: points, fill: "none", stroke: "currentColor", strokeWidth: "2" })] }), _jsxs("div", { className: cm.textMuted, style: { display: 'flex', justifyContent: 'space-between' }, children: [_jsx("span", { children: start ? new Date(start).toLocaleTimeString() : '' }), _jsxs("span", { children: [formatTokenCount(maxTokens), ' ', t('ide.chat.context.tokenUnit', undefined, { defaultValue: 'tokens' })] }), _jsx("span", { children: end ? new Date(end).toLocaleTimeString() : '' })] })] })), compactions.length > 0 && (_jsxs("div", { children: [_jsx("p", { children: t('ide.chat.context.compactions', { count: compactions.length }, { defaultValue: 'Completed compactions: {{count}}' }) }), _jsx("ul", { children: compactions.slice(-5).map((event, index) => (_jsx("li", { children: t('ide.chat.context.compaction', {
95
+ at: new Date(event.at).toLocaleTimeString(),
96
+ before: event.beforeChars.toLocaleString(),
97
+ after: event.afterChars.toLocaleString(),
98
+ seconds: Math.round(event.elapsedMs / 1000),
99
+ }, { defaultValue: '{{at}} · {{before}} → {{after}} characters · {{seconds}}s' }) }, `${event.at}-${index}`))) })] }))] })] }));
100
+ }
101
+ //# sourceMappingURL=ContextUsageIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextUsageIndicator.js","sourceRoot":"","sources":["../../src/components/ContextUsageIndicator.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,OAAO,CAAA;AAG1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAE9C,yFAAyF;AACzF,MAAM,UAAU,mBAAmB,CACjC,OAAuB,EACvB,QAAwB;IAExB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC/C,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,SAAQ;QAC3C,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,EAAG,CAAA;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACjC,qFAAqF;QACrF,IACE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,IAAI,IAAI;YAChD,KAAK,CAAC,WAAW,EAAE,iBAAiB,IAAI,IAAI;YAE5C,SAAQ;QACV,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACzB,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAC3F,2EAA2E;IAC3E,OAAO,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AAC1E,CAAC;AAED,MAAM,aAAa,GAAsC;IACvD,MAAM,EAAE,qBAAqB;IAC7B,OAAO,EAAE,kBAAkB;IAC3B,eAAe,EAAE,kBAAkB;IACnC,WAAW,EAAE,gBAAgB;IAC7B,QAAQ,EAAE,eAAe;IACzB,aAAa,EAAE,oBAAoB;IACnC,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,gBAAgB;IAC3B,WAAW,EAAE,cAAc;IAC3B,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,kBAAkB,EAAE,mBAAmB;CACxC,CAAA;AAED,yFAAyF;AACzF,MAAM,UAAU,qBAAqB,CAAC,EACpC,KAAK,EACL,OAAO,GAAG,EAAE,EACZ,WAAW,GAAG,EAAE,GAKjB;IACC,MAAM,EAAE,GAAG,WAAW,EAAE,CAAA;IACxB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,yBAAyB,IAAI,KAAK,CAAC,eAAe,CAAA;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAA;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,CAAA;IACpD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;IACvC,MAAM,KAAK,GAAG,CAAC,CAAC,wBAAwB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,CAAA;IACvF,MAAM,WAAW,GAAG,MAAM;QACxB,CAAC,CAAC,CAAC,CAAC,yBAAyB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;QAChF,CAAC,CAAC,CAAC,CAAC,yBAAyB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAC/E,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;IACrC,MAAM,KAAK,GAAG,CAAC,CACb,4BAA4B,EAC5B;QACE,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC;QAC3C,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC;QAC9B,MAAM,EAAE,WAAW;QACnB,OAAO;KACR,EACD,EAAE,YAAY,EAAE,2DAA2D,EAAE,CAC9E,CAAA;IACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;IACpF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAA;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,CAAA;IACzD,MAAM,MAAM,GAAG,OAAO;SACnB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACjB,MAAM,CAAC,GACL,GAAG,GAAG,KAAK;YACT,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QACrD,OAAO,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,SAAS,EAAE,CAAA;IAC7D,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAA;IAEZ,OAAO,CACL,8BACE,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,EACpF,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,iBACjD,oBAAoB,EAChC,KAAK,EAAE,KAAK,gBACA,GAAG,KAAK,KAAK,KAAK,EAAE,mBAClB,QAAQ,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,aAE5B,2BAAO,OAAO,SAAS,EACvB,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,iBAAa,MAAM,aAChE,iBACE,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,CAAC,EAAC,GAAG,EACL,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,OAAO,EAAC,KAAK,GACb,EACF,iBACE,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,CAAC,EAAC,GAAG,EACL,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,eAAe,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,EAClC,gBAAgB,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAC9D,SAAS,EAAC,iBAAiB,GAC3B,IACE,IACC,EACT,MAAC,KAAK,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAC,IAAI,aACvE,sBAAI,KAAK,GAAK,EACb,MAAM,IAAI,IAAI,IAAI,CACjB,YAAG,SAAS,EAAE,EAAE,CAAC,SAAS,YACvB,CAAC,CAAC,6BAA6B,EAAE,SAAS,EAAE;4BAC3C,YAAY,EACV,kGAAkG;yBACrG,CAAC,GACA,CACL,EACA,WAAW,IAAI,CACd,8BACE,sBACG,WAAW,CAAC,iBAAiB,IAAI,IAAI;oCACpC,CAAC,CAAC,CAAC,CACC,yBAAyB,EACzB,EAAE,MAAM,EAAE,WAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAC1D;wCACE,YAAY,EACV,sEAAsE;qCACzE,CACF;oCACH,CAAC,CAAC,CAAC,CAAC,0BAA0B,EAAE,SAAS,EAAE;wCACvC,YAAY,EAAE,gEAAgE;qCAC/E,CAAC,GACJ,EACJ,YAAG,SAAS,EAAE,EAAE,CAAC,SAAS,YACvB,CAAC,CACA,2BAA2B,EAC3B;oCACE,MAAM,EAAE,WAAW,CAAC,eAAe,CAAC,cAAc,EAAE;oCACpD,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE;oCAC9C,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE;iCAC/C,EACD;oCACE,YAAY,EACV,mJAAmJ;iCACtJ,CACF,GACC,EACH,CAAC,WAAW,CAAC,iBAAiB,GAAG,CAAC,IAAI,WAAW,CAAC,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAC/E,YAAG,SAAS,EAAE,EAAE,CAAC,SAAS,YACvB,CAAC,CAAC,0BAA0B,EAAE,SAAS,EAAE;oCACxC,YAAY,EACV,kHAAkH;iCACrH,CAAC,GACA,CACL,EACD,cAAK,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,YAC/B,iBAAO,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAChD,kBAAS,SAAS,EAAE,EAAE,CAAC,MAAM,YAC1B,CAAC,CAAC,4BAA4B,EAAE,SAAS,EAAE;gDAC1C,YAAY,EAAE,qBAAqB;6CACpC,CAAC,GACM,EACV,0BACE,yBACE,uBACG,CAAC,CAAC,2BAA2B,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,GACrE,EACL,uBACG,CAAC,CAAC,yBAAyB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,GACtE,EACL,uBAAK,CAAC,CAAC,wBAAwB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,GAAM,EAC5E,uBAAK,CAAC,CAAC,wBAAwB,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,GAAM,IACzE,GACC,EACR,0BACG,WAAW,CAAC,UAAU;iDACpB,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC;iDACrE,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjB,yBACE,aAAI,KAAK,EAAC,KAAK,YACZ,CAAC,CAAC,6BAA6B,QAAQ,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE;4DACxD,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;yDACzC,CAAC,GACC,EACL,yBACG,QAAQ,CAAC,eAAe,EAAE,cAAc,EAAE,IAAI,GAAG,EACjD,QAAQ,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IACrC,EACL,uBAAK,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,GAAG,GAAM,EAClE,uBAAK,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,GAAM,KAXnC,QAAQ,CAAC,EAAE,CAYf,CACN,CAAC,GACE,IACF,GACJ,IACL,CACJ,EACA,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,kBAAQ,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,aACjC,+BACG,CAAC,CACA,0BAA0B,EAC1B,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,EACzB,EAAE,YAAY,EAAE,wCAAwC,EAAE,CAC3D,GACU,EACb,eACE,OAAO,EAAC,YAAY,EACpB,IAAI,EAAC,KAAK,gBACE,CAAC,CAAC,wBAAwB,EAAE,SAAS,EAAE;oCACjD,YAAY,EAAE,8DAA8D;iCAC7E,CAAC,EACF,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,aAErC,eACE,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,KAAK,EACR,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,SAAS,EACjC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,SAAS,EACjC,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,IAAI,EACZ,eAAe,EAAC,KAAK,GACrB,EACF,mBAAU,MAAM,EAAE,MAAM,EAAE,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,GAAG,IAC1E,EACN,eACE,SAAS,EAAE,EAAE,CAAC,SAAS,EACvB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,aAE3D,yBAAO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,GAAQ,EAChE,2BACG,gBAAgB,CAAC,SAAS,CAAC,EAAE,GAAG,EAChC,CAAC,CAAC,4BAA4B,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,IAClE,EACP,yBAAO,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,GAAQ,IACxD,IACC,CACV,EACA,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CACzB,0BACE,sBACG,CAAC,CACA,8BAA8B,EAC9B,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,EAC7B,EAAE,YAAY,EAAE,kCAAkC,EAAE,CACrD,GACC,EACJ,uBACG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3C,uBACG,CAAC,CACA,6BAA6B,EAC7B;wCACE,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,kBAAkB,EAAE;wCAC3C,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE;wCAC1C,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,EAAE;wCACxC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;qCAC5C,EACD,EAAE,YAAY,EAAE,2DAA2D,EAAE,CAC9E,IAVM,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,EAAE,CAW1B,CACN,CAAC,GACC,IACD,CACP,IACK,IACP,CACJ,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@molecule/app-ide-react",
3
- "version": "1.21.2",
3
+ "version": "1.22.0",
4
4
  "description": "React IDE components for molecule.dev workspace",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -62,12 +62,12 @@
62
62
  "@molecule/app-i18n": "1.0.3",
63
63
  "@molecule/app-icons": "1.0.2",
64
64
  "@molecule/app-live-preview": "1.0.2",
65
- "@molecule/app-locales-ide": "1.10.9",
65
+ "@molecule/app-locales-ide": "1.10.10",
66
66
  "@molecule/app-logger": "1.0.2",
67
- "@molecule/app-react": "1.6.5",
67
+ "@molecule/app-react": "1.7.0",
68
68
  "@molecule/app-storage": "1.0.2",
69
- "@molecule/app-ui": "1.3.6",
70
- "@molecule/app-ui-react": "1.3.4",
69
+ "@molecule/app-ui": "1.3.7",
70
+ "@molecule/app-ui-react": "1.3.5",
71
71
  "@molecule/app-ui-tailwind": "1.2.6",
72
72
  "@testing-library/react": "16.3.2",
73
73
  "@types/node": "26.1.2",