@xpert-ai/plugin-drawio 0.1.1 → 0.2.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.
Files changed (42) hide show
  1. package/.xpertai-plugin/plugin.json +1 -1
  2. package/dist/index.js +153 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/lib/constants.js +43 -0
  5. package/dist/lib/constants.js.map +1 -0
  6. package/dist/lib/drawio-view.provider.js +435 -0
  7. package/dist/lib/drawio-view.provider.js.map +1 -0
  8. package/dist/lib/drawio.middleware.js +159 -0
  9. package/dist/lib/drawio.middleware.js.map +1 -0
  10. package/dist/lib/drawio.plugin.js +27 -0
  11. package/dist/lib/drawio.plugin.js.map +1 -0
  12. package/dist/lib/drawio.service.js +415 -0
  13. package/dist/lib/drawio.service.js.map +1 -0
  14. package/dist/lib/drawio.templates.js +78 -0
  15. package/dist/lib/drawio.templates.js.map +1 -0
  16. package/dist/lib/entities/drawio-action-log.entity.js +69 -0
  17. package/dist/lib/entities/drawio-action-log.entity.js.map +1 -0
  18. package/dist/lib/entities/drawio-drawing-version.entity.js +86 -0
  19. package/dist/lib/entities/drawio-drawing-version.entity.js.map +1 -0
  20. package/dist/lib/entities/drawio-drawing.entity.js +94 -0
  21. package/dist/lib/entities/drawio-drawing.entity.js.map +1 -0
  22. package/dist/lib/entities/index.js +4 -0
  23. package/dist/lib/entities/index.js.map +1 -0
  24. package/dist/lib/remote-components/drawio-workbench/src/i18n.js +95 -0
  25. package/dist/lib/remote-components/drawio-workbench/src/i18n.js.map +1 -0
  26. package/dist/lib/remote-components/drawio-workbench/src/react-dom-client-shim.js +4 -0
  27. package/dist/lib/remote-components/drawio-workbench/src/react-dom-client-shim.js.map +1 -0
  28. package/dist/lib/remote-components/drawio-workbench/src/react-dom-shim.js +11 -0
  29. package/dist/lib/remote-components/drawio-workbench/src/react-dom-shim.js.map +1 -0
  30. package/dist/lib/remote-components/drawio-workbench/src/react-jsx-runtime-shim.js +8 -0
  31. package/dist/lib/remote-components/drawio-workbench/src/react-jsx-runtime-shim.js.map +1 -0
  32. package/dist/lib/remote-components/drawio-workbench/src/react-shim.js +36 -0
  33. package/dist/lib/remote-components/drawio-workbench/src/react-shim.js.map +1 -0
  34. package/dist/lib/remote-components/drawio-workbench/src/runtime.js +198 -0
  35. package/dist/lib/remote-components/drawio-workbench/src/runtime.js.map +1 -0
  36. package/dist/lib/remote-components/drawio-workbench/src/styles.js +290 -0
  37. package/dist/lib/remote-components/drawio-workbench/src/styles.js.map +1 -0
  38. package/dist/lib/remote-components/drawio-workbench/src/vendor.js +4 -0
  39. package/dist/lib/remote-components/drawio-workbench/src/vendor.js.map +1 -0
  40. package/dist/lib/types.js +2 -0
  41. package/dist/lib/types.js.map +1 -0
  42. package/package.json +1 -1
@@ -0,0 +1,198 @@
1
+ const CHANNEL = 'xpertai.remote_component';
2
+ const VERSION = 1;
3
+ const pending = new Map();
4
+ let instanceId = null;
5
+ let requestSequence = 0;
6
+ let runtimeText = {
7
+ requestTimeout: 'Request timed out',
8
+ remoteRequestFailed: 'Remote request failed',
9
+ unknownError: 'Unknown error'
10
+ };
11
+ export function isObject(value) {
12
+ return Boolean(value && typeof value === 'object' && !Array.isArray(value));
13
+ }
14
+ export function post(type, body, transfer) {
15
+ if (!instanceId && type !== 'ready') {
16
+ return;
17
+ }
18
+ parent.postMessage(Object.assign({
19
+ channel: CHANNEL,
20
+ protocolVersion: VERSION,
21
+ instanceId,
22
+ type
23
+ }, body || {}), '*', transfer || []);
24
+ }
25
+ export function request(type, body, transfer) {
26
+ const requestId = String(++requestSequence);
27
+ return new Promise((resolve, reject) => {
28
+ pending.set(requestId, { resolve, reject });
29
+ try {
30
+ post(type, Object.assign({ requestId }, body || {}), transfer);
31
+ }
32
+ catch (error) {
33
+ pending.delete(requestId);
34
+ reject(error instanceof Error ? error : new Error(runtimeText.remoteRequestFailed));
35
+ return;
36
+ }
37
+ setTimeout(() => {
38
+ if (!pending.has(requestId)) {
39
+ return;
40
+ }
41
+ pending.delete(requestId);
42
+ reject(new Error(runtimeText.requestTimeout));
43
+ }, 30000);
44
+ });
45
+ }
46
+ export function requestData(query) {
47
+ return request('requestData', { query: query || {} });
48
+ }
49
+ export function executeAction(actionKey, targetId, input, parameters) {
50
+ return request('executeAction', {
51
+ actionKey,
52
+ targetId,
53
+ input,
54
+ parameters
55
+ });
56
+ }
57
+ export async function executeFileAction(actionKey, targetId, input, parameters, file) {
58
+ const buffer = await file.arrayBuffer();
59
+ return request('executeFileAction', {
60
+ actionKey,
61
+ targetId,
62
+ input,
63
+ parameters,
64
+ file: {
65
+ name: file.name,
66
+ type: file.type,
67
+ size: file.size,
68
+ buffer
69
+ }
70
+ }, [buffer]);
71
+ }
72
+ export function invokeClientCommand(commandKey, payload) {
73
+ return request('invokeClientCommand', {
74
+ commandKey,
75
+ payload
76
+ });
77
+ }
78
+ export function notify(level, message) {
79
+ post('notify', { level, message });
80
+ }
81
+ export function reportResize() {
82
+ const height = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, window.innerHeight || 0, 720);
83
+ post('resize', { height, viewportBound: true });
84
+ }
85
+ export function getResponsePayload(response) {
86
+ if (!response) {
87
+ return null;
88
+ }
89
+ if (response.payload !== undefined) {
90
+ return response.payload;
91
+ }
92
+ if (response.data !== undefined) {
93
+ return response.data;
94
+ }
95
+ if (response.result !== undefined) {
96
+ return response.result;
97
+ }
98
+ return response;
99
+ }
100
+ export function resolveMessage(message, locale) {
101
+ if (!message) {
102
+ return '';
103
+ }
104
+ if (typeof message === 'string') {
105
+ return message;
106
+ }
107
+ if (String(locale || '').toLowerCase().startsWith('en')) {
108
+ return message.en_US || message.en || message.zh_Hans || message.zh_CN || '';
109
+ }
110
+ return message.zh_Hans || message.zh_CN || message.en_US || message.en || '';
111
+ }
112
+ export function getErrorMessage(error) {
113
+ return error?.message ? error.message : String(error || runtimeText.unknownError);
114
+ }
115
+ export function setRuntimeText(nextText) {
116
+ runtimeText = {
117
+ ...runtimeText,
118
+ ...nextText
119
+ };
120
+ }
121
+ export function startRemoteBridge(setContext, handleHostEvent) {
122
+ let currentContext = null;
123
+ function applyHostTheme(theme) {
124
+ if (window.XpertRemoteUI && typeof window.XpertRemoteUI.applyTheme === 'function') {
125
+ ;
126
+ window.XpertRemoteUI.applyTheme(theme);
127
+ }
128
+ currentContext = {
129
+ ...(currentContext || {}),
130
+ theme
131
+ };
132
+ setContext(currentContext);
133
+ setTimeout(reportResize, 0);
134
+ }
135
+ window.addEventListener('message', (event) => {
136
+ const message = event.data;
137
+ if (!isObject(message) || message.channel !== CHANNEL || message.protocolVersion !== VERSION) {
138
+ return;
139
+ }
140
+ if (message.type === 'init') {
141
+ instanceId = typeof message.instanceId === 'string' ? message.instanceId : null;
142
+ currentContext = {
143
+ manifest: message.manifest,
144
+ payload: message.payload,
145
+ initialQuery: message.initialQuery || {},
146
+ locale: message.locale,
147
+ theme: message.theme
148
+ };
149
+ if (window.XpertRemoteUI && typeof window.XpertRemoteUI.applyTheme === 'function') {
150
+ ;
151
+ window.XpertRemoteUI.applyTheme(message.theme);
152
+ }
153
+ setContext(currentContext);
154
+ setTimeout(reportResize, 0);
155
+ return;
156
+ }
157
+ if (message.instanceId !== instanceId) {
158
+ return;
159
+ }
160
+ if (isThemeMessage(message)) {
161
+ applyHostTheme(extractThemeFromMessage(message));
162
+ return;
163
+ }
164
+ if (message.type === 'hostEvent') {
165
+ handleHostEvent(message.event);
166
+ return;
167
+ }
168
+ if (message.requestId && pending.has(String(message.requestId))) {
169
+ const item = pending.get(String(message.requestId));
170
+ pending.delete(String(message.requestId));
171
+ if (!item) {
172
+ return;
173
+ }
174
+ if (message.type === 'error') {
175
+ item.reject(new Error(String(message.message || runtimeText.remoteRequestFailed)));
176
+ }
177
+ else {
178
+ item.resolve(message);
179
+ }
180
+ }
181
+ });
182
+ }
183
+ function isThemeMessage(message) {
184
+ return ['theme', 'themeChanged', 'theme-change', 'hostThemeChanged', 'host-theme-changed'].includes(String(message.type || ''));
185
+ }
186
+ function extractThemeFromMessage(message) {
187
+ if (message.theme !== undefined) {
188
+ return message.theme;
189
+ }
190
+ if (isObject(message.payload) && message.payload.theme !== undefined) {
191
+ return message.payload.theme;
192
+ }
193
+ if (isObject(message.data) && message.data.theme !== undefined) {
194
+ return message.data.theme;
195
+ }
196
+ return message.payload ?? message.data ?? null;
197
+ }
198
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../../../src/lib/remote-components/drawio-workbench/src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,290 @@
1
+ export function injectStyles() {
2
+ if (document.getElementById('drawio-workbench-styles')) {
3
+ return;
4
+ }
5
+ const style = document.createElement('style');
6
+ style.id = 'drawio-workbench-styles';
7
+ style.textContent = `
8
+ html, body, #root {
9
+ width: 100%;
10
+ height: 100%;
11
+ min-height: 100%;
12
+ margin: 0;
13
+ overflow: hidden;
14
+ background: var(--xps-background);
15
+ color: var(--xps-foreground);
16
+ font-family: var(--xps-font-sans);
17
+ }
18
+ * { box-sizing: border-box; }
19
+ button, input, textarea { font: inherit; }
20
+ .dw-shell {
21
+ --dw-rail-width: var(--xps-sidebar-rail-width, 44px);
22
+ --dw-panel-header-height: 2.5rem;
23
+ --dw-left-width: minmax(var(--dw-rail-width), clamp(240px, 20vw, 300px));
24
+ --dw-right-width: var(--dw-rail-width);
25
+ --dw-right-panel-width: min(340px, calc(100vw - var(--dw-rail-width) - 96px));
26
+ width: 100%;
27
+ height: 100vh;
28
+ min-height: 720px;
29
+ display: grid;
30
+ grid-template-columns: var(--dw-left-width) minmax(0, 1fr) var(--dw-right-width);
31
+ background: var(--xps-background);
32
+ overflow: hidden;
33
+ }
34
+ .dw-shell.left-collapsed { --dw-left-width: var(--dw-rail-width); }
35
+ .dw-shell.right-collapsed { --dw-right-width: var(--dw-rail-width); }
36
+ .dw-sidebar, .dw-inspector {
37
+ min-width: 0;
38
+ height: 100vh;
39
+ min-height: 720px;
40
+ }
41
+ .dw-inspector.xps-sidebar {
42
+ position: relative;
43
+ z-index: 30;
44
+ overflow: visible;
45
+ }
46
+ .dw-inspector[aria-expanded="true"] > .xps-sidebar-header,
47
+ .dw-inspector[aria-expanded="true"] > .xps-sidebar-content {
48
+ position: absolute;
49
+ right: 0;
50
+ width: var(--dw-right-panel-width);
51
+ max-width: calc(100vw - 16px);
52
+ z-index: 31;
53
+ background: var(--xps-card);
54
+ border-left: 1px solid var(--xps-border);
55
+ border-right: 1px solid var(--xps-border);
56
+ box-shadow: -12px 0 28px color-mix(in srgb, var(--xps-foreground) 14%, transparent);
57
+ }
58
+ .dw-inspector[aria-expanded="true"] > .xps-sidebar-header {
59
+ top: 0;
60
+ min-height: var(--dw-panel-header-height);
61
+ border-bottom: 1px solid var(--xps-border);
62
+ }
63
+ .dw-inspector[aria-expanded="true"] > .xps-sidebar-content {
64
+ top: var(--dw-panel-header-height);
65
+ bottom: 0;
66
+ min-height: 0;
67
+ overflow: hidden;
68
+ }
69
+ .dw-sidebar-title-truncate {
70
+ flex: 1 1 auto;
71
+ overflow: hidden;
72
+ text-overflow: ellipsis;
73
+ white-space: nowrap;
74
+ }
75
+ .dw-sidebar-trigger-right { margin-left: auto; }
76
+ .dw-inspector-actions {
77
+ min-width: 0;
78
+ flex: 0 0 auto;
79
+ display: flex;
80
+ align-items: center;
81
+ gap: 6px;
82
+ }
83
+ .dw-inspector-actions .xps-button,
84
+ .dw-inspector-actions .xps-badge {
85
+ flex: 0 0 auto;
86
+ white-space: nowrap;
87
+ }
88
+ .dw-sidebar-controls {
89
+ padding: 8px;
90
+ display: flex;
91
+ flex-direction: column;
92
+ gap: 8px;
93
+ border-bottom: 1px solid var(--xps-border);
94
+ }
95
+ .dw-main {
96
+ min-width: 0;
97
+ height: 100vh;
98
+ min-height: 720px;
99
+ display: grid;
100
+ grid-template-rows: auto minmax(0, 1fr);
101
+ background: var(--xps-background);
102
+ }
103
+ .dw-toolbar {
104
+ display: grid;
105
+ grid-template-columns: minmax(150px, 220px) minmax(0, 1fr);
106
+ align-items: center;
107
+ gap: 8px 10px;
108
+ min-height: 48px;
109
+ padding: 8px 12px;
110
+ background: var(--xps-card);
111
+ border-bottom: 1px solid var(--xps-border);
112
+ min-width: 0;
113
+ overflow: visible;
114
+ }
115
+ .dw-toolbar-title { min-width: 0; }
116
+ .dw-toolbar-actions {
117
+ min-width: 0;
118
+ display: flex;
119
+ flex-wrap: wrap;
120
+ align-items: center;
121
+ gap: 8px;
122
+ }
123
+ .dw-toolbar-actions .xps-button,
124
+ .dw-toolbar-actions .xps-badge { flex: 0 0 auto; }
125
+ .dw-title-input { width: 100%; }
126
+ .dw-button-icon {
127
+ width: 1rem;
128
+ height: 1rem;
129
+ flex: 0 0 auto;
130
+ stroke-width: 2;
131
+ }
132
+ .dw-editor {
133
+ min-height: 0;
134
+ height: 100%;
135
+ background: var(--xps-background);
136
+ position: relative;
137
+ overflow: hidden;
138
+ }
139
+ .dw-editor iframe {
140
+ width: 100%;
141
+ height: 100%;
142
+ border: 0;
143
+ display: block;
144
+ background: #fff;
145
+ }
146
+ .dw-editor-placeholder {
147
+ position: absolute;
148
+ inset: 0;
149
+ display: flex;
150
+ align-items: center;
151
+ justify-content: center;
152
+ color: var(--xps-muted-foreground);
153
+ pointer-events: none;
154
+ background: color-mix(in srgb, var(--xps-background) 88%, transparent);
155
+ }
156
+ .dw-list {
157
+ flex: 1 1 auto;
158
+ min-height: 0;
159
+ padding: 6px;
160
+ }
161
+ .dw-item-title {
162
+ display: block;
163
+ width: 100%;
164
+ color: var(--xps-foreground);
165
+ font-weight: 650;
166
+ overflow: hidden;
167
+ text-overflow: ellipsis;
168
+ white-space: nowrap;
169
+ }
170
+ .dw-item-meta, .dw-muted {
171
+ color: var(--xps-muted-foreground);
172
+ font-size: 12px;
173
+ min-width: 0;
174
+ overflow: hidden;
175
+ text-overflow: ellipsis;
176
+ white-space: nowrap;
177
+ }
178
+ .dw-status {
179
+ margin-left: auto;
180
+ flex: 0 0 auto;
181
+ }
182
+ .dw-inspector-scroll {
183
+ min-height: 0;
184
+ height: 100%;
185
+ flex: 1 1 auto;
186
+ }
187
+ .dw-inspector-stack {
188
+ padding: 10px 12px 10px 10px;
189
+ display: flex;
190
+ flex-direction: column;
191
+ gap: 10px;
192
+ min-width: 0;
193
+ max-width: 100%;
194
+ }
195
+ .dw-section {
196
+ display: flex;
197
+ flex-direction: column;
198
+ gap: 8px;
199
+ min-width: 0;
200
+ max-width: 100%;
201
+ }
202
+ .dw-section-title {
203
+ font-size: 13px;
204
+ font-weight: 700;
205
+ color: var(--xps-foreground);
206
+ }
207
+ .dw-inline-actions {
208
+ display: flex;
209
+ flex-wrap: wrap;
210
+ gap: 8px;
211
+ }
212
+ .dw-version {
213
+ border: 1px solid var(--xps-border);
214
+ border-radius: var(--xps-radius);
215
+ background: color-mix(in srgb, var(--xps-card) 94%, var(--xps-muted) 6%);
216
+ padding: 8px;
217
+ display: grid;
218
+ grid-template-columns: minmax(0, 1fr) var(--xps-control-height);
219
+ align-items: center;
220
+ gap: 8px;
221
+ width: 100%;
222
+ min-width: 0;
223
+ overflow: hidden;
224
+ }
225
+ .dw-version > div {
226
+ min-width: 0;
227
+ overflow: hidden;
228
+ }
229
+ .dw-version > div > div {
230
+ min-width: 0;
231
+ overflow: hidden;
232
+ text-overflow: ellipsis;
233
+ white-space: nowrap;
234
+ }
235
+ .dw-version-action.xps-button {
236
+ width: var(--xps-control-height);
237
+ height: var(--xps-control-height);
238
+ padding: 0;
239
+ justify-self: end;
240
+ }
241
+ .dw-inspector .xps-input,
242
+ .dw-inspector .xps-textarea,
243
+ .dw-inspector .xps-scroll-area,
244
+ .dw-inspector .xps-scroll-area-viewport {
245
+ min-width: 0;
246
+ max-width: 100%;
247
+ }
248
+ .dw-inspector .xps-textarea {
249
+ overflow-x: hidden;
250
+ overflow-wrap: anywhere;
251
+ word-break: break-word;
252
+ }
253
+ .dw-inspector .dw-muted {
254
+ overflow: visible;
255
+ text-overflow: clip;
256
+ white-space: normal;
257
+ overflow-wrap: anywhere;
258
+ }
259
+ .dw-empty {
260
+ height: 100%;
261
+ display: flex;
262
+ align-items: center;
263
+ justify-content: center;
264
+ color: var(--xps-muted-foreground);
265
+ }
266
+ .dw-hidden-file { display: none; }
267
+ @media (max-width: 1040px) {
268
+ .dw-shell,
269
+ .dw-shell.left-collapsed,
270
+ .dw-shell.right-collapsed {
271
+ --dw-left-width: var(--dw-rail-width);
272
+ --dw-right-width: var(--dw-rail-width);
273
+ --dw-right-panel-width: min(320px, calc(100vw - var(--dw-rail-width) - 32px));
274
+ grid-template-columns: var(--dw-left-width) minmax(0, 1fr) var(--dw-right-width);
275
+ }
276
+ .dw-sidebar .xps-sidebar-content,
277
+ .dw-inspector-scroll { display: none; }
278
+ .dw-inspector[aria-expanded="true"] .dw-inspector-scroll { display: block; }
279
+ .xps-sidebar-rail { display: flex; }
280
+ }
281
+ @media (max-width: 920px) {
282
+ .dw-toolbar {
283
+ grid-template-columns: minmax(0, 1fr);
284
+ }
285
+ .dw-status { margin-left: 0; }
286
+ }
287
+ `;
288
+ document.head.appendChild(style);
289
+ }
290
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../src/lib/remote-components/drawio-workbench/src/styles.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY;IAC1B,IAAI,QAAQ,CAAC,cAAc,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACvD,OAAM;IACR,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC7C,KAAK,CAAC,EAAE,GAAG,yBAAyB,CAAA;IACpC,KAAK,CAAC,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwRnB,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const React = window.React;
2
+ export const ReactDOM = window.ReactDOM;
3
+ export const h = React.createElement;
4
+ //# sourceMappingURL=vendor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vendor.js","sourceRoot":"","sources":["../../../../../src/lib/remote-components/drawio-workbench/src/vendor.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAI,MAAc,CAAC,KAAK,CAAA;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAAI,MAAc,CAAC,QAAQ,CAAA;AAChD,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xpert-ai/plugin-drawio",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "draw.io/diagrams.net app plugin for agent-created diagrams, reviewable XML versions, Mermaid drafts, and an embedded editor workbench.",
5
5
  "author": {
6
6
  "name": "XpertAI",