@ms-cloudpack/overlay 0.2.0 → 0.4.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.
package/CHANGELOG.json CHANGED
@@ -2,7 +2,37 @@
2
2
  "name": "@ms-cloudpack/overlay",
3
3
  "entries": [
4
4
  {
5
- "date": "Thu, 29 Sep 2022 17:46:14 GMT",
5
+ "date": "Wed, 05 Oct 2022 19:39:05 GMT",
6
+ "tag": "@ms-cloudpack/overlay_v0.4.0",
7
+ "version": "0.4.0",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "author": "dzearing@microsoft.com",
12
+ "package": "@ms-cloudpack/overlay",
13
+ "commit": "a5958df7dbb6455200dee17b7201273b7bb8155a",
14
+ "comment": "Including pre-baked bundle artifact in package.json using `browser-esm` condition in exports map."
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "date": "Thu, 29 Sep 2022 22:52:40 GMT",
21
+ "tag": "@ms-cloudpack/overlay_v0.3.0",
22
+ "version": "0.3.0",
23
+ "comments": {
24
+ "minor": [
25
+ {
26
+ "author": "dzearing@microsoft.com",
27
+ "package": "@ms-cloudpack/overlay",
28
+ "commit": "bfa648e140287db65fd3e5f5bb72a6a546426f16",
29
+ "comment": "Adding a browser pre-bundled entry for the overlay."
30
+ }
31
+ ]
32
+ }
33
+ },
34
+ {
35
+ "date": "Thu, 29 Sep 2022 17:46:30 GMT",
6
36
  "tag": "@ms-cloudpack/overlay_v0.2.0",
7
37
  "version": "0.2.0",
8
38
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,28 @@
1
1
  # Change Log - @ms-cloudpack/overlay
2
2
 
3
- This log was last generated on Thu, 29 Sep 2022 17:46:14 GMT and should not be manually modified.
3
+ This log was last generated on Wed, 05 Oct 2022 19:39:05 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.4.0
8
+
9
+ Wed, 05 Oct 2022 19:39:05 GMT
10
+
11
+ ### Minor changes
12
+
13
+ - Including pre-baked bundle artifact in package.json using `browser-esm` condition in exports map. (dzearing@microsoft.com)
14
+
15
+ ## 0.3.0
16
+
17
+ Thu, 29 Sep 2022 22:52:40 GMT
18
+
19
+ ### Minor changes
20
+
21
+ - Adding a browser pre-bundled entry for the overlay. (dzearing@microsoft.com)
22
+
7
23
  ## 0.2.0
8
24
 
9
- Thu, 29 Sep 2022 17:46:14 GMT
25
+ Thu, 29 Sep 2022 17:46:30 GMT
10
26
 
11
27
  ### Minor changes
12
28
 
@@ -0,0 +1,1120 @@
1
+ // src/index.tsx
2
+ import React10 from "react";
3
+ import ReactDOM from "react-dom";
4
+
5
+ // src/components/CloudpackProvider/CloudpackProvider.tsx
6
+ import React, { createContext, useState, useContext } from "react";
7
+
8
+ // src/components/CloudpackProvider/getCookies.ts
9
+ function getCookies() {
10
+ return document.cookie.split(";").map((s8) => s8.split("=")).reduce((current, nextValue) => {
11
+ const name2 = nextValue[0]?.trim();
12
+ const value3 = decodeURIComponent(nextValue[1]?.trim());
13
+ if (name2 && value3) {
14
+ current[name2] = value3;
15
+ }
16
+ return current;
17
+ }, {});
18
+ }
19
+
20
+ // src/components/CloudpackProvider/createCloudpackClient.ts
21
+ import { createDataBus } from "@ms-cloudpack/data-bus";
22
+ function createCloudpackClient() {
23
+ const cookies = getCookies();
24
+ const bus = createDataBus();
25
+ let subCounter = 0;
26
+ const subIds = {};
27
+ bus.addProvider({
28
+ path: [],
29
+ onActivate: ({ path }) => {
30
+ const id = subCounter++;
31
+ subIds[path.join("/")] = id;
32
+ sendMessage("subscribe", { path, id });
33
+ },
34
+ onDeactivate: ({ path }) => {
35
+ const pathString = path.join("/");
36
+ const id = subIds[pathString];
37
+ delete subIds[pathString];
38
+ sendMessage("unsubscribe", { path, id });
39
+ }
40
+ });
41
+ const enqueuedMessages = [];
42
+ const sessionId = cookies["cloudpack-session-id"];
43
+ const apiUrl = cookies["cloudpack-api-url"];
44
+ let socket;
45
+ function openConnection() {
46
+ if (apiUrl && sessionId) {
47
+ const newSocket = new WebSocket(apiUrl);
48
+ newSocket.onopen = () => {
49
+ console.log("socket opened");
50
+ socket = newSocket;
51
+ socket.onmessage = onMessageReceived;
52
+ socket.onclose = () => {
53
+ socket = void 0;
54
+ };
55
+ for (const message of enqueuedMessages) {
56
+ socket.send(message);
57
+ }
58
+ enqueuedMessages.length = 0;
59
+ };
60
+ }
61
+ }
62
+ function dispose() {
63
+ if (socket) {
64
+ socket.close();
65
+ socket = void 0;
66
+ }
67
+ }
68
+ function sendMessage(type, data) {
69
+ const message = JSON.stringify({ type, data });
70
+ if (socket) {
71
+ console.log(`Sent message: ${type}`, data);
72
+ socket.send(message);
73
+ } else {
74
+ enqueuedMessages.push(message);
75
+ }
76
+ }
77
+ function onMessageReceived(message) {
78
+ const response = JSON.parse(message.data);
79
+ console.log("Received message:", response);
80
+ switch (response.type) {
81
+ case "notify": {
82
+ const { path, data } = response;
83
+ bus.publish(path, data);
84
+ break;
85
+ }
86
+ case "reload": {
87
+ window.location.reload();
88
+ break;
89
+ }
90
+ }
91
+ }
92
+ function subscribe(path, callback) {
93
+ const sessionPath = [sessionId, ...path];
94
+ return bus.subscribe(sessionPath, callback);
95
+ }
96
+ function getValue(path) {
97
+ const sessionPath = [sessionId, ...path];
98
+ return bus.getData(sessionPath);
99
+ }
100
+ function openSource(options) {
101
+ sendMessage("openSource", options);
102
+ }
103
+ function open(options) {
104
+ sendMessage("open", options);
105
+ }
106
+ function restartTasks() {
107
+ sendMessage("restartTasks", {});
108
+ }
109
+ openConnection();
110
+ return {
111
+ dispose,
112
+ getValue,
113
+ open,
114
+ openSource,
115
+ subscribe,
116
+ restartTasks
117
+ };
118
+ }
119
+
120
+ // src/components/CloudpackProvider/CloudpackProvider.tsx
121
+ var CloudpackContext = createContext(null);
122
+ function CloudpackProvider({ children }) {
123
+ const [client] = useState(createCloudpackClient);
124
+ return /* @__PURE__ */ React.createElement(CloudpackContext.Provider, {
125
+ value: client
126
+ }, children);
127
+ }
128
+ var useCloudpack = () => useContext(CloudpackContext);
129
+
130
+ // src/components/StatusOverlay/StatusOverlay.tsx
131
+ import React8, { useCallback, useState as useState5, useRef as useRef3 } from "react";
132
+
133
+ // src/components/StatusBadge/StatusBadge.tsx
134
+ import React2, { useRef } from "react";
135
+
136
+ // src/hooks/useDraggable.ts
137
+ import { useEffect, useState as useState2 } from "react";
138
+ function useDraggable(containerElementRef, dragElementRef = containerElementRef) {
139
+ const [isDragging, setIsDragging] = useState2(false);
140
+ useEffect(() => {
141
+ if (containerElementRef && dragElementRef) {
142
+ const moveTarget = containerElementRef.current;
143
+ const dragTarget = dragElementRef.current;
144
+ if (moveTarget && dragTarget) {
145
+ let originalX = 0;
146
+ let originalY = 0;
147
+ let offset = { x: 0, y: 0 };
148
+ const onPointerMove = (event) => {
149
+ moveTarget.style.transform = `translate(${offset.x + event.clientX - originalX}px, ${offset.y + event.clientY - originalY}px)`;
150
+ };
151
+ const onPointerUp = (event) => {
152
+ setIsDragging(false);
153
+ offset = {
154
+ x: offset.x + event.clientX - originalX,
155
+ y: offset.y + event.clientY - originalY
156
+ };
157
+ dragTarget.releasePointerCapture(event.pointerId);
158
+ dragTarget.removeEventListener("pointerup", onPointerUp);
159
+ dragTarget.removeEventListener("pointermove", onPointerMove);
160
+ event.preventDefault();
161
+ };
162
+ const onPointerDown = (event) => {
163
+ setIsDragging(true);
164
+ originalX = event.clientX;
165
+ originalY = event.clientY;
166
+ dragTarget.setPointerCapture(event.pointerId);
167
+ dragTarget.addEventListener("pointerup", onPointerUp);
168
+ dragTarget.addEventListener("pointermove", onPointerMove);
169
+ event.preventDefault();
170
+ };
171
+ dragTarget.addEventListener("pointerdown", onPointerDown);
172
+ return () => {
173
+ dragTarget.removeEventListener("pointerdown", onPointerDown);
174
+ dragTarget.removeEventListener("pointermove", onPointerMove);
175
+ dragTarget.removeEventListener("pointerup", onPointerUp);
176
+ };
177
+ }
178
+ }
179
+ }, [containerElementRef, dragElementRef]);
180
+ return {
181
+ isDragging
182
+ };
183
+ }
184
+
185
+ // src/components/StatusBadge/StatusBadge.module.css
186
+ var compiledModule = `.mOWPxtXY-StatusBadgemodulecssfixedOverlay {
187
+ position: fixed;
188
+ pointer-events: none;
189
+ background: transparent;
190
+ top: 0;
191
+ bottom: 0;
192
+ left: 0;
193
+ right: 0;
194
+ z-index: 99999;
195
+ overflow: hidden;
196
+ }
197
+
198
+ .mOWPxtXY-StatusBadgemodulecssgripArea {
199
+ display: flex;
200
+ flex-direction: row;
201
+ gap: 2px;
202
+ height: 100%;
203
+ width: 12px;
204
+ cursor: move;
205
+ }
206
+
207
+ .mOWPxtXY-StatusBadgemodulecssgrip {
208
+ width: 2px;
209
+ height: 100%;
210
+ background: rgba(0, 0, 0, 0.2);
211
+ }
212
+
213
+ .mOWPxtXY-StatusBadgemodulecsscontentSurface {
214
+ pointer-events: auto;
215
+ display: contents;
216
+ }
217
+
218
+ .mOWPxtXY-StatusBadgemodulecssbadge {
219
+ cursor: default;
220
+ position: absolute;
221
+ bottom: 4px;
222
+ right: 4px;
223
+ font-size: 12px;
224
+ display: inline-flex;
225
+ gap: 4px;
226
+ background: #dddddd;
227
+ box-shadow: 0 0 12px -6px rgba(0, 0, 0, 0.75);
228
+ border: 1px solid #999999;
229
+ border-radius: 4px;
230
+ height: 28px;
231
+ flex-shrink: 0;
232
+ justify-content: center;
233
+ align-items: center;
234
+ box-sizing: border-box;
235
+ padding: 2px;
236
+
237
+ transition: background-color 0.2s ease-in-out;
238
+ }
239
+
240
+ .mOWPxtXY-StatusBadgemodulecssinline {
241
+ flex-shrink: 0;
242
+ position: relative;
243
+ bottom: auto;
244
+ right: auto;
245
+ top: auto;
246
+ left: auto;
247
+ box-shadow: none;
248
+ }
249
+
250
+ .mOWPxtXY-StatusBadgemodulecssbuilding {
251
+ background: #bbb;
252
+ color: #000;
253
+ }
254
+
255
+ .mOWPxtXY-StatusBadgemodulecsssuccess {
256
+ background: #7ad17a;
257
+ color: #000;
258
+ }
259
+
260
+ .mOWPxtXY-StatusBadgemodulecsswarning {
261
+ background: #e4e68b;
262
+ color: #000;
263
+ }
264
+
265
+ .mOWPxtXY-StatusBadgemodulecsserror {
266
+ background: #ffb9b9;
267
+ color: #000;
268
+ }
269
+
270
+ .mOWPxtXY-StatusBadgemodulecssbutton {
271
+ background: inherit;
272
+ border: none;
273
+ border-radius: 3px;
274
+ display: flex;
275
+ align-self: stretch;
276
+ align-items: center;
277
+ justify-content: center;
278
+ box-sizing: border-box;
279
+ padding: 0;
280
+ margin: 0;
281
+ font-weight: inherit;
282
+ font-size: inherit;
283
+ font-family: inherit;
284
+ }
285
+
286
+ .mOWPxtXY-StatusBadgemodulecssbutton:hover {
287
+ filter: invert(0.1);
288
+ }
289
+
290
+ .mOWPxtXY-StatusBadgemodulecssvalue {
291
+ font-weight: 600;
292
+ background: rgba(255, 255, 255, 0.4);
293
+ box-shadow: 2px 2px 3px -1px rgba(0, 0, 0, 0.15) inset;
294
+ padding: 2px 8px;
295
+ border-radius: 3px;
296
+ }
297
+ `;
298
+ var s = document.createElement("style");
299
+ s.setAttribute("data-sourceFile", "src/components/StatusBadge/StatusBadge.module.css");
300
+ s.appendChild(document.createTextNode(compiledModule));
301
+ document.head.appendChild(s);
302
+ var badge = "mOWPxtXY-StatusBadgemodulecssbadge";
303
+ var building = "mOWPxtXY-StatusBadgemodulecssbuilding";
304
+ var button = "mOWPxtXY-StatusBadgemodulecssbutton";
305
+ var contentSurface = "mOWPxtXY-StatusBadgemodulecsscontentSurface";
306
+ var error = "mOWPxtXY-StatusBadgemodulecsserror";
307
+ var fixedOverlay = "mOWPxtXY-StatusBadgemodulecssfixedOverlay";
308
+ var grip = "mOWPxtXY-StatusBadgemodulecssgrip";
309
+ var gripArea = "mOWPxtXY-StatusBadgemodulecssgripArea";
310
+ var inline = "mOWPxtXY-StatusBadgemodulecssinline";
311
+ var success = "mOWPxtXY-StatusBadgemodulecsssuccess";
312
+ var value = "mOWPxtXY-StatusBadgemodulecssvalue";
313
+ var warning = "mOWPxtXY-StatusBadgemodulecsswarning";
314
+ var StatusBadge_module_default = { badge, building, button, contentSurface, error, fixedOverlay, grip, gripArea, inline, success, value, warning };
315
+
316
+ // src/components/StatusBadge/StatusBadge.tsx
317
+ import { default as cx } from "classnames";
318
+
319
+ // src/components/CloudpackProvider/useStatus.ts
320
+ import { useEffect as useEffect2, useState as useState3 } from "react";
321
+ var defaultStatus = {
322
+ status: "unknown",
323
+ remainingTasks: 0,
324
+ totalTasks: 0,
325
+ totalErrors: 0,
326
+ totalWarnings: 0
327
+ };
328
+ var useStatus = () => {
329
+ const service = useCloudpack();
330
+ const [status, setStatus] = useState3(
331
+ () => service?.getValue(["status"]) || defaultStatus
332
+ );
333
+ useEffect2(() => service?.subscribe(["status"], setStatus), [service]);
334
+ return status;
335
+ };
336
+
337
+ // src/images/open-16-filled.inline.svg
338
+ var open_16_filled_inline_default = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNNC43NSAzLjVDNC4wNTk2NCAzLjUgMy41IDQuMDU5NjQgMy41IDQuNzVWMTEuMjVDMy41IDExLjk0MDQgNC4wNTk2NCAxMi41IDQuNzUgMTIuNUgxMS4yNUMxMS45NDA0IDEyLjUgMTIuNSAxMS45NDA0IDEyLjUgMTEuMjVWOS43NUMxMi41IDkuMzM1NzkgMTIuODM1OCA5IDEzLjI1IDlDMTMuNjY0MiA5IDE0IDkuMzM1NzkgMTQgOS43NVYxMS4yNUMxNCAxMi43Njg4IDEyLjc2ODggMTQgMTEuMjUgMTRINC43NUMzLjIzMTIyIDE0IDIgMTIuNzY4OCAyIDExLjI1VjQuNzVDMiAzLjIzMTIyIDMuMjMxMjIgMiA0Ljc1IDJINi4yNUM2LjY2NDIxIDIgNyAyLjMzNTc5IDcgMi43NUM3IDMuMTY0MjEgNi42NjQyMSAzLjUgNi4yNSAzLjVINC43NVpNNy45OTk3NiAyLjc1QzcuOTk5NzYgMi4zMzU3OSA4LjMzNTU0IDIgOC43NDk3NiAySDEzLjI0OThDMTMuNjY0IDIgMTMuOTk5OCAyLjMzNTc5IDEzLjk5OTggMi43NVY3LjI1QzEzLjk5OTggNy42NjQyMSAxMy42NjQgOCAxMy4yNDk4IDhDMTIuODM1NSA4IDEyLjQ5OTggNy42NjQyMSAxMi40OTk4IDcuMjVWNC41NjA5NUw5LjI4MDA4IDcuNzgwNTZDOC45ODcxOSA4LjA3MzQ1IDguNTEyMzEgOC4wNzM0NSA4LjIxOTQyIDcuNzgwNTVDNy45MjY1MyA3LjQ4NzY2IDcuOTI2NTMgNy4wMTI3OCA4LjIxOTQzIDYuNzE5ODlMMTEuNDM5NCAzLjVIOC43NDk3NkM4LjMzNTU0IDMuNSA3Ljk5OTc2IDMuMTY0MjEgNy45OTk3NiAyLjc1WiIgZmlsbD0iIzIxMjEyMSIvPgo8L3N2Zz4K";
339
+
340
+ // src/components/StatusBadge/StatusBadge.tsx
341
+ function StatusBadge({ inline: inline2, onExpand }) {
342
+ const rootElementRef = useRef(null);
343
+ const dragElementRef = useRef(null);
344
+ const status = useStatus();
345
+ useDraggable(rootElementRef, dragElementRef);
346
+ if (status.status === "unknown") {
347
+ return null;
348
+ }
349
+ const badge2 = /* @__PURE__ */ React2.createElement("div", {
350
+ ref: inline2 ? void 0 : rootElementRef,
351
+ className: getStatusClassName(status, !!inline2)
352
+ }, !inline2 && /* @__PURE__ */ React2.createElement("div", {
353
+ ref: inline2 ? void 0 : dragElementRef,
354
+ className: StatusBadge_module_default.gripArea
355
+ }, /* @__PURE__ */ React2.createElement("div", {
356
+ className: StatusBadge_module_default.grip
357
+ }), /* @__PURE__ */ React2.createElement("div", {
358
+ className: StatusBadge_module_default.grip
359
+ })), /* @__PURE__ */ React2.createElement("button", {
360
+ className: StatusBadge_module_default.button,
361
+ onClick: onExpand
362
+ }, /* @__PURE__ */ React2.createElement("div", {
363
+ className: StatusBadge_module_default.value
364
+ }, getStatusString(status))), /* @__PURE__ */ React2.createElement("div", null, getStatsString(status)), /* @__PURE__ */ React2.createElement("button", {
365
+ className: StatusBadge_module_default.button
366
+ }, /* @__PURE__ */ React2.createElement("img", {
367
+ src: open_16_filled_inline_default,
368
+ alt: ""
369
+ })));
370
+ return inline2 ? badge2 : /* @__PURE__ */ React2.createElement("div", {
371
+ className: StatusBadge_module_default.fixedOverlay
372
+ }, /* @__PURE__ */ React2.createElement("div", {
373
+ className: StatusBadge_module_default.contentSurface
374
+ }, badge2));
375
+ }
376
+ function getStatusString(status) {
377
+ if (status.status === "pending") {
378
+ return "Running";
379
+ }
380
+ if (status.totalTasks === 0) {
381
+ return "Idle";
382
+ }
383
+ return status.totalErrors === 0 ? "Success" : "Errors";
384
+ }
385
+ function getStatusClassName(status, inline2) {
386
+ return cx(StatusBadge_module_default.badge, {
387
+ [StatusBadge_module_default.inline]: inline2,
388
+ [StatusBadge_module_default.building]: status.status === "pending",
389
+ [StatusBadge_module_default.success]: status.status === "idle" && status.totalTasks > 0 && status.totalErrors === 0 && status.totalWarnings === 0,
390
+ [StatusBadge_module_default.error]: status.status === "idle" && status.totalErrors > 0,
391
+ [StatusBadge_module_default.warning]: status.status === "idle" && status.totalErrors === 0 && status.totalWarnings > 0
392
+ });
393
+ }
394
+ function getStatsString(status) {
395
+ if (status.totalTasks === 0) {
396
+ return "";
397
+ }
398
+ return [
399
+ status.remainingTasks > 0 && `${status.remainingTasks} of ${status.totalTasks} tasks pending`,
400
+ status.remainingTasks === 0 && `${status.totalTasks} tasks completed`,
401
+ status.totalErrors === 1 && `${status.totalErrors} error`,
402
+ status.totalErrors > 1 && `${status.totalErrors} errors`,
403
+ status.totalWarnings === 1 && `${status.totalWarnings} warning`,
404
+ status.totalWarnings > 1 && `${status.totalWarnings} warnings`
405
+ ].filter(Boolean).join(", ");
406
+ }
407
+
408
+ // src/components/StatusDialog/StatusDialog.tsx
409
+ import { default as React7, useRef as useRef2 } from "react";
410
+
411
+ // src/components/StatusDialog/StatusDialog.module.css
412
+ var compiledModule2 = `.LpVwawaxeg-StatusDialogmodulecssoverlay {
413
+ background: rgba(0, 0, 0, 0.1);
414
+ border: 1px solid black;
415
+ position: fixed;
416
+ top: 0;
417
+ left: 0;
418
+ right: 0;
419
+ bottom: 0;
420
+ display: flex;
421
+ align-items: center;
422
+ justify-content: center;
423
+ z-index: 999;
424
+ }
425
+
426
+ @keyframes fade-in {
427
+ 0% {
428
+ opacity: 0;
429
+ }
430
+ 100% {
431
+ opacity: 1;
432
+ }
433
+ }
434
+
435
+ .LpVwawaxeg-StatusDialogmodulecsscommands {
436
+ display: flex;
437
+ flex-direction: row;
438
+ gap: 8px;
439
+ align-items: center;
440
+ flex-shrink: 0;
441
+ height: 40px;
442
+ padding: 0 20px;
443
+ }
444
+
445
+ .LpVwawaxeg-StatusDialogmodulecssdialog {
446
+ animation: fade-in 0.1s ease-in-out;
447
+ width: 80vw;
448
+ align-self: stretch;
449
+ margin: 20px 0;
450
+ background: white;
451
+ color: #000;
452
+ box-sizing: border-box;
453
+ display: flex;
454
+ flex-direction: column;
455
+ border-top: 4px solid rgb(0, 120, 212);
456
+ border-radius: 3px;
457
+ box-shadow: rgb(0 0 0 / 22%) 0px 25.6px 57.6px 0px, rgb(0 0 0 / 18%) 0px 4.8px 14.4px 0px;
458
+ position: relative;
459
+ outline: transparent solid 3px;
460
+ }
461
+
462
+ .LpVwawaxeg-StatusDialogmodulecsstitleArea {
463
+ display: flex;
464
+ flex-direction: row;
465
+ align-items: center;
466
+ padding: 8px 8px 8px 20px;
467
+ gap: 8px;
468
+ }
469
+
470
+ .LpVwawaxeg-StatusDialogmodulecsscloseButton {
471
+ display: flex;
472
+ align-items: center;
473
+ justify-content: center;
474
+ width: 32px;
475
+ height: 32px;
476
+ margin: 0;
477
+ padding: 0;
478
+ background: transparent;
479
+ border: none;
480
+ border-radius: 4px;
481
+ }
482
+
483
+ .LpVwawaxeg-StatusDialogmodulecsscloseButton:hover {
484
+ background: rgba(0, 0, 0, 0.1);
485
+ }
486
+
487
+ .LpVwawaxeg-StatusDialogmodulecsscloseButton:active {
488
+ background: rgba(0, 0, 0, 0.2);
489
+ }
490
+
491
+ .LpVwawaxeg-StatusDialogmodulecsstitle {
492
+ flex-grow: 1;
493
+ font-size: 20px;
494
+ font-weight: 600;
495
+ color: rgb(0, 120, 212);
496
+ cursor: move;
497
+ }
498
+ `;
499
+ var s2 = document.createElement("style");
500
+ s2.setAttribute("data-sourceFile", "src/components/StatusDialog/StatusDialog.module.css");
501
+ s2.appendChild(document.createTextNode(compiledModule2));
502
+ document.head.appendChild(s2);
503
+ var closeButton = "LpVwawaxeg-StatusDialogmodulecsscloseButton";
504
+ var commands = "LpVwawaxeg-StatusDialogmodulecsscommands";
505
+ var dialog = "LpVwawaxeg-StatusDialogmodulecssdialog";
506
+ var overlay = "LpVwawaxeg-StatusDialogmodulecssoverlay";
507
+ var title = "LpVwawaxeg-StatusDialogmodulecsstitle";
508
+ var titleArea = "LpVwawaxeg-StatusDialogmodulecsstitleArea";
509
+ var StatusDialog_module_default = { closeButton, commands, dialog, overlay, title, titleArea };
510
+
511
+ // src/images/dismiss-16-filled.inline.svg
512
+ var dismiss_16_filled_inline_default = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIuMzk3MDUgMi41NTM3OUwyLjQ2OTY3IDIuNDY5NjdDMi43MzU5NCAyLjIwMzQgMy4xNTI2IDIuMTc5MiAzLjQ0NjIxIDIuMzk3MDVMMy41MzAzMyAyLjQ2OTY3TDggNi45MzlMMTIuNDY5NyAyLjQ2OTY3QzEyLjc2MjYgMi4xNzY3OCAxMy4yMzc0IDIuMTc2NzggMTMuNTMwMyAyLjQ2OTY3QzEzLjgyMzIgMi43NjI1NiAxMy44MjMyIDMuMjM3NDQgMTMuNTMwMyAzLjUzMDMzTDkuMDYxIDhMMTMuNTMwMyAxMi40Njk3QzEzLjc5NjYgMTIuNzM1OSAxMy44MjA4IDEzLjE1MjYgMTMuNjAyOSAxMy40NDYyTDEzLjUzMDMgMTMuNTMwM0MxMy4yNjQxIDEzLjc5NjYgMTIuODQ3NCAxMy44MjA4IDEyLjU1MzggMTMuNjAyOUwxMi40Njk3IDEzLjUzMDNMOCA5LjA2MUwzLjUzMDMzIDEzLjUzMDNDMy4yMzc0NCAxMy44MjMyIDIuNzYyNTYgMTMuODIzMiAyLjQ2OTY3IDEzLjUzMDNDMi4xNzY3OCAxMy4yMzc0IDIuMTc2NzggMTIuNzYyNiAyLjQ2OTY3IDEyLjQ2OTdMNi45MzkgOEwyLjQ2OTY3IDMuNTMwMzNDMi4yMDM0IDMuMjY0MDYgMi4xNzkyIDIuODQ3NCAyLjM5NzA1IDIuNTUzNzlMMi40Njk2NyAyLjQ2OTY3TDIuMzk3MDUgMi41NTM3OVoiIGZpbGw9IiMyMTIxMjEiLz4KPC9zdmc+Cg==";
513
+
514
+ // src/components/StatusDialog/TaskList.tsx
515
+ import React5 from "react";
516
+
517
+ // src/components/StatusDialog/TaskStatus.tsx
518
+ import React4 from "react";
519
+
520
+ // src/components/StatusDialog/TaskResultItem.tsx
521
+ import React3 from "react";
522
+
523
+ // src/components/StatusDialog/TaskResultItem.module.css
524
+ var compiledModule3 = `.mGnoEIJOyo-TaskResultItemmodulecssroot {
525
+ display: flex;
526
+ background: #f5f5f5;
527
+ }
528
+
529
+ .mGnoEIJOyo-TaskResultItemmodulecssstatusBar {
530
+ flex-shrink: 0;
531
+ border-radius: 4px;
532
+ width: 4px;
533
+ background: #aa0000;
534
+ box-shadow: 2px 0 4px 0 rgb(220 0 0 / 20%);
535
+ }
536
+
537
+ .mGnoEIJOyo-TaskResultItemmodulecsscontent {
538
+ padding: 8px;
539
+ display: flex;
540
+ flex-grow: 1;
541
+ overflow: hidden;
542
+ flex-direction: column;
543
+ }
544
+
545
+ .mGnoEIJOyo-TaskResultItemmodulecsstitleArea {
546
+ display: flex;
547
+ align-items: center;
548
+ flex-direction: row;
549
+ gap: 4px;
550
+ padding: 4px 0;
551
+ }
552
+
553
+ .mGnoEIJOyo-TaskResultItemmodulecssfile {
554
+ display: inline-flex;
555
+ margin: 0;
556
+ padding: 0;
557
+ border: none;
558
+ background: inherit;
559
+ font-family: inherit;
560
+ flex-grow: 1;
561
+ font-weight: 500;
562
+ font-size: 14px;
563
+ flex-shrink: 0;
564
+ text-decoration: none;
565
+ color: #000;
566
+ cursor: pointer;
567
+ }
568
+
569
+ .mGnoEIJOyo-TaskResultItemmodulecssfile:hover {
570
+ text-decoration: underline;
571
+ }
572
+
573
+ .mGnoEIJOyo-TaskResultItemmodulecssactionArea {
574
+ display: flex;
575
+ flex-direction: row;
576
+ gap: 8px;
577
+ flex-shrink: 0;
578
+ }
579
+
580
+ .mGnoEIJOyo-TaskResultItemmodulecsstext {
581
+ word-wrap: break-word;
582
+ color: #333;
583
+ }
584
+ `;
585
+ var s3 = document.createElement("style");
586
+ s3.setAttribute("data-sourceFile", "src/components/StatusDialog/TaskResultItem.module.css");
587
+ s3.appendChild(document.createTextNode(compiledModule3));
588
+ document.head.appendChild(s3);
589
+ var actionArea = "mGnoEIJOyo-TaskResultItemmodulecssactionArea";
590
+ var content = "mGnoEIJOyo-TaskResultItemmodulecsscontent";
591
+ var file = "mGnoEIJOyo-TaskResultItemmodulecssfile";
592
+ var root = "mGnoEIJOyo-TaskResultItemmodulecssroot";
593
+ var statusBar = "mGnoEIJOyo-TaskResultItemmodulecssstatusBar";
594
+ var text = "mGnoEIJOyo-TaskResultItemmodulecsstext";
595
+ var titleArea2 = "mGnoEIJOyo-TaskResultItemmodulecsstitleArea";
596
+ var TaskResultItem_module_default = { actionArea, content, file, root, statusBar, text, titleArea: titleArea2 };
597
+
598
+ // src/components/StatusDialog/TaskResultItem.tsx
599
+ function TaskResultItem({ item, projectPath, index }) {
600
+ const service = useCloudpack();
601
+ const openSource = (ev) => {
602
+ if (item.location) {
603
+ service.openSource({
604
+ rootPath: projectPath,
605
+ relativePath: item.location?.file,
606
+ line: item.location?.line,
607
+ column: item.location?.column
608
+ });
609
+ ev.preventDefault();
610
+ }
611
+ };
612
+ const filename = item.location?.file || "(path unavailable)";
613
+ const location = ["", item.location?.line, item.location?.column].filter(Boolean).join(":");
614
+ return /* @__PURE__ */ React3.createElement("div", {
615
+ className: TaskResultItem_module_default.root
616
+ }, /* @__PURE__ */ React3.createElement("div", {
617
+ className: TaskResultItem_module_default.statusBar
618
+ }), /* @__PURE__ */ React3.createElement("div", {
619
+ className: TaskResultItem_module_default.content
620
+ }, /* @__PURE__ */ React3.createElement("div", {
621
+ className: TaskResultItem_module_default.titleArea
622
+ }, /* @__PURE__ */ React3.createElement("button", {
623
+ onClick: openSource,
624
+ className: TaskResultItem_module_default.file
625
+ }, index, ". ", filename, location && ` (${location})`, ":")), /* @__PURE__ */ React3.createElement("div", {
626
+ className: TaskResultItem_module_default.text
627
+ }, item.text), /* @__PURE__ */ React3.createElement("pre", {
628
+ className: TaskResultItem_module_default.text
629
+ }, JSON.stringify(item, null, 2))));
630
+ }
631
+
632
+ // src/components/StatusDialog/TaskStatus.module.css
633
+ var compiledModule4 = `.vweafQQjU-TaskStatusmodulecssroot {
634
+ border: 1px solid #ccc;
635
+ border-radius: 3px;
636
+ box-shadow: 0 0 12px -6px rgba(0, 0, 0, 0.25);
637
+ }
638
+
639
+ .vweafQQjU-TaskStatusmodulecssheader {
640
+ display: flex;
641
+ gap: 8px;
642
+ padding: 8px 16px;
643
+ background: #f0f0f0;
644
+ align-items: center;
645
+ line-height: 1;
646
+ }
647
+
648
+ .vweafQQjU-TaskStatusmodulecssexpandButton {
649
+ background: transparent;
650
+ border: none;
651
+ border-radius: 4px;
652
+ width: 32px;
653
+ height: 32px;
654
+ }
655
+ .vweafQQjU-TaskStatusmodulecssexpandButton:hover {
656
+ background: rgba(0, 0, 0, 0.1);
657
+ }
658
+
659
+ .vweafQQjU-TaskStatusmodulecssexpandButton:active {
660
+ background: rgba(0, 0, 0, 0.2);
661
+ }
662
+
663
+ .vweafQQjU-TaskStatusmodulecssexpandIcon {
664
+ transition: transform 0.1s ease-in-out;
665
+ }
666
+
667
+ .vweafQQjU-TaskStatusmodulecsscollapsed {
668
+ transform: rotate(-90deg);
669
+ }
670
+
671
+ .vweafQQjU-TaskStatusmodulecssfarArea {
672
+ line-height: 1;
673
+ font-size: 13px;
674
+ text-align: end;
675
+ display: flex;
676
+ align-items: baseline;
677
+ flex-direction: row;
678
+ gap: 8px;
679
+ display: flex;
680
+ flex-grow: 1;
681
+ justify-content: end;
682
+ flex-direction: row;
683
+ }
684
+
685
+ .vweafQQjU-TaskStatusmodulecsstitle {
686
+ font-size: 16px;
687
+ font-weight: 500;
688
+ color: #333;
689
+ }
690
+
691
+ .vweafQQjU-TaskStatusmodulecsssubTitle {
692
+ font-size: 13px;
693
+ }
694
+
695
+ .vweafQQjU-TaskStatusmodulecsscontent {
696
+ border-top: 1px solid #ccc;
697
+ background: #fafafa;
698
+ padding: 8px 16px;
699
+ display: flex;
700
+ flex-direction: column;
701
+ gap: 8px;
702
+ }
703
+
704
+ .vweafQQjU-TaskStatusmodulecssresultItems {
705
+ display: flex;
706
+ flex-direction: column;
707
+ gap: 8px;
708
+ }
709
+
710
+ .vweafQQjU-TaskStatusmodulecsserror {
711
+ background: #ffe9e9;
712
+ }
713
+
714
+ .vweafQQjU-TaskStatusmodulecsssuccess {
715
+ background: #e9f9e9;
716
+ }
717
+
718
+ .vweafQQjU-TaskStatusmodulecsswarning {
719
+ background: #fff9e9;
720
+ }
721
+
722
+ .vweafQQjU-TaskStatusmodulecssname {
723
+ font-size: 12px;
724
+ font-weight: 600;
725
+ text-transform: uppercase;
726
+ }
727
+
728
+ .vweafQQjU-TaskStatusmodulecssvalue {
729
+ display: flex;
730
+ flex-direction: column;
731
+ font-size: 14px;
732
+ color: #333;
733
+ text-transform: capitalize;
734
+ }
735
+
736
+ .vweafQQjU-TaskStatusmodulecsslinkButton {
737
+ display: inline-flex;
738
+ align-items: flex-start;
739
+ text-align: start;
740
+ margin: 0;
741
+ padding: 0;
742
+ border: none;
743
+ background: inherit;
744
+ font-family: inherit;
745
+ flex-grow: 1;
746
+
747
+ font-size: 14px;
748
+ flex-shrink: 0;
749
+ text-decoration: none;
750
+ color: #000;
751
+ cursor: pointer;
752
+ }
753
+
754
+ .vweafQQjU-TaskStatusmodulecsslinkButton:hover {
755
+ text-decoration: underline;
756
+ }
757
+ `;
758
+ var s4 = document.createElement("style");
759
+ s4.setAttribute("data-sourceFile", "src/components/StatusDialog/TaskStatus.module.css");
760
+ s4.appendChild(document.createTextNode(compiledModule4));
761
+ document.head.appendChild(s4);
762
+ var collapsed = "vweafQQjU-TaskStatusmodulecsscollapsed";
763
+ var content2 = "vweafQQjU-TaskStatusmodulecsscontent";
764
+ var error2 = "vweafQQjU-TaskStatusmodulecsserror";
765
+ var expandButton = "vweafQQjU-TaskStatusmodulecssexpandButton";
766
+ var expandIcon = "vweafQQjU-TaskStatusmodulecssexpandIcon";
767
+ var farArea = "vweafQQjU-TaskStatusmodulecssfarArea";
768
+ var header = "vweafQQjU-TaskStatusmodulecssheader";
769
+ var linkButton = "vweafQQjU-TaskStatusmodulecsslinkButton";
770
+ var name = "vweafQQjU-TaskStatusmodulecssname";
771
+ var resultItems = "vweafQQjU-TaskStatusmodulecssresultItems";
772
+ var root2 = "vweafQQjU-TaskStatusmodulecssroot";
773
+ var subTitle = "vweafQQjU-TaskStatusmodulecsssubTitle";
774
+ var success2 = "vweafQQjU-TaskStatusmodulecsssuccess";
775
+ var title2 = "vweafQQjU-TaskStatusmodulecsstitle";
776
+ var value2 = "vweafQQjU-TaskStatusmodulecssvalue";
777
+ var warning2 = "vweafQQjU-TaskStatusmodulecsswarning";
778
+ var TaskStatus_module_default = { collapsed, content: content2, error: error2, expandButton, expandIcon, farArea, header, linkButton, name, resultItems, root: root2, subTitle, success: success2, title: title2, value: value2, warning: warning2 };
779
+
780
+ // src/components/StatusDialog/TaskStatus.tsx
781
+ import { default as cx2 } from "classnames";
782
+
783
+ // src/images/error-24.inline.svg
784
+ var error_24_inline_default = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyWk0xNS41MzAzIDguNDY5NjdMMTUuNDQ2MiA4LjM5NzA1QzE1LjE4NTIgOC4yMDM0IDE0LjgyNyA4LjIwMTAxIDE0LjU2MzYgOC4zODk4OEwxNC40Njk3IDguNDY5NjdMMTIgMTAuOTM5TDkuNTMwMzMgOC40Njk2N0w5LjQ0NjIxIDguMzk3MDVDOS4xODUyMiA4LjIwMzQgOC44MjcwMSA4LjIwMTAxIDguNTYzNjIgOC4zODk4OEw4LjQ2OTY3IDguNDY5NjdMOC4zOTcwNSA4LjU1Mzc5QzguMjAzNCA4LjgxNDc4IDguMjAxMDEgOS4xNzI5OSA4LjM4OTg4IDkuNDM2MzhMOC40Njk2NyA5LjUzMDMzTDEwLjkzOSAxMkw4LjQ2OTY3IDE0LjQ2OTdMOC4zOTcwNSAxNC41NTM4QzguMjAzNCAxNC44MTQ4IDguMjAxMDEgMTUuMTczIDguMzg5ODggMTUuNDM2NEw4LjQ2OTY3IDE1LjUzMDNMOC41NTM3OSAxNS42MDI5QzguODE0NzggMTUuNzk2NiA5LjE3Mjk5IDE1Ljc5OSA5LjQzNjM4IDE1LjYxMDFMOS41MzAzMyAxNS41MzAzTDEyIDEzLjA2MUwxNC40Njk3IDE1LjUzMDNMMTQuNTUzOCAxNS42MDI5QzE0LjgxNDggMTUuNzk2NiAxNS4xNzMgMTUuNzk5IDE1LjQzNjQgMTUuNjEwMUwxNS41MzAzIDE1LjUzMDNMMTUuNjAyOSAxNS40NDYyQzE1Ljc5NjYgMTUuMTg1MiAxNS43OTkgMTQuODI3IDE1LjYxMDEgMTQuNTYzNkwxNS41MzAzIDE0LjQ2OTdMMTMuMDYxIDEyTDE1LjUzMDMgOS41MzAzM0wxNS42MDI5IDkuNDQ2MjFDMTUuNzk2NiA5LjE4NTIyIDE1Ljc5OSA4LjgyNzAxIDE1LjYxMDEgOC41NjM2MkwxNS41MzAzIDguNDY5NjdMMTUuNDQ2MiA4LjM5NzA1TDE1LjUzMDMgOC40Njk2N1oiIGZpbGw9IiNhYTAwMDAiLz4KPC9zdmc+Cg==";
785
+
786
+ // src/images/success-24.inline.svg
787
+ var success_24_inline_default = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyIDJDMTcuNTIyOCAyIDIyIDYuNDc3MTUgMjIgMTJDMjIgMTcuNTIyOCAxNy41MjI4IDIyIDEyIDIyQzYuNDc3MTUgMjIgMiAxNy41MjI4IDIgMTJDMiA2LjQ3NzE1IDYuNDc3MTUgMiAxMiAyWk0xNS4yMTk3IDguOTY5NjdMMTAuNzUgMTMuNDM5M0w4Ljc4MDMzIDExLjQ2OTdDOC40ODc0NCAxMS4xNzY4IDguMDEyNTYgMTEuMTc2OCA3LjcxOTY3IDExLjQ2OTdDNy40MjY3OCAxMS43NjI2IDcuNDI2NzggMTIuMjM3NCA3LjcxOTY3IDEyLjUzMDNMMTAuMjE5NyAxNS4wMzAzQzEwLjUxMjYgMTUuMzIzMiAxMC45ODc0IDE1LjMyMzIgMTEuMjgwMyAxNS4wMzAzTDE2LjI4MDMgMTAuMDMwM0MxNi41NzMyIDkuNzM3NDQgMTYuNTczMiA5LjI2MjU2IDE2LjI4MDMgOC45Njk2N0MxNS45ODc0IDguNjc2NzggMTUuNTEyNiA4LjY3Njc4IDE1LjIxOTcgOC45Njk2N1oiIGZpbGw9IiMwMGFhMDAiLz4KPC9zdmc+Cg==";
788
+
789
+ // src/images/chevrondown-20.inline.svg
790
+ var chevrondown_20_inline_default = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE1Ljc5NCA3LjczMjcxQzE2LjA3OTcgOC4wMzI2MyAxNi4wNjgxIDguNTA3MzcgMTUuNzY4MiA4Ljc5MzA2TDEwLjUxNzggMTMuNzk0NEMxMC4yMjgxIDE0LjA3MDMgOS43NzI4NSAxNC4wNzAzIDkuNDgzMTggMTMuNzk0NEw0LjIzMjcxIDguNzkzMDZDMy45MzI3OSA4LjUwNzM3IDMuOTIxMjUgOC4wMzI2MyA0LjIwNjk0IDcuNzMyNzFDNC40OTI2NCA3LjQzMjc5IDQuOTY3MzcgNy40MjEyNSA1LjI2NzI5IDcuNzA2OTRMMTAuMDAwNSAxMi4yMTU1TDE0LjczMzYgNy43MDY5NEMxNS4wMzM2IDcuNDIxMjUgMTUuNTA4MyA3LjQzMjc5IDE1Ljc5NCA3LjczMjcxWiIgZmlsbD0iIzIxMjEyMSIvPgo8L3N2Zz4K";
791
+
792
+ // src/components/StatusDialog/TaskStatus.tsx
793
+ function getCompletion(task) {
794
+ if (task.status === "pending") {
795
+ return "Running";
796
+ }
797
+ return [
798
+ `Completed in ${task.durationMilliseconds}ms`,
799
+ task.errors?.length && `${task.errors.length} error${task.errors.length > 1 ? "s" : ""}`,
800
+ task.warnings?.length && `${task.warnings.length} warning${task.warnings.length > 1 ? "s" : ""}`
801
+ ].filter(Boolean).join(", ");
802
+ }
803
+ function TaskStatus({ task }) {
804
+ const [isOpen, setIsOpen] = React4.useState(void 0);
805
+ const { name: name2, warnings, errors } = task;
806
+ const cloudpack = useCloudpack();
807
+ const showContent = isOpen === true || isOpen === void 0 && task.errors?.length > 0;
808
+ const open = (rootPath) => {
809
+ cloudpack.open({
810
+ rootPath
811
+ });
812
+ };
813
+ const openPackage = () => {
814
+ cloudpack.openSource({
815
+ rootPath: task.inputPath,
816
+ relativePath: "package.json",
817
+ line: 0,
818
+ column: 0
819
+ });
820
+ };
821
+ return /* @__PURE__ */ React4.createElement("div", {
822
+ className: TaskStatus_module_default.root
823
+ }, /* @__PURE__ */ React4.createElement("div", {
824
+ className: getHeaderClassName(task)
825
+ }, /* @__PURE__ */ React4.createElement("button", {
826
+ className: TaskStatus_module_default.expandButton,
827
+ onClick: () => setIsOpen(!showContent)
828
+ }, /* @__PURE__ */ React4.createElement("img", {
829
+ className: cx2(TaskStatus_module_default.expandIcon, !showContent && TaskStatus_module_default.collapsed),
830
+ src: chevrondown_20_inline_default,
831
+ alt: ""
832
+ })), errors?.length === 0 && warnings?.length === 0 && /* @__PURE__ */ React4.createElement("img", {
833
+ className: TaskStatus_module_default.errorIcon,
834
+ src: success_24_inline_default,
835
+ alt: ""
836
+ }), errors?.length > 0 && /* @__PURE__ */ React4.createElement("img", {
837
+ className: TaskStatus_module_default.errorIcon,
838
+ src: error_24_inline_default,
839
+ alt: ""
840
+ }), /* @__PURE__ */ React4.createElement("div", {
841
+ className: TaskStatus_module_default.title
842
+ }, name2), /* @__PURE__ */ React4.createElement("div", {
843
+ className: TaskStatus_module_default.farArea
844
+ }, getCompletion(task))), showContent && /* @__PURE__ */ React4.createElement("div", {
845
+ className: TaskStatus_module_default.content
846
+ }, /* @__PURE__ */ React4.createElement("div", {
847
+ className: TaskStatus_module_default.title
848
+ }, "Details"), /* @__PURE__ */ React4.createElement("div", {
849
+ className: TaskStatus_module_default.nameValueArea
850
+ }, /* @__PURE__ */ React4.createElement("div", {
851
+ className: TaskStatus_module_default.name
852
+ }, "Input path"), /* @__PURE__ */ React4.createElement("div", {
853
+ className: TaskStatus_module_default.value
854
+ }, /* @__PURE__ */ React4.createElement("button", {
855
+ className: TaskStatus_module_default.linkButton,
856
+ onClick: () => open(task.inputPath)
857
+ }, task.inputPath), /* @__PURE__ */ React4.createElement("button", {
858
+ className: TaskStatus_module_default.linkButton,
859
+ onClick: openPackage
860
+ }, "(Package.json)"))), /* @__PURE__ */ React4.createElement("div", {
861
+ className: TaskStatus_module_default.nameValueArea
862
+ }, /* @__PURE__ */ React4.createElement("div", {
863
+ className: TaskStatus_module_default.name
864
+ }, "Output path"), /* @__PURE__ */ React4.createElement("button", {
865
+ className: TaskStatus_module_default.linkButton,
866
+ onClick: () => open(task.outputPath)
867
+ }, task.outputPath)), errors?.length > 0 && /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement("div", {
868
+ className: TaskStatus_module_default.title
869
+ }, "Errors"), /* @__PURE__ */ React4.createElement("div", {
870
+ className: TaskStatus_module_default.resultItems
871
+ }, errors.map((error3, index) => /* @__PURE__ */ React4.createElement(TaskResultItem, {
872
+ key: index,
873
+ item: error3,
874
+ projectPath: task.inputPath,
875
+ index: index + 1
876
+ })))), warnings?.length > 0 && /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement("div", {
877
+ className: TaskStatus_module_default.title
878
+ }, "Warnings"), /* @__PURE__ */ React4.createElement("div", {
879
+ className: TaskStatus_module_default.resultItems
880
+ }, warnings.map((warning3, index) => /* @__PURE__ */ React4.createElement(TaskResultItem, {
881
+ key: index,
882
+ item: warning3,
883
+ projectPath: task.inputPath,
884
+ index: index + 1
885
+ }))))));
886
+ }
887
+ function getHeaderClassName(task) {
888
+ return cx2(TaskStatus_module_default.header, {
889
+ [TaskStatus_module_default.success]: task.errors?.length === 0 && task.warnings?.length === 0,
890
+ [TaskStatus_module_default.warning]: task.errors?.length === 0 && task.warnings?.length > 0,
891
+ [TaskStatus_module_default.error]: task.errors?.length > 0
892
+ });
893
+ }
894
+
895
+ // src/components/CloudpackProvider/useStatusDetails.ts
896
+ import { useEffect as useEffect3, useState as useState4 } from "react";
897
+ var useStatusDetails = () => {
898
+ const service = useCloudpack();
899
+ const [details, setDetails] = useState4({ tasks: [] });
900
+ useEffect3(() => service?.subscribe(["status-details"], setDetails), [service]);
901
+ return details;
902
+ };
903
+
904
+ // src/components/StatusDialog/TaskList.module.css
905
+ var compiledModule5 = `.lTlVbGXBQHs-TaskListmodulecssroot {
906
+ flex-grow: 1;
907
+ overflow: auto;
908
+ border-top: 1px solid #ccc;
909
+ box-sizing: border-box;
910
+ padding: 20px;
911
+ display: flex;
912
+ flex-direction: column;
913
+ gap: 8px;
914
+ }
915
+ `;
916
+ var s5 = document.createElement("style");
917
+ s5.setAttribute("data-sourceFile", "src/components/StatusDialog/TaskList.module.css");
918
+ s5.appendChild(document.createTextNode(compiledModule5));
919
+ document.head.appendChild(s5);
920
+ var root3 = "lTlVbGXBQHs-TaskListmodulecssroot";
921
+ var TaskList_module_default = { root: root3 };
922
+
923
+ // src/components/StatusDialog/TaskList.tsx
924
+ function TaskList() {
925
+ const details = useStatusDetails();
926
+ const tasks = (details.tasks || []).sort(sortTasks);
927
+ return /* @__PURE__ */ React5.createElement("div", {
928
+ className: TaskList_module_default.root
929
+ }, tasks.map((task, index) => /* @__PURE__ */ React5.createElement(TaskStatus, {
930
+ key: index,
931
+ task
932
+ })));
933
+ }
934
+ function sortTasks(a, b) {
935
+ const aStatus = a.status === "pending" ? 1 : 0;
936
+ const bStatus = b.status === "pending" ? 1 : 0;
937
+ if (aStatus !== bStatus) {
938
+ return aStatus > bStatus ? -1 : 1;
939
+ }
940
+ const aErrors = a.errors?.length || 0;
941
+ const bErrors = b.errors?.length || 0;
942
+ if (aErrors !== bErrors) {
943
+ return aErrors > bErrors ? -1 : 1;
944
+ }
945
+ return a.name < b.name ? -1 : 1;
946
+ }
947
+
948
+ // src/components/Button/Button.tsx
949
+ import React6 from "react";
950
+
951
+ // src/components/Button/Button.module.css
952
+ var compiledModule6 = `.CCnBgacfaMc-ButtonmodulecssstandardButton {
953
+ outline: transparent;
954
+ position: relative;
955
+ font-family: inherit;
956
+ font-size: 14px;
957
+ font-weight: 600;
958
+ box-sizing: border-box;
959
+ border: 1px solid rgb(138, 136, 134);
960
+ display: inline-block;
961
+ text-decoration: none;
962
+ text-align: center;
963
+ cursor: pointer;
964
+ padding: 0px 16px;
965
+ border-radius: 2px;
966
+ min-width: 80px;
967
+ height: 32px;
968
+ background-color: rgb(255, 255, 255);
969
+ color: rgb(50, 49, 48);
970
+ user-select: none;
971
+ }
972
+
973
+ .CCnBgacfaMc-ButtonmodulecssstandardButton:active {
974
+ background-color: rgb(237, 235, 233);
975
+ color: rgb(32, 31, 30);
976
+ }
977
+
978
+ .CCnBgacfaMc-ButtonmodulecssstandardButton:hover {
979
+ background-color: rgb(243, 242, 241);
980
+ color: rgb(32, 31, 30);
981
+ }
982
+
983
+ .CCnBgacfaMc-ButtonmodulecssprimaryButton {
984
+ outline: transparent;
985
+ position: relative;
986
+ font-family: inherit;
987
+ font-size: 14px;
988
+ font-weight: 600;
989
+ box-sizing: border-box;
990
+ border: 1px solid rgb(0, 120, 212);
991
+ display: inline-block;
992
+ text-decoration: none;
993
+ text-align: center;
994
+ cursor: pointer;
995
+ padding: 0px 16px;
996
+ border-radius: 2px;
997
+ min-width: 80px;
998
+ height: 32px;
999
+ background-color: rgb(0, 120, 212);
1000
+ color: rgb(255, 255, 255);
1001
+ user-select: none;
1002
+ }
1003
+
1004
+ .CCnBgacfaMc-ButtonmodulecssprimaryButton:active {
1005
+ background-color: rgb(0, 90, 158);
1006
+ border: 1px solid rgb(0, 90, 158);
1007
+ color: rgb(255, 255, 255);
1008
+ }
1009
+
1010
+ .CCnBgacfaMc-ButtonmodulecssprimaryButton:hover {
1011
+ background-color: rgb(16, 110, 190);
1012
+ border: 1px solid rgb(16, 110, 190);
1013
+ color: rgb(255, 255, 255);
1014
+ }
1015
+ `;
1016
+ var s6 = document.createElement("style");
1017
+ s6.setAttribute("data-sourceFile", "src/components/Button/Button.module.css");
1018
+ s6.appendChild(document.createTextNode(compiledModule6));
1019
+ document.head.appendChild(s6);
1020
+ var primaryButton = "CCnBgacfaMc-ButtonmodulecssprimaryButton";
1021
+ var standardButton = "CCnBgacfaMc-ButtonmodulecssstandardButton";
1022
+ var Button_module_default = { primaryButton, standardButton };
1023
+
1024
+ // src/components/Button/Button.tsx
1025
+ function Button(props) {
1026
+ const { primary, ...other } = props;
1027
+ const className = primary ? Button_module_default.primaryButton : Button_module_default.standardButton;
1028
+ return /* @__PURE__ */ React6.createElement("button", {
1029
+ ...other,
1030
+ className,
1031
+ type: "button"
1032
+ });
1033
+ }
1034
+
1035
+ // src/components/StatusDialog/StatusDialog.tsx
1036
+ function StatusDialogUnmemoized({ onClose }) {
1037
+ const draggableRef = useRef2(null);
1038
+ const draggableTargetRef = useRef2(null);
1039
+ const cloudpack = useCloudpack();
1040
+ useDraggable(draggableRef, draggableTargetRef);
1041
+ const restartTasks = () => {
1042
+ cloudpack.restartTasks();
1043
+ };
1044
+ return /* @__PURE__ */ React7.createElement("div", {
1045
+ className: StatusDialog_module_default.overlay
1046
+ }, /* @__PURE__ */ React7.createElement("div", {
1047
+ ref: draggableRef,
1048
+ className: StatusDialog_module_default.dialog
1049
+ }, /* @__PURE__ */ React7.createElement("div", {
1050
+ className: StatusDialog_module_default.titleArea
1051
+ }, /* @__PURE__ */ React7.createElement("div", {
1052
+ ref: draggableTargetRef,
1053
+ className: StatusDialog_module_default.title
1054
+ }, "Task results"), /* @__PURE__ */ React7.createElement("button", {
1055
+ className: StatusDialog_module_default.closeButton,
1056
+ onClick: onClose
1057
+ }, /* @__PURE__ */ React7.createElement("img", {
1058
+ src: dismiss_16_filled_inline_default,
1059
+ alt: ""
1060
+ }))), /* @__PURE__ */ React7.createElement("div", {
1061
+ className: StatusDialog_module_default.commands
1062
+ }, /* @__PURE__ */ React7.createElement(Button, {
1063
+ primary: true,
1064
+ onClick: restartTasks
1065
+ }, "Restart all tasks")), /* @__PURE__ */ React7.createElement(TaskList, null)));
1066
+ }
1067
+ var StatusDialog = React7.memo(StatusDialogUnmemoized, (prev, next) => {
1068
+ return prev.onClose === next.onClose;
1069
+ });
1070
+
1071
+ // src/components/StatusOverlay/StatusOverlay.tsx
1072
+ function StatusOverlay() {
1073
+ const [isExpanded, setIsExpanded] = useState5(false);
1074
+ const status = useStatus();
1075
+ const internal = useRef3();
1076
+ if (isExpanded === false && internal.current?.status !== "idle" && status.status === "idle" && internal.current?.totalErrors != status.totalErrors) {
1077
+ setIsExpanded(true);
1078
+ }
1079
+ internal.current = status;
1080
+ const toggleMinimized = useCallback(() => {
1081
+ console.log(`Toggling minimized state to ${!isExpanded}`);
1082
+ setIsExpanded(!isExpanded);
1083
+ }, [isExpanded, setIsExpanded]);
1084
+ return /* @__PURE__ */ React8.createElement("div", null, !isExpanded && /* @__PURE__ */ React8.createElement(StatusBadge, {
1085
+ onExpand: toggleMinimized
1086
+ }), isExpanded && /* @__PURE__ */ React8.createElement(StatusDialog, {
1087
+ onClose: toggleMinimized
1088
+ }));
1089
+ }
1090
+
1091
+ // src/components/ThemeProvider/ThemeProvider.tsx
1092
+ import React9 from "react";
1093
+
1094
+ // src/components/ThemeProvider/ThemeProvider.module.css
1095
+ var compiledModule7 = `.xwrpHYTQE-ThemeProvidermodulecssroot {
1096
+ font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans',
1097
+ 'Droid Sans', 'Helvetica Neue', sans-serif;
1098
+ }
1099
+ `;
1100
+ var s7 = document.createElement("style");
1101
+ s7.setAttribute("data-sourceFile", "src/components/ThemeProvider/ThemeProvider.module.css");
1102
+ s7.appendChild(document.createTextNode(compiledModule7));
1103
+ document.head.appendChild(s7);
1104
+ var root4 = "xwrpHYTQE-ThemeProvidermodulecssroot";
1105
+ var ThemeProvider_module_default = { root: root4 };
1106
+
1107
+ // src/components/ThemeProvider/ThemeProvider.tsx
1108
+ function ThemeProvider({ children }) {
1109
+ return /* @__PURE__ */ React9.createElement("div", {
1110
+ className: ThemeProvider_module_default.root
1111
+ }, children);
1112
+ }
1113
+
1114
+ // src/index.tsx
1115
+ var rootDiv = document.createElement("div");
1116
+ ReactDOM.render(
1117
+ /* @__PURE__ */ React10.createElement(ThemeProvider, null, /* @__PURE__ */ React10.createElement(CloudpackProvider, null, /* @__PURE__ */ React10.createElement(StatusOverlay, null))),
1118
+ rootDiv
1119
+ );
1120
+ document.body.appendChild(rootDiv);
@@ -0,0 +1,25 @@
1
+ {
2
+ "absWorkingDir": "/home/runner/work/cloudpack/cloudpack/packages/overlay",
3
+ "outbase": "lib",
4
+ "outdir": "/home/runner/work/cloudpack/cloudpack/packages/overlay/dist/lib",
5
+ "entryPoints": {
6
+ "index": "./src/index.tsx"
7
+ },
8
+ "external": [
9
+ "@ms-cloudpack/data-bus",
10
+ "react",
11
+ "react-dom",
12
+ "classnames",
13
+ "@ms-cloudpack/eslint-config-base",
14
+ "@ms-cloudpack/scripts",
15
+ "@types/react-dom",
16
+ "@types/react"
17
+ ],
18
+ "splitting": true,
19
+ "metafile": true,
20
+ "define": {
21
+ "global": "window",
22
+ "process.env.NODE_ENV": "\"dev\""
23
+ },
24
+ "minify": false
25
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "type": "buildStatus",
3
+ "buildId": "55e0c497-aac9-4534-84c2-2af0c3328d62",
4
+ "buildStatus": "complete",
5
+ "internalError": null,
6
+ "warnings": [],
7
+ "errors": [],
8
+ "outputFilePaths": [
9
+ "/home/runner/work/cloudpack/cloudpack/packages/overlay/dist/lib/index.js"
10
+ ],
11
+ "metafile": "{\n \"inputs\": {\n \"src/components/CloudpackProvider/getCookies.ts\": {\n \"bytes\": 452,\n \"imports\": []\n },\n \"src/components/CloudpackProvider/createCloudpackClient.ts\": {\n \"bytes\": 3807,\n \"imports\": [\n {\n \"path\": \"src/components/CloudpackProvider/getCookies.ts\",\n \"kind\": \"import-statement\"\n }\n ]\n },\n \"src/components/CloudpackProvider/CloudpackProvider.tsx\": {\n \"bytes\": 552,\n \"imports\": [\n {\n \"path\": \"src/components/CloudpackProvider/createCloudpackClient.ts\",\n \"kind\": \"import-statement\"\n }\n ]\n },\n \"src/hooks/useDraggable.ts\": {\n \"bytes\": 2050,\n \"imports\": []\n },\n \"src/components/StatusBadge/StatusBadge.module.css\": {\n \"bytes\": 3405,\n \"imports\": []\n },\n \"src/components/CloudpackProvider/useStatus.ts\": {\n \"bytes\": 866,\n \"imports\": [\n {\n \"path\": \"src/components/CloudpackProvider/CloudpackProvider.tsx\",\n \"kind\": \"import-statement\"\n }\n ]\n },\n \"src/images/open-16-filled.inline.svg\": {\n \"bytes\": 852,\n \"imports\": []\n },\n \"src/components/StatusBadge/StatusBadge.tsx\": {\n \"bytes\": 2867,\n \"imports\": [\n {\n \"path\": \"src/hooks/useDraggable.ts\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/StatusBadge/StatusBadge.module.css\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/CloudpackProvider/useStatus.ts\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/images/open-16-filled.inline.svg\",\n \"kind\": \"import-statement\"\n }\n ]\n },\n \"src/components/StatusDialog/StatusDialog.module.css\": {\n \"bytes\": 2579,\n \"imports\": []\n },\n \"src/images/dismiss-16-filled.inline.svg\": {\n \"bytes\": 718,\n \"imports\": []\n },\n \"src/components/StatusDialog/TaskResultItem.module.css\": {\n \"bytes\": 2067,\n \"imports\": []\n },\n \"src/components/StatusDialog/TaskResultItem.tsx\": {\n \"bytes\": 1433,\n \"imports\": [\n {\n \"path\": \"src/components/CloudpackProvider/CloudpackProvider.tsx\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/StatusDialog/TaskResultItem.module.css\",\n \"kind\": \"import-statement\"\n }\n ]\n },\n \"src/components/StatusDialog/TaskStatus.module.css\": {\n \"bytes\": 3953,\n \"imports\": []\n },\n \"src/images/error-24.inline.svg\": {\n \"bytes\": 1024,\n \"imports\": []\n },\n \"src/images/success-24.inline.svg\": {\n \"bytes\": 562,\n \"imports\": []\n },\n \"src/images/chevrondown-20.inline.svg\": {\n \"bytes\": 450,\n \"imports\": []\n },\n \"src/components/StatusDialog/TaskStatus.tsx\": {\n \"bytes\": 4225,\n \"imports\": [\n {\n \"path\": \"src/components/StatusDialog/TaskResultItem.tsx\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/StatusDialog/TaskStatus.module.css\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/images/error-24.inline.svg\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/images/success-24.inline.svg\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/images/chevrondown-20.inline.svg\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/CloudpackProvider/CloudpackProvider.tsx\",\n \"kind\": \"import-statement\"\n }\n ]\n },\n \"src/components/CloudpackProvider/useStatusDetails.ts\": {\n \"bytes\": 844,\n \"imports\": [\n {\n \"path\": \"src/components/CloudpackProvider/CloudpackProvider.tsx\",\n \"kind\": \"import-statement\"\n }\n ]\n },\n \"src/components/StatusDialog/TaskList.module.css\": {\n \"bytes\": 615,\n \"imports\": []\n },\n \"src/components/StatusDialog/TaskList.tsx\": {\n \"bytes\": 1015,\n \"imports\": [\n {\n \"path\": \"src/components/StatusDialog/TaskStatus.tsx\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/CloudpackProvider/useStatusDetails.ts\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/StatusDialog/TaskList.module.css\",\n \"kind\": \"import-statement\"\n }\n ]\n },\n \"src/components/Button/Button.module.css\": {\n \"bytes\": 2080,\n \"imports\": []\n },\n \"src/components/Button/Button.tsx\": {\n \"bytes\": 360,\n \"imports\": [\n {\n \"path\": \"src/components/Button/Button.module.css\",\n \"kind\": \"import-statement\"\n }\n ]\n },\n \"src/components/StatusDialog/StatusDialog.tsx\": {\n \"bytes\": 1489,\n \"imports\": [\n {\n \"path\": \"src/components/StatusDialog/StatusDialog.module.css\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/hooks/useDraggable.ts\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/images/dismiss-16-filled.inline.svg\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/StatusDialog/TaskList.tsx\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/CloudpackProvider/CloudpackProvider.tsx\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/Button/Button.tsx\",\n \"kind\": \"import-statement\"\n }\n ]\n },\n \"src/components/StatusOverlay/StatusOverlay.tsx\": {\n \"bytes\": 1145,\n \"imports\": [\n {\n \"path\": \"src/components/StatusBadge/StatusBadge.tsx\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/StatusDialog/StatusDialog.tsx\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/CloudpackProvider/useStatus.ts\",\n \"kind\": \"import-statement\"\n }\n ]\n },\n \"src/components/ThemeProvider/ThemeProvider.module.css\": {\n \"bytes\": 630,\n \"imports\": []\n },\n \"src/components/ThemeProvider/ThemeProvider.tsx\": {\n \"bytes\": 210,\n \"imports\": [\n {\n \"path\": \"src/components/ThemeProvider/ThemeProvider.module.css\",\n \"kind\": \"import-statement\"\n }\n ]\n },\n \"src/index.tsx\": {\n \"bytes\": 532,\n \"imports\": [\n {\n \"path\": \"src/components/CloudpackProvider/CloudpackProvider.tsx\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/StatusOverlay/StatusOverlay.tsx\",\n \"kind\": \"import-statement\"\n },\n {\n \"path\": \"src/components/ThemeProvider/ThemeProvider.tsx\",\n \"kind\": \"import-statement\"\n }\n ]\n }\n },\n \"outputs\": {\n \"dist/lib/index.js\": {\n \"imports\": [],\n \"exports\": [],\n \"entryPoint\": \"src/index.tsx\",\n \"inputs\": {\n \"src/index.tsx\": {\n \"bytesInOutput\": 360\n },\n \"src/components/CloudpackProvider/CloudpackProvider.tsx\": {\n \"bytesInOutput\": 372\n },\n \"src/components/CloudpackProvider/getCookies.ts\": {\n \"bytesInOutput\": 317\n },\n \"src/components/CloudpackProvider/createCloudpackClient.ts\": {\n \"bytesInOutput\": 2507\n },\n \"src/components/StatusOverlay/StatusOverlay.tsx\": {\n \"bytesInOutput\": 883\n },\n \"src/components/StatusBadge/StatusBadge.tsx\": {\n \"bytesInOutput\": 3035\n },\n \"src/hooks/useDraggable.ts\": {\n \"bytesInOutput\": 1937\n },\n \"src/components/StatusBadge/StatusBadge.module.css\": {\n \"bytesInOutput\": 3118\n },\n \"src/components/CloudpackProvider/useStatus.ts\": {\n \"bytesInOutput\": 448\n },\n \"src/images/open-16-filled.inline.svg\": {\n \"bytesInOutput\": 1202\n },\n \"src/components/StatusDialog/StatusDialog.tsx\": {\n \"bytesInOutput\": 1466\n },\n \"src/components/StatusDialog/StatusDialog.module.css\": {\n \"bytesInOutput\": 2376\n },\n \"src/images/dismiss-16-filled.inline.svg\": {\n \"bytesInOutput\": 1029\n },\n \"src/components/StatusDialog/TaskList.tsx\": {\n \"bytesInOutput\": 750\n },\n \"src/components/StatusDialog/TaskStatus.tsx\": {\n \"bytesInOutput\": 4697\n },\n \"src/components/StatusDialog/TaskResultItem.tsx\": {\n \"bytesInOutput\": 1421\n },\n \"src/components/StatusDialog/TaskResultItem.module.css\": {\n \"bytesInOutput\": 1894\n },\n \"src/components/StatusDialog/TaskStatus.module.css\": {\n \"bytesInOutput\": 3690\n },\n \"src/images/error-24.inline.svg\": {\n \"bytesInOutput\": 1428\n },\n \"src/images/success-24.inline.svg\": {\n \"bytesInOutput\": 814\n },\n \"src/images/chevrondown-20.inline.svg\": {\n \"bytesInOutput\": 666\n },\n \"src/components/CloudpackProvider/useStatusDetails.ts\": {\n \"bytesInOutput\": 299\n },\n \"src/components/StatusDialog/TaskList.module.css\": {\n \"bytesInOutput\": 541\n },\n \"src/components/Button/Button.tsx\": {\n \"bytesInOutput\": 312\n },\n \"src/components/Button/Button.module.css\": {\n \"bytesInOutput\": 1942\n },\n \"src/components/ThemeProvider/ThemeProvider.tsx\": {\n \"bytesInOutput\": 189\n },\n \"src/components/ThemeProvider/ThemeProvider.module.css\": {\n \"bytesInOutput\": 561\n }\n },\n \"bytes\": 40081\n }\n }\n}\n"
12
+ }
@@ -0,0 +1 @@
1
+ export { }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/overlay",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "The Cloudpack overlay ux.",
5
5
  "license": "MIT",
6
6
  "types": "./lib/index.d.ts",
@@ -8,6 +8,7 @@
8
8
  "exports": {
9
9
  ".": {
10
10
  "types": "./lib/index.d.ts",
11
+ "browser-esm": "./dist/lib/index.js",
11
12
  "import": "./lib/index.js"
12
13
  }
13
14
  },
@@ -16,6 +17,7 @@
16
17
  "api": "cloudpack-scripts api",
17
18
  "build:watch": "cloudpack-scripts build-watch",
18
19
  "build": "cloudpack-scripts build",
20
+ "bundle": "cloudpack bundle",
19
21
  "lint:update": "cloudpack-scripts lint-update",
20
22
  "lint": "cloudpack-scripts lint"
21
23
  },
@@ -32,6 +34,7 @@
32
34
  "@types/react": "17.0.50"
33
35
  },
34
36
  "files": [
35
- "/lib"
37
+ "/lib",
38
+ "/dist"
36
39
  ]
37
40
  }