mudlet-map-editor 0.7.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,845 @@
1
+ import { a as e, c as t, d as n, f as r, g as i, h as a, i as o, l as s, m as c, n as l, o as u, p as d, r as f, s as p, t as m, u as ee } from "./editor.api2-PX2PsJx9.js";
2
+ import { n as h, t as te } from "./monaco.contribution-CRzon75s.js";
3
+ import g, { memo as _, useCallback as v, useEffect as y, useRef as b, useState as x } from "react";
4
+ import { jsx as S, jsxs as C } from "react/jsx-runtime";
5
+ //#region node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js
6
+ function w(e, t) {
7
+ (t == null || t > e.length) && (t = e.length);
8
+ for (var n = 0, r = Array(t); n < t; n++) r[n] = e[n];
9
+ return r;
10
+ }
11
+ function T(e) {
12
+ if (Array.isArray(e)) return e;
13
+ }
14
+ function E(e, t, n) {
15
+ return (t = re(t)) in e ? Object.defineProperty(e, t, {
16
+ value: n,
17
+ enumerable: !0,
18
+ configurable: !0,
19
+ writable: !0
20
+ }) : e[t] = n, e;
21
+ }
22
+ function D(e, t) {
23
+ var n = e == null ? null : typeof Symbol < "u" && e[Symbol.iterator] || e["@@iterator"];
24
+ if (n != null) {
25
+ var r, i, a, o, s = [], c = !0, l = !1;
26
+ try {
27
+ if (a = (n = n.call(e)).next, t !== 0) for (; !(c = (r = a.call(n)).done) && (s.push(r.value), s.length !== t); c = !0);
28
+ } catch (e) {
29
+ l = !0, i = e;
30
+ } finally {
31
+ try {
32
+ if (!c && n.return != null && (o = n.return(), Object(o) !== o)) return;
33
+ } finally {
34
+ if (l) throw i;
35
+ }
36
+ }
37
+ return s;
38
+ }
39
+ }
40
+ function O() {
41
+ throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
42
+ }
43
+ function k(e, t) {
44
+ var n = Object.keys(e);
45
+ if (Object.getOwnPropertySymbols) {
46
+ var r = Object.getOwnPropertySymbols(e);
47
+ t && (r = r.filter(function(t) {
48
+ return Object.getOwnPropertyDescriptor(e, t).enumerable;
49
+ })), n.push.apply(n, r);
50
+ }
51
+ return n;
52
+ }
53
+ function A(e) {
54
+ for (var t = 1; t < arguments.length; t++) {
55
+ var n = arguments[t] == null ? {} : arguments[t];
56
+ t % 2 ? k(Object(n), !0).forEach(function(t) {
57
+ E(e, t, n[t]);
58
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : k(Object(n)).forEach(function(t) {
59
+ Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));
60
+ });
61
+ }
62
+ return e;
63
+ }
64
+ function j(e, t) {
65
+ if (e == null) return {};
66
+ var n, r, i = M(e, t);
67
+ if (Object.getOwnPropertySymbols) {
68
+ var a = Object.getOwnPropertySymbols(e);
69
+ for (r = 0; r < a.length; r++) n = a[r], t.indexOf(n) === -1 && {}.propertyIsEnumerable.call(e, n) && (i[n] = e[n]);
70
+ }
71
+ return i;
72
+ }
73
+ function M(e, t) {
74
+ if (e == null) return {};
75
+ var n = {};
76
+ for (var r in e) if ({}.hasOwnProperty.call(e, r)) {
77
+ if (t.indexOf(r) !== -1) continue;
78
+ n[r] = e[r];
79
+ }
80
+ return n;
81
+ }
82
+ function N(e, t) {
83
+ return T(e) || D(e, t) || P(e, t) || O();
84
+ }
85
+ function ne(e, t) {
86
+ if (typeof e != "object" || !e) return e;
87
+ var n = e[Symbol.toPrimitive];
88
+ if (n !== void 0) {
89
+ var r = n.call(e, t);
90
+ if (typeof r != "object") return r;
91
+ throw TypeError("@@toPrimitive must return a primitive value.");
92
+ }
93
+ return (t === "string" ? String : Number)(e);
94
+ }
95
+ function re(e) {
96
+ var t = ne(e, "string");
97
+ return typeof t == "symbol" ? t : t + "";
98
+ }
99
+ function P(e, t) {
100
+ if (e) {
101
+ if (typeof e == "string") return w(e, t);
102
+ var n = {}.toString.call(e).slice(8, -1);
103
+ return n === "Object" && e.constructor && (n = e.constructor.name), n === "Map" || n === "Set" ? Array.from(e) : n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? w(e, t) : void 0;
104
+ }
105
+ }
106
+ //#endregion
107
+ //#region node_modules/state-local/lib/es/state-local.js
108
+ function F(e, t, n) {
109
+ return t in e ? Object.defineProperty(e, t, {
110
+ value: n,
111
+ enumerable: !0,
112
+ configurable: !0,
113
+ writable: !0
114
+ }) : e[t] = n, e;
115
+ }
116
+ function I(e, t) {
117
+ var n = Object.keys(e);
118
+ if (Object.getOwnPropertySymbols) {
119
+ var r = Object.getOwnPropertySymbols(e);
120
+ t && (r = r.filter(function(t) {
121
+ return Object.getOwnPropertyDescriptor(e, t).enumerable;
122
+ })), n.push.apply(n, r);
123
+ }
124
+ return n;
125
+ }
126
+ function L(e) {
127
+ for (var t = 1; t < arguments.length; t++) {
128
+ var n = arguments[t] == null ? {} : arguments[t];
129
+ t % 2 ? I(Object(n), !0).forEach(function(t) {
130
+ F(e, t, n[t]);
131
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : I(Object(n)).forEach(function(t) {
132
+ Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));
133
+ });
134
+ }
135
+ return e;
136
+ }
137
+ function ie() {
138
+ var e = [...arguments];
139
+ return function(t) {
140
+ return e.reduceRight(function(e, t) {
141
+ return t(e);
142
+ }, t);
143
+ };
144
+ }
145
+ function R(e) {
146
+ return function t() {
147
+ var n = this, r = [...arguments];
148
+ return r.length >= e.length ? e.apply(this, r) : function() {
149
+ var e = [...arguments];
150
+ return t.apply(n, [].concat(r, e));
151
+ };
152
+ };
153
+ }
154
+ function z(e) {
155
+ return {}.toString.call(e).includes("Object");
156
+ }
157
+ function ae(e) {
158
+ return !Object.keys(e).length;
159
+ }
160
+ function B(e) {
161
+ return typeof e == "function";
162
+ }
163
+ function oe(e, t) {
164
+ return Object.prototype.hasOwnProperty.call(e, t);
165
+ }
166
+ function se(e, t) {
167
+ return z(t) || V("changeType"), Object.keys(t).some(function(t) {
168
+ return !oe(e, t);
169
+ }) && V("changeField"), t;
170
+ }
171
+ function ce(e) {
172
+ B(e) || V("selectorType");
173
+ }
174
+ function le(e) {
175
+ B(e) || z(e) || V("handlerType"), z(e) && Object.values(e).some(function(e) {
176
+ return !B(e);
177
+ }) && V("handlersType");
178
+ }
179
+ function ue(e) {
180
+ e || V("initialIsRequired"), z(e) || V("initialType"), ae(e) && V("initialContent");
181
+ }
182
+ function de(e, t) {
183
+ throw Error(e[t] || e.default);
184
+ }
185
+ var V = R(de)({
186
+ initialIsRequired: "initial state is required",
187
+ initialType: "initial state should be an object",
188
+ initialContent: "initial state shouldn't be an empty object",
189
+ handlerType: "handler should be an object or a function",
190
+ handlersType: "all handlers should be a functions",
191
+ selectorType: "selector should be a function",
192
+ changeType: "provided value of changes should be an object",
193
+ changeField: "it seams you want to change a field in the state which is not specified in the \"initial\" state",
194
+ default: "an unknown error accured in `state-local` package"
195
+ }), H = {
196
+ changes: se,
197
+ selector: ce,
198
+ handler: le,
199
+ initial: ue
200
+ };
201
+ function fe(e) {
202
+ var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
203
+ H.initial(e), H.handler(t);
204
+ var n = { current: e }, r = R(he)(n, t), i = R(me)(n), a = R(H.changes)(e), o = R(pe)(n);
205
+ function s() {
206
+ var e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : function(e) {
207
+ return e;
208
+ };
209
+ return H.selector(e), e(n.current);
210
+ }
211
+ function c(e) {
212
+ ie(r, i, a, o)(e);
213
+ }
214
+ return [s, c];
215
+ }
216
+ function pe(e, t) {
217
+ return B(t) ? t(e.current) : t;
218
+ }
219
+ function me(e, t) {
220
+ return e.current = L(L({}, e.current), t), t;
221
+ }
222
+ function he(e, t, n) {
223
+ return B(t) ? t(e.current) : Object.keys(n).forEach(function(n) {
224
+ return t[n]?.call(t, e.current[n]);
225
+ }), n;
226
+ }
227
+ var ge = { create: fe }, _e = { paths: { vs: "https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs" } };
228
+ //#endregion
229
+ //#region node_modules/@monaco-editor/loader/lib/es/utils/curry.js
230
+ function ve(e) {
231
+ return function t() {
232
+ var n = this, r = [...arguments];
233
+ return r.length >= e.length ? e.apply(this, r) : function() {
234
+ var e = [...arguments];
235
+ return t.apply(n, [].concat(r, e));
236
+ };
237
+ };
238
+ }
239
+ //#endregion
240
+ //#region node_modules/@monaco-editor/loader/lib/es/utils/isObject.js
241
+ function ye(e) {
242
+ return {}.toString.call(e).includes("Object");
243
+ }
244
+ //#endregion
245
+ //#region node_modules/@monaco-editor/loader/lib/es/validators/index.js
246
+ function be(e) {
247
+ return e || we("configIsRequired"), ye(e) || we("configType"), e.urls ? (xe(), { paths: { vs: e.urls.monacoBase } }) : e;
248
+ }
249
+ function xe() {
250
+ console.warn(Ce.deprecation);
251
+ }
252
+ function Se(e, t) {
253
+ throw Error(e[t] || e.default);
254
+ }
255
+ var Ce = {
256
+ configIsRequired: "the configuration object is required",
257
+ configType: "the configuration object should be an object",
258
+ default: "an unknown error accured in `@monaco-editor/loader` package",
259
+ deprecation: "Deprecation warning!\n You are using deprecated way of configuration.\n\n Instead of using\n monaco.config({ urls: { monacoBase: '...' } })\n use\n monaco.config({ paths: { vs: '...' } })\n\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\n "
260
+ }, we = ve(Se)(Ce), Te = { config: be }, Ee = function() {
261
+ var e = [...arguments];
262
+ return function(t) {
263
+ return e.reduceRight(function(e, t) {
264
+ return t(e);
265
+ }, t);
266
+ };
267
+ };
268
+ //#endregion
269
+ //#region node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js
270
+ function De(e, t) {
271
+ return Object.keys(t).forEach(function(n) {
272
+ t[n] instanceof Object && e[n] && Object.assign(t[n], De(e[n], t[n]));
273
+ }), A(A({}, e), t);
274
+ }
275
+ //#endregion
276
+ //#region node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js
277
+ var Oe = {
278
+ type: "cancelation",
279
+ msg: "operation is manually canceled"
280
+ };
281
+ function U(e) {
282
+ var t = !1, n = new Promise(function(n, r) {
283
+ e.then(function(e) {
284
+ return t ? r(Oe) : n(e);
285
+ }), e.catch(r);
286
+ });
287
+ return n.cancel = function() {
288
+ return t = !0;
289
+ }, n;
290
+ }
291
+ //#endregion
292
+ //#region node_modules/@monaco-editor/loader/lib/es/loader/index.js
293
+ var ke = ["monaco"], Ae = N(ge.create({
294
+ config: _e,
295
+ isInitialized: !1,
296
+ resolve: null,
297
+ reject: null,
298
+ monaco: null
299
+ }), 2), W = Ae[0], G = Ae[1];
300
+ function je(e) {
301
+ var t = Te.config(e), n = t.monaco, r = j(t, ke);
302
+ G(function(e) {
303
+ return {
304
+ config: De(e.config, r),
305
+ monaco: n
306
+ };
307
+ });
308
+ }
309
+ function Me() {
310
+ var e = W(function(e) {
311
+ return {
312
+ monaco: e.monaco,
313
+ isInitialized: e.isInitialized,
314
+ resolve: e.resolve
315
+ };
316
+ });
317
+ if (!e.isInitialized) {
318
+ if (G({ isInitialized: !0 }), e.monaco) return e.resolve(e.monaco), U(K);
319
+ if (window.monaco && window.monaco.editor) return Le(window.monaco), e.resolve(window.monaco), U(K);
320
+ Ee(Ne, Fe)(Ie);
321
+ }
322
+ return U(K);
323
+ }
324
+ function Ne(e) {
325
+ return document.body.appendChild(e);
326
+ }
327
+ function Pe(e) {
328
+ var t = document.createElement("script");
329
+ return e && (t.src = e), t;
330
+ }
331
+ function Fe(e) {
332
+ var t = W(function(e) {
333
+ return {
334
+ config: e.config,
335
+ reject: e.reject
336
+ };
337
+ }), n = Pe(`${t.config.paths.vs}/loader.js`);
338
+ return n.onload = function() {
339
+ return e();
340
+ }, n.onerror = t.reject, n;
341
+ }
342
+ function Ie() {
343
+ var e = W(function(e) {
344
+ return {
345
+ config: e.config,
346
+ resolve: e.resolve,
347
+ reject: e.reject
348
+ };
349
+ }), t = window.require;
350
+ t.config(e.config), t(["vs/editor/editor.main"], function(t) {
351
+ var n = t.m || t;
352
+ Le(n), e.resolve(n);
353
+ }, function(t) {
354
+ e.reject(t);
355
+ });
356
+ }
357
+ function Le(e) {
358
+ W().monaco || G({ monaco: e });
359
+ }
360
+ function Re() {
361
+ return W(function(e) {
362
+ return e.monaco;
363
+ });
364
+ }
365
+ var K = new Promise(function(e, t) {
366
+ return G({
367
+ resolve: e,
368
+ reject: t
369
+ });
370
+ }), q = {
371
+ config: je,
372
+ init: Me,
373
+ __getMonacoInstance: Re
374
+ }, J = {
375
+ wrapper: {
376
+ display: "flex",
377
+ position: "relative",
378
+ textAlign: "initial"
379
+ },
380
+ fullWidth: { width: "100%" },
381
+ hide: { display: "none" }
382
+ }, ze = { container: {
383
+ display: "flex",
384
+ height: "100%",
385
+ width: "100%",
386
+ justifyContent: "center",
387
+ alignItems: "center"
388
+ } };
389
+ function Be({ children: e }) {
390
+ return g.createElement("div", { style: ze.container }, e);
391
+ }
392
+ var Ve = Be;
393
+ function He({ width: e, height: t, isEditorReady: n, loading: r, _ref: i, className: a, wrapperProps: o }) {
394
+ return g.createElement("section", {
395
+ style: {
396
+ ...J.wrapper,
397
+ width: e,
398
+ height: t
399
+ },
400
+ ...o
401
+ }, !n && g.createElement(Ve, null, r), g.createElement("div", {
402
+ ref: i,
403
+ style: {
404
+ ...J.fullWidth,
405
+ ...!n && J.hide
406
+ },
407
+ className: a
408
+ }));
409
+ }
410
+ var Ue = _(He);
411
+ function We(e) {
412
+ y(e, []);
413
+ }
414
+ var Ge = We;
415
+ function Ke(e, t, n = !0) {
416
+ let r = b(!0);
417
+ y(r.current || !n ? () => {
418
+ r.current = !1;
419
+ } : e, t);
420
+ }
421
+ var Y = Ke;
422
+ function X() {}
423
+ function Z(e, t, n, r) {
424
+ return qe(e, r) || Je(e, t, n, r);
425
+ }
426
+ function qe(e, t) {
427
+ return e.editor.getModel(Ye(e, t));
428
+ }
429
+ function Je(e, t, n, r) {
430
+ return e.editor.createModel(t, n, r ? Ye(e, r) : void 0);
431
+ }
432
+ function Ye(e, t) {
433
+ return e.Uri.parse(t);
434
+ }
435
+ function Xe({ original: e, modified: t, language: n, originalLanguage: r, modifiedLanguage: i, originalModelPath: a, modifiedModelPath: o, keepCurrentOriginalModel: s = !1, keepCurrentModifiedModel: c = !1, theme: l = "light", loading: u = "Loading...", options: d = {}, height: f = "100%", width: p = "100%", className: m, wrapperProps: ee = {}, beforeMount: h = X, onMount: te = X }) {
436
+ let [_, S] = x(!1), [C, w] = x(!0), T = b(null), E = b(null), D = b(null), O = b(te), k = b(h), A = b(!1);
437
+ Ge(() => {
438
+ let e = q.init();
439
+ return e.then((e) => (E.current = e) && w(!1)).catch((e) => e?.type !== "cancelation" && console.error("Monaco initialization: error:", e)), () => T.current ? N() : e.cancel();
440
+ }), Y(() => {
441
+ if (T.current && E.current) {
442
+ let t = T.current.getOriginalEditor(), i = Z(E.current, e || "", r || n || "text", a || "");
443
+ i !== t.getModel() && t.setModel(i);
444
+ }
445
+ }, [a], _), Y(() => {
446
+ if (T.current && E.current) {
447
+ let e = T.current.getModifiedEditor(), r = Z(E.current, t || "", i || n || "text", o || "");
448
+ r !== e.getModel() && e.setModel(r);
449
+ }
450
+ }, [o], _), Y(() => {
451
+ let e = T.current.getModifiedEditor();
452
+ e.getOption(E.current.editor.EditorOption.readOnly) ? e.setValue(t || "") : t !== e.getValue() && (e.executeEdits("", [{
453
+ range: e.getModel().getFullModelRange(),
454
+ text: t || "",
455
+ forceMoveMarkers: !0
456
+ }]), e.pushUndoStop());
457
+ }, [t], _), Y(() => {
458
+ T.current?.getModel()?.original.setValue(e || "");
459
+ }, [e], _), Y(() => {
460
+ let { original: e, modified: t } = T.current.getModel();
461
+ E.current.editor.setModelLanguage(e, r || n || "text"), E.current.editor.setModelLanguage(t, i || n || "text");
462
+ }, [
463
+ n,
464
+ r,
465
+ i
466
+ ], _), Y(() => {
467
+ E.current?.editor.setTheme(l);
468
+ }, [l], _), Y(() => {
469
+ T.current?.updateOptions(d);
470
+ }, [d], _);
471
+ let j = v(() => {
472
+ if (!E.current) return;
473
+ k.current(E.current);
474
+ let s = Z(E.current, e || "", r || n || "text", a || ""), c = Z(E.current, t || "", i || n || "text", o || "");
475
+ T.current?.setModel({
476
+ original: s,
477
+ modified: c
478
+ });
479
+ }, [
480
+ n,
481
+ t,
482
+ i,
483
+ e,
484
+ r,
485
+ a,
486
+ o
487
+ ]), M = v(() => {
488
+ !A.current && D.current && (T.current = E.current.editor.createDiffEditor(D.current, {
489
+ automaticLayout: !0,
490
+ ...d
491
+ }), j(), E.current?.editor.setTheme(l), S(!0), A.current = !0);
492
+ }, [
493
+ d,
494
+ l,
495
+ j
496
+ ]);
497
+ y(() => {
498
+ _ && O.current(T.current, E.current);
499
+ }, [_]), y(() => {
500
+ !C && !_ && M();
501
+ }, [
502
+ C,
503
+ _,
504
+ M
505
+ ]);
506
+ function N() {
507
+ let e = T.current?.getModel();
508
+ s || e?.original?.dispose(), c || e?.modified?.dispose(), T.current?.dispose();
509
+ }
510
+ return g.createElement(Ue, {
511
+ width: p,
512
+ height: f,
513
+ isEditorReady: _,
514
+ loading: u,
515
+ _ref: D,
516
+ className: m,
517
+ wrapperProps: ee
518
+ });
519
+ }
520
+ _(Xe);
521
+ function Ze(e) {
522
+ let t = b();
523
+ return y(() => {
524
+ t.current = e;
525
+ }, [e]), t.current;
526
+ }
527
+ var Qe = Ze, Q = /* @__PURE__ */ new Map();
528
+ function $e({ defaultValue: e, defaultLanguage: t, defaultPath: n, value: r, language: i, path: a, theme: o = "light", line: s, loading: c = "Loading...", options: l = {}, overrideServices: u = {}, saveViewState: d = !0, keepCurrentModel: f = !1, width: p = "100%", height: m = "100%", className: ee, wrapperProps: h = {}, beforeMount: te = X, onMount: _ = X, onChange: S, onValidate: C = X }) {
529
+ let [w, T] = x(!1), [E, D] = x(!0), O = b(null), k = b(null), A = b(null), j = b(_), M = b(te), N = b(), ne = b(r), re = Qe(a), P = b(!1), F = b(!1);
530
+ Ge(() => {
531
+ let e = q.init();
532
+ return e.then((e) => (O.current = e) && D(!1)).catch((e) => e?.type !== "cancelation" && console.error("Monaco initialization: error:", e)), () => k.current ? L() : e.cancel();
533
+ }), Y(() => {
534
+ let o = Z(O.current, e || r || "", t || i || "", a || n || "");
535
+ o !== k.current?.getModel() && (d && Q.set(re, k.current?.saveViewState()), k.current?.setModel(o), d && k.current?.restoreViewState(Q.get(a)));
536
+ }, [a], w), Y(() => {
537
+ k.current?.updateOptions(l);
538
+ }, [l], w), Y(() => {
539
+ !k.current || r === void 0 || (k.current.getOption(O.current.editor.EditorOption.readOnly) ? k.current.setValue(r) : r !== k.current.getValue() && (F.current = !0, k.current.executeEdits("", [{
540
+ range: k.current.getModel().getFullModelRange(),
541
+ text: r,
542
+ forceMoveMarkers: !0
543
+ }]), k.current.pushUndoStop(), F.current = !1));
544
+ }, [r], w), Y(() => {
545
+ let e = k.current?.getModel();
546
+ e && i && O.current?.editor.setModelLanguage(e, i);
547
+ }, [i], w), Y(() => {
548
+ s !== void 0 && k.current?.revealLine(s);
549
+ }, [s], w), Y(() => {
550
+ O.current?.editor.setTheme(o);
551
+ }, [o], w);
552
+ let I = v(() => {
553
+ if (!(!A.current || !O.current) && !P.current) {
554
+ M.current(O.current);
555
+ let c = a || n, f = Z(O.current, r || e || "", t || i || "", c || "");
556
+ k.current = O.current?.editor.create(A.current, {
557
+ model: f,
558
+ automaticLayout: !0,
559
+ ...l
560
+ }, u), d && k.current.restoreViewState(Q.get(c)), O.current.editor.setTheme(o), s !== void 0 && k.current.revealLine(s), T(!0), P.current = !0;
561
+ }
562
+ }, [
563
+ e,
564
+ t,
565
+ n,
566
+ r,
567
+ i,
568
+ a,
569
+ l,
570
+ u,
571
+ d,
572
+ o,
573
+ s
574
+ ]);
575
+ y(() => {
576
+ w && j.current(k.current, O.current);
577
+ }, [w]), y(() => {
578
+ !E && !w && I();
579
+ }, [
580
+ E,
581
+ w,
582
+ I
583
+ ]), ne.current = r, y(() => {
584
+ w && S && (N.current?.dispose(), N.current = k.current?.onDidChangeModelContent((e) => {
585
+ F.current || S(k.current.getValue(), e);
586
+ }));
587
+ }, [w, S]), y(() => {
588
+ if (w) {
589
+ let e = O.current.editor.onDidChangeMarkers((e) => {
590
+ let t = k.current.getModel()?.uri;
591
+ if (t && e.find((e) => e.path === t.path)) {
592
+ let e = O.current.editor.getModelMarkers({ resource: t });
593
+ C?.(e);
594
+ }
595
+ });
596
+ return () => {
597
+ e?.dispose();
598
+ };
599
+ }
600
+ return () => {};
601
+ }, [w, C]);
602
+ function L() {
603
+ N.current?.dispose(), f ? d && Q.set(a, k.current.saveViewState()) : k.current.getModel()?.dispose(), k.current.dispose();
604
+ }
605
+ return g.createElement(Ue, {
606
+ width: p,
607
+ height: m,
608
+ isEditorReady: w,
609
+ loading: c,
610
+ _ref: A,
611
+ className: ee,
612
+ wrapperProps: h
613
+ });
614
+ }
615
+ var et = _($e);
616
+ //#endregion
617
+ //#region node_modules/monaco-editor/esm/vs/editor/internal/initialize.js
618
+ function tt() {
619
+ return c;
620
+ }
621
+ globalThis.MonacoEnvironment?.globalAPI && (globalThis.monaco = tt());
622
+ //#endregion
623
+ //#region node_modules/monaco-editor/esm/vs/editor/edcore.main.js
624
+ var nt = /* @__PURE__ */ i({
625
+ CancellationTokenSource: () => m,
626
+ Emitter: () => l,
627
+ KeyCode: () => f,
628
+ KeyMod: () => o,
629
+ MarkerSeverity: () => e,
630
+ MarkerTag: () => u,
631
+ Position: () => p,
632
+ Range: () => t,
633
+ Selection: () => s,
634
+ SelectionDirection: () => ee,
635
+ Token: () => n,
636
+ Uri: () => r,
637
+ editor: () => d,
638
+ languages: () => a
639
+ }), rt = {}, $ = {}, it = class e {
640
+ static getOrCreate(t) {
641
+ return $[t] || ($[t] = new e(t)), $[t];
642
+ }
643
+ constructor(e) {
644
+ this._languageId = e, this._loadingTriggered = !1, this._lazyLoadPromise = new Promise((e, t) => {
645
+ this._lazyLoadPromiseResolve = e, this._lazyLoadPromiseReject = t;
646
+ });
647
+ }
648
+ load() {
649
+ return this._loadingTriggered || (this._loadingTriggered = !0, rt[this._languageId].loader().then((e) => this._lazyLoadPromiseResolve(e), (e) => this._lazyLoadPromiseReject(e))), this._lazyLoadPromise;
650
+ }
651
+ };
652
+ function at(e) {
653
+ let t = e.id;
654
+ rt[t] = e, a.register(e);
655
+ let n = it.getOrCreate(t);
656
+ a.registerTokensProviderFactory(t, { create: async () => (await n.load()).language }), a.onLanguageEncountered(t, async () => {
657
+ let e = await n.load();
658
+ a.setLanguageConfiguration(t, e.conf);
659
+ });
660
+ }
661
+ //#endregion
662
+ //#region node_modules/monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution.js
663
+ at({
664
+ id: "javascript",
665
+ extensions: [
666
+ ".js",
667
+ ".es6",
668
+ ".jsx",
669
+ ".mjs",
670
+ ".cjs"
671
+ ],
672
+ firstLine: "^#!.*\\bnode",
673
+ filenames: ["jakefile"],
674
+ aliases: [
675
+ "JavaScript",
676
+ "javascript",
677
+ "js"
678
+ ],
679
+ mimetypes: ["text/javascript"],
680
+ loader: () => import("./javascript-DJweRxI1.js")
681
+ });
682
+ //#endregion
683
+ //#region node_modules/monaco-editor/esm/vs/editor/editor.worker.js?worker
684
+ function ot(e) {
685
+ return new Worker("/assets/editor.worker-CEcbUcrJ.js", { name: e?.name });
686
+ }
687
+ //#endregion
688
+ //#region node_modules/monaco-editor/esm/vs/language/typescript/ts.worker.js?worker
689
+ function st(e) {
690
+ return new Worker("/assets/ts.worker-C20_IzgO.js", { name: e?.name });
691
+ }
692
+ //#endregion
693
+ //#region src/editor/scriptTypes.ts
694
+ var ct = "declare type Direction =\n | 'north' | 'south' | 'east' | 'west'\n | 'northeast' | 'northwest' | 'southeast' | 'southwest'\n | 'up' | 'down' | 'in' | 'out';\n\n/** Frozen read-only snapshot of a room. Re-query via room() / findRooms() after mutations to see updates. */\ndeclare interface Room {\n readonly id: number;\n /** X coordinate (raw). */\n readonly x: number;\n /** Y coordinate (raw Mudlet, +y = north). */\n readonly y: number;\n readonly z: number;\n readonly area: number;\n readonly name: string;\n /** Environment / env id (paint colour index). */\n readonly environment: number;\n /** Room symbol / character. */\n readonly symbol: string;\n readonly weight: number;\n readonly isLocked: boolean;\n readonly userData: Readonly<Record<string, string>>;\n readonly doors: Readonly<Record<string, number>>;\n readonly exitWeights: Readonly<Record<string, number>>;\n readonly specialExits: Readonly<Record<string, number>>;\n readonly stubs: readonly number[];\n readonly exitLocks: readonly number[];\n /** Target room id, or -1. */\n readonly north: number;\n readonly south: number;\n readonly east: number;\n readonly west: number;\n readonly northeast: number;\n readonly northwest: number;\n readonly southeast: number;\n readonly southwest: number;\n readonly up: number;\n readonly down: number;\n readonly in: number;\n readonly out: number;\n}\n\ndeclare interface Area {\n readonly id: number;\n readonly name: string;\n}\n\ndeclare interface Env {\n readonly id: number;\n /** True if env has a custom colour override (map.mCustomEnvColors). */\n readonly custom: boolean;\n readonly r: number;\n readonly g: number;\n readonly b: number;\n /** '#rrggbb'. */\n readonly hex: string;\n /** 'rgb(r,g,b)' — same string the renderer uses. */\n readonly rgb: string;\n}\n\ndeclare interface CustomLineColor {\n r: number; g: number; b: number; alpha?: number;\n}\n\ndeclare interface CustomLineOptions {\n color?: string | CustomLineColor;\n style?: 'solid' | 'dash' | 'dot' | 'dashDot' | 'dashDotDot' | number;\n arrow?: boolean;\n}\n\ndeclare interface ConnectOptions {\n direction?: Direction;\n oneWay?: boolean;\n}\n\n// ── Read ───────────────────────────────────────────────────────────────\n\n/** Return a fresh snapshot array of all rooms. */\ndeclare function rooms(): Room[];\n/** Return rooms matching the predicate. */\ndeclare function findRooms(pred: (r: Room) => boolean): Room[];\n/** Return a snapshot of one room, or undefined. */\ndeclare function room(id: number): Room | undefined;\n/** List of all areas. */\ndeclare function areas(): Area[];\n/** Lookup one area by id. */\ndeclare function area(id: number): Area;\n/** List of every environment known to the map (default palette + custom + ids used by rooms). */\ndeclare function envs(): Env[];\n/** Look up one environment by id. Returns undefined if unknown and unused. */\ndeclare function env(id: number): Env | undefined;\n/** Cardinal direction between two rooms, inferred from map coordinates. */\ndeclare function directionBetween(fromId: number, toId: number): Direction | null;\n\n/** The area currently shown in the editor. */\ndeclare const currentAreaId: number | null;\n/** Current z-level shown in the editor. */\ndeclare const currentZ: number;\n/** All cardinal directions. */\ndeclare const DIRS: readonly Direction[];\n\n// ── I/O ────────────────────────────────────────────────────────────────\n\n/** Append to the script Log panel. */\ndeclare function log(...args: any[]): void;\n\ndeclare const console: {\n /** Alias for log(). */\n log(...args: any[]): void;\n};\n\n// ── Write (collected into one undo batch) ──────────────────────────────\n\n/** Set a room name. */\ndeclare function setRoomName(id: number, name: string): void;\n/** Set a room environment (paint colour). */\ndeclare function setRoomEnv(id: number, env: number): void;\n/** Set a room symbol / character. */\ndeclare function setRoomSymbol(id: number, symbol: string): void;\n/** Set a room weight. */\ndeclare function setRoomWeight(id: number, weight: number): void;\n/** Lock / unlock a room. */\ndeclare function setRoomLock(id: number, locked: boolean): void;\n/** Move a room. Coords are raw Mudlet (y = north is +). */\ndeclare function moveRoom(id: number, x: number, y: number, z: number): void;\n/** Set a cardinal exit. toId < 0 removes it. */\ndeclare function setExit(fromId: number, dir: Direction, toId: number): void;\n/** Set door state: 0=none, 1=open, 2=closed, 3=locked. */\ndeclare function setDoor(roomId: number, dir: Direction, value: number): void;\n/** Set exit traversal weight. */\ndeclare function setExitWeight(roomId: number, dir: Direction, value: number): void;\n/** Lock / unlock an exit. */\ndeclare function setExitLock(roomId: number, dir: Direction, locked: boolean): void;\n/** Add / remove a stub. */\ndeclare function setStub(roomId: number, dir: Direction, stub: boolean): void;\n/** Set a room userData entry. Pass null to delete. */\ndeclare function setUserData(roomId: number, key: string, value: string | null): void;\n/** Set a special (named) exit. toId < 0 removes it. */\ndeclare function setSpecialExit(roomId: number, name: string, toId: number): void;\n/** Link two rooms. Direction inferred from coords for 2D cardinals; pass { direction } for up/down/in/out. */\ndeclare function connectRooms(fromId: number, toId: number, options?: ConnectOptions): Direction | null;\n/** Remove a cardinal exit (and its reverse unless oneWay: true). */\ndeclare function disconnect(fromId: number, dir: Direction, options?: { oneWay?: boolean }): void;\n/** Draw a custom line on a room exit. Points are raw Mudlet [x, y] pairs. */\ndeclare function setCustomLine(roomId: number, exitName: string, points: Array<[number, number]>, options?: CustomLineOptions): void;\n/** Remove a custom line from a room exit. */\ndeclare function removeCustomLine(roomId: number, exitName: string): void;", lt = self;
695
+ lt.__mmeMonacoConfigured ||= (lt.MonacoEnvironment = { getWorker(e, t) {
696
+ return t === "typescript" || t === "javascript" ? new st() : new ot();
697
+ } }, q.config({ monaco: nt }), !0), h.setDiagnosticsOptions({
698
+ noSemanticValidation: !1,
699
+ noSyntaxValidation: !1
700
+ }), h.setCompilerOptions({
701
+ target: te.ES2020,
702
+ allowNonTsExtensions: !0,
703
+ noLib: !1,
704
+ checkJs: !1,
705
+ allowJs: !0
706
+ }), h.addExtraLib(ct, "file:///mudlet-api.d.ts"), d.defineTheme("mme-dark", {
707
+ base: "vs-dark",
708
+ inherit: !0,
709
+ rules: [
710
+ {
711
+ token: "",
712
+ foreground: "e6e9ef"
713
+ },
714
+ {
715
+ token: "comment",
716
+ foreground: "5a6478",
717
+ fontStyle: "italic"
718
+ },
719
+ {
720
+ token: "keyword",
721
+ foreground: "8fb8ff",
722
+ fontStyle: "bold"
723
+ },
724
+ {
725
+ token: "string",
726
+ foreground: "b0e6c0"
727
+ },
728
+ {
729
+ token: "number",
730
+ foreground: "f0c080"
731
+ },
732
+ {
733
+ token: "regexp",
734
+ foreground: "f0a0a0"
735
+ },
736
+ {
737
+ token: "type",
738
+ foreground: "f0c080"
739
+ },
740
+ {
741
+ token: "type.identifier",
742
+ foreground: "f0c080"
743
+ },
744
+ {
745
+ token: "identifier",
746
+ foreground: "e6e9ef"
747
+ },
748
+ {
749
+ token: "delimiter",
750
+ foreground: "c8d0dc"
751
+ },
752
+ {
753
+ token: "delimiter.bracket",
754
+ foreground: "c8d0dc"
755
+ },
756
+ {
757
+ token: "delimiter.parenthesis",
758
+ foreground: "c8d0dc"
759
+ }
760
+ ],
761
+ colors: {
762
+ "editor.background": "#0c1220",
763
+ "editor.foreground": "#e6e9ef",
764
+ "editorCursor.foreground": "#8fb8ff",
765
+ "editor.lineHighlightBackground": "#0f1a2e",
766
+ "editor.lineHighlightBorder": "#00000000",
767
+ "editor.selectionBackground": "#3464a870",
768
+ "editor.inactiveSelectionBackground": "#3464a840",
769
+ "editor.selectionHighlightBackground": "#8fb8ff25",
770
+ "editor.wordHighlightBackground": "#8fb8ff20",
771
+ "editor.wordHighlightStrongBackground": "#8fb8ff30",
772
+ "editor.findMatchBackground": "#f0c08040",
773
+ "editor.findMatchHighlightBackground": "#f0c08020",
774
+ "editorLineNumber.foreground": "#4a5568",
775
+ "editorLineNumber.activeForeground": "#8fb8ff",
776
+ "editorIndentGuide.background1": "#1a2232",
777
+ "editorIndentGuide.activeBackground1": "#2a3548",
778
+ "editorBracketMatch.background": "#8fb8ff30",
779
+ "editorBracketMatch.border": "#8fb8ff45",
780
+ "editorGutter.background": "#0c1220",
781
+ "editorWidget.background": "#0c1220",
782
+ "editorWidget.border": "#8fb8ff28",
783
+ "editorSuggestWidget.background": "#0c1220",
784
+ "editorSuggestWidget.border": "#8fb8ff28",
785
+ "editorSuggestWidget.foreground": "#e6e9ef",
786
+ "editorSuggestWidget.selectedBackground": "#3464a8",
787
+ "editorSuggestWidget.highlightForeground": "#8fb8ff",
788
+ "editorHoverWidget.background": "#0c1220",
789
+ "editorHoverWidget.border": "#8fb8ff28",
790
+ "list.hoverBackground": "#3464a838",
791
+ "scrollbarSlider.background": "#8fb8ff18",
792
+ "scrollbarSlider.hoverBackground": "#8fb8ff28",
793
+ "scrollbarSlider.activeBackground": "#8fb8ff3c"
794
+ }
795
+ });
796
+ function ut({ value: e, onChange: t, onRun: n, minHeight: r = "260px" }) {
797
+ let i = b(n);
798
+ return i.current = n, /* @__PURE__ */ S("div", {
799
+ className: "script-code-editor",
800
+ style: { minHeight: r },
801
+ children: /* @__PURE__ */ S(et, {
802
+ height: "100%",
803
+ defaultLanguage: "javascript",
804
+ theme: "mme-dark",
805
+ value: e,
806
+ onChange: (e) => t(e ?? ""),
807
+ onMount: (e, t) => {
808
+ e.addCommand(t.KeyMod.CtrlCmd | t.KeyCode.Enter, () => i.current());
809
+ let n = () => {
810
+ t.editor.remeasureFonts(), e.layout();
811
+ };
812
+ requestAnimationFrame(n), typeof document < "u" && "fonts" in document && document.fonts.ready.then(n).catch(() => {});
813
+ },
814
+ loading: /* @__PURE__ */ C("div", {
815
+ className: "script-editor-loading",
816
+ role: "status",
817
+ "aria-live": "polite",
818
+ children: [/* @__PURE__ */ S("div", { className: "script-editor-loading-bar" }), /* @__PURE__ */ S("span", { children: "Loading editor…" })]
819
+ }),
820
+ options: {
821
+ fontFamily: "'Consolas', 'Menlo', 'Monaco', monospace",
822
+ fontSize: 12,
823
+ lineNumbers: "on",
824
+ minimap: { enabled: !1 },
825
+ scrollBeyondLastLine: !1,
826
+ automaticLayout: !0,
827
+ tabSize: 2,
828
+ insertSpaces: !0,
829
+ wordWrap: "off",
830
+ renderLineHighlight: "line",
831
+ cursorBlinking: "smooth",
832
+ smoothScrolling: !0,
833
+ padding: {
834
+ top: 8,
835
+ bottom: 8
836
+ },
837
+ bracketPairColorization: { enabled: !0 },
838
+ guides: { indentation: !0 },
839
+ fixedOverflowWidgets: !0
840
+ }
841
+ })
842
+ });
843
+ }
844
+ //#endregion
845
+ export { ut as default };