deck.gl 9.2.8 → 9.2.9

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/dist/dist.dev.js CHANGED
@@ -52,10 +52,10 @@ var __exports__ = (() => {
52
52
  return value;
53
53
  };
54
54
 
55
- // ../../node_modules/@probe.gl/env/dist/lib/globals.js
55
+ // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/globals.js
56
56
  var window_2, document_2, process_, console_, navigator_;
57
57
  var init_globals = __esm({
58
- "../../node_modules/@probe.gl/env/dist/lib/globals.js"() {
58
+ "../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/globals.js"() {
59
59
  window_2 = globalThis;
60
60
  document_2 = globalThis.document || {};
61
61
  process_ = globalThis.process || {};
@@ -64,7 +64,7 @@ var __exports__ = (() => {
64
64
  }
65
65
  });
66
66
 
67
- // ../../node_modules/@probe.gl/env/dist/lib/is-electron.js
67
+ // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-electron.js
68
68
  function isElectron(mockUserAgent) {
69
69
  if (typeof window !== "undefined" && window.process?.type === "renderer") {
70
70
  return true;
@@ -77,11 +77,11 @@ var __exports__ = (() => {
77
77
  return Boolean(userAgent2 && userAgent2.indexOf("Electron") >= 0);
78
78
  }
79
79
  var init_is_electron = __esm({
80
- "../../node_modules/@probe.gl/env/dist/lib/is-electron.js"() {
80
+ "../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-electron.js"() {
81
81
  }
82
82
  });
83
83
 
84
- // ../../node_modules/@probe.gl/env/dist/lib/is-browser.js
84
+ // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-browser.js
85
85
  function isBrowser2() {
86
86
  const isNode = (
87
87
  // @ts-expect-error
@@ -90,50 +90,165 @@ var __exports__ = (() => {
90
90
  return !isNode || isElectron();
91
91
  }
92
92
  var init_is_browser = __esm({
93
- "../../node_modules/@probe.gl/env/dist/lib/is-browser.js"() {
93
+ "../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-browser.js"() {
94
94
  init_is_electron();
95
95
  }
96
96
  });
97
97
 
98
- // ../../node_modules/@probe.gl/env/dist/lib/get-browser.js
99
- function getBrowser(mockUserAgent) {
100
- if (!mockUserAgent && !isBrowser2()) {
101
- return "Node";
98
+ // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/index.js
99
+ var VERSION;
100
+ var init_dist = __esm({
101
+ "../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/index.js"() {
102
+ init_globals();
103
+ init_is_browser();
104
+ VERSION = true ? "4.1.1" : "untranspiled source";
102
105
  }
103
- if (isElectron(mockUserAgent)) {
104
- return "Electron";
106
+ });
107
+
108
+ // ../../node_modules/@probe.gl/log/dist/utils/assert.js
109
+ function assert3(condition, message2) {
110
+ if (!condition) {
111
+ throw new Error(message2 || "Assertion failed");
105
112
  }
106
- const userAgent2 = mockUserAgent || navigator_.userAgent || "";
107
- if (userAgent2.indexOf("Edge") > -1) {
108
- return "Edge";
113
+ }
114
+ var init_assert = __esm({
115
+ "../../node_modules/@probe.gl/log/dist/utils/assert.js"() {
109
116
  }
110
- if (globalThis.chrome) {
111
- return "Chrome";
117
+ });
118
+
119
+ // ../../node_modules/@probe.gl/log/dist/loggers/log-utils.js
120
+ function normalizeLogLevel(logLevel) {
121
+ if (!logLevel) {
122
+ return 0;
112
123
  }
113
- if (globalThis.safari) {
114
- return "Safari";
124
+ let resolvedLevel;
125
+ switch (typeof logLevel) {
126
+ case "number":
127
+ resolvedLevel = logLevel;
128
+ break;
129
+ case "object":
130
+ resolvedLevel = logLevel.logLevel || logLevel.priority || 0;
131
+ break;
132
+ default:
133
+ return 0;
115
134
  }
116
- if (globalThis.mozInnerScreenX) {
117
- return "Firefox";
135
+ assert3(Number.isFinite(resolvedLevel) && resolvedLevel >= 0);
136
+ return resolvedLevel;
137
+ }
138
+ function normalizeArguments(opts) {
139
+ const { logLevel, message: message2 } = opts;
140
+ opts.logLevel = normalizeLogLevel(logLevel);
141
+ const args = opts.args ? Array.from(opts.args) : [];
142
+ while (args.length && args.shift() !== message2) {
118
143
  }
119
- return "Unknown";
144
+ switch (typeof logLevel) {
145
+ case "string":
146
+ case "function":
147
+ if (message2 !== void 0) {
148
+ args.unshift(message2);
149
+ }
150
+ opts.message = logLevel;
151
+ break;
152
+ case "object":
153
+ Object.assign(opts, logLevel);
154
+ break;
155
+ default:
156
+ }
157
+ if (typeof opts.message === "function") {
158
+ opts.message = opts.message();
159
+ }
160
+ const messageType = typeof opts.message;
161
+ assert3(messageType === "string" || messageType === "object");
162
+ return Object.assign(opts, { args }, opts.opts);
120
163
  }
121
- var init_get_browser = __esm({
122
- "../../node_modules/@probe.gl/env/dist/lib/get-browser.js"() {
123
- init_is_browser();
124
- init_is_electron();
125
- init_globals();
164
+ var init_log_utils = __esm({
165
+ "../../node_modules/@probe.gl/log/dist/loggers/log-utils.js"() {
166
+ init_assert();
126
167
  }
127
168
  });
128
169
 
129
- // ../../node_modules/@probe.gl/env/dist/index.js
130
- var VERSION;
131
- var init_dist = __esm({
132
- "../../node_modules/@probe.gl/env/dist/index.js"() {
133
- init_globals();
134
- init_is_browser();
135
- init_get_browser();
136
- VERSION = true ? "4.1.0" : "untranspiled source";
170
+ // ../../node_modules/@probe.gl/log/dist/loggers/base-log.js
171
+ var noop, BaseLog;
172
+ var init_base_log = __esm({
173
+ "../../node_modules/@probe.gl/log/dist/loggers/base-log.js"() {
174
+ init_log_utils();
175
+ noop = () => {
176
+ };
177
+ BaseLog = class {
178
+ constructor({ level = 0 } = {}) {
179
+ this.userData = {};
180
+ this._onceCache = /* @__PURE__ */ new Set();
181
+ this._level = level;
182
+ }
183
+ set level(newLevel) {
184
+ this.setLevel(newLevel);
185
+ }
186
+ get level() {
187
+ return this.getLevel();
188
+ }
189
+ setLevel(level) {
190
+ this._level = level;
191
+ return this;
192
+ }
193
+ getLevel() {
194
+ return this._level;
195
+ }
196
+ // Unconditional logging
197
+ warn(message2, ...args) {
198
+ return this._log("warn", 0, message2, args, { once: true });
199
+ }
200
+ error(message2, ...args) {
201
+ return this._log("error", 0, message2, args);
202
+ }
203
+ // Conditional logging
204
+ log(logLevel, message2, ...args) {
205
+ return this._log("log", logLevel, message2, args);
206
+ }
207
+ info(logLevel, message2, ...args) {
208
+ return this._log("info", logLevel, message2, args);
209
+ }
210
+ once(logLevel, message2, ...args) {
211
+ return this._log("once", logLevel, message2, args, { once: true });
212
+ }
213
+ _log(type, logLevel, message2, args, options = {}) {
214
+ const normalized = normalizeArguments({
215
+ logLevel,
216
+ message: message2,
217
+ args: this._buildArgs(logLevel, message2, args),
218
+ opts: options
219
+ });
220
+ return this._createLogFunction(type, normalized, options);
221
+ }
222
+ _buildArgs(logLevel, message2, args) {
223
+ return [logLevel, message2, ...args];
224
+ }
225
+ _createLogFunction(type, normalized, options) {
226
+ if (!this._shouldLog(normalized.logLevel)) {
227
+ return noop;
228
+ }
229
+ const tag = this._getOnceTag(options.tag ?? normalized.tag ?? normalized.message);
230
+ if ((options.once || normalized.once) && tag !== void 0) {
231
+ if (this._onceCache.has(tag)) {
232
+ return noop;
233
+ }
234
+ this._onceCache.add(tag);
235
+ }
236
+ return this._emit(type, normalized);
237
+ }
238
+ _shouldLog(logLevel) {
239
+ return this.getLevel() >= normalizeLogLevel(logLevel);
240
+ }
241
+ _getOnceTag(tag) {
242
+ if (tag === void 0) {
243
+ return void 0;
244
+ }
245
+ try {
246
+ return typeof tag === "string" ? tag : String(tag);
247
+ } catch {
248
+ return void 0;
249
+ }
250
+ }
251
+ };
137
252
  }
138
253
  });
139
254
 
@@ -272,17 +387,6 @@ var __exports__ = (() => {
272
387
  }
273
388
  });
274
389
 
275
- // ../../node_modules/@probe.gl/log/dist/utils/assert.js
276
- function assert3(condition, message2) {
277
- if (!condition) {
278
- throw new Error(message2 || "Assertion failed");
279
- }
280
- }
281
- var init_assert = __esm({
282
- "../../node_modules/@probe.gl/log/dist/utils/assert.js"() {
283
- }
284
- });
285
-
286
390
  // ../../node_modules/@probe.gl/log/dist/utils/hi-res-timestamp.js
287
391
  function getHiResTimestamp() {
288
392
  let timestamp;
@@ -302,53 +406,7 @@ var __exports__ = (() => {
302
406
  }
303
407
  });
304
408
 
305
- // ../../node_modules/@probe.gl/log/dist/log.js
306
- function noop() {
307
- }
308
- function normalizeLogLevel(logLevel) {
309
- if (!logLevel) {
310
- return 0;
311
- }
312
- let resolvedLevel;
313
- switch (typeof logLevel) {
314
- case "number":
315
- resolvedLevel = logLevel;
316
- break;
317
- case "object":
318
- resolvedLevel = logLevel.logLevel || logLevel.priority || 0;
319
- break;
320
- default:
321
- return 0;
322
- }
323
- assert3(Number.isFinite(resolvedLevel) && resolvedLevel >= 0);
324
- return resolvedLevel;
325
- }
326
- function normalizeArguments(opts) {
327
- const { logLevel, message: message2 } = opts;
328
- opts.logLevel = normalizeLogLevel(logLevel);
329
- const args = opts.args ? Array.from(opts.args) : [];
330
- while (args.length && args.shift() !== message2) {
331
- }
332
- switch (typeof logLevel) {
333
- case "string":
334
- case "function":
335
- if (message2 !== void 0) {
336
- args.unshift(message2);
337
- }
338
- opts.message = logLevel;
339
- break;
340
- case "object":
341
- Object.assign(opts, logLevel);
342
- break;
343
- default:
344
- }
345
- if (typeof opts.message === "function") {
346
- opts.message = opts.message();
347
- }
348
- const messageType = typeof opts.message;
349
- assert3(messageType === "string" || messageType === "object");
350
- return Object.assign(opts, { args }, opts.opts);
351
- }
409
+ // ../../node_modules/@probe.gl/log/dist/loggers/probe-log.js
352
410
  function decorateMessage(id, message2, opts) {
353
411
  if (typeof message2 === "string") {
354
412
  const time = opts.time ? leftPad(formatTime(opts.total)) : "";
@@ -365,10 +423,11 @@ var __exports__ = (() => {
365
423
  }
366
424
  return "empty";
367
425
  }
368
- var originalConsole, DEFAULT_LOG_CONFIGURATION, cache, ONCE, Log;
369
- var init_log = __esm({
370
- "../../node_modules/@probe.gl/log/dist/log.js"() {
426
+ var originalConsole, DEFAULT_LOG_CONFIGURATION, ProbeLog;
427
+ var init_probe_log = __esm({
428
+ "../../node_modules/@probe.gl/log/dist/loggers/probe-log.js"() {
371
429
  init_dist();
430
+ init_base_log();
372
431
  init_local_storage();
373
432
  init_formatters();
374
433
  init_color();
@@ -386,10 +445,9 @@ var __exports__ = (() => {
386
445
  enabled: true,
387
446
  level: 0
388
447
  };
389
- cache = {};
390
- ONCE = { once: true };
391
- Log = class {
448
+ ProbeLog = class extends BaseLog {
392
449
  constructor({ id } = { id: "" }) {
450
+ super({ level: 0 });
393
451
  this.VERSION = VERSION;
394
452
  this._startTs = getHiResTimestamp();
395
453
  this._deltaTs = getHiResTimestamp();
@@ -397,22 +455,16 @@ var __exports__ = (() => {
397
455
  this.LOG_THROTTLE_TIMEOUT = 0;
398
456
  this.id = id;
399
457
  this.userData = {};
400
- this._storage = new LocalStorage(`__probe-${this.id}__`, DEFAULT_LOG_CONFIGURATION);
458
+ this._storage = new LocalStorage(`__probe-${this.id}__`, { [this.id]: DEFAULT_LOG_CONFIGURATION });
401
459
  this.timeStamp(`${this.id} started`);
402
460
  autobind(this);
403
461
  Object.seal(this);
404
462
  }
405
- set level(newLevel) {
406
- this.setLevel(newLevel);
407
- }
408
- get level() {
409
- return this.getLevel();
410
- }
411
463
  isEnabled() {
412
- return this._storage.config.enabled;
464
+ return this._getConfiguration().enabled;
413
465
  }
414
466
  getLevel() {
415
- return this._storage.config.level;
467
+ return this._getConfiguration().level;
416
468
  }
417
469
  /** @return milliseconds, with fractions */
418
470
  getTotal() {
@@ -436,20 +488,20 @@ var __exports__ = (() => {
436
488
  }
437
489
  // Configure
438
490
  enable(enabled = true) {
439
- this._storage.setConfiguration({ enabled });
491
+ this._updateConfiguration({ enabled });
440
492
  return this;
441
493
  }
442
494
  setLevel(level) {
443
- this._storage.setConfiguration({ level });
495
+ this._updateConfiguration({ level });
444
496
  return this;
445
497
  }
446
498
  /** return the current status of the setting */
447
499
  get(setting) {
448
- return this._storage.config[setting];
500
+ return this._getConfiguration()[setting];
449
501
  }
450
502
  // update the status of the setting
451
503
  set(setting, value) {
452
- this._storage.setConfiguration({ [setting]: value });
504
+ this._updateConfiguration({ [setting]: value });
453
505
  }
454
506
  /** Logs the current settings as a table */
455
507
  settings() {
@@ -465,11 +517,16 @@ var __exports__ = (() => {
465
517
  throw new Error(message2 || "Assertion failed");
466
518
  }
467
519
  }
468
- warn(message2) {
469
- return this._getLogFunction(0, message2, originalConsole.warn, arguments, ONCE);
520
+ warn(message2, ...args) {
521
+ return this._log("warn", 0, message2, args, {
522
+ method: originalConsole.warn,
523
+ once: true
524
+ });
470
525
  }
471
- error(message2) {
472
- return this._getLogFunction(0, message2, originalConsole.error, arguments);
526
+ error(message2, ...args) {
527
+ return this._log("error", 0, message2, args, {
528
+ method: originalConsole.error
529
+ });
473
530
  }
474
531
  /** Print a deprecation warning */
475
532
  deprecated(oldUsage, newUsage) {
@@ -479,50 +536,63 @@ var __exports__ = (() => {
479
536
  removed(oldUsage, newUsage) {
480
537
  return this.error(`\`${oldUsage}\` has been removed. Use \`${newUsage}\` instead`);
481
538
  }
482
- probe(logLevel, message2) {
483
- return this._getLogFunction(logLevel, message2, originalConsole.log, arguments, {
539
+ probe(logLevel, message2, ...args) {
540
+ return this._log("log", logLevel, message2, args, {
541
+ method: originalConsole.log,
484
542
  time: true,
485
543
  once: true
486
544
  });
487
545
  }
488
- log(logLevel, message2) {
489
- return this._getLogFunction(logLevel, message2, originalConsole.debug, arguments);
546
+ log(logLevel, message2, ...args) {
547
+ return this._log("log", logLevel, message2, args, {
548
+ method: originalConsole.debug
549
+ });
490
550
  }
491
- info(logLevel, message2) {
492
- return this._getLogFunction(logLevel, message2, console.info, arguments);
551
+ info(logLevel, message2, ...args) {
552
+ return this._log("info", logLevel, message2, args, { method: console.info });
493
553
  }
494
- once(logLevel, message2) {
495
- return this._getLogFunction(logLevel, message2, originalConsole.debug || originalConsole.info, arguments, ONCE);
554
+ once(logLevel, message2, ...args) {
555
+ return this._log("once", logLevel, message2, args, {
556
+ method: originalConsole.debug || originalConsole.info,
557
+ once: true
558
+ });
496
559
  }
497
560
  /** Logs an object as a table */
498
561
  table(logLevel, table, columns) {
499
562
  if (table) {
500
- return this._getLogFunction(logLevel, table, console.table || noop, columns && [columns], {
563
+ return this._log("table", logLevel, table, columns && [columns] || [], {
564
+ method: console.table || noop,
501
565
  tag: getTableHeader(table)
502
566
  });
503
567
  }
504
568
  return noop;
505
569
  }
506
570
  time(logLevel, message2) {
507
- return this._getLogFunction(logLevel, message2, console.time ? console.time : console.info);
571
+ return this._log("time", logLevel, message2, [], {
572
+ method: console.time ? console.time : console.info
573
+ });
508
574
  }
509
575
  timeEnd(logLevel, message2) {
510
- return this._getLogFunction(logLevel, message2, console.timeEnd ? console.timeEnd : console.info);
576
+ return this._log("time", logLevel, message2, [], {
577
+ method: console.timeEnd ? console.timeEnd : console.info
578
+ });
511
579
  }
512
580
  timeStamp(logLevel, message2) {
513
- return this._getLogFunction(logLevel, message2, console.timeStamp || noop);
581
+ return this._log("time", logLevel, message2, [], {
582
+ method: console.timeStamp || noop
583
+ });
514
584
  }
515
585
  group(logLevel, message2, opts = { collapsed: false }) {
516
- const options = normalizeArguments({ logLevel, message: message2, opts });
517
- const { collapsed } = opts;
518
- options.method = (collapsed ? console.groupCollapsed : console.group) || console.info;
519
- return this._getLogFunction(options);
586
+ const method = (opts.collapsed ? console.groupCollapsed : console.group) || console.info;
587
+ return this._log("group", logLevel, message2, [], { method });
520
588
  }
521
589
  groupCollapsed(logLevel, message2, opts = {}) {
522
590
  return this.group(logLevel, message2, Object.assign({}, opts, { collapsed: true }));
523
591
  }
524
592
  groupEnd(logLevel) {
525
- return this._getLogFunction(logLevel, "", console.groupEnd || noop);
593
+ return this._log("groupEnd", logLevel, "", [], {
594
+ method: console.groupEnd || noop
595
+ });
526
596
  }
527
597
  // EXPERIMENTAL
528
598
  withGroup(logLevel, message2, func) {
@@ -538,34 +608,34 @@ var __exports__ = (() => {
538
608
  console.trace();
539
609
  }
540
610
  }
541
- // PRIVATE METHODS
542
- /** Deduces log level from a variety of arguments */
543
611
  _shouldLog(logLevel) {
544
- return this.isEnabled() && this.getLevel() >= normalizeLogLevel(logLevel);
545
- }
546
- _getLogFunction(logLevel, message2, method, args, opts) {
547
- if (this._shouldLog(logLevel)) {
548
- opts = normalizeArguments({ logLevel, message: message2, args, opts });
549
- method = method || opts.method;
550
- assert3(method);
551
- opts.total = this.getTotal();
552
- opts.delta = this.getDelta();
553
- this._deltaTs = getHiResTimestamp();
554
- const tag = opts.tag || opts.message;
555
- if (opts.once && tag) {
556
- if (!cache[tag]) {
557
- cache[tag] = getHiResTimestamp();
558
- } else {
559
- return noop;
560
- }
561
- }
562
- message2 = decorateMessage(this.id, opts.message, opts);
563
- return method.bind(console, message2, ...opts.args);
612
+ return this.isEnabled() && super._shouldLog(logLevel);
613
+ }
614
+ _emit(_type, normalized) {
615
+ const method = normalized.method;
616
+ assert3(method);
617
+ normalized.total = this.getTotal();
618
+ normalized.delta = this.getDelta();
619
+ this._deltaTs = getHiResTimestamp();
620
+ const message2 = decorateMessage(this.id, normalized.message, normalized);
621
+ return method.bind(console, message2, ...normalized.args);
622
+ }
623
+ _getConfiguration() {
624
+ if (!this._storage.config[this.id]) {
625
+ this._updateConfiguration(DEFAULT_LOG_CONFIGURATION);
564
626
  }
565
- return noop;
627
+ return this._storage.config[this.id];
628
+ }
629
+ _updateConfiguration(configuration) {
630
+ const currentConfiguration = this._storage.config[this.id] || {
631
+ ...DEFAULT_LOG_CONFIGURATION
632
+ };
633
+ this._storage.setConfiguration({
634
+ [this.id]: { ...currentConfiguration, ...configuration }
635
+ });
566
636
  }
567
637
  };
568
- Log.VERSION = VERSION;
638
+ ProbeLog.VERSION = VERSION;
569
639
  }
570
640
  });
571
641
 
@@ -580,10 +650,10 @@ var __exports__ = (() => {
580
650
  var dist_default;
581
651
  var init_dist2 = __esm({
582
652
  "../../node_modules/@probe.gl/log/dist/index.js"() {
583
- init_log();
584
- init_log();
653
+ init_probe_log();
654
+ init_probe_log();
585
655
  init_init();
586
- dist_default = new Log({ id: "@probe.gl/log" });
656
+ dist_default = new ProbeLog({ id: "@probe.gl/log" });
587
657
  }
588
658
  });
589
659
 
@@ -828,10 +898,10 @@ var __exports__ = (() => {
828
898
 
829
899
  // ../../node_modules/@luma.gl/core/dist/utils/log.js
830
900
  var log2;
831
- var init_log2 = __esm({
901
+ var init_log = __esm({
832
902
  "../../node_modules/@luma.gl/core/dist/utils/log.js"() {
833
903
  init_dist2();
834
- log2 = new Log({ id: "luma.gl" });
904
+ log2 = new ProbeLog({ id: "luma.gl" });
835
905
  }
836
906
  });
837
907
 
@@ -1593,7 +1663,7 @@ var __exports__ = (() => {
1593
1663
  var init_device = __esm({
1594
1664
  "../../node_modules/@luma.gl/core/dist/adapter/device.js"() {
1595
1665
  init_stats_manager();
1596
- init_log2();
1666
+ init_log();
1597
1667
  init_uid();
1598
1668
  init_buffer();
1599
1669
  init_decode_vertex_format();
@@ -1894,7 +1964,7 @@ or create a device with the 'debug: true' prop.`;
1894
1964
  "../../node_modules/@luma.gl/core/dist/adapter/luma.js"() {
1895
1965
  init_device();
1896
1966
  init_stats_manager();
1897
- init_log2();
1967
+ init_log();
1898
1968
  STARTUP_MESSAGE = "set luma.log.level=1 (or higher) to trace rendering";
1899
1969
  ERROR_MESSAGE = "No matching device found. Ensure `@luma.gl/webgl` and/or `@luma.gl/webgpu` modules are imported.";
1900
1970
  _Luma = class {
@@ -2045,6 +2115,87 @@ or create a device with the 'debug: true' prop.`;
2045
2115
  }
2046
2116
  });
2047
2117
 
2118
+ // ../../node_modules/@probe.gl/env/dist/lib/globals.js
2119
+ var document_4, process_2, console_2, navigator_2;
2120
+ var init_globals2 = __esm({
2121
+ "../../node_modules/@probe.gl/env/dist/lib/globals.js"() {
2122
+ document_4 = globalThis.document || {};
2123
+ process_2 = globalThis.process || {};
2124
+ console_2 = globalThis.console;
2125
+ navigator_2 = globalThis.navigator || {};
2126
+ }
2127
+ });
2128
+
2129
+ // ../../node_modules/@probe.gl/env/dist/lib/is-electron.js
2130
+ function isElectron2(mockUserAgent) {
2131
+ if (typeof window !== "undefined" && window.process?.type === "renderer") {
2132
+ return true;
2133
+ }
2134
+ if (typeof process !== "undefined" && Boolean(process.versions?.["electron"])) {
2135
+ return true;
2136
+ }
2137
+ const realUserAgent = typeof navigator !== "undefined" && navigator.userAgent;
2138
+ const userAgent2 = mockUserAgent || realUserAgent;
2139
+ return Boolean(userAgent2 && userAgent2.indexOf("Electron") >= 0);
2140
+ }
2141
+ var init_is_electron2 = __esm({
2142
+ "../../node_modules/@probe.gl/env/dist/lib/is-electron.js"() {
2143
+ }
2144
+ });
2145
+
2146
+ // ../../node_modules/@probe.gl/env/dist/lib/is-browser.js
2147
+ function isBrowser4() {
2148
+ const isNode = (
2149
+ // @ts-expect-error
2150
+ typeof process === "object" && String(process) === "[object process]" && !process?.browser
2151
+ );
2152
+ return !isNode || isElectron2();
2153
+ }
2154
+ var init_is_browser2 = __esm({
2155
+ "../../node_modules/@probe.gl/env/dist/lib/is-browser.js"() {
2156
+ init_is_electron2();
2157
+ }
2158
+ });
2159
+
2160
+ // ../../node_modules/@probe.gl/env/dist/lib/get-browser.js
2161
+ function getBrowser(mockUserAgent) {
2162
+ if (!mockUserAgent && !isBrowser4()) {
2163
+ return "Node";
2164
+ }
2165
+ if (isElectron2(mockUserAgent)) {
2166
+ return "Electron";
2167
+ }
2168
+ const userAgent2 = mockUserAgent || navigator_2.userAgent || "";
2169
+ if (userAgent2.indexOf("Edge") > -1) {
2170
+ return "Edge";
2171
+ }
2172
+ if (globalThis.chrome) {
2173
+ return "Chrome";
2174
+ }
2175
+ if (globalThis.safari) {
2176
+ return "Safari";
2177
+ }
2178
+ if (globalThis.mozInnerScreenX) {
2179
+ return "Firefox";
2180
+ }
2181
+ return "Unknown";
2182
+ }
2183
+ var init_get_browser = __esm({
2184
+ "../../node_modules/@probe.gl/env/dist/lib/get-browser.js"() {
2185
+ init_is_browser2();
2186
+ init_is_electron2();
2187
+ init_globals2();
2188
+ }
2189
+ });
2190
+
2191
+ // ../../node_modules/@probe.gl/env/dist/index.js
2192
+ var init_dist4 = __esm({
2193
+ "../../node_modules/@probe.gl/env/dist/index.js"() {
2194
+ init_is_browser2();
2195
+ init_get_browser();
2196
+ }
2197
+ });
2198
+
2048
2199
  // ../../node_modules/@luma.gl/core/dist/adapter/adapter.js
2049
2200
  function getPageLoadPromise() {
2050
2201
  if (!pageLoadPromise) {
@@ -2059,7 +2210,7 @@ or create a device with the 'debug: true' prop.`;
2059
2210
  var Adapter, isPage, isPageLoaded, pageLoadPromise;
2060
2211
  var init_adapter = __esm({
2061
2212
  "../../node_modules/@luma.gl/core/dist/adapter/adapter.js"() {
2062
- init_dist();
2213
+ init_dist4();
2063
2214
  Adapter = class {
2064
2215
  /**
2065
2216
  * Page load promise
@@ -2072,7 +2223,7 @@ or create a device with the 'debug: true' prop.`;
2072
2223
  return getPageLoadPromise();
2073
2224
  }
2074
2225
  };
2075
- isPage = isBrowser2() && typeof document !== "undefined";
2226
+ isPage = isBrowser4() && typeof document !== "undefined";
2076
2227
  isPageLoaded = () => isPage && document.readyState === "complete";
2077
2228
  pageLoadPromise = null;
2078
2229
  }
@@ -2162,7 +2313,7 @@ or create a device with the 'debug: true' prop.`;
2162
2313
  var _CanvasContext, CanvasContext;
2163
2314
  var init_canvas_context = __esm({
2164
2315
  "../../node_modules/@luma.gl/core/dist/adapter/canvas-context.js"() {
2165
- init_dist();
2316
+ init_dist4();
2166
2317
  init_uid();
2167
2318
  init_promise_utils();
2168
2319
  _CanvasContext = class {
@@ -2211,7 +2362,7 @@ or create a device with the 'debug: true' prop.`;
2211
2362
  this.props = { ..._CanvasContext.defaultProps, ...props };
2212
2363
  props = this.props;
2213
2364
  this.initialized = this._initializedResolvers.promise;
2214
- if (!isBrowser2()) {
2365
+ if (!isBrowser4()) {
2215
2366
  this.canvas = { width: props.width || 1, height: props.height || 1 };
2216
2367
  } else if (!props.canvas) {
2217
2368
  this.canvas = createCanvasElement(props);
@@ -2497,7 +2648,7 @@ or create a device with the 'debug: true' prop.`;
2497
2648
  "../../node_modules/@luma.gl/core/dist/adapter/resources/texture.js"() {
2498
2649
  init_resource();
2499
2650
  init_sampler();
2500
- init_log2();
2651
+ init_log();
2501
2652
  BASE_DIMENSIONS = {
2502
2653
  "1d": "1d",
2503
2654
  "2d": "2d",
@@ -2916,7 +3067,7 @@ ${htmlLog}
2916
3067
  "../../node_modules/@luma.gl/core/dist/adapter/resources/framebuffer.js"() {
2917
3068
  init_resource();
2918
3069
  init_texture();
2919
- init_log2();
3070
+ init_log();
2920
3071
  _Framebuffer = class extends Resource {
2921
3072
  get [Symbol.toStringTag]() {
2922
3073
  return "Framebuffer";
@@ -3483,7 +3634,7 @@ ${htmlLog}
3483
3634
  }
3484
3635
  var init_get_attribute_from_layouts = __esm({
3485
3636
  "../../node_modules/@luma.gl/core/dist/adapter-utils/get-attribute-from-layouts.js"() {
3486
- init_log2();
3637
+ init_log();
3487
3638
  init_decode_shader_types();
3488
3639
  init_decode_vertex_format();
3489
3640
  }
@@ -3612,7 +3763,7 @@ ${htmlLog}
3612
3763
  init_decode_shader_types();
3613
3764
  init_array_utils_flat();
3614
3765
  init_is_array();
3615
- init_log2();
3766
+ init_log();
3616
3767
  minBufferSize = 1024;
3617
3768
  UniformBufferLayout = class {
3618
3769
  layout = {};
@@ -3773,7 +3924,7 @@ ${htmlLog}
3773
3924
  var init_uniform_store = __esm({
3774
3925
  "../../node_modules/@luma.gl/core/dist/portable/uniform-store.js"() {
3775
3926
  init_buffer();
3776
- init_log2();
3927
+ init_log();
3777
3928
  init_uniform_block();
3778
3929
  init_uniform_buffer_layout();
3779
3930
  UniformStore = class {
@@ -3883,7 +4034,7 @@ ${htmlLog}
3883
4034
  });
3884
4035
 
3885
4036
  // ../../node_modules/@luma.gl/core/dist/index.js
3886
- var init_dist4 = __esm({
4037
+ var init_dist5 = __esm({
3887
4038
  "../../node_modules/@luma.gl/core/dist/index.js"() {
3888
4039
  init_luma();
3889
4040
  init_adapter();
@@ -3908,7 +4059,7 @@ ${htmlLog}
3908
4059
  init_decode_shader_types();
3909
4060
  init_decode_vertex_format();
3910
4061
  init_texture_format_decoder();
3911
- init_log2();
4062
+ init_log();
3912
4063
  init_array_utils_flat();
3913
4064
  init_get_attribute_from_layouts();
3914
4065
  }
@@ -4570,7 +4721,7 @@ ${htmlLog}
4570
4721
  });
4571
4722
 
4572
4723
  // ../../node_modules/@luma.gl/constants/dist/index.js
4573
- var init_dist5 = __esm({
4724
+ var init_dist6 = __esm({
4574
4725
  "../../node_modules/@luma.gl/constants/dist/index.js"() {
4575
4726
  init_webgl_constants();
4576
4727
  }
@@ -4760,7 +4911,7 @@ ${htmlLog}
4760
4911
  var LOG_LEVEL, spector, initialized, DEFAULT_SPECTOR_PROPS;
4761
4912
  var init_spector = __esm({
4762
4913
  "../../node_modules/@luma.gl/webgl/dist/context/debug/spector.js"() {
4763
- init_dist4();
4914
+ init_dist5();
4764
4915
  init_load_script();
4765
4916
  LOG_LEVEL = 1;
4766
4917
  spector = null;
@@ -4782,7 +4933,7 @@ ${htmlLog}
4782
4933
  return gl.luma;
4783
4934
  }
4784
4935
  async function loadWebGLDeveloperTools() {
4785
- if (isBrowser2() && !globalThis.WebGLDebugUtils) {
4936
+ if (isBrowser4() && !globalThis.WebGLDebugUtils) {
4786
4937
  globalThis.global = globalThis.global || globalThis;
4787
4938
  globalThis.global.module = {};
4788
4939
  await loadScript(WEBGL_DEBUG_CDN_URL);
@@ -4853,9 +5004,9 @@ ${htmlLog}
4853
5004
  var WEBGL_DEBUG_CDN_URL;
4854
5005
  var init_webgl_developer_tools = __esm({
4855
5006
  "../../node_modules/@luma.gl/webgl/dist/context/debug/webgl-developer-tools.js"() {
4856
- init_dist4();
4857
5007
  init_dist5();
4858
- init_dist();
5008
+ init_dist6();
5009
+ init_dist4();
4859
5010
  init_load_script();
4860
5011
  WEBGL_DEBUG_CDN_URL = "https://unpkg.com/webgl-debug@2.0.1/index.js";
4861
5012
  }
@@ -4865,8 +5016,8 @@ ${htmlLog}
4865
5016
  function isArray2(array) {
4866
5017
  return Array.isArray(array) || ArrayBuffer.isView(array) && !(array instanceof DataView);
4867
5018
  }
4868
- function getValue(glEnum, values, cache3) {
4869
- return values[glEnum] !== void 0 ? values[glEnum] : cache3[glEnum];
5019
+ function getValue(glEnum, values, cache2) {
5020
+ return values[glEnum] !== void 0 ? values[glEnum] : cache2[glEnum];
4870
5021
  }
4871
5022
  var GL_PARAMETER_DEFAULTS, enable, hint, pixelStorei, bindFramebuffer, bindBuffer, GL_PARAMETER_SETTERS, GL_COMPOSITE_PARAMETER_SETTERS, GL_HOOKED_SETTERS, isEnabled, GL_PARAMETER_GETTERS, NON_CACHE_PARAMETERS;
4872
5023
  var init_webgl_parameter_tables = __esm({
@@ -5122,14 +5273,14 @@ ${htmlLog}
5122
5273
  viewport: (gl, value) => gl.viewport(...value)
5123
5274
  };
5124
5275
  GL_COMPOSITE_PARAMETER_SETTERS = {
5125
- blendEquation: (gl, values, cache3) => gl.blendEquationSeparate(getValue(32777, values, cache3), getValue(34877, values, cache3)),
5126
- blendFunc: (gl, values, cache3) => gl.blendFuncSeparate(getValue(32969, values, cache3), getValue(32968, values, cache3), getValue(32971, values, cache3), getValue(32970, values, cache3)),
5127
- polygonOffset: (gl, values, cache3) => gl.polygonOffset(getValue(32824, values, cache3), getValue(10752, values, cache3)),
5128
- sampleCoverage: (gl, values, cache3) => gl.sampleCoverage(getValue(32938, values, cache3), getValue(32939, values, cache3)),
5129
- stencilFuncFront: (gl, values, cache3) => gl.stencilFuncSeparate(1028, getValue(2962, values, cache3), getValue(2967, values, cache3), getValue(2963, values, cache3)),
5130
- stencilFuncBack: (gl, values, cache3) => gl.stencilFuncSeparate(1029, getValue(34816, values, cache3), getValue(36003, values, cache3), getValue(36004, values, cache3)),
5131
- stencilOpFront: (gl, values, cache3) => gl.stencilOpSeparate(1028, getValue(2964, values, cache3), getValue(2965, values, cache3), getValue(2966, values, cache3)),
5132
- stencilOpBack: (gl, values, cache3) => gl.stencilOpSeparate(1029, getValue(34817, values, cache3), getValue(34818, values, cache3), getValue(34819, values, cache3))
5276
+ blendEquation: (gl, values, cache2) => gl.blendEquationSeparate(getValue(32777, values, cache2), getValue(34877, values, cache2)),
5277
+ blendFunc: (gl, values, cache2) => gl.blendFuncSeparate(getValue(32969, values, cache2), getValue(32968, values, cache2), getValue(32971, values, cache2), getValue(32970, values, cache2)),
5278
+ polygonOffset: (gl, values, cache2) => gl.polygonOffset(getValue(32824, values, cache2), getValue(10752, values, cache2)),
5279
+ sampleCoverage: (gl, values, cache2) => gl.sampleCoverage(getValue(32938, values, cache2), getValue(32939, values, cache2)),
5280
+ stencilFuncFront: (gl, values, cache2) => gl.stencilFuncSeparate(1028, getValue(2962, values, cache2), getValue(2967, values, cache2), getValue(2963, values, cache2)),
5281
+ stencilFuncBack: (gl, values, cache2) => gl.stencilFuncSeparate(1029, getValue(34816, values, cache2), getValue(36003, values, cache2), getValue(36004, values, cache2)),
5282
+ stencilOpFront: (gl, values, cache2) => gl.stencilOpSeparate(1028, getValue(2964, values, cache2), getValue(2965, values, cache2), getValue(2966, values, cache2)),
5283
+ stencilOpBack: (gl, values, cache2) => gl.stencilOpSeparate(1029, getValue(34817, values, cache2), getValue(34818, values, cache2), getValue(34819, values, cache2))
5133
5284
  };
5134
5285
  GL_HOOKED_SETTERS = {
5135
5286
  // GENERIC SETTERS
@@ -5352,11 +5503,11 @@ ${htmlLog}
5352
5503
  }
5353
5504
  }
5354
5505
  }
5355
- const cache3 = gl.state && gl.state.cache;
5356
- if (cache3) {
5506
+ const cache2 = gl.state && gl.state.cache;
5507
+ if (cache2) {
5357
5508
  for (const key in compositeSetters) {
5358
5509
  const compositeSetter = GL_COMPOSITE_PARAMETER_SETTERS[key];
5359
- compositeSetter(gl, parameters2, cache3);
5510
+ compositeSetter(gl, parameters2, cache2);
5360
5511
  }
5361
5512
  }
5362
5513
  }
@@ -5801,7 +5952,7 @@ ${htmlLog}
5801
5952
  var X_S3TC, X_S3TC_SRGB, X_RGTC, X_BPTC, X_ETC2, X_ASTC, X_ETC1, X_PVRTC, X_ATC, EXT_texture_norm16, EXT_render_snorm, EXT_color_buffer_float, TEXTURE_FEATURES, WEBGL_TEXTURE_FORMATS;
5802
5953
  var init_webgl_texture_table = __esm({
5803
5954
  "../../node_modules/@luma.gl/webgl/dist/adapter/converters/webgl-texture-table.js"() {
5804
- init_dist4();
5955
+ init_dist5();
5805
5956
  init_webgl_extensions();
5806
5957
  init_webgl_vertex_formats();
5807
5958
  X_S3TC = "WEBGL_compressed_texture_s3tc";
@@ -5992,7 +6143,7 @@ ${htmlLog}
5992
6143
  var WEBGL_FEATURES, WebGLDeviceFeatures;
5993
6144
  var init_webgl_device_features = __esm({
5994
6145
  "../../node_modules/@luma.gl/webgl/dist/adapter/device-helpers/webgl-device-features.js"() {
5995
- init_dist4();
6146
+ init_dist5();
5996
6147
  init_webgl_extensions();
5997
6148
  init_webgl_texture_table();
5998
6149
  WEBGL_FEATURES = {
@@ -6072,7 +6223,7 @@ ${htmlLog}
6072
6223
  var WebGLDeviceLimits;
6073
6224
  var init_webgl_device_limits = __esm({
6074
6225
  "../../node_modules/@luma.gl/webgl/dist/adapter/device-helpers/webgl-device-limits.js"() {
6075
- init_dist4();
6226
+ init_dist5();
6076
6227
  WebGLDeviceLimits = class extends DeviceLimits {
6077
6228
  get maxTextureDimension1D() {
6078
6229
  return 0;
@@ -6208,7 +6359,7 @@ ${htmlLog}
6208
6359
  var WEBGLFramebuffer;
6209
6360
  var init_webgl_framebuffer = __esm({
6210
6361
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-framebuffer.js"() {
6211
- init_dist4();
6362
+ init_dist5();
6212
6363
  init_webgl_texture_table();
6213
6364
  WEBGLFramebuffer = class extends Framebuffer {
6214
6365
  device;
@@ -6305,7 +6456,7 @@ ${htmlLog}
6305
6456
  var WebGLCanvasContext;
6306
6457
  var init_webgl_canvas_context = __esm({
6307
6458
  "../../node_modules/@luma.gl/webgl/dist/adapter/webgl-canvas-context.js"() {
6308
- init_dist4();
6459
+ init_dist5();
6309
6460
  init_webgl_framebuffer();
6310
6461
  WebGLCanvasContext = class extends CanvasContext {
6311
6462
  device;
@@ -6372,7 +6523,7 @@ ${htmlLog}
6372
6523
  var WEBGLBuffer;
6373
6524
  var init_webgl_buffer = __esm({
6374
6525
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-buffer.js"() {
6375
- init_dist4();
6526
+ init_dist5();
6376
6527
  WEBGLBuffer = class extends Buffer2 {
6377
6528
  device;
6378
6529
  gl;
@@ -6534,7 +6685,7 @@ ${htmlLog}
6534
6685
  var WEBGLShader;
6535
6686
  var init_webgl_shader = __esm({
6536
6687
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-shader.js"() {
6537
- init_dist4();
6688
+ init_dist5();
6538
6689
  init_parse_shader_compiler_log();
6539
6690
  WEBGLShader = class extends Shader {
6540
6691
  device;
@@ -6867,7 +7018,7 @@ ${source4}`;
6867
7018
  }
6868
7019
  var init_device_parameters = __esm({
6869
7020
  "../../node_modules/@luma.gl/webgl/dist/adapter/converters/device-parameters.js"() {
6870
- init_dist4();
7021
+ init_dist5();
6871
7022
  init_unified_parameter_api();
6872
7023
  }
6873
7024
  });
@@ -6959,7 +7110,7 @@ ${source4}`;
6959
7110
  var WEBGLSampler;
6960
7111
  var init_webgl_sampler = __esm({
6961
7112
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-sampler.js"() {
6962
- init_dist4();
7113
+ init_dist5();
6963
7114
  init_sampler_parameters();
6964
7115
  WEBGLSampler = class extends Sampler {
6965
7116
  device;
@@ -7039,7 +7190,7 @@ ${source4}`;
7039
7190
  var WEBGLTextureView;
7040
7191
  var init_webgl_texture_view = __esm({
7041
7192
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-texture-view.js"() {
7042
- init_dist4();
7193
+ init_dist5();
7043
7194
  WEBGLTextureView = class extends TextureView {
7044
7195
  device;
7045
7196
  gl;
@@ -7081,7 +7232,7 @@ ${source4}`;
7081
7232
  var WEBGLTexture;
7082
7233
  var init_webgl_texture = __esm({
7083
7234
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-texture.js"() {
7084
- init_dist4();
7235
+ init_dist5();
7085
7236
  init_webgl_texture_table();
7086
7237
  init_sampler_parameters();
7087
7238
  init_with_parameters();
@@ -7589,7 +7740,7 @@ ${source4}`;
7589
7740
  }
7590
7741
  var init_get_shader_layout_from_glsl = __esm({
7591
7742
  "../../node_modules/@luma.gl/webgl/dist/adapter/helpers/get-shader-layout-from-glsl.js"() {
7592
- init_dist4();
7743
+ init_dist5();
7593
7744
  init_webgl_shadertypes();
7594
7745
  }
7595
7746
  });
@@ -7741,7 +7892,7 @@ ${source4}`;
7741
7892
  var LOG_PROGRAM_PERF_PRIORITY, WEBGLRenderPipeline;
7742
7893
  var init_webgl_render_pipeline = __esm({
7743
7894
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-render-pipeline.js"() {
7744
- init_dist4();
7895
+ init_dist5();
7745
7896
  init_get_shader_layout_from_glsl();
7746
7897
  init_device_parameters();
7747
7898
  init_set_uniform();
@@ -8241,7 +8392,7 @@ ${source4}`;
8241
8392
  var WEBGLCommandBuffer;
8242
8393
  var init_webgl_command_buffer = __esm({
8243
8394
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-command-buffer.js"() {
8244
- init_dist4();
8395
+ init_dist5();
8245
8396
  init_webgl_texture();
8246
8397
  init_webgl_texture_table();
8247
8398
  WEBGLCommandBuffer = class extends CommandBuffer {
@@ -8280,7 +8431,7 @@ ${source4}`;
8280
8431
  var COLOR_CHANNELS, WEBGLRenderPass;
8281
8432
  var init_webgl_render_pass = __esm({
8282
8433
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-render-pass.js"() {
8283
- init_dist4();
8434
+ init_dist5();
8284
8435
  init_with_parameters();
8285
8436
  init_unified_parameter_api();
8286
8437
  COLOR_CHANNELS = [1, 2, 4, 8];
@@ -8437,7 +8588,7 @@ ${source4}`;
8437
8588
  var WEBGLCommandEncoder;
8438
8589
  var init_webgl_command_encoder = __esm({
8439
8590
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-command-encoder.js"() {
8440
- init_dist4();
8591
+ init_dist5();
8441
8592
  init_webgl_command_buffer();
8442
8593
  init_webgl_render_pass();
8443
8594
  WEBGLCommandEncoder = class extends CommandEncoder {
@@ -8533,8 +8684,8 @@ ${source4}`;
8533
8684
  var WEBGLVertexArray;
8534
8685
  var init_webgl_vertex_array = __esm({
8535
8686
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-vertex-array.js"() {
8687
+ init_dist5();
8536
8688
  init_dist4();
8537
- init_dist();
8538
8689
  init_webgl_vertex_formats();
8539
8690
  init_fill_array();
8540
8691
  WEBGLVertexArray = class extends VertexArray {
@@ -8724,8 +8875,8 @@ ${source4}`;
8724
8875
  var WEBGLTransformFeedback;
8725
8876
  var init_webgl_transform_feedback = __esm({
8726
8877
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-transform-feedback.js"() {
8727
- init_dist4();
8728
- init_dist6();
8878
+ init_dist5();
8879
+ init_dist7();
8729
8880
  init_webgl_topology_utils();
8730
8881
  WEBGLTransformFeedback = class extends TransformFeedback {
8731
8882
  device;
@@ -8876,7 +9027,7 @@ ${source4}`;
8876
9027
  var WEBGLQuerySet;
8877
9028
  var init_webgl_query_set = __esm({
8878
9029
  "../../node_modules/@luma.gl/webgl/dist/adapter/resources/webgl-query-set.js"() {
8879
- init_dist4();
9030
+ init_dist5();
8880
9031
  WEBGLQuerySet = class extends QuerySet {
8881
9032
  device;
8882
9033
  handle;
@@ -9183,7 +9334,7 @@ ${source4}`;
9183
9334
  }
9184
9335
  var init_webgl_texture_utils = __esm({
9185
9336
  "../../node_modules/@luma.gl/webgl/dist/adapter/helpers/webgl-texture-utils.js"() {
9186
- init_dist4();
9337
+ init_dist5();
9187
9338
  init_webgl_shadertypes();
9188
9339
  init_format_utils();
9189
9340
  init_shader_formats();
@@ -9232,7 +9383,7 @@ ${source4}`;
9232
9383
  var WebGLDevice;
9233
9384
  var init_webgl_device = __esm({
9234
9385
  "../../node_modules/@luma.gl/webgl/dist/adapter/webgl-device.js"() {
9235
- init_dist4();
9386
+ init_dist5();
9236
9387
  init_webgl_state_tracker();
9237
9388
  init_create_browser_context();
9238
9389
  init_webgl_device_info();
@@ -9582,7 +9733,7 @@ ${source4}`;
9582
9733
  var LOG_LEVEL2, WebGLAdapter, webgl2Adapter;
9583
9734
  var init_webgl_adapter = __esm({
9584
9735
  "../../node_modules/@luma.gl/webgl/dist/adapter/webgl-adapter.js"() {
9585
- init_dist4();
9736
+ init_dist5();
9586
9737
  init_polyfill_webgl1_extensions();
9587
9738
  init_spector();
9588
9739
  init_webgl_developer_tools();
@@ -9668,7 +9819,7 @@ ${source4}`;
9668
9819
  });
9669
9820
 
9670
9821
  // ../../node_modules/@luma.gl/webgl/dist/index.js
9671
- var init_dist6 = __esm({
9822
+ var init_dist7 = __esm({
9672
9823
  "../../node_modules/@luma.gl/webgl/dist/index.js"() {
9673
9824
  init_webgl_adapter();
9674
9825
  init_webgl_device();
@@ -11897,27 +12048,27 @@ ${source4}`;
11897
12048
  var INT_CACHE2 = {};
11898
12049
  var UINT_CACHE2 = {};
11899
12050
  function fromInt2(value, unsigned) {
11900
- var obj, cachedObj, cache3;
12051
+ var obj, cachedObj, cache2;
11901
12052
  if (unsigned) {
11902
12053
  value >>>= 0;
11903
- if (cache3 = 0 <= value && value < 256) {
12054
+ if (cache2 = 0 <= value && value < 256) {
11904
12055
  cachedObj = UINT_CACHE2[value];
11905
12056
  if (cachedObj)
11906
12057
  return cachedObj;
11907
12058
  }
11908
12059
  obj = fromBits2(value, (value | 0) < 0 ? -1 : 0, true);
11909
- if (cache3)
12060
+ if (cache2)
11910
12061
  UINT_CACHE2[value] = obj;
11911
12062
  return obj;
11912
12063
  } else {
11913
12064
  value |= 0;
11914
- if (cache3 = -128 <= value && value < 128) {
12065
+ if (cache2 = -128 <= value && value < 128) {
11915
12066
  cachedObj = INT_CACHE2[value];
11916
12067
  if (cachedObj)
11917
12068
  return cachedObj;
11918
12069
  }
11919
12070
  obj = fromBits2(value, value < 0 ? -1 : 0, false);
11920
- if (cache3)
12071
+ if (cache2)
11921
12072
  INT_CACHE2[value] = obj;
11922
12073
  return obj;
11923
12074
  }
@@ -13337,7 +13488,7 @@ ${source4}`;
13337
13488
  var VERSION2 = true ? "4.3.3" : "latest";
13338
13489
  var version = VERSION2[0] >= "0" && VERSION2[0] <= "9" ? `v${VERSION2}` : "";
13339
13490
  function createLog() {
13340
- const log4 = new Log({ id: "loaders.gl" });
13491
+ const log4 = new ProbeLog({ id: "loaders.gl" });
13341
13492
  globalThis.loaders = globalThis.loaders || {};
13342
13493
  globalThis.loaders.log = log4;
13343
13494
  globalThis.loaders.version = version;
@@ -13416,7 +13567,7 @@ ${source4}`;
13416
13567
  typeof process !== "object" || String(process) !== "[object process]" || process.browser
13417
13568
  );
13418
13569
  var isWorker = typeof importScripts === "function";
13419
- var isMobile2 = typeof window !== "undefined" && typeof window.orientation !== "undefined";
13570
+ var isMobile = typeof window !== "undefined" && typeof window.orientation !== "undefined";
13420
13571
  var matches2 = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
13421
13572
  var nodeVersion2 = matches2 && parseFloat(matches2[1]) || 0;
13422
13573
 
@@ -13798,7 +13949,7 @@ ${source4}`;
13798
13949
  return null;
13799
13950
  }
13800
13951
  _getMaxConcurrency() {
13801
- return isMobile2 ? this.maxMobileConcurrency : this.maxConcurrency;
13952
+ return isMobile ? this.maxMobileConcurrency : this.maxConcurrency;
13802
13953
  }
13803
13954
  };
13804
13955
 
@@ -14777,7 +14928,7 @@ ${source4}`;
14777
14928
 
14778
14929
  // ../core/node_modules/@loaders.gl/core/dist/lib/loader-utils/loggers.js
14779
14930
  init_dist2();
14780
- var probeLog = new Log({ id: "loaders.gl" });
14931
+ var probeLog = new ProbeLog({ id: "loaders.gl" });
14781
14932
  var NullLog = class {
14782
14933
  log() {
14783
14934
  return () => {
@@ -15991,7 +16142,7 @@ ${source4}`;
15991
16142
 
15992
16143
  // ../core/src/utils/log.ts
15993
16144
  init_dist2();
15994
- var defaultLogger = new Log({ id: "deck" });
16145
+ var defaultLogger = new ProbeLog({ id: "deck" });
15995
16146
  var log_default = defaultLogger;
15996
16147
 
15997
16148
  // ../core/src/debug/loggers.ts
@@ -17051,7 +17202,7 @@ void main() {
17051
17202
  }
17052
17203
 
17053
17204
  // ../../node_modules/@luma.gl/shadertools/dist/lib/wgsl/get-shader-layout-wgsl.js
17054
- init_dist4();
17205
+ init_dist5();
17055
17206
 
17056
17207
  // ../../node_modules/wgsl_reflect/wgsl_reflect.module.js
17057
17208
  var e = class {
@@ -29325,7 +29476,7 @@ vec4 picking_filterColor(vec4 color) {
29325
29476
  }
29326
29477
 
29327
29478
  // ../../node_modules/@luma.gl/shadertools/dist/modules/lighting/lights/lighting.js
29328
- init_dist4();
29479
+ init_dist5();
29329
29480
 
29330
29481
  // ../../node_modules/@luma.gl/shadertools/dist/modules/lighting/lights/lighting-glsl.js
29331
29482
  var lightingUniformsGLSL = (
@@ -35898,7 +36049,7 @@ ${fragment}
35898
36049
  };
35899
36050
 
35900
36051
  // ../../node_modules/@luma.gl/engine/dist/animation-loop/animation-loop.js
35901
- init_dist4();
36052
+ init_dist5();
35902
36053
 
35903
36054
  // ../../node_modules/@luma.gl/engine/dist/animation-loop/request-animation-frame.js
35904
36055
  function requestAnimationFramePolyfill(callback) {
@@ -36272,10 +36423,10 @@ ${fragment}
36272
36423
  });
36273
36424
 
36274
36425
  // ../../node_modules/@luma.gl/engine/dist/model/model.js
36275
- init_dist4();
36426
+ init_dist5();
36276
36427
 
36277
36428
  // ../../node_modules/@luma.gl/engine/dist/geometry/gpu-geometry.js
36278
- init_dist4();
36429
+ init_dist5();
36279
36430
 
36280
36431
  // ../../node_modules/@luma.gl/engine/dist/utils/uid.js
36281
36432
  var uidCounters2 = {};
@@ -36382,7 +36533,7 @@ ${fragment}
36382
36533
  }
36383
36534
 
36384
36535
  // ../../node_modules/@luma.gl/engine/dist/factories/pipeline-factory.js
36385
- init_dist4();
36536
+ init_dist5();
36386
36537
  var _PipelineFactory = class {
36387
36538
  /** Get the singleton default pipeline factory for the specified device */
36388
36539
  static getDefaultPipelineFactory(device) {
@@ -36415,23 +36566,23 @@ ${fragment}
36415
36566
  return this.device.createRenderPipeline(props);
36416
36567
  }
36417
36568
  const allProps = { ...RenderPipeline.defaultProps, ...props };
36418
- const cache3 = this._renderPipelineCache;
36569
+ const cache2 = this._renderPipelineCache;
36419
36570
  const hash = this._hashRenderPipeline(allProps);
36420
- let pipeline = cache3[hash]?.pipeline;
36571
+ let pipeline = cache2[hash]?.pipeline;
36421
36572
  if (!pipeline) {
36422
36573
  pipeline = this.device.createRenderPipeline({
36423
36574
  ...allProps,
36424
36575
  id: allProps.id ? `${allProps.id}-cached` : uid2("unnamed-cached")
36425
36576
  });
36426
36577
  pipeline.hash = hash;
36427
- cache3[hash] = { pipeline, useCount: 1 };
36578
+ cache2[hash] = { pipeline, useCount: 1 };
36428
36579
  if (this.debug) {
36429
- log2.log(3, `${this}: ${pipeline} created, count=${cache3[hash].useCount}`)();
36580
+ log2.log(3, `${this}: ${pipeline} created, count=${cache2[hash].useCount}`)();
36430
36581
  }
36431
36582
  } else {
36432
- cache3[hash].useCount++;
36583
+ cache2[hash].useCount++;
36433
36584
  if (this.debug) {
36434
- log2.log(3, `${this}: ${cache3[hash].pipeline} reused, count=${cache3[hash].useCount}, (id=${props.id})`)();
36585
+ log2.log(3, `${this}: ${cache2[hash].pipeline} reused, count=${cache2[hash].useCount}, (id=${props.id})`)();
36435
36586
  }
36436
36587
  }
36437
36588
  return pipeline;
@@ -36442,23 +36593,23 @@ ${fragment}
36442
36593
  return this.device.createComputePipeline(props);
36443
36594
  }
36444
36595
  const allProps = { ...ComputePipeline.defaultProps, ...props };
36445
- const cache3 = this._computePipelineCache;
36596
+ const cache2 = this._computePipelineCache;
36446
36597
  const hash = this._hashComputePipeline(allProps);
36447
- let pipeline = cache3[hash]?.pipeline;
36598
+ let pipeline = cache2[hash]?.pipeline;
36448
36599
  if (!pipeline) {
36449
36600
  pipeline = this.device.createComputePipeline({
36450
36601
  ...allProps,
36451
36602
  id: allProps.id ? `${allProps.id}-cached` : void 0
36452
36603
  });
36453
36604
  pipeline.hash = hash;
36454
- cache3[hash] = { pipeline, useCount: 1 };
36605
+ cache2[hash] = { pipeline, useCount: 1 };
36455
36606
  if (this.debug) {
36456
- log2.log(3, `${this}: ${pipeline} created, count=${cache3[hash].useCount}`)();
36607
+ log2.log(3, `${this}: ${pipeline} created, count=${cache2[hash].useCount}`)();
36457
36608
  }
36458
36609
  } else {
36459
- cache3[hash].useCount++;
36610
+ cache2[hash].useCount++;
36460
36611
  if (this.debug) {
36461
- log2.log(3, `${this}: ${cache3[hash].pipeline} reused, count=${cache3[hash].useCount}, (id=${props.id})`)();
36612
+ log2.log(3, `${this}: ${cache2[hash].pipeline} reused, count=${cache2[hash].useCount}, (id=${props.id})`)();
36462
36613
  }
36463
36614
  }
36464
36615
  return pipeline;
@@ -36468,50 +36619,50 @@ ${fragment}
36468
36619
  pipeline.destroy();
36469
36620
  return;
36470
36621
  }
36471
- const cache3 = this._getCache(pipeline);
36622
+ const cache2 = this._getCache(pipeline);
36472
36623
  const hash = pipeline.hash;
36473
- cache3[hash].useCount--;
36474
- if (cache3[hash].useCount === 0) {
36624
+ cache2[hash].useCount--;
36625
+ if (cache2[hash].useCount === 0) {
36475
36626
  this._destroyPipeline(pipeline);
36476
36627
  if (this.debug) {
36477
36628
  log2.log(3, `${this}: ${pipeline} released and destroyed`)();
36478
36629
  }
36479
- } else if (cache3[hash].useCount < 0) {
36630
+ } else if (cache2[hash].useCount < 0) {
36480
36631
  log2.error(`${this}: ${pipeline} released, useCount < 0, resetting`)();
36481
- cache3[hash].useCount = 0;
36632
+ cache2[hash].useCount = 0;
36482
36633
  } else if (this.debug) {
36483
- log2.log(3, `${this}: ${pipeline} released, count=${cache3[hash].useCount}`)();
36634
+ log2.log(3, `${this}: ${pipeline} released, count=${cache2[hash].useCount}`)();
36484
36635
  }
36485
36636
  }
36486
36637
  // PRIVATE
36487
36638
  /** Destroy a cached pipeline, removing it from the cache (depending on destroy policy) */
36488
36639
  _destroyPipeline(pipeline) {
36489
- const cache3 = this._getCache(pipeline);
36640
+ const cache2 = this._getCache(pipeline);
36490
36641
  switch (this.destroyPolicy) {
36491
36642
  case "never":
36492
36643
  return false;
36493
36644
  case "unused":
36494
- delete cache3[pipeline.hash];
36645
+ delete cache2[pipeline.hash];
36495
36646
  pipeline.destroy();
36496
36647
  return true;
36497
36648
  }
36498
36649
  }
36499
36650
  /** Get the appropriate cache for the type of pipeline */
36500
36651
  _getCache(pipeline) {
36501
- let cache3;
36652
+ let cache2;
36502
36653
  if (pipeline instanceof ComputePipeline) {
36503
- cache3 = this._computePipelineCache;
36654
+ cache2 = this._computePipelineCache;
36504
36655
  }
36505
36656
  if (pipeline instanceof RenderPipeline) {
36506
- cache3 = this._renderPipelineCache;
36657
+ cache2 = this._renderPipelineCache;
36507
36658
  }
36508
- if (!cache3) {
36659
+ if (!cache2) {
36509
36660
  throw new Error(`${this}`);
36510
36661
  }
36511
- if (!cache3[pipeline.hash]) {
36662
+ if (!cache2[pipeline.hash]) {
36512
36663
  throw new Error(`${this}: ${pipeline} matched incorrect entry`);
36513
36664
  }
36514
- return cache3;
36665
+ return cache2;
36515
36666
  }
36516
36667
  /** Calculate a hash based on all the inputs for a compute pipeline */
36517
36668
  _hashComputePipeline(props) {
@@ -36546,7 +36697,7 @@ ${fragment}
36546
36697
  __publicField(PipelineFactory, "defaultProps", { ...RenderPipeline.defaultProps });
36547
36698
 
36548
36699
  // ../../node_modules/@luma.gl/engine/dist/factories/shader-factory.js
36549
- init_dist4();
36700
+ init_dist5();
36550
36701
  var _ShaderFactory = class {
36551
36702
  /** Returns the default ShaderFactory for the given {@link Device}, creating one if necessary. */
36552
36703
  static getDefaultShaderFactory(device) {
@@ -36727,7 +36878,7 @@ ${fragment}
36727
36878
  }
36728
36879
 
36729
36880
  // ../../node_modules/@luma.gl/engine/dist/utils/buffer-layout-helper.js
36730
- init_dist4();
36881
+ init_dist5();
36731
36882
  var BufferLayoutHelper = class {
36732
36883
  bufferLayouts;
36733
36884
  constructor(bufferLayouts) {
@@ -36776,7 +36927,7 @@ ${fragment}
36776
36927
  }
36777
36928
 
36778
36929
  // ../../node_modules/@luma.gl/engine/dist/shader-inputs.js
36779
- init_dist4();
36930
+ init_dist5();
36780
36931
 
36781
36932
  // ../../node_modules/@math.gl/types/dist/is-array.js
36782
36933
  function isTypedArray2(value) {
@@ -36913,7 +37064,7 @@ ${fragment}
36913
37064
  };
36914
37065
 
36915
37066
  // ../../node_modules/@luma.gl/engine/dist/async-texture/async-texture.js
36916
- init_dist4();
37067
+ init_dist5();
36917
37068
 
36918
37069
  // ../../node_modules/@luma.gl/engine/dist/application-utils/load-file.js
36919
37070
  var pathPrefix2 = "";
@@ -37848,7 +37999,7 @@ ${fragment}
37848
37999
  }
37849
38000
 
37850
38001
  // ../../node_modules/@luma.gl/engine/dist/compute/buffer-transform.js
37851
- init_dist4();
38002
+ init_dist5();
37852
38003
  var _BufferTransform = class {
37853
38004
  device;
37854
38005
  model;
@@ -38327,7 +38478,7 @@ ${props.source}` };
38327
38478
  };
38328
38479
 
38329
38480
  // ../../node_modules/@luma.gl/engine/dist/scenegraph/group-node.js
38330
- init_dist4();
38481
+ init_dist5();
38331
38482
  var GroupNode = class extends ScenegraphNode {
38332
38483
  children;
38333
38484
  constructor(props = {}) {
@@ -39461,8 +39612,198 @@ void main() {
39461
39612
  return target2;
39462
39613
  }
39463
39614
 
39464
- // ../core/src/lib/layer-manager.ts
39465
- init_dist3();
39615
+ // ../core/node_modules/@probe.gl/stats/dist/utils/hi-res-timestamp.js
39616
+ function getHiResTimestamp3() {
39617
+ let timestamp;
39618
+ if (typeof window !== "undefined" && window.performance) {
39619
+ timestamp = window.performance.now();
39620
+ } else if (typeof process !== "undefined" && process.hrtime) {
39621
+ const timeParts = process.hrtime();
39622
+ timestamp = timeParts[0] * 1e3 + timeParts[1] / 1e6;
39623
+ } else {
39624
+ timestamp = Date.now();
39625
+ }
39626
+ return timestamp;
39627
+ }
39628
+
39629
+ // ../core/node_modules/@probe.gl/stats/dist/lib/stat.js
39630
+ var Stat2 = class {
39631
+ constructor(name13, type) {
39632
+ this.sampleSize = 1;
39633
+ this.time = 0;
39634
+ this.count = 0;
39635
+ this.samples = 0;
39636
+ this.lastTiming = 0;
39637
+ this.lastSampleTime = 0;
39638
+ this.lastSampleCount = 0;
39639
+ this._count = 0;
39640
+ this._time = 0;
39641
+ this._samples = 0;
39642
+ this._startTime = 0;
39643
+ this._timerPending = false;
39644
+ this.name = name13;
39645
+ this.type = type;
39646
+ this.reset();
39647
+ }
39648
+ reset() {
39649
+ this.time = 0;
39650
+ this.count = 0;
39651
+ this.samples = 0;
39652
+ this.lastTiming = 0;
39653
+ this.lastSampleTime = 0;
39654
+ this.lastSampleCount = 0;
39655
+ this._count = 0;
39656
+ this._time = 0;
39657
+ this._samples = 0;
39658
+ this._startTime = 0;
39659
+ this._timerPending = false;
39660
+ return this;
39661
+ }
39662
+ setSampleSize(samples) {
39663
+ this.sampleSize = samples;
39664
+ return this;
39665
+ }
39666
+ /** Call to increment count (+1) */
39667
+ incrementCount() {
39668
+ this.addCount(1);
39669
+ return this;
39670
+ }
39671
+ /** Call to decrement count (-1) */
39672
+ decrementCount() {
39673
+ this.subtractCount(1);
39674
+ return this;
39675
+ }
39676
+ /** Increase count */
39677
+ addCount(value) {
39678
+ this._count += value;
39679
+ this._samples++;
39680
+ this._checkSampling();
39681
+ return this;
39682
+ }
39683
+ /** Decrease count */
39684
+ subtractCount(value) {
39685
+ this._count -= value;
39686
+ this._samples++;
39687
+ this._checkSampling();
39688
+ return this;
39689
+ }
39690
+ /** Add an arbitrary timing and bump the count */
39691
+ addTime(time) {
39692
+ this._time += time;
39693
+ this.lastTiming = time;
39694
+ this._samples++;
39695
+ this._checkSampling();
39696
+ return this;
39697
+ }
39698
+ /** Start a timer */
39699
+ timeStart() {
39700
+ this._startTime = getHiResTimestamp3();
39701
+ this._timerPending = true;
39702
+ return this;
39703
+ }
39704
+ /** End a timer. Adds to time and bumps the timing count. */
39705
+ timeEnd() {
39706
+ if (!this._timerPending) {
39707
+ return this;
39708
+ }
39709
+ this.addTime(getHiResTimestamp3() - this._startTime);
39710
+ this._timerPending = false;
39711
+ this._checkSampling();
39712
+ return this;
39713
+ }
39714
+ getSampleAverageCount() {
39715
+ return this.sampleSize > 0 ? this.lastSampleCount / this.sampleSize : 0;
39716
+ }
39717
+ /** Calculate average time / count for the previous window */
39718
+ getSampleAverageTime() {
39719
+ return this.sampleSize > 0 ? this.lastSampleTime / this.sampleSize : 0;
39720
+ }
39721
+ /** Calculate counts per second for the previous window */
39722
+ getSampleHz() {
39723
+ return this.lastSampleTime > 0 ? this.sampleSize / (this.lastSampleTime / 1e3) : 0;
39724
+ }
39725
+ getAverageCount() {
39726
+ return this.samples > 0 ? this.count / this.samples : 0;
39727
+ }
39728
+ /** Calculate average time / count */
39729
+ getAverageTime() {
39730
+ return this.samples > 0 ? this.time / this.samples : 0;
39731
+ }
39732
+ /** Calculate counts per second */
39733
+ getHz() {
39734
+ return this.time > 0 ? this.samples / (this.time / 1e3) : 0;
39735
+ }
39736
+ _checkSampling() {
39737
+ if (this._samples === this.sampleSize) {
39738
+ this.lastSampleTime = this._time;
39739
+ this.lastSampleCount = this._count;
39740
+ this.count += this._count;
39741
+ this.time += this._time;
39742
+ this.samples += this._samples;
39743
+ this._time = 0;
39744
+ this._count = 0;
39745
+ this._samples = 0;
39746
+ }
39747
+ }
39748
+ };
39749
+
39750
+ // ../core/node_modules/@probe.gl/stats/dist/lib/stats.js
39751
+ var Stats2 = class {
39752
+ constructor(options) {
39753
+ this.stats = {};
39754
+ this.id = options.id;
39755
+ this.stats = {};
39756
+ this._initializeStats(options.stats);
39757
+ Object.seal(this);
39758
+ }
39759
+ /** Acquire a stat. Create if it doesn't exist. */
39760
+ get(name13, type = "count") {
39761
+ return this._getOrCreate({ name: name13, type });
39762
+ }
39763
+ get size() {
39764
+ return Object.keys(this.stats).length;
39765
+ }
39766
+ /** Reset all stats */
39767
+ reset() {
39768
+ for (const stat of Object.values(this.stats)) {
39769
+ stat.reset();
39770
+ }
39771
+ return this;
39772
+ }
39773
+ forEach(fn) {
39774
+ for (const stat of Object.values(this.stats)) {
39775
+ fn(stat);
39776
+ }
39777
+ }
39778
+ getTable() {
39779
+ const table = {};
39780
+ this.forEach((stat) => {
39781
+ table[stat.name] = {
39782
+ time: stat.time || 0,
39783
+ count: stat.count || 0,
39784
+ average: stat.getAverageTime() || 0,
39785
+ hz: stat.getHz() || 0
39786
+ };
39787
+ });
39788
+ return table;
39789
+ }
39790
+ _initializeStats(stats2 = []) {
39791
+ stats2.forEach((stat) => this._getOrCreate(stat));
39792
+ }
39793
+ _getOrCreate(stat) {
39794
+ const { name: name13, type } = stat;
39795
+ let result = this.stats[name13];
39796
+ if (!result) {
39797
+ if (stat instanceof Stat2) {
39798
+ result = stat;
39799
+ } else {
39800
+ result = new Stat2(name13, type);
39801
+ }
39802
+ this.stats[name13] = result;
39803
+ }
39804
+ return result;
39805
+ }
39806
+ };
39466
39807
 
39467
39808
  // ../core/src/lib/resource/resource.ts
39468
39809
  var Resource2 = class {
@@ -39685,7 +40026,7 @@ void main() {
39685
40026
  shaderAssembler: getShaderAssembler(device?.info?.shadingLanguage || "glsl"),
39686
40027
  defaultShaderModules: [layerUniforms],
39687
40028
  renderPass: void 0,
39688
- stats: stats2 || new Stats({ id: "deck.gl" }),
40029
+ stats: stats2 || new Stats2({ id: "deck.gl" }),
39689
40030
  // Make sure context.viewport is not empty on the first layer initialization
39690
40031
  viewport: viewport || new Viewport({ id: "DEFAULT-INITIAL-VIEWPORT" }),
39691
40032
  // Current viewport, exposed to layers for project* function
@@ -43455,10 +43796,9 @@ void main() {
43455
43796
  };
43456
43797
 
43457
43798
  // ../core/src/lib/deck.ts
43458
- init_dist4();
43459
- init_dist6();
43460
43799
  init_dist5();
43461
- init_dist3();
43800
+ init_dist7();
43801
+ init_dist6();
43462
43802
  function noop3() {
43463
43803
  }
43464
43804
  var getCursor = ({ isDragging }) => isDragging ? "grabbing" : "grab";
@@ -43532,7 +43872,7 @@ void main() {
43532
43872
  isHovering: false,
43533
43873
  isDragging: false
43534
43874
  };
43535
- this.stats = new Stats({ id: "deck.gl" });
43875
+ this.stats = new Stats2({ id: "deck.gl" });
43536
43876
  this.metrics = {
43537
43877
  fps: 0,
43538
43878
  setPropsTime: 0,
@@ -44234,10 +44574,10 @@ void main() {
44234
44574
  Deck.VERSION = VERSION5;
44235
44575
 
44236
44576
  // ../core/src/lib/attribute/data-column.ts
44237
- init_dist4();
44577
+ init_dist5();
44238
44578
 
44239
44579
  // ../core/src/lib/attribute/gl-utils.ts
44240
- init_dist4();
44580
+ init_dist5();
44241
44581
  function typedArrayFromDataType(type) {
44242
44582
  switch (type) {
44243
44583
  case "float64":
@@ -45160,7 +45500,7 @@ void main() {
45160
45500
  };
45161
45501
 
45162
45502
  // ../core/src/transitions/gpu-interpolation-transition.ts
45163
- init_dist5();
45503
+ init_dist6();
45164
45504
 
45165
45505
  // ../core/src/utils/array-utils.ts
45166
45506
  function padArrayChunk(options) {
@@ -45234,7 +45574,7 @@ void main() {
45234
45574
  }
45235
45575
 
45236
45576
  // ../core/src/transitions/gpu-transition-utils.ts
45237
- init_dist5();
45577
+ init_dist6();
45238
45578
  function cloneAttribute(attribute) {
45239
45579
  const { device, settings, value } = attribute;
45240
45580
  const newAttribute = new Attribute(device, settings);
@@ -46120,8 +46460,8 @@ void main(void) {
46120
46460
  };
46121
46461
 
46122
46462
  // ../core/src/lib/layer.ts
46123
- init_dist4();
46124
- init_dist6();
46463
+ init_dist5();
46464
+ init_dist7();
46125
46465
 
46126
46466
  // ../core/src/transitions/cpu-interpolation-transition.ts
46127
46467
  var CPUInterpolationTransition = class extends Transition {
@@ -46494,7 +46834,7 @@ void main(void) {
46494
46834
  }
46495
46835
 
46496
46836
  // ../core/src/utils/texture.ts
46497
- init_dist4();
46837
+ init_dist5();
46498
46838
  var DEFAULT_TEXTURE_PARAMETERS = {
46499
46839
  minFilter: "linear",
46500
46840
  mipmapFilter: "linear",
@@ -49353,7 +49693,7 @@ void main(void) {
49353
49693
  };
49354
49694
 
49355
49695
  // ../core/src/utils/tesselator.ts
49356
- init_dist4();
49696
+ init_dist5();
49357
49697
  var Tesselator = class {
49358
49698
  constructor(opts) {
49359
49699
  this.indexStarts = [0];
@@ -50493,8 +50833,8 @@ void main(void) {
50493
50833
  var self_3 = globals3.self || globals3.window || globals3.global || {};
50494
50834
  var window_5 = globals3.window || globals3.self || globals3.global || {};
50495
50835
  var global_4 = globals3.global || globals3.self || globals3.window || {};
50496
- var document_4 = globals3.document || {};
50497
- var isBrowser4 = (
50836
+ var document_5 = globals3.document || {};
50837
+ var isBrowser5 = (
50498
50838
  // @ts-ignore process does not exist on browser
50499
50839
  Boolean(typeof process !== "object" || String(process) !== "[object process]" || process.browser)
50500
50840
  );
@@ -50553,8 +50893,8 @@ void main(void) {
50553
50893
  var self_4 = globals4.self || globals4.window || globals4.global || {};
50554
50894
  var window_6 = globals4.window || globals4.self || globals4.global || {};
50555
50895
  var global_5 = globals4.global || globals4.self || globals4.window || {};
50556
- var document_5 = globals4.document || {};
50557
- var isBrowser5 = (
50896
+ var document_6 = globals4.document || {};
50897
+ var isBrowser6 = (
50558
50898
  // @ts-ignore process.browser
50559
50899
  typeof process !== "object" || String(process) !== "[object process]" || process.browser
50560
50900
  );
@@ -50704,7 +51044,7 @@ void main(void) {
50704
51044
  _loadableURL = "";
50705
51045
  /** Checks if workers are supported on this platform */
50706
51046
  static isSupported() {
50707
- return typeof Worker !== "undefined" && isBrowser5 || typeof NodeWorker2 !== "undefined" && !isBrowser5;
51047
+ return typeof Worker !== "undefined" && isBrowser6 || typeof NodeWorker2 !== "undefined" && !isBrowser6;
50708
51048
  }
50709
51049
  constructor(props) {
50710
51050
  const { name: name13, source: source4, url } = props;
@@ -50714,7 +51054,7 @@ void main(void) {
50714
51054
  this.url = url;
50715
51055
  this.onMessage = NOOP2;
50716
51056
  this.onError = (error) => console.log(error);
50717
- this.worker = isBrowser5 ? this._createBrowserWorker() : this._createNodeWorker();
51057
+ this.worker = isBrowser6 ? this._createBrowserWorker() : this._createNodeWorker();
50718
51058
  }
50719
51059
  /**
50720
51060
  * Terminate this worker thread
@@ -50910,7 +51250,7 @@ void main(void) {
50910
51250
  const shouldDestroyWorker = (
50911
51251
  // Workers on Node.js prevent the process from exiting.
50912
51252
  // Until we figure out how to close them before exit, we always destroy them
50913
- !isBrowser5 || // If the pool is destroyed, there is no reason to keep the worker around
51253
+ !isBrowser6 || // If the pool is destroyed, there is no reason to keep the worker around
50914
51254
  this.isDestroyed || // If the app has disabled worker reuse, any completed workers should be destroyed
50915
51255
  !this.reuseWorkers || // If concurrency has been lowered, this worker might be surplus to requirements
50916
51256
  this.count > this._getMaxConcurrency()
@@ -51030,13 +51370,13 @@ void main(void) {
51030
51370
  // ../../node_modules/@loaders.gl/core/node_modules/@loaders.gl/worker-utils/dist/lib/worker-api/get-worker-url.js
51031
51371
  function getWorkerURL2(worker, options = {}) {
51032
51372
  const workerOptions = options[worker.id] || {};
51033
- const workerFile = isBrowser5 ? `${worker.id}-worker.js` : `${worker.id}-worker-node.js`;
51373
+ const workerFile = isBrowser6 ? `${worker.id}-worker.js` : `${worker.id}-worker-node.js`;
51034
51374
  let url = workerOptions.workerUrl;
51035
51375
  if (!url && worker.id === "compression") {
51036
51376
  url = options.workerUrl;
51037
51377
  }
51038
51378
  if (options._workerType === "test") {
51039
- if (isBrowser5) {
51379
+ if (isBrowser6) {
51040
51380
  url = `modules/${worker.module}/dist/${workerFile}`;
51041
51381
  } else {
51042
51382
  url = `modules/${worker.module}/src/workers/${worker.id}-worker-node.ts`;
@@ -51069,7 +51409,7 @@ void main(void) {
51069
51409
  if (!WorkerFarm2.isSupported()) {
51070
51410
  return false;
51071
51411
  }
51072
- if (!isBrowser5 && !options?._nodeWorkers) {
51412
+ if (!isBrowser6 && !options?._nodeWorkers) {
51073
51413
  return false;
51074
51414
  }
51075
51415
  return loader.worker && options?.worker;
@@ -51576,7 +51916,7 @@ void main(void) {
51576
51916
 
51577
51917
  // ../../node_modules/@loaders.gl/core/dist/lib/loader-utils/loggers.js
51578
51918
  init_dist2();
51579
- var probeLog2 = new Log({ id: "loaders.gl" });
51919
+ var probeLog2 = new ProbeLog({ id: "loaders.gl" });
51580
51920
  var NullLog2 = class {
51581
51921
  log() {
51582
51922
  return () => {
@@ -51630,7 +51970,7 @@ void main(void) {
51630
51970
  // How many worker instances should be created for each loader.
51631
51971
  maxMobileConcurrency: 1,
51632
51972
  // How many worker instances should be created for each loader on mobile devices.
51633
- reuseWorkers: isBrowser4,
51973
+ reuseWorkers: isBrowser5,
51634
51974
  // By default reuse workers in browser (Node.js refuses to terminate if browsers are running)
51635
51975
  _nodeWorkers: false,
51636
51976
  // By default do not support node workers
@@ -51802,7 +52142,7 @@ void main(void) {
51802
52142
 
51803
52143
  // ../../node_modules/@loaders.gl/core/dist/lib/utils/log.js
51804
52144
  init_dist2();
51805
- var log3 = new Log({ id: "loaders.gl" });
52145
+ var log3 = new ProbeLog({ id: "loaders.gl" });
51806
52146
 
51807
52147
  // ../../node_modules/@loaders.gl/core/dist/lib/api/select-loader.js
51808
52148
  var EXT_PATTERN2 = /\.([^.]+)$/;
@@ -52035,7 +52375,7 @@ void main(void) {
52035
52375
 
52036
52376
  // ../../node_modules/@loaders.gl/core/dist/iterators/make-iterator/make-stream-iterator.js
52037
52377
  function makeStreamIterator2(stream, options) {
52038
- return isBrowser4 ? makeBrowserStreamIterator2(stream, options) : makeNodeStreamIterator2(stream, options);
52378
+ return isBrowser5 ? makeBrowserStreamIterator2(stream, options) : makeNodeStreamIterator2(stream, options);
52039
52379
  }
52040
52380
  async function* makeBrowserStreamIterator2(stream, options) {
52041
52381
  const reader = stream.getReader();
@@ -57277,12 +57617,16 @@ void main(void) {
57277
57617
  updateState(params) {
57278
57618
  super.updateState(params);
57279
57619
  const { props, oldProps } = params;
57280
- let { outlineColor } = props;
57620
+ const { outlineColor } = props;
57281
57621
  if (outlineColor !== oldProps.outlineColor) {
57282
- outlineColor = outlineColor.map((x3) => x3 / 255);
57283
- outlineColor[3] = Number.isFinite(outlineColor[3]) ? outlineColor[3] : 1;
57622
+ const normalizedOutlineColor = [
57623
+ outlineColor[0] / 255,
57624
+ outlineColor[1] / 255,
57625
+ outlineColor[2] / 255,
57626
+ (outlineColor[3] ?? 255) / 255
57627
+ ];
57284
57628
  this.setState({
57285
- outlineColor
57629
+ outlineColor: normalizedOutlineColor
57286
57630
  });
57287
57631
  }
57288
57632
  if (!props.sdf && props.outlineWidth) {
@@ -57731,7 +58075,7 @@ void main(void) {
57731
58075
  var BASELINE_SCALE = 0.9;
57732
58076
  var HEIGHT_SCALE = 1.2;
57733
58077
  var CACHE_LIMIT = 3;
57734
- var cache2 = new LRUCache(CACHE_LIMIT);
58078
+ var cache = new LRUCache(CACHE_LIMIT);
57735
58079
  function getNewChars(cacheKey, characterSet) {
57736
58080
  let newCharSet;
57737
58081
  if (typeof characterSet === "string") {
@@ -57739,7 +58083,7 @@ void main(void) {
57739
58083
  } else {
57740
58084
  newCharSet = new Set(characterSet);
57741
58085
  }
57742
- const cachedFontAtlas = cache2.get(cacheKey);
58086
+ const cachedFontAtlas = cache.get(cacheKey);
57743
58087
  if (!cachedFontAtlas) {
57744
58088
  return newCharSet;
57745
58089
  }
@@ -57763,7 +58107,7 @@ void main(void) {
57763
58107
  }
57764
58108
  function setFontAtlasCacheLimit(limit) {
57765
58109
  log_default.assert(Number.isFinite(limit) && limit >= CACHE_LIMIT, "Invalid cache limit");
57766
- cache2 = new LRUCache(limit);
58110
+ cache = new LRUCache(limit);
57767
58111
  }
57768
58112
  var FontAtlasManager = class {
57769
58113
  constructor() {
@@ -57788,7 +58132,7 @@ void main(void) {
57788
58132
  Object.assign(this.props, props);
57789
58133
  this._key = this._getKey();
57790
58134
  const charSet = getNewChars(this._key, this.props.characterSet);
57791
- const cachedFontAtlas = cache2.get(this._key);
58135
+ const cachedFontAtlas = cache.get(this._key);
57792
58136
  if (cachedFontAtlas && charSet.size === 0) {
57793
58137
  if (this._atlas !== cachedFontAtlas) {
57794
58138
  this._atlas = cachedFontAtlas;
@@ -57797,7 +58141,7 @@ void main(void) {
57797
58141
  }
57798
58142
  const fontAtlas = this._generateFontAtlas(charSet, cachedFontAtlas);
57799
58143
  this._atlas = fontAtlas;
57800
- cache2.set(this._key, fontAtlas);
58144
+ cache.set(this._key, fontAtlas);
57801
58145
  }
57802
58146
  // eslint-disable-next-line max-statements
57803
58147
  _generateFontAtlas(characterSet, cachedFontAtlas) {
@@ -58124,7 +58468,12 @@ void main(void) {
58124
58468
  padding = [padding[0], padding[1], padding[0], padding[1]];
58125
58469
  }
58126
58470
  if (!Array.isArray(borderRadius)) {
58127
- borderRadius = [borderRadius, borderRadius, borderRadius, borderRadius];
58471
+ borderRadius = [
58472
+ borderRadius,
58473
+ borderRadius,
58474
+ borderRadius,
58475
+ borderRadius
58476
+ ];
58128
58477
  }
58129
58478
  const model = this.state.model;
58130
58479
  const textBackgroundProps = {
@@ -65412,7 +65761,7 @@ out float vTime;
65412
65761
  H3ClusterLayer.defaultProps = defaultProps27;
65413
65762
 
65414
65763
  // ../mesh-layers/src/simple-mesh-layer/simple-mesh-layer.ts
65415
- init_dist4();
65764
+ init_dist5();
65416
65765
 
65417
65766
  // ../mesh-layers/src/utils/matrix.ts
65418
65767
  var RADIAN_PER_DEGREE = Math.PI / 180;
@@ -65862,7 +66211,7 @@ void main(void) {
65862
66211
  SimpleMeshLayer.layerName = "SimpleMeshLayer";
65863
66212
 
65864
66213
  // ../../node_modules/@luma.gl/gltf/dist/parsers/parse-pbr-material.js
65865
- init_dist4();
66214
+ init_dist5();
65866
66215
 
65867
66216
  // ../../node_modules/@luma.gl/gltf/dist/webgl-to-webgpu/convert-webgl-sampler.js
65868
66217
  function convertSampler(gltfSampler) {
@@ -66073,7 +66422,7 @@ void main(void) {
66073
66422
  }
66074
66423
 
66075
66424
  // ../../node_modules/@luma.gl/gltf/dist/gltf/create-gltf-model.js
66076
- init_dist4();
66425
+ init_dist5();
66077
66426
  var SHADER = (
66078
66427
  /* WGSL */
66079
66428
  `
@@ -66311,10 +66660,10 @@ layout(0) positions: vec4; // in vec4 POSITION;
66311
66660
  }
66312
66661
 
66313
66662
  // ../../node_modules/@luma.gl/gltf/dist/gltf/gltf-animator.js
66314
- init_dist4();
66663
+ init_dist5();
66315
66664
 
66316
66665
  // ../../node_modules/@luma.gl/gltf/dist/gltf/animations/interpolate.js
66317
- init_dist4();
66666
+ init_dist5();
66318
66667
  var scratchQuaternion = new Quaternion();
66319
66668
  function interpolate(time, { input, interpolation, output }, target2, path) {
66320
66669
  const maxTime = input[input.length - 1];
@@ -76217,27 +76566,27 @@ void main(void) {
76217
76566
  var INT_CACHE = {};
76218
76567
  var UINT_CACHE = {};
76219
76568
  function fromInt(value, unsigned) {
76220
- var obj, cachedObj, cache3;
76569
+ var obj, cachedObj, cache2;
76221
76570
  if (unsigned) {
76222
76571
  value >>>= 0;
76223
- if (cache3 = 0 <= value && value < 256) {
76572
+ if (cache2 = 0 <= value && value < 256) {
76224
76573
  cachedObj = UINT_CACHE[value];
76225
76574
  if (cachedObj)
76226
76575
  return cachedObj;
76227
76576
  }
76228
76577
  obj = fromBits(value, 0, true);
76229
- if (cache3)
76578
+ if (cache2)
76230
76579
  UINT_CACHE[value] = obj;
76231
76580
  return obj;
76232
76581
  } else {
76233
76582
  value |= 0;
76234
- if (cache3 = -128 <= value && value < 128) {
76583
+ if (cache2 = -128 <= value && value < 128) {
76235
76584
  cachedObj = INT_CACHE[value];
76236
76585
  if (cachedObj)
76237
76586
  return cachedObj;
76238
76587
  }
76239
76588
  obj = fromBits(value, value < 0 ? -1 : 0, false);
76240
- if (cache3)
76589
+ if (cache2)
76241
76590
  INT_CACHE[value] = obj;
76242
76591
  return obj;
76243
76592
  }
@@ -80059,13 +80408,19 @@ vec4 project_position_to_clipspace(
80059
80408
  inject: {
80060
80409
  "vs:#decl": `
80061
80410
  in vec2 instanceDashArrays;
80411
+ #ifdef HIGH_PRECISION_DASH
80062
80412
  in float instanceDashOffsets;
80413
+ #endif
80063
80414
  out vec2 vDashArray;
80064
80415
  out float vDashOffset;
80065
80416
  `,
80066
80417
  "vs:#main-end": `
80067
80418
  vDashArray = instanceDashArrays;
80419
+ #ifdef HIGH_PRECISION_DASH
80068
80420
  vDashOffset = instanceDashOffsets / width.x;
80421
+ #else
80422
+ vDashOffset = 0.0;
80423
+ #endif
80069
80424
  `,
80070
80425
  "fs:#decl": `
80071
80426
  uniform pathStyleUniforms {
@@ -80172,8 +80527,12 @@ in float instanceOffsets;
80172
80527
  return null;
80173
80528
  }
80174
80529
  let result = {};
80530
+ const defines2 = {};
80175
80531
  if (extension.opts.dash) {
80176
80532
  result = mergeShaders(result, dashShaders);
80533
+ if (extension.opts.highPrecisionDash) {
80534
+ defines2.HIGH_PRECISION_DASH = true;
80535
+ }
80177
80536
  }
80178
80537
  if (extension.opts.offset) {
80179
80538
  result = mergeShaders(result, offsetShaders);
@@ -80188,7 +80547,8 @@ in float instanceOffsets;
80188
80547
  }
80189
80548
  };
80190
80549
  return {
80191
- modules: [pathStyle]
80550
+ modules: [pathStyle],
80551
+ defines: defines2
80192
80552
  };
80193
80553
  }
80194
80554
  initializeState(context, extension) {
@@ -80199,17 +80559,13 @@ in float instanceOffsets;
80199
80559
  if (extension.opts.dash) {
80200
80560
  attributeManager.addInstanced({
80201
80561
  instanceDashArrays: { size: 2, accessor: "getDashArray" },
80202
- instanceDashOffsets: extension.opts.highPrecisionDash ? {
80203
- size: 1,
80204
- accessor: "getPath",
80205
- transform: extension.getDashOffsets.bind(this)
80206
- } : {
80207
- size: 1,
80208
- update: (attribute) => {
80209
- attribute.constant = true;
80210
- attribute.value = [0];
80562
+ ...extension.opts.highPrecisionDash ? {
80563
+ instanceDashOffsets: {
80564
+ size: 1,
80565
+ accessor: "getPath",
80566
+ transform: extension.getDashOffsets.bind(this)
80211
80567
  }
80212
- }
80568
+ } : {}
80213
80569
  });
80214
80570
  }
80215
80571
  if (extension.opts.offset) {
@@ -81662,7 +82018,7 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
81662
82018
  };
81663
82019
 
81664
82020
  // ../extensions/src/terrain/utils.ts
81665
- init_dist5();
82021
+ init_dist6();
81666
82022
  function createRenderTarget(device, opts) {
81667
82023
  return device.createFramebuffer({
81668
82024
  id: opts.id,
@@ -83908,8 +84264,8 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
83908
84264
  setDefaultDeviceProps: () => setDefaultDeviceProps,
83909
84265
  stats: () => stats
83910
84266
  });
83911
- init_dist4();
83912
- init_dist4();
84267
+ init_dist5();
84268
+ init_dist5();
83913
84269
  var {
83914
84270
  stats,
83915
84271
  getSupportedAdapters,
@@ -88537,7 +88893,10 @@ void main() {
88537
88893
  if (colorDomain && aggregation === "SUM") {
88538
88894
  const { viewport: viewport2 } = this.context;
88539
88895
  const metersPerPixel = viewport2.distanceScales.metersPerUnit[2] * (commonBounds[2] - commonBounds[0]) / textureSize;
88540
- this.state.colorDomain = colorDomain.map((x3) => x3 * metersPerPixel * weightsScale);
88896
+ this.state.colorDomain = [
88897
+ colorDomain[0] * metersPerPixel * weightsScale,
88898
+ colorDomain[1] * metersPerPixel * weightsScale
88899
+ ];
88541
88900
  } else {
88542
88901
  this.state.colorDomain = colorDomain || DEFAULT_COLOR_DOMAIN;
88543
88902
  }
@@ -88626,8 +88985,8 @@ void main() {
88626
88985
  HeatmapLayer.defaultProps = defaultProps47;
88627
88986
 
88628
88987
  // ../google-maps/src/google-maps-overlay.ts
88629
- init_dist5();
88630
88988
  init_dist6();
88989
+ init_dist7();
88631
88990
 
88632
88991
  // ../google-maps/src/utils.ts
88633
88992
  var MAX_LATITUDE2 = 85.05113;
@@ -90745,6 +91104,15 @@ void main() {
90745
91104
  }
90746
91105
 
90747
91106
  // ../widgets/src/lib/components/dropdown-menu.tsx
91107
+ function getMenuItemValue(item) {
91108
+ return typeof item === "string" ? item : item.value;
91109
+ }
91110
+ function getMenuItemLabel(item) {
91111
+ return typeof item === "string" ? item : item.label;
91112
+ }
91113
+ function getMenuItemIcon(item) {
91114
+ return typeof item === "string" ? void 0 : item.icon;
91115
+ }
90748
91116
  var DropdownMenu = (props) => {
90749
91117
  const [isOpen, setIsOpen] = h3(false);
90750
91118
  const dropdownRef = A4(null);
@@ -90760,74 +91128,37 @@ void main() {
90760
91128
  document.removeEventListener("mousedown", handleClickOutside);
90761
91129
  };
90762
91130
  }, []);
90763
- const handleSelect = (value) => {
90764
- props.onSelect(value);
91131
+ const handleSelect = (item) => {
91132
+ props.onSelect(getMenuItemValue(item));
90765
91133
  setIsOpen(false);
90766
91134
  };
90767
- return /* @__PURE__ */ u4(
90768
- "div",
90769
- {
90770
- className: "dropdown-container",
90771
- ref: dropdownRef,
90772
- style: {
90773
- position: "relative",
90774
- display: "inline-block",
90775
- ...props.style
90776
- },
90777
- children: [
90778
- /* @__PURE__ */ u4(
90779
- "button",
90780
- {
90781
- onClick: toggleDropdown,
90782
- style: {
90783
- width: "30px",
90784
- height: "30px",
90785
- display: "flex",
90786
- alignItems: "center",
90787
- justifyContent: "center",
90788
- border: "1px solid #ccc",
90789
- borderRadius: "4px",
90790
- background: "#fff",
90791
- cursor: "pointer",
90792
- padding: 0
90793
- },
90794
- children: "\u25BC"
90795
- }
90796
- ),
90797
- isOpen && /* @__PURE__ */ u4(
90798
- "ul",
90799
- {
90800
- style: {
90801
- position: "absolute",
90802
- top: "100%",
90803
- right: "100%",
90804
- background: "#fff",
90805
- border: "1px solid #ccc",
90806
- borderRadius: "4px",
90807
- listStyle: "none",
90808
- padding: "4px 0",
90809
- margin: 0,
90810
- zIndex: 1e3,
90811
- minWidth: "200px"
90812
- },
90813
- children: props.menuItems.map((item) => /* @__PURE__ */ u4(
90814
- "li",
91135
+ if (props.menuItems.length === 0) {
91136
+ return null;
91137
+ }
91138
+ return /* @__PURE__ */ u4("div", { className: "deck-widget-dropdown-container", ref: dropdownRef, style: props.style, children: [
91139
+ /* @__PURE__ */ u4("button", { className: "deck-widget-dropdown-button", onClick: toggleDropdown, children: /* @__PURE__ */ u4("span", { className: `deck-widget-dropdown-icon ${isOpen ? "open" : ""}` }) }),
91140
+ isOpen && /* @__PURE__ */ u4("ul", { className: "deck-widget-dropdown-menu", children: props.menuItems.map((item) => {
91141
+ const icon = getMenuItemIcon(item);
91142
+ return /* @__PURE__ */ u4(
91143
+ "li",
91144
+ {
91145
+ className: "deck-widget-dropdown-item",
91146
+ onClick: () => handleSelect(item),
91147
+ children: [
91148
+ icon && /* @__PURE__ */ u4(
91149
+ "span",
90815
91150
  {
90816
- onClick: () => handleSelect(item),
90817
- style: {
90818
- padding: "4px 8px",
90819
- cursor: "pointer",
90820
- whiteSpace: "nowrap"
90821
- },
90822
- children: item
90823
- },
90824
- item
90825
- ))
90826
- }
90827
- )
90828
- ]
90829
- }
90830
- );
91151
+ className: "deck-widget-dropdown-item-icon",
91152
+ style: { maskImage: `url("${icon}")`, WebkitMaskImage: `url("${icon}")` }
91153
+ }
91154
+ ),
91155
+ getMenuItemLabel(item)
91156
+ ]
91157
+ },
91158
+ getMenuItemValue(item)
91159
+ );
91160
+ }) })
91161
+ ] });
90831
91162
  };
90832
91163
 
90833
91164
  // ../widgets/src/lib/geocode/geocoder-history.ts
@@ -91020,6 +91351,12 @@ void main() {
91020
91351
 
91021
91352
  // ../widgets/src/geocoder-widget.tsx
91022
91353
  var CURRENT_LOCATION2 = "current";
91354
+ var LOCATION_ICON = `data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 -960 960 960'%3E%3Cpath d='M480-480q33 0 56.5-23.5T560-560q0-33-23.5-56.5T480-640q-33 0-56.5 23.5T400-560q0 33 23.5 56.5T480-480Zm0 294q122-112 181-203.5T720-552q0-109-69.5-178.5T480-800q-101 0-170.5 69.5T240-552q0 71 59 162.5T480-186Zm0 106Q319-217 239.5-334.5T160-552q0-150 96.5-239T480-880q127 0 223.5 89T800-552q0 100-79.5 217.5T480-80Z'/%3E%3C/svg%3E`;
91355
+ var CURRENT_LOCATION_ITEM = {
91356
+ label: "Current location",
91357
+ value: CURRENT_LOCATION2,
91358
+ icon: LOCATION_ICON
91359
+ };
91023
91360
  var GeocoderWidget = class extends Widget {
91024
91361
  constructor(props = {}) {
91025
91362
  super(props);
@@ -91028,6 +91365,7 @@ void main() {
91028
91365
  this.geocodeHistory = new GeocoderHistory({});
91029
91366
  this.addressText = "";
91030
91367
  this.geocoder = CoordinatesGeocoder;
91368
+ this.isGettingLocation = false;
91031
91369
  this.setInput = (text) => {
91032
91370
  this.addressText = text;
91033
91371
  };
@@ -91036,23 +91374,48 @@ void main() {
91036
91374
  this.handleSubmit();
91037
91375
  }
91038
91376
  };
91039
- this.handleSelect = (address) => {
91040
- this.setInput(address);
91041
- this.handleSubmit();
91377
+ this.handleSelect = (value) => {
91378
+ if (value === CURRENT_LOCATION2) {
91379
+ this.getCurrentLocation();
91380
+ } else {
91381
+ this.setInput(value);
91382
+ this.handleSubmit();
91383
+ }
91042
91384
  };
91043
91385
  /** Sync wrapper for async geocode() */
91044
91386
  this.handleSubmit = () => {
91045
91387
  this.geocode(this.addressText);
91046
91388
  };
91389
+ /** Get current location via browser geolocation API */
91390
+ this.getCurrentLocation = async () => {
91391
+ this.isGettingLocation = true;
91392
+ if (this.rootElement) {
91393
+ this.updateHTML();
91394
+ }
91395
+ try {
91396
+ const coordinates = await CurrentLocationGeocoder.geocode();
91397
+ if (coordinates) {
91398
+ this.setViewState(coordinates);
91399
+ }
91400
+ } catch (error) {
91401
+ this.geocodeHistory.errorText = error instanceof Error ? error.message : "Location error";
91402
+ } finally {
91403
+ this.isGettingLocation = false;
91404
+ if (this.rootElement) {
91405
+ this.updateHTML();
91406
+ }
91407
+ }
91408
+ };
91047
91409
  /** Perform geocoding */
91048
91410
  this.geocode = async (address) => {
91049
- const useGeolocation = this.props._geolocation && address === CURRENT_LOCATION2;
91050
- const geocoder = useGeolocation ? CurrentLocationGeocoder : this.geocoder;
91051
91411
  const coordinates = await this.geocodeHistory.geocode(
91052
- geocoder,
91412
+ this.geocoder,
91053
91413
  this.addressText,
91054
91414
  this.props.apiKey
91055
91415
  );
91416
+ if (this.rootElement) {
91417
+ this.updateHTML();
91418
+ }
91056
91419
  if (coordinates) {
91057
91420
  this.setViewState(coordinates);
91058
91421
  }
@@ -91070,53 +91433,23 @@ void main() {
91070
91433
  super.setProps(props);
91071
91434
  }
91072
91435
  onRenderHTML(rootElement) {
91073
- const menuItems = this.props._geolocation ? [CURRENT_LOCATION2, ...this.geocodeHistory.addressHistory] : [...this.geocodeHistory.addressHistory];
91436
+ const menuItems = this.props._geolocation ? [CURRENT_LOCATION_ITEM, ...this.geocodeHistory.addressHistory] : [...this.geocodeHistory.addressHistory];
91074
91437
  B3(
91075
- /* @__PURE__ */ u4(
91076
- "div",
91077
- {
91078
- className: "deck-widget-geocoder",
91079
- style: {
91080
- pointerEvents: "auto",
91081
- display: "flex",
91082
- alignItems: "center",
91083
- flexWrap: "wrap"
91084
- // Allows wrapping on smaller screens
91085
- },
91086
- children: [
91087
- /* @__PURE__ */ u4(
91088
- "input",
91089
- {
91090
- type: "text",
91091
- placeholder: this.geocoder.placeholderLocation ?? "Enter address or location",
91092
- value: this.geocodeHistory.addressText,
91093
- onInput: (e6) => this.setInput(e6.target?.value || ""),
91094
- onKeyPress: this.handleKeyPress,
91095
- style: {
91096
- flex: "1 1 auto",
91097
- minWidth: "200px",
91098
- margin: 0,
91099
- padding: "8px",
91100
- boxSizing: "border-box"
91101
- }
91102
- }
91103
- ),
91104
- /* @__PURE__ */ u4(
91105
- DropdownMenu,
91106
- {
91107
- menuItems,
91108
- onSelect: this.handleSelect,
91109
- style: {
91110
- margin: 2,
91111
- padding: "4px 2px",
91112
- boxSizing: "border-box"
91113
- }
91114
- }
91115
- ),
91116
- this.geocodeHistory.errorText && /* @__PURE__ */ u4("div", { className: "error", children: this.geocodeHistory.errorText })
91117
- ]
91118
- }
91119
- ),
91438
+ /* @__PURE__ */ u4("div", { className: "deck-widget-geocoder", children: [
91439
+ /* @__PURE__ */ u4(
91440
+ "input",
91441
+ {
91442
+ className: "deck-widget-geocoder-input",
91443
+ type: "text",
91444
+ placeholder: this.isGettingLocation ? "Finding your location..." : this.geocoder.placeholderLocation ?? "Enter address or location",
91445
+ value: this.geocodeHistory.addressText,
91446
+ onInput: (e6) => this.setInput(e6.target?.value || ""),
91447
+ onKeyPress: this.handleKeyPress
91448
+ }
91449
+ ),
91450
+ /* @__PURE__ */ u4(DropdownMenu, { menuItems, onSelect: this.handleSelect }),
91451
+ this.geocodeHistory.errorText && /* @__PURE__ */ u4("div", { className: "deck-widget-geocoder-error", children: this.geocodeHistory.errorText })
91452
+ ] }),
91120
91453
  rootElement
91121
91454
  );
91122
91455
  }
@@ -91972,7 +92305,13 @@ void main() {
91972
92305
  "--button-text": "rgb(24, 24, 26, 1)",
91973
92306
  "--icon-compass-north-color": "rgb(240, 92, 68)",
91974
92307
  "--icon-compass-south-color": "rgb(204, 204, 204)",
91975
- "--menu-gap": "4px"
92308
+ "--menu-gap": "4px",
92309
+ "--menu-background": "#fff",
92310
+ "--menu-backdrop-filter": "unset",
92311
+ "--menu-border": "unset",
92312
+ "--menu-shadow": "0px 0px 8px 0px rgba(0, 0, 0, 0.25)",
92313
+ "--menu-text": "rgb(24, 24, 26, 1)",
92314
+ "--menu-item-hover": "rgba(0, 0, 0, 0.08)"
91976
92315
  };
91977
92316
  var DarkTheme = {
91978
92317
  "--widget-margin": "12px",
@@ -91988,7 +92327,13 @@ void main() {
91988
92327
  "--button-text": "rgb(215, 214, 229, 1)",
91989
92328
  "--icon-compass-north-color": "rgb(240, 92, 68)",
91990
92329
  "--icon-compass-south-color": "rgb(200, 199, 209)",
91991
- "--menu-gap": "4px"
92330
+ "--menu-gap": "4px",
92331
+ "--menu-background": "rgba(18, 18, 20, 1)",
92332
+ "--menu-backdrop-filter": "unset",
92333
+ "--menu-border": "unset",
92334
+ "--menu-shadow": "0px 0px 8px 0px rgba(0, 0, 0, 0.25)",
92335
+ "--menu-text": "rgb(215, 214, 229, 1)",
92336
+ "--menu-item-hover": "rgba(255, 255, 255, 0.1)"
91992
92337
  };
91993
92338
  var LightGlassTheme = {
91994
92339
  "--widget-margin": "12px",
@@ -92004,7 +92349,13 @@ void main() {
92004
92349
  "--button-text": "rgb(24, 24, 26, 1)",
92005
92350
  "--icon-compass-north-color": "rgb(240, 92, 68)",
92006
92351
  "--icon-compass-south-color": "rgb(204, 204, 204)",
92007
- "--menu-gap": "4px"
92352
+ "--menu-gap": "4px",
92353
+ "--menu-background": "rgba(255, 255, 255, 0.6)",
92354
+ "--menu-backdrop-filter": "blur(4px)",
92355
+ "--menu-border": "1px solid rgba(255, 255, 255, 0.6)",
92356
+ "--menu-shadow": "0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset",
92357
+ "--menu-text": "rgb(24, 24, 26, 1)",
92358
+ "--menu-item-hover": "rgba(0, 0, 0, 0.08)"
92008
92359
  };
92009
92360
  var DarkGlassTheme = {
92010
92361
  "--widget-margin": "12px",
@@ -92020,7 +92371,13 @@ void main() {
92020
92371
  "--button-text": "rgb(215, 214, 229, 1)",
92021
92372
  "--icon-compass-north-color": "rgb(240, 92, 68)",
92022
92373
  "--icon-compass-south-color": "rgb(200, 199, 209)",
92023
- "--menu-gap": "4px"
92374
+ "--menu-gap": "4px",
92375
+ "--menu-background": "rgba(18, 18, 20, 0.75)",
92376
+ "--menu-backdrop-filter": "blur(4px)",
92377
+ "--menu-border": "1px solid rgba(18, 18, 20, 0.75)",
92378
+ "--menu-shadow": "0px 0px 8px 0px rgba(0, 0, 0, 0.25), 0px 0px 8px 0px rgba(0, 0, 0, 0.1) inset",
92379
+ "--menu-text": "rgb(215, 214, 229, 1)",
92380
+ "--menu-item-hover": "rgba(255, 255, 255, 0.1)"
92024
92381
  };
92025
92382
 
92026
92383
  // ../widgets/src/theme-widget.tsx
@@ -92200,7 +92557,7 @@ void main() {
92200
92557
  };
92201
92558
 
92202
92559
  // ../widgets/src/stats-widget.tsx
92203
- init_dist4();
92560
+ init_dist5();
92204
92561
  var RIGHT_ARROW = "\u25B6";
92205
92562
  var DOWN_ARROW = "\u2B07";
92206
92563
  var DEFAULT_COUNT_FORMATTER = (stat) => `${stat.name}: ${stat.count}`;