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