@netless/fastboard-ui 1.0.0-canary.0 → 1.0.0-canary.3

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/index.mjs CHANGED
@@ -1,26 +1,22 @@
1
1
  import Tippy from 'tippy.js';
2
2
 
3
- var __defProp = Object.defineProperty;
4
- var __defProps = Object.defineProperties;
5
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
- var __spreadValues = (a, b) => {
11
- for (var prop in b || (b = {}))
12
- if (__hasOwnProp.call(b, prop))
13
- __defNormalProp(a, prop, b[prop]);
14
- if (__getOwnPropSymbols)
15
- for (var prop of __getOwnPropSymbols(b)) {
16
- if (__propIsEnum.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- }
19
- return a;
20
- };
21
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
3
+ // inline-sass-helper:inline-sass-style-helper.js
4
+ function injectStyle(text2) {
5
+ if (typeof document !== "undefined") {
6
+ var style = document.createElement("style");
7
+ var node = document.createTextNode(text2);
8
+ style.appendChild(node);
9
+ document.head.appendChild(style);
10
+ }
11
+ }
12
+
13
+ // inline-sass-content:./src/style.scss
14
+ var style_default = '.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-theme~=light]{color:#26323d;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:#fff}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.fastboard-icon.light .fastboard-icon-stroke-color{stroke:var(--fastboard-color, #5d6066)}.fastboard-icon.light .fastboard-icon-fill-color{fill:var(--fastboard-color, #5d6066)}.fastboard-icon.light.is-active .fastboard-icon-stroke-color{stroke:var(--fastboard-active-color, #3381ff)}.fastboard-icon.light.is-active .fastboard-icon-fill-color{fill:var(--fastboard-active-color, #3381ff)}.fastboard-icon.dark .fastboard-icon-stroke-color{stroke:var(--fastboard-color, #7b7e84)}.fastboard-icon.dark .fastboard-icon-fill-color{fill:var(--fastboard-color, #7b7e84)}.fastboard-icon.dark.is-active .fastboard-icon-stroke-color{stroke:var(--fastboard-active-color, #2867cc)}.fastboard-icon.dark.is-active .fastboard-icon-fill-color{fill:var(--fastboard-active-color, #2867cc)}.fastboard-redo-undo{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-redo-undo *{box-sizing:inherit}.fastboard-redo-undo.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-redo-undo.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-redo-undo-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-redo-undo-btn svg,.fastboard-redo-undo-btn img{width:100%;height:100%;pointer-events:none}.fastboard-redo-undo-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-redo-undo-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-redo-undo-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-zoom-control{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-zoom-control *{box-sizing:inherit}.fastboard-zoom-control.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-zoom-control.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-zoom-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-zoom-control-btn svg,.fastboard-zoom-control-btn img{width:100%;height:100%;pointer-events:none}.fastboard-zoom-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-zoom-control-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-zoom-control-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-zoom-control-text{font-variant-numeric:tabular-nums}.fastboard-page-control{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-page-control *{box-sizing:inherit}.fastboard-page-control.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-page-control.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-page-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-page-control-btn svg,.fastboard-page-control-btn img{width:100%;height:100%;pointer-events:none}.fastboard-page-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-page-control-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-page-control-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-page-control-text{font-variant-numeric:tabular-nums}.fastboard-player-control{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);width:100%}.fastboard-player-control *{box-sizing:inherit}.fastboard-player-control.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-player-control.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-player-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0;display:inline}.fastboard-player-control-btn svg,.fastboard-player-control-btn img{width:100%;height:100%;pointer-events:none}.fastboard-player-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-player-control-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-player-control-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-player-control-btn.loading svg,.fastboard-player-control-btn.loading img{animation:fastboard-player-control-rotate .5s linear infinite}@keyframes fastboard-player-control-rotate{to{transform:rotate(360deg)}}.fastboard-player-control-btn.speed{width:auto;padding:4px;text-align:right;font-size:14px;font-variant-numeric:tabular-nums}.fastboard-player-control-btn.is-active.light{color:var(--fastboard-active-color, #3381ff)}.fastboard-player-control-btn.is-active.dark{color:var(--fastboard-active-color, #2867cc)}.fastboard-player-control-speed-text,.fastboard-player-control-progress{font-size:14px;font-variant-numeric:tabular-nums;line-height:16px}.fastboard-player-control-progress{display:inline-flex;align-items:center}.fastboard-player-control-panel.speed{display:flex;flex-direction:column}.fastboard-toolbar{height:100%;display:flex;align-items:center;position:relative;transform:translate(0);transition:transform .5s cubic-bezier(.34,1.56,.64,1);pointer-events:none}.fastboard-toolbar.collapsed{transform:translate(-100%)}.fastboard-toolbar-handler{position:absolute;left:100%;width:17px;font-size:0;border-radius:3px;cursor:pointer;pointer-events:auto}.fastboard-toolbar-handler:focus-visible{outline:2px solid -webkit-focus-ring-color}.fastboard-toolbar-handler input[type=checkbox]{position:absolute;top:0;left:0;appearance:none;margin:0;width:100%;height:100%;cursor:pointer;opacity:0;z-index:-1}.fastboard-toolbar-handler svg{opacity:0;transition:opacity .5s 1s;pointer-events:none}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-bg-color{fill:var(--fastboard-bg-color, rgba(255, 255, 255, .9))}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-border-color{stroke:var(--fastboard-border-color, #e5e8f0)}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-image-stroke-color{stroke:var(--fastboard-color, #5d6066)}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-image-fill-color{fill:var(--fastboard-color, #5d6066)}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-bg-color{fill:var(--fastboard-bg-color, rgba(20, 24, 30, .9))}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-border-color{stroke:var(--fastboard-border-color, #383b42)}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-image-stroke-color{stroke:var(--fastboard-color, #7b7e84)}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-image-fill-color{fill:var(--fastboard-color, #7b7e84)}.fastboard-toolbar:hover .fastboard-toolbar-handler svg,.fastboard-toolbar.collapsed .fastboard-toolbar-handler svg{opacity:1;transition:opacity .2s}.fastboard-toolbar-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:4px;width:32px;height:32px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-toolbar-btn svg,.fastboard-toolbar-btn img{width:100%;height:100%;pointer-events:none}.fastboard-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-toolbar-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-toolbar-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-slider{box-sizing:border-box;position:relative;width:100%;height:100%;display:flex;align-items:center}.fastboard-slider *{box-sizing:inherit}.fastboard-slider-track{appearance:none;background:rgba(0,0,0,0);border:0;border-radius:26px;flex:1;display:block;height:19px;margin:0;width:0;min-width:0;padding:0;transition:box-shadow .3s ease;cursor:pointer;touch-action:manipulation}.fastboard-slider-track::-webkit-slider-runnable-track{border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;user-select:none;background-color:#80808040;-webkit-user-select:none;background-image:linear-gradient(to right,currentColor var(--value, 0%),transparent var(--value, 0%))}.fastboard-slider-track::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px #23292f26,0 0 0 1px #23292f33;width:13px;height:13px;position:relative;transition:all .2s ease;cursor:grab;appearance:none;margin-top:-4px}.fastboard-slider-track::-moz-range-track{border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;user-select:none;background-color:#80808040;-webkit-user-select:none}.fastboard-slider-track::-moz-range-thumb{appearance:none;background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px #23292f26,0 0 0 1px #23292f33;width:13px;height:13px;position:relative;transition:all .2s ease;cursor:grab}.fastboard-slider-track::-moz-range-progress{background:currentColor;border-radius:2.5px;height:5px}.fastboard-slider-track::-ms-track{border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;user-select:none;background-color:#80808040;-webkit-user-select:none;color:#0000}.fastboard-slider-track::-ms-thumb{appearance:none;background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px #23292f26,0 0 0 1px #23292f33;width:13px;height:13px;position:relative;transition:all .2s ease;cursor:grab;margin-top:0}.fastboard-slider-track::-ms-tooltip{display:none}.fastboard-slider-track::-moz-focus-outer{border:0}.fastboard-slider-track.grabbing::-webkit-slider-thumb{cursor:grabbing}.fastboard-slider-track.light{color:var(--fastboard-active-color, #3381ff)}.fastboard-slider-track.dark{color:var(--fastboard-active-color, #2867cc)}.fastboard-toolbar-contents{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);padding:2px 0;gap:0;flex-direction:column}.fastboard-toolbar-contents *{box-sizing:inherit}.fastboard-toolbar-contents.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-toolbar-contents.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-toolbar-contents>.fastboard-toolbar-btn{margin:2px 4px}.fastboard-toolbar-btn-interactive{position:relative}.fastboard-toolbar-triangle{width:0px;height:0px;border-bottom:4px solid;border-left:4px solid rgba(0,0,0,0);position:absolute;bottom:0;right:0}.fastboard-toolbar-btn:focus+.fastboard-toolbar-triangle{opacity:0}.fastboard-toolbar-scrollable{padding:2px 4px;overflow:hidden;display:flex;flex-direction:column;gap:4px}.fastboard-toolbar-tooltip{display:inline-flex;align-items:center;gap:4px}.fastboard-toolbar-hotkey{display:inline-flex;margin-right:-4px;width:24px;height:24px;align-items:center;justify-content:center;background-color:#ffffff1a;border-radius:4px}.fastboard-toolbar-panel-wrapper{display:none}.fastboard-toolbar-panel{display:flex;flex-direction:column}.fastboard-toolbar-panel-divider{height:.5px;width:100%;margin:4px 0;background-color:#ffffff26}.fastboard-toolbar-colors,.fastboard-toolbar-shapes{display:grid;align-self:center;grid-template:repeat(2,1fr)/repeat(4,1fr);align-items:center;justify-items:center;gap:4px}.fastboard-toolbar-shape-btn,.fastboard-toolbar-color-btn{width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-color-btn{border:1px solid rgba(0,0,0,0)}.fastboard-toolbar-color-btn.light.is-active{border-color:var(--fastboard-active-color, #3381ff)}.fastboard-toolbar-color-btn.dark.is-active{border-color:var(--fastboard-active-color, #2867cc)}.fastboard-toolbar-color-item{display:inline-block;width:16px;height:16px;border-radius:4px;pointer-events:none}.fastboard-toolbar-panel.apps{display:grid;grid-template-columns:repeat(min(var(--n, 3),3),minmax(max-content,1fr));gap:4px}.fastboard-toolbar-app-btn{margin:0;border:0;border-radius:2px;padding:4px 6px;background-color:#0000;display:inline-flex;flex-direction:column;align-items:center;gap:4px;font-size:0}.fastboard-toolbar-app-btn:disabled{opacity:.8}.fastboard-toolbar-app-btn-icon{width:32px;height:32px;pointer-events:none}.fastboard-toolbar-app-btn-text{font-size:14px;line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.fastboard-toolbar-app-btn.is-loading{cursor:progress}.fastboard-toolbar-app-btn.is-failed{cursor:not-allowed;opacity:.5}.fastboard-toolbar-app-btn:not(:disabled,.is-loading,.is-failed):hover.light{cursor:pointer;background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-toolbar-app-btn-text.light{color:var(--fastboard-color, #5d6066)}.fastboard-toolbar-app-btn:not(:disabled,.is-loading,.is-failed):hover.dark{cursor:pointer;background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-toolbar-app-btn-text.dark{color:var(--fastboard-color, #7b7e84)}.fastboard-root{position:relative;width:100%;height:100%;overflow:hidden}.fastboard-view{position:absolute;top:0;left:0;width:100%;height:100%}.fastboard-left{display:flex;align-items:center;position:absolute;bottom:62px;top:8px;left:0;z-index:200;pointer-events:none}.fastboard-left .fastboard-toolbar{padding-left:16px}.fastboard-bottom-left,.fastboard-bottom,.fastboard-bottom-right{display:flex;gap:10px;position:absolute;bottom:8px;left:8px;padding:8px;z-index:200;pointer-events:none}.fastboard-bottom-right{left:auto;right:8px}.fastboard-bottom{right:8px}.fastboard-left.hidden *,.fastboard-bottom.hidden *,.fastboard-bottom-left.hidden *,.fastboard-bottom-right.hidden *{opacity:0;pointer-events:none}.fastboard-tip{font-family:inherit;color:#d5d9e0;background-color:#03060d}.fastboard-tip[data-placement^=right]>.tippy-arrow:before{top:4px;border-width:4px;border-right-color:#03060d}.fastboard-tip[data-placement^=top]>.tippy-arrow:before{left:4px;border-width:4px;border-top-color:#03060d}.fastboard-panel .tippy-content{padding:8px}.netless-whiteboard:focus-visible{outline:none}';
15
+
16
+ // inline-sass-stub:./src/style.scss
17
+ injectStyle(style_default);
22
18
 
23
- // ../../node_modules/.pnpm/svelte@3.48.0/node_modules/svelte/internal/index.mjs
19
+ // ../../node_modules/.pnpm/svelte@3.49.0/node_modules/svelte/internal/index.mjs
24
20
  function noop() {
25
21
  }
26
22
  function assign(tar, src) {
@@ -312,6 +308,8 @@ function transition_out(block, local, detach2, callback) {
312
308
  }
313
309
  });
314
310
  block.o(local);
311
+ } else if (callback) {
312
+ callback();
315
313
  }
316
314
  }
317
315
  function destroy_block(block, lookup) {
@@ -555,7 +553,14 @@ function create_else_block(ctx) {
555
553
  p(ctx2, dirty) {
556
554
  if (default_slot) {
557
555
  if (default_slot.p && (!current || dirty & 8)) {
558
- update_slot_base(default_slot, default_slot_template, ctx2, ctx2[3], !current ? get_all_dirty_from_scope(ctx2[3]) : get_slot_changes(default_slot_template, ctx2[3], dirty, null), null);
556
+ update_slot_base(
557
+ default_slot,
558
+ default_slot_template,
559
+ ctx2,
560
+ ctx2[3],
561
+ !current ? get_all_dirty_from_scope(ctx2[3]) : get_slot_changes(default_slot_template, ctx2[3], dirty, null),
562
+ null
563
+ );
559
564
  }
560
565
  }
561
566
  },
@@ -3402,8 +3407,7 @@ if (is_client) {
3402
3407
  }
3403
3408
  }
3404
3409
  function remove() {
3405
- var _a;
3406
- (_a = instance59.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
3410
+ instance59.popper.firstElementChild?.classList.remove("fastboard-tip");
3407
3411
  }
3408
3412
  return {
3409
3413
  onCreate: add,
@@ -3427,11 +3431,13 @@ var tippy = function(node, props) {
3427
3431
  };
3428
3432
  };
3429
3433
  function tippy_hide_all() {
3430
- document.querySelectorAll("[data-tippy-root]").forEach((el) => {
3431
- const instance59 = el._tippy;
3432
- if (instance59)
3433
- instance59.hide();
3434
- });
3434
+ document.querySelectorAll("[data-tippy-root]").forEach(tippy_hide);
3435
+ }
3436
+ function tippy_hide(el) {
3437
+ const instance59 = el._tippy;
3438
+ if (instance59) {
3439
+ instance59.hide();
3440
+ }
3435
3441
  }
3436
3442
  var tippy_menu = {
3437
3443
  delay: 0,
@@ -3472,7 +3478,14 @@ function create_else_block_1(ctx) {
3472
3478
  p(ctx2, dirty) {
3473
3479
  if (default_slot) {
3474
3480
  if (default_slot.p && (!current || dirty & 256)) {
3475
- update_slot_base(default_slot, default_slot_template, ctx2, ctx2[8], !current ? get_all_dirty_from_scope(ctx2[8]) : get_slot_changes(default_slot_template, ctx2[8], dirty, null), null);
3481
+ update_slot_base(
3482
+ default_slot,
3483
+ default_slot_template,
3484
+ ctx2,
3485
+ ctx2[8],
3486
+ !current ? get_all_dirty_from_scope(ctx2[8]) : get_slot_changes(default_slot_template, ctx2[8], dirty, null),
3487
+ null
3488
+ );
3476
3489
  }
3477
3490
  }
3478
3491
  if (!current || dirty & 7 && button_class_value !== (button_class_value = ctx2[1] + "-btn " + ctx2[0] + " " + ctx2[2])) {
@@ -3603,7 +3616,14 @@ function create_else_block2(ctx) {
3603
3616
  p(ctx2, dirty) {
3604
3617
  if (default_slot) {
3605
3618
  if (default_slot.p && (!current || dirty & 256)) {
3606
- update_slot_base(default_slot, default_slot_template, ctx2, ctx2[8], !current ? get_all_dirty_from_scope(ctx2[8]) : get_slot_changes(default_slot_template, ctx2[8], dirty, null), null);
3619
+ update_slot_base(
3620
+ default_slot,
3621
+ default_slot_template,
3622
+ ctx2,
3623
+ ctx2[8],
3624
+ !current ? get_all_dirty_from_scope(ctx2[8]) : get_slot_changes(default_slot_template, ctx2[8], dirty, null),
3625
+ null
3626
+ );
3607
3627
  }
3608
3628
  }
3609
3629
  if (!current || dirty & 7 && button_class_value !== (button_class_value = ctx2[1] + "-btn " + ctx2[0] + " " + ctx2[2])) {
@@ -3679,14 +3699,14 @@ function create_if_block_1(ctx) {
3679
3699
  if (!mounted) {
3680
3700
  dispose = [
3681
3701
  listen(button, "click", ctx[10]),
3682
- action_destroyer(tippy_action = tippy.call(null, button, __spreadProps(__spreadValues({
3683
- content: ctx[6]
3684
- }, tippy_menu), {
3702
+ action_destroyer(tippy_action = tippy.call(null, button, {
3703
+ content: ctx[6],
3704
+ ...tippy_menu,
3685
3705
  placement: ctx[7],
3686
3706
  appendTo: document.body,
3687
3707
  theme: ctx[2],
3688
3708
  className: "fastboard-panel"
3689
- }))),
3709
+ })),
3690
3710
  action_destroyer(tippy_action_1 = tippy.call(null, span1, {
3691
3711
  content: ctx[4],
3692
3712
  placement: ctx[5],
@@ -3699,7 +3719,14 @@ function create_if_block_1(ctx) {
3699
3719
  p(ctx2, dirty) {
3700
3720
  if (default_slot) {
3701
3721
  if (default_slot.p && (!current || dirty & 256)) {
3702
- update_slot_base(default_slot, default_slot_template, ctx2, ctx2[8], !current ? get_all_dirty_from_scope(ctx2[8]) : get_slot_changes(default_slot_template, ctx2[8], dirty, null), null);
3722
+ update_slot_base(
3723
+ default_slot,
3724
+ default_slot_template,
3725
+ ctx2,
3726
+ ctx2[8],
3727
+ !current ? get_all_dirty_from_scope(ctx2[8]) : get_slot_changes(default_slot_template, ctx2[8], dirty, null),
3728
+ null
3729
+ );
3703
3730
  }
3704
3731
  }
3705
3732
  if (!current || dirty & 7 && button_class_value !== (button_class_value = ctx2[1] + "-btn " + ctx2[0] + " " + ctx2[2])) {
@@ -3709,14 +3736,14 @@ function create_if_block_1(ctx) {
3709
3736
  button.disabled = ctx2[3];
3710
3737
  }
3711
3738
  if (tippy_action && is_function(tippy_action.update) && dirty & 196)
3712
- tippy_action.update.call(null, __spreadProps(__spreadValues({
3713
- content: ctx2[6]
3714
- }, tippy_menu), {
3739
+ tippy_action.update.call(null, {
3740
+ content: ctx2[6],
3741
+ ...tippy_menu,
3715
3742
  placement: ctx2[7],
3716
3743
  appendTo: document.body,
3717
3744
  theme: ctx2[2],
3718
3745
  className: "fastboard-panel"
3719
- }));
3746
+ });
3720
3747
  if (!current || dirty & 2 && span0_class_value !== (span0_class_value = ctx2[1] + "-triangle")) {
3721
3748
  attr(span0, "class", span0_class_value);
3722
3749
  }
@@ -3920,12 +3947,11 @@ function create_default_slot_3(ctx) {
3920
3947
  };
3921
3948
  }
3922
3949
  function create_default_slot_2(ctx) {
3923
- var _a;
3924
3950
  let icon;
3925
3951
  let current;
3926
3952
  icon = new Icon_default({
3927
3953
  props: {
3928
- src: (_a = ctx[1]) == null ? void 0 : _a.undo[ctx[2]],
3954
+ src: ctx[1]?.undo[ctx[2]],
3929
3955
  alt: "[undo]",
3930
3956
  $$slots: { default: [create_default_slot_3] },
3931
3957
  $$scope: { ctx }
@@ -3940,10 +3966,9 @@ function create_default_slot_2(ctx) {
3940
3966
  current = true;
3941
3967
  },
3942
3968
  p(ctx2, dirty) {
3943
- var _a2;
3944
3969
  const icon_changes = {};
3945
3970
  if (dirty & 6)
3946
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.undo[ctx2[2]];
3971
+ icon_changes.src = ctx2[1]?.undo[ctx2[2]];
3947
3972
  if (dirty & 131073) {
3948
3973
  icon_changes.$$scope = { dirty, ctx: ctx2 };
3949
3974
  }
@@ -3998,12 +4023,11 @@ function create_default_slot_1(ctx) {
3998
4023
  };
3999
4024
  }
4000
4025
  function create_default_slot(ctx) {
4001
- var _a;
4002
4026
  let icon;
4003
4027
  let current;
4004
4028
  icon = new Icon_default({
4005
4029
  props: {
4006
- src: (_a = ctx[1]) == null ? void 0 : _a.redo[ctx[2]],
4030
+ src: ctx[1]?.redo[ctx[2]],
4007
4031
  alt: "[redo]",
4008
4032
  $$slots: { default: [create_default_slot_1] },
4009
4033
  $$scope: { ctx }
@@ -4018,10 +4042,9 @@ function create_default_slot(ctx) {
4018
4042
  current = true;
4019
4043
  },
4020
4044
  p(ctx2, dirty) {
4021
- var _a2;
4022
4045
  const icon_changes = {};
4023
4046
  if (dirty & 6)
4024
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.redo[ctx2[2]];
4047
+ icon_changes.src = ctx2[1]?.redo[ctx2[2]];
4025
4048
  if (dirty & 131073) {
4026
4049
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4027
4050
  }
@@ -4163,10 +4186,10 @@ function instance46($$self, $$props, $$invalidate) {
4163
4186
  let { icons = void 0 } = $$props;
4164
4187
  let type;
4165
4188
  function undo() {
4166
- app == null ? void 0 : app.undo();
4189
+ app?.undo();
4167
4190
  }
4168
4191
  function redo() {
4169
- app == null ? void 0 : app.redo();
4192
+ app?.redo();
4170
4193
  }
4171
4194
  $$self.$$set = ($$props2) => {
4172
4195
  if ("app" in $$props2)
@@ -4180,7 +4203,7 @@ function instance46($$self, $$props, $$invalidate) {
4180
4203
  };
4181
4204
  $$self.$$.update = () => {
4182
4205
  if ($$self.$$.dirty & 2048) {
4183
- $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
4206
+ $$subscribe_writable($$invalidate(8, writable2 = app?.writable));
4184
4207
  }
4185
4208
  if ($$self.$$.dirty & 65536) {
4186
4209
  $$invalidate(13, disabled = !$writable);
@@ -4192,10 +4215,10 @@ function instance46($$self, $$props, $$invalidate) {
4192
4215
  $$invalidate(2, type = disabled ? "disable" : "normal");
4193
4216
  }
4194
4217
  if ($$self.$$.dirty & 2048) {
4195
- $$subscribe_undoSteps($$invalidate(6, undoSteps = app == null ? void 0 : app.canUndoSteps));
4218
+ $$subscribe_undoSteps($$invalidate(6, undoSteps = app?.canUndoSteps));
4196
4219
  }
4197
4220
  if ($$self.$$.dirty & 2048) {
4198
- $$subscribe_redoSteps($$invalidate(5, redoSteps = app == null ? void 0 : app.canRedoSteps));
4221
+ $$subscribe_redoSteps($$invalidate(5, redoSteps = app?.canRedoSteps));
4199
4222
  }
4200
4223
  if ($$self.$$.dirty & 40960) {
4201
4224
  $$invalidate(4, undo_disabled = disabled || !$undoSteps);
@@ -4272,12 +4295,11 @@ function create_default_slot_5(ctx) {
4272
4295
  };
4273
4296
  }
4274
4297
  function create_default_slot_4(ctx) {
4275
- var _a;
4276
4298
  let icon;
4277
4299
  let current;
4278
4300
  icon = new Icon_default({
4279
4301
  props: {
4280
- src: (_a = ctx[1]) == null ? void 0 : _a.prev[ctx[5]],
4302
+ src: ctx[1]?.prev[ctx[5]],
4281
4303
  alt: "[prev]",
4282
4304
  $$slots: { default: [create_default_slot_5] },
4283
4305
  $$scope: { ctx }
@@ -4292,10 +4314,9 @@ function create_default_slot_4(ctx) {
4292
4314
  current = true;
4293
4315
  },
4294
4316
  p(ctx2, dirty) {
4295
- var _a2;
4296
4317
  const icon_changes = {};
4297
4318
  if (dirty & 34)
4298
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.prev[ctx2[5]];
4319
+ icon_changes.src = ctx2[1]?.prev[ctx2[5]];
4299
4320
  if (dirty & 262145) {
4300
4321
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4301
4322
  }
@@ -4398,12 +4419,11 @@ function create_default_slot_32(ctx) {
4398
4419
  };
4399
4420
  }
4400
4421
  function create_default_slot_22(ctx) {
4401
- var _a;
4402
4422
  let icon;
4403
4423
  let current;
4404
4424
  icon = new Icon_default({
4405
4425
  props: {
4406
- src: (_a = ctx[1]) == null ? void 0 : _a.next[ctx[5]],
4426
+ src: ctx[1]?.next[ctx[5]],
4407
4427
  alt: "[next]",
4408
4428
  $$slots: { default: [create_default_slot_32] },
4409
4429
  $$scope: { ctx }
@@ -4418,10 +4438,9 @@ function create_default_slot_22(ctx) {
4418
4438
  current = true;
4419
4439
  },
4420
4440
  p(ctx2, dirty) {
4421
- var _a2;
4422
4441
  const icon_changes = {};
4423
4442
  if (dirty & 34)
4424
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.next[ctx2[5]];
4443
+ icon_changes.src = ctx2[1]?.next[ctx2[5]];
4425
4444
  if (dirty & 262145) {
4426
4445
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4427
4446
  }
@@ -4476,12 +4495,11 @@ function create_default_slot_12(ctx) {
4476
4495
  };
4477
4496
  }
4478
4497
  function create_default_slot2(ctx) {
4479
- var _a;
4480
4498
  let icon;
4481
4499
  let current;
4482
4500
  icon = new Icon_default({
4483
4501
  props: {
4484
- src: (_a = ctx[1]) == null ? void 0 : _a.add[ctx[5]],
4502
+ src: ctx[1]?.add[ctx[5]],
4485
4503
  alt: "[add]",
4486
4504
  $$slots: { default: [create_default_slot_12] },
4487
4505
  $$scope: { ctx }
@@ -4496,10 +4514,9 @@ function create_default_slot2(ctx) {
4496
4514
  current = true;
4497
4515
  },
4498
4516
  p(ctx2, dirty) {
4499
- var _a2;
4500
4517
  const icon_changes = {};
4501
4518
  if (dirty & 34)
4502
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.add[ctx2[5]];
4519
+ icon_changes.src = ctx2[1]?.add[ctx2[5]];
4503
4520
  if (dirty & 262145) {
4504
4521
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4505
4522
  }
@@ -4709,14 +4726,14 @@ function instance47($$self, $$props, $$invalidate) {
4709
4726
  let { icons = void 0 } = $$props;
4710
4727
  let type;
4711
4728
  function prevPage() {
4712
- app == null ? void 0 : app.prevPage();
4729
+ app?.prevPage();
4713
4730
  }
4714
4731
  function nextPage() {
4715
- app == null ? void 0 : app.nextPage();
4732
+ app?.nextPage();
4716
4733
  }
4717
4734
  function addPage() {
4718
- app == null ? void 0 : app.addPage({ after: true });
4719
- app == null ? void 0 : app.nextPage();
4735
+ app?.addPage({ after: true });
4736
+ app?.nextPage();
4720
4737
  }
4721
4738
  $$self.$$set = ($$props2) => {
4722
4739
  if ("app" in $$props2)
@@ -4730,7 +4747,7 @@ function instance47($$self, $$props, $$invalidate) {
4730
4747
  };
4731
4748
  $$self.$$.update = () => {
4732
4749
  if ($$self.$$.dirty & 32768) {
4733
- $$subscribe_writable($$invalidate(11, writable2 = app == null ? void 0 : app.writable));
4750
+ $$subscribe_writable($$invalidate(11, writable2 = app?.writable));
4734
4751
  }
4735
4752
  if ($$self.$$.dirty & 131072) {
4736
4753
  $$invalidate(2, disabled = !$writable);
@@ -4742,10 +4759,10 @@ function instance47($$self, $$props, $$invalidate) {
4742
4759
  $$invalidate(5, type = disabled ? "disable" : "normal");
4743
4760
  }
4744
4761
  if ($$self.$$.dirty & 32768) {
4745
- $$subscribe_index($$invalidate(9, index = app == null ? void 0 : app.sceneIndex));
4762
+ $$subscribe_index($$invalidate(9, index = app?.pageIndex));
4746
4763
  }
4747
4764
  if ($$self.$$.dirty & 32768) {
4748
- $$subscribe_length($$invalidate(8, length = app == null ? void 0 : app.sceneLength));
4765
+ $$subscribe_length($$invalidate(8, length = app?.pageLength));
4749
4766
  }
4750
4767
  if ($$self.$$.dirty & 20) {
4751
4768
  $$invalidate(7, prev_disabled = disabled || !$index);
@@ -4828,12 +4845,11 @@ function create_default_slot_52(ctx) {
4828
4845
  };
4829
4846
  }
4830
4847
  function create_default_slot_42(ctx) {
4831
- var _a;
4832
4848
  let icon;
4833
4849
  let current;
4834
4850
  icon = new Icon_default({
4835
4851
  props: {
4836
- src: (_a = ctx[1]) == null ? void 0 : _a.plus[ctx[5]],
4852
+ src: ctx[1]?.plus[ctx[4]],
4837
4853
  alt: "[plus]",
4838
4854
  $$slots: { default: [create_default_slot_52] },
4839
4855
  $$scope: { ctx }
@@ -4848,11 +4864,10 @@ function create_default_slot_42(ctx) {
4848
4864
  current = true;
4849
4865
  },
4850
4866
  p(ctx2, dirty) {
4851
- var _a2;
4852
4867
  const icon_changes = {};
4853
- if (dirty & 34)
4854
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.plus[ctx2[5]];
4855
- if (dirty & 131073) {
4868
+ if (dirty & 18)
4869
+ icon_changes.src = ctx2[1]?.plus[ctx2[4]];
4870
+ if (dirty & 262145) {
4856
4871
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4857
4872
  }
4858
4873
  icon.$set(icon_changes);
@@ -4873,12 +4888,11 @@ function create_default_slot_42(ctx) {
4873
4888
  };
4874
4889
  }
4875
4890
  function create_else_block4(ctx) {
4876
- let t0_value = Math.ceil(ctx[2] * 100) + "";
4877
4891
  let t0;
4878
4892
  let t1;
4879
4893
  return {
4880
4894
  c() {
4881
- t0 = text(t0_value);
4895
+ t0 = text(ctx[5]);
4882
4896
  t1 = text("%");
4883
4897
  },
4884
4898
  m(target, anchor) {
@@ -4886,8 +4900,8 @@ function create_else_block4(ctx) {
4886
4900
  insert(target, t1, anchor);
4887
4901
  },
4888
4902
  p(ctx2, dirty) {
4889
- if (dirty & 4 && t0_value !== (t0_value = Math.ceil(ctx2[2] * 100) + ""))
4890
- set_data(t0, t0_value);
4903
+ if (dirty & 32)
4904
+ set_data(t0, ctx2[5]);
4891
4905
  },
4892
4906
  d(detaching) {
4893
4907
  if (detaching)
@@ -4947,12 +4961,11 @@ function create_default_slot_33(ctx) {
4947
4961
  };
4948
4962
  }
4949
4963
  function create_default_slot_23(ctx) {
4950
- var _a;
4951
4964
  let icon;
4952
4965
  let current;
4953
4966
  icon = new Icon_default({
4954
4967
  props: {
4955
- src: (_a = ctx[1]) == null ? void 0 : _a.minus[ctx[5]],
4968
+ src: ctx[1]?.minus[ctx[4]],
4956
4969
  alt: "[minus]",
4957
4970
  $$slots: { default: [create_default_slot_33] },
4958
4971
  $$scope: { ctx }
@@ -4967,11 +4980,10 @@ function create_default_slot_23(ctx) {
4967
4980
  current = true;
4968
4981
  },
4969
4982
  p(ctx2, dirty) {
4970
- var _a2;
4971
4983
  const icon_changes = {};
4972
- if (dirty & 34)
4973
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.minus[ctx2[5]];
4974
- if (dirty & 131073) {
4984
+ if (dirty & 18)
4985
+ icon_changes.src = ctx2[1]?.minus[ctx2[4]];
4986
+ if (dirty & 262145) {
4975
4987
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4976
4988
  }
4977
4989
  icon.$set(icon_changes);
@@ -5025,12 +5037,11 @@ function create_default_slot_13(ctx) {
5025
5037
  };
5026
5038
  }
5027
5039
  function create_default_slot3(ctx) {
5028
- var _a;
5029
5040
  let icon;
5030
5041
  let current;
5031
5042
  icon = new Icon_default({
5032
5043
  props: {
5033
- src: (_a = ctx[1]) == null ? void 0 : _a.reset[ctx[5]],
5044
+ src: ctx[1]?.reset[ctx[4]],
5034
5045
  alt: "[reset]",
5035
5046
  $$slots: { default: [create_default_slot_13] },
5036
5047
  $$scope: { ctx }
@@ -5045,11 +5056,10 @@ function create_default_slot3(ctx) {
5045
5056
  current = true;
5046
5057
  },
5047
5058
  p(ctx2, dirty) {
5048
- var _a2;
5049
5059
  const icon_changes = {};
5050
- if (dirty & 34)
5051
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.reset[ctx2[5]];
5052
- if (dirty & 131073) {
5060
+ if (dirty & 18)
5061
+ icon_changes.src = ctx2[1]?.reset[ctx2[4]];
5062
+ if (dirty & 262145) {
5053
5063
  icon_changes.$$scope = { dirty, ctx: ctx2 };
5054
5064
  }
5055
5065
  icon.$set(icon_changes);
@@ -5094,7 +5104,7 @@ function create_fragment48(ctx) {
5094
5104
  });
5095
5105
  button0.$on("click", ctx[11]);
5096
5106
  function select_block_type(ctx2, dirty) {
5097
- if (ctx2[4] == null)
5107
+ if (ctx2[3] == null)
5098
5108
  return create_if_block4;
5099
5109
  return create_else_block4;
5100
5110
  }
@@ -5117,7 +5127,7 @@ function create_fragment48(ctx) {
5117
5127
  class: "reset",
5118
5128
  name: name3,
5119
5129
  theme: ctx[0],
5120
- disabled: ctx[3],
5130
+ disabled: ctx[2],
5121
5131
  content: ctx[9].reset,
5122
5132
  $$slots: { default: [create_default_slot3] },
5123
5133
  $$scope: { ctx }
@@ -5158,7 +5168,7 @@ function create_fragment48(ctx) {
5158
5168
  button0_changes.disabled = ctx2[7];
5159
5169
  if (dirty & 512)
5160
5170
  button0_changes.content = ctx2[9].plus;
5161
- if (dirty & 131107) {
5171
+ if (dirty & 262163) {
5162
5172
  button0_changes.$$scope = { dirty, ctx: ctx2 };
5163
5173
  }
5164
5174
  button0.$set(button0_changes);
@@ -5182,18 +5192,18 @@ function create_fragment48(ctx) {
5182
5192
  button1_changes.disabled = ctx2[6];
5183
5193
  if (dirty & 512)
5184
5194
  button1_changes.content = ctx2[9].minus;
5185
- if (dirty & 131107) {
5195
+ if (dirty & 262163) {
5186
5196
  button1_changes.$$scope = { dirty, ctx: ctx2 };
5187
5197
  }
5188
5198
  button1.$set(button1_changes);
5189
5199
  const button2_changes = {};
5190
5200
  if (dirty & 1)
5191
5201
  button2_changes.theme = ctx2[0];
5192
- if (dirty & 8)
5193
- button2_changes.disabled = ctx2[3];
5202
+ if (dirty & 4)
5203
+ button2_changes.disabled = ctx2[2];
5194
5204
  if (dirty & 512)
5195
5205
  button2_changes.content = ctx2[9].reset;
5196
- if (dirty & 131107) {
5206
+ if (dirty & 262163) {
5197
5207
  button2_changes.$$scope = { dirty, ctx: ctx2 };
5198
5208
  }
5199
5209
  button2.$set(button2_changes);
@@ -5275,8 +5285,9 @@ function instance48($$self, $$props, $$invalidate) {
5275
5285
  let scale;
5276
5286
  let plus_disabled;
5277
5287
  let minus_disabled;
5278
- let $camera, $$unsubscribe_camera = noop, $$subscribe_camera = () => ($$unsubscribe_camera(), $$unsubscribe_camera = subscribe(camera, ($$value) => $$invalidate(4, $camera = $$value)), camera);
5279
- let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(16, $writable = $$value)), writable2);
5288
+ let display_scale;
5289
+ let $camera, $$unsubscribe_camera = noop, $$subscribe_camera = () => ($$unsubscribe_camera(), $$unsubscribe_camera = subscribe(camera, ($$value) => $$invalidate(3, $camera = $$value)), camera);
5290
+ let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(17, $writable = $$value)), writable2);
5280
5291
  $$self.$$.on_destroy.push(() => $$unsubscribe_camera());
5281
5292
  $$self.$$.on_destroy.push(() => $$unsubscribe_writable());
5282
5293
  let { app = null } = $$props;
@@ -5285,21 +5296,21 @@ function instance48($$self, $$props, $$invalidate) {
5285
5296
  let { icons = void 0 } = $$props;
5286
5297
  let type;
5287
5298
  function plus() {
5288
- app == null ? void 0 : app.moveCamera({
5299
+ app?.moveCamera({
5289
5300
  scale: next_scale(scale, 1),
5290
5301
  centerX: 0,
5291
5302
  centerY: 0
5292
5303
  });
5293
5304
  }
5294
5305
  function minus() {
5295
- app == null ? void 0 : app.moveCamera({
5306
+ app?.moveCamera({
5296
5307
  scale: next_scale(scale, -1),
5297
5308
  centerX: 0,
5298
5309
  centerY: 0
5299
5310
  });
5300
5311
  }
5301
5312
  function reset() {
5302
- app == null ? void 0 : app.moveCamera({ scale: 1, centerX: 0, centerY: 0 });
5313
+ app?.moveCamera({ scale: 1, centerX: 0, centerY: 0 });
5303
5314
  }
5304
5315
  $$self.$$set = ($$props2) => {
5305
5316
  if ("app" in $$props2)
@@ -5312,39 +5323,41 @@ function instance48($$self, $$props, $$invalidate) {
5312
5323
  $$invalidate(1, icons = $$props2.icons);
5313
5324
  };
5314
5325
  $$self.$$.update = () => {
5315
- var _a;
5316
5326
  if ($$self.$$.dirty & 16384) {
5317
- $$subscribe_writable($$invalidate(10, writable2 = app == null ? void 0 : app.writable));
5327
+ $$subscribe_writable($$invalidate(10, writable2 = app?.writable));
5318
5328
  }
5319
- if ($$self.$$.dirty & 65536) {
5320
- $$invalidate(3, disabled = !$writable);
5329
+ if ($$self.$$.dirty & 131072) {
5330
+ $$invalidate(2, disabled = !$writable);
5321
5331
  }
5322
5332
  if ($$self.$$.dirty & 32768) {
5323
5333
  $$invalidate(9, t = i18n3[language]);
5324
5334
  }
5325
- if ($$self.$$.dirty & 8) {
5326
- $$invalidate(5, type = disabled ? "disable" : "normal");
5335
+ if ($$self.$$.dirty & 4) {
5336
+ $$invalidate(4, type = disabled ? "disable" : "normal");
5327
5337
  }
5328
5338
  if ($$self.$$.dirty & 16384) {
5329
- $$subscribe_camera($$invalidate(8, camera = app == null ? void 0 : app.camera));
5339
+ $$subscribe_camera($$invalidate(8, camera = app?.baseCamera));
5330
5340
  }
5331
- if ($$self.$$.dirty & 16) {
5332
- $$invalidate(2, scale = (_a = $camera == null ? void 0 : $camera.scale) != null ? _a : 1);
5341
+ if ($$self.$$.dirty & 8) {
5342
+ $$invalidate(16, scale = $camera?.scale ?? 1);
5333
5343
  }
5334
- if ($$self.$$.dirty & 12) {
5335
- $$invalidate(7, plus_disabled = disabled || next_scale(scale, 1) === scale);
5344
+ if ($$self.$$.dirty & 65540) {
5345
+ $$invalidate(7, plus_disabled = disabled || next_scale(scale, 1) <= scale);
5336
5346
  }
5337
- if ($$self.$$.dirty & 12) {
5338
- $$invalidate(6, minus_disabled = disabled || next_scale(scale, -1) === scale);
5347
+ if ($$self.$$.dirty & 65540) {
5348
+ $$invalidate(6, minus_disabled = disabled || next_scale(scale, -1) >= scale);
5349
+ }
5350
+ if ($$self.$$.dirty & 65536) {
5351
+ $$invalidate(5, display_scale = clamp(Math.round(scale * 100), 30, 300));
5339
5352
  }
5340
5353
  };
5341
5354
  return [
5342
5355
  theme,
5343
5356
  icons,
5344
- scale,
5345
5357
  disabled,
5346
5358
  $camera,
5347
5359
  type,
5360
+ display_scale,
5348
5361
  minus_disabled,
5349
5362
  plus_disabled,
5350
5363
  camera,
@@ -5355,6 +5368,7 @@ function instance48($$self, $$props, $$invalidate) {
5355
5368
  reset,
5356
5369
  app,
5357
5370
  language,
5371
+ scale,
5358
5372
  $writable
5359
5373
  ];
5360
5374
  }
@@ -5371,7 +5385,7 @@ var ZoomControl = class extends SvelteComponent {
5371
5385
  };
5372
5386
  var ZoomControl_default = ZoomControl;
5373
5387
 
5374
- // ../../node_modules/.pnpm/svelte@3.48.0/node_modules/svelte/store/index.mjs
5388
+ // ../../node_modules/.pnpm/svelte@3.49.0/node_modules/svelte/store/index.mjs
5375
5389
  var subscriber_queue = [];
5376
5390
  function writable(value, start = noop) {
5377
5391
  let stop;
@@ -5538,21 +5552,12 @@ var scrollTop = function(node, value) {
5538
5552
  };
5539
5553
  };
5540
5554
 
5541
- // src/behaviors/icons/visual-studio-code.svg
5542
- var visual_studio_code_default = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMS4wMWVtIiBoZWlnaHQ9IjFlbSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDI1NiAyNTQiIHN0eWxlPSItbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0MzkiIHgxPSI1MCUiIHgyPSI1MCUiIHkxPSIwJSIgeTI9IjEwMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNGRkYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNGRkYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggaWQ9Ikljb25pZnlJZC0xN2Y4NzIxNTViZS1jYzc2NmUtNTQ0MCIgZD0iTTE4MC44MjggMjUyLjYwNWExNS44NzIgMTUuODcyIDAgMCAwIDEyLjY1LS40ODZsNTIuNTAxLTI1LjI2MmExNS45NCAxNS45NCAwIDAgMCA5LjAyNS0xNC4zNjRWNDEuMTk3YTE1LjkzOSAxNS45MzkgMCAwIDAtOS4wMjUtMTQuMzYzbC01Mi41LTI1LjI2M2ExNS44NzcgMTUuODc3IDAgMCAwLTE4LjExNSAzLjA4NEw3NC44NTcgOTYuMzVsLTQzLjc4LTMzLjIzMmExMC42MTQgMTAuNjE0IDAgMCAwLTEzLjU2LjYwM0wzLjQ3NiA3Ni40OTRjLTQuNjMgNC4yMTEtNC42MzUgMTEuNDk1LS4wMTIgMTUuNzEzbDM3Ljk2NyAzNC42MzhsLTM3Ljk2NyAzNC42MzdjLTQuNjIzIDQuMjE5LTQuNjE4IDExLjUwMi4wMTIgMTUuNzE0bDE0LjA0MSAxMi43NzJhMTAuNjE0IDEwLjYxNCAwIDAgMCAxMy41Ni42MDRsNDMuNzgtMzMuMjMzbDEwMC41MDcgOTEuNjk1YTE1Ljg1MyAxNS44NTMgMCAwIDAgNS40NjQgMy41NzFabTEwLjQ2NC0xODMuNjQ5bC03Ni4yNjIgNTcuODg5bDc2LjI2MiA1Ny44ODhWNjguOTU2WiIvPjwvZGVmcz48bWFzayBpZD0iSWNvbmlmeUlkLTE3Zjg3MjE1NWJlLWNjNzY2ZS01NDQxIiBmaWxsPSIjZmZmIj48dXNlIGhyZWY9IiNJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0NDAiLz48L21hc2s+PHBhdGggZmlsbD0iIzAwNjVBOSIgZD0iTTI0Ni4xMzUgMjYuODczTDE5My41OTMgMS41NzVhMTUuODg1IDE1Ljg4NSAwIDAgMC0xOC4xMjMgMy4wOEwzLjQ2NiAxNjEuNDgyYy00LjYyNiA0LjIxOS00LjYyIDExLjUwMi4wMTIgMTUuNzE0bDE0LjA1IDEyLjc3MmExMC42MjUgMTAuNjI1IDAgMCAwIDEzLjU2OS42MDRMMjM4LjIyOSAzMy40MzZjNi45NDktNS4yNzEgMTYuOTMtLjMxNSAxNi45MyA4LjQwN3YtLjYxYTE1LjkzOCAxNS45MzggMCAwIDAtOS4wMjQtMTQuMzZaIiBtYXNrPSJ1cmwoI0ljb25pZnlJZC0xN2Y4NzIxNTViZS1jYzc2NmUtNTQ0MSkiLz48cGF0aCBmaWxsPSIjMDA3QUNDIiBkPSJtMjQ2LjEzNSAyMjYuODE2bC01Mi41NDIgMjUuMjk4YTE1Ljg4NyAxNS44ODcgMCAwIDEtMTguMTIzLTMuMDhMMy40NjYgOTIuMjA3Yy00LjYyNi00LjIxOC00LjYyLTExLjUwMi4wMTItMTUuNzEzbDE0LjA1LTEyLjc3M2ExMC42MjUgMTAuNjI1IDAgMCAxIDEzLjU2OS0uNjAzbDIwNy4xMzIgMTU3LjEzNWM2Ljk0OSA1LjI3MSAxNi45My4zMTUgMTYuOTMtOC40MDh2LjYxMWExNS45MzkgMTUuOTM5IDAgMCAxLTkuMDI0IDE0LjM2WiIgbWFzaz0idXJsKCNJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0NDEpIi8+PHBhdGggZmlsbD0iIzFGOUNGMCIgZD0iTTE5My40MjggMjUyLjEzNGExNS44OTIgMTUuODkyIDAgMCAxLTE4LjEyNS0zLjA4M2M1Ljg4MSA1Ljg4IDE1LjkzOCAxLjcxNSAxNS45MzgtNi42MDNWMTEuMjczYzAtOC4zMTgtMTAuMDU3LTEyLjQ4My0xNS45MzgtNi42MDJhMTUuODkyIDE1Ljg5MiAwIDAgMSAxOC4xMjUtMy4wODRsNTIuNTMzIDI1LjI2M2ExNS45MzcgMTUuOTM3IDAgMCAxIDkuMDMgMTQuMzYzVjIxMi41MWMwIDYuMTI1LTMuNTEgMTEuNzA5LTkuMDMgMTQuMzYzbC01Mi41MzMgMjUuMjYyWiIgbWFzaz0idXJsKCNJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0NDEpIi8+PHBhdGggZmlsbD0idXJsKCNJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0MzkpIiBmaWxsLW9wYWNpdHk9Ii4yNSIgZD0iTTE4MC44MjggMjUyLjYwNWExNS44NzQgMTUuODc0IDAgMCAwIDEyLjY1LS40ODZsNTIuNS0yNS4yNjNhMTUuOTM4IDE1LjkzOCAwIDAgMCA5LjAyNi0xNC4zNjNWNDEuMTk3YTE1LjkzOSAxNS45MzkgMCAwIDAtOS4wMjUtMTQuMzYzTDE5My40NzcgMS41N2ExNS44NzcgMTUuODc3IDAgMCAwLTE4LjExNCAzLjA4NEw3NC44NTcgOTYuMzVsLTQzLjc4LTMzLjIzMmExMC42MTQgMTAuNjE0IDAgMCAwLTEzLjU2LjYwM0wzLjQ3NiA3Ni40OTRjLTQuNjMgNC4yMTEtNC42MzUgMTEuNDk1LS4wMTIgMTUuNzEzbDM3Ljk2NyAzNC42MzhsLTM3Ljk2NyAzNC42MzdjLTQuNjIzIDQuMjE5LTQuNjE4IDExLjUwMi4wMTIgMTUuNzE0bDE0LjA0MSAxMi43NzJhMTAuNjE0IDEwLjYxNCAwIDAgMCAxMy41Ni42MDRsNDMuNzgtMzMuMjMzbDEwMC41MDYgOTEuNjk1YTE1Ljg1NyAxNS44NTcgMCAwIDAgNS40NjUgMy41NzFabTEwLjQ2NC0xODMuNjVsLTc2LjI2MiA1Ny44OWw3Ni4yNjIgNTcuODg4VjY4Ljk1NloiIG1hc2s9InVybCgjSWNvbmlmeUlkLTE3Zjg3MjE1NWJlLWNjNzY2ZS01NDQxKSIvPjwvc3ZnPg==";
5543
-
5544
- // src/behaviors/icons/geogebra.svg
5545
- var geogebra_default = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1hcmN0aWNvbnMiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiM2NTU3ZDIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNMjQgM2E0Ljc3IDQuNzcgMCAxIDAgNC43NyA0Ljc3QTQuNzggNC43OCAwIDAgMCAyNCAzWk03LjY5IDE0Ljg2YTQuNzcgNC43NyAwIDEgMCA0Ljc2IDQuNzdhNC43NiA0Ljc2IDAgMCAwLTQuNzYtNC43N1ptMzIuNjQgMGE0Ljc3IDQuNzcgMCAxIDAgNC43NyA0Ljc3YTQuNzcgNC43NyAwIDAgMC00Ljc3LTQuNzdaTTEzLjkyIDM0LjA1YTQuNzcgNC43NyAwIDEgMCA0Ljc3IDQuNzdhNC43NiA0Ljc2IDAgMCAwLTQuNzctNC43N1ptMjAuMTggMGE0Ljc3IDQuNzcgMCAxIDAgNC43NiA0Ljc3YTQuNzYgNC43NiAwIDAgMC00Ljc2LTQuNzdaIj48L3BhdGg+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNjU1N2QyIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTE5LjI3IDguMzVhMTcuMjQgMTcuMjQgMCAwIDAtOS43MyA2Ljg3bTI4LjUxLjIyYTE3LjI4IDE3LjI4IDAgMCAwLTkuMzQtNi45NG04LjcgMjYuODlBMTcuMDkgMTcuMDkgMCAwIDAgNDAuOTMgMjV2LS42MU0xOCA0MS4yMmExNy4yMyAxNy4yMyAwIDAgMCA1LjY4IDFhMTcgMTcgMCAwIDAgNi4yLTEuMjJNNi41MyAyNC4yNXYuNzJhMTcuMTYgMTcuMTYgMCAwIDAgMy43NyAxMC43NiI+PC9wYXRoPjwvc3ZnPg==";
5546
-
5547
- // src/behaviors/icons/countdown.svg
5548
- var countdown_default = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1yYWRpeC1pY29ucyIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IiB2aWV3Qm94PSIwIDAgMTUgMTUiPjxwYXRoIGZpbGw9ImdyZXkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEzLjE1IDcuNWMwLTIuODM1LTIuMjEtNS42NS01LjY1LTUuNjVjLTIuNzc4IDAtNC4xNTEgMi4wNTYtNC43MzcgMy4xNUg0LjVhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAxIDEgMHYxLjgxM0MyLjcwNSAzLjA3MSA0LjMzNC44NSA3LjUuODVjNC4wNjMgMCA2LjY1IDMuMzM1IDYuNjUgNi42NWMwIDMuMzE1LTIuNTg3IDYuNjUtNi42NSA2LjY1Yy0xLjk0NCAwLTMuNTYyLS43Ny00LjcxNS0xLjk0MmE2Ljc3MiA2Ljc3MiAwIDAgMS0xLjQyNy0yLjE2N2EuNS41IDAgMSAxIC45MjUtLjM4Yy4yOC42ODEuNjkyIDEuMzE0IDEuMjE2IDEuODQ2Yy45NzIuOTkgMi4zMzYgMS42NDMgNC4wMDEgMS42NDNjMy40NCAwIDUuNjUtMi44MTUgNS42NS01LjY1Wk03IDEwVjVoMXY1SDdaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiPjwvcGF0aD48L3N2Zz4=";
5549
-
5550
5555
  // src/behaviors/apps.ts
5551
5556
  var AppsInToolbar = class {
5552
5557
  constructor(_data) {
5553
5558
  this._data = _data;
5554
- this._listeners = [];
5555
5559
  }
5560
+ _listeners = [];
5556
5561
  get data() {
5557
5562
  return this._data;
5558
5563
  }
@@ -5583,41 +5588,7 @@ var AppsInToolbar = class {
5583
5588
  this._listeners.forEach((fn) => fn(this._data));
5584
5589
  }
5585
5590
  };
5586
- var apps = new AppsInToolbar([
5587
- {
5588
- kind: "Monaco",
5589
- icon: visual_studio_code_default,
5590
- label: "Code Editor",
5591
- onClick(app) {
5592
- app.manager.addApp({
5593
- kind: "Monaco",
5594
- options: { title: "Code Editor" }
5595
- });
5596
- }
5597
- },
5598
- {
5599
- kind: "GeoGebra",
5600
- icon: geogebra_default,
5601
- label: "GeoGebra",
5602
- onClick(app) {
5603
- app.manager.addApp({
5604
- kind: "GeoGebra",
5605
- options: { title: "GeoGebra" }
5606
- });
5607
- }
5608
- },
5609
- {
5610
- kind: "Countdown",
5611
- icon: countdown_default,
5612
- label: "Countdown",
5613
- onClick(app) {
5614
- app.manager.addApp({
5615
- kind: "Countdown",
5616
- options: { title: "Countdown" }
5617
- });
5618
- }
5619
- }
5620
- ]);
5591
+ var apps = new AppsInToolbar([]);
5621
5592
 
5622
5593
  // src/components/Toolbar/components/helper.ts
5623
5594
  function tooltip(text2, hotkey) {
@@ -5864,7 +5835,7 @@ function instance50($$self, $$props, $$invalidate) {
5864
5835
  let { theme = "light" } = $$props;
5865
5836
  let { disabled = false } = $$props;
5866
5837
  function set_stroke_width({ detail: value2 }) {
5867
- app == null ? void 0 : app.setStrokeWidth(value2);
5838
+ app?.setStrokeWidth(value2);
5868
5839
  }
5869
5840
  $$self.$$set = ($$props2) => {
5870
5841
  if ("app" in $$props2)
@@ -5875,12 +5846,11 @@ function instance50($$self, $$props, $$invalidate) {
5875
5846
  $$invalidate(5, disabled = $$props2.disabled);
5876
5847
  };
5877
5848
  $$self.$$.update = () => {
5878
- var _a;
5879
5849
  if ($$self.$$.dirty & 8) {
5880
- $$subscribe_memberState($$invalidate(1, memberState = app == null ? void 0 : app.memberState));
5850
+ $$subscribe_memberState($$invalidate(1, memberState = app?.memberState));
5881
5851
  }
5882
5852
  if ($$self.$$.dirty & 128) {
5883
- $$invalidate(6, value = (_a = $memberState == null ? void 0 : $memberState.strokeWidth) != null ? _a : 1);
5853
+ $$invalidate(6, value = $memberState?.strokeWidth ?? 1);
5884
5854
  }
5885
5855
  if ($$self.$$.dirty & 112) {
5886
5856
  $$invalidate(0, props = { value, theme, disabled });
@@ -6038,10 +6008,10 @@ function instance51($$self, $$props, $$invalidate) {
6038
6008
  };
6039
6009
  $$self.$$.update = () => {
6040
6010
  if ($$self.$$.dirty & 32) {
6041
- $$subscribe_memberState($$invalidate(3, memberState = app == null ? void 0 : app.memberState));
6011
+ $$subscribe_memberState($$invalidate(3, memberState = app?.memberState));
6042
6012
  }
6043
6013
  if ($$self.$$.dirty & 64) {
6044
- $$invalidate(2, strokeColor = $memberState == null ? void 0 : $memberState.strokeColor);
6014
+ $$invalidate(2, strokeColor = $memberState?.strokeColor);
6045
6015
  }
6046
6016
  };
6047
6017
  return [theme, disabled, strokeColor, memberState, set_stroke_color, app, $memberState];
@@ -6187,10 +6157,10 @@ function instance52($$self, $$props, $$invalidate) {
6187
6157
  };
6188
6158
  $$self.$$.update = () => {
6189
6159
  if ($$self.$$.dirty & 32) {
6190
- $$subscribe_memberState($$invalidate(3, memberState = app == null ? void 0 : app.memberState));
6160
+ $$subscribe_memberState($$invalidate(3, memberState = app?.memberState));
6191
6161
  }
6192
6162
  if ($$self.$$.dirty & 64) {
6193
- $$invalidate(2, textColor = $memberState == null ? void 0 : $memberState.textColor);
6163
+ $$invalidate(2, textColor = $memberState?.textColor);
6194
6164
  }
6195
6165
  };
6196
6166
  return [theme, disabled, textColor, memberState, set_stroke_color, app, $memberState];
@@ -6585,23 +6555,23 @@ function instance53($$self, $$props, $$invalidate) {
6585
6555
  $$invalidate(6, t = i18n5[language]);
6586
6556
  }
6587
6557
  if ($$self.$$.dirty & 256) {
6588
- $$subscribe_memberState($$invalidate(5, memberState = app == null ? void 0 : app.memberState));
6558
+ $$subscribe_memberState($$invalidate(5, memberState = app?.memberState));
6589
6559
  }
6590
6560
  if ($$self.$$.dirty & 2048) {
6591
- $$invalidate(4, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
6561
+ $$invalidate(4, appliance = $memberState?.currentApplianceName);
6592
6562
  }
6593
6563
  if ($$self.$$.dirty & 2048) {
6594
- $$invalidate(3, shape = $memberState == null ? void 0 : $memberState.shapeType);
6564
+ $$invalidate(3, shape = $memberState?.shapeType);
6595
6565
  }
6596
6566
  if ($$self.$$.dirty & 256) {
6597
- $$invalidate(10, hotkeys = app == null ? void 0 : app.hotKeys);
6567
+ $$invalidate(10, hotkeys = app?.hotKeys);
6598
6568
  }
6599
6569
  if ($$self.$$.dirty & 1024) {
6600
6570
  $$invalidate(2, c = {
6601
- rectangle: hotkeys == null ? void 0 : hotkeys.changeToRectangle,
6602
- ellipse: hotkeys == null ? void 0 : hotkeys.changeToEllipse,
6603
- straight: hotkeys == null ? void 0 : hotkeys.changeToStraight,
6604
- arrow: hotkeys == null ? void 0 : hotkeys.changeToArrow
6571
+ rectangle: hotkeys?.changeToRectangle,
6572
+ ellipse: hotkeys?.changeToEllipse,
6573
+ straight: hotkeys?.changeToStraight,
6574
+ arrow: hotkeys?.changeToArrow
6605
6575
  });
6606
6576
  }
6607
6577
  };
@@ -8530,29 +8500,29 @@ function instance54($$self, $$props, $$invalidate) {
8530
8500
  set_store_value(top, $top = clamp($top + 32 + 4, 0, max_scroll), $top);
8531
8501
  }
8532
8502
  function clicker() {
8533
- app == null ? void 0 : app.setAppliance("clicker");
8503
+ app?.setAppliance("clicker");
8534
8504
  }
8535
8505
  function selector() {
8536
- app == null ? void 0 : app.setAppliance("selector");
8506
+ app?.setAppliance("selector");
8537
8507
  }
8538
8508
  function pencil() {
8539
- app == null ? void 0 : app.setAppliance("pencil");
8509
+ app?.setAppliance("pencil");
8540
8510
  }
8541
8511
  function text2() {
8542
- app == null ? void 0 : app.setAppliance("text");
8512
+ app?.setAppliance("text");
8543
8513
  }
8544
8514
  function select_last_shape() {
8545
8515
  if (applianceShapes.includes(last_shape)) {
8546
- app == null ? void 0 : app.setAppliance(last_shape);
8516
+ app?.setAppliance(last_shape);
8547
8517
  } else {
8548
- app == null ? void 0 : app.setAppliance("shape", last_shape);
8518
+ app?.setAppliance("shape", last_shape);
8549
8519
  }
8550
8520
  }
8551
8521
  function eraser() {
8552
- app == null ? void 0 : app.setAppliance("eraser");
8522
+ app?.setAppliance("eraser");
8553
8523
  }
8554
8524
  function clear() {
8555
- app == null ? void 0 : app.cleanCurrentScene();
8525
+ app?.cleanCurrentScene();
8556
8526
  }
8557
8527
  function div2_binding($$value) {
8558
8528
  binding_callbacks[$$value ? "unshift" : "push"](() => {
@@ -8609,28 +8579,28 @@ function instance54($$self, $$props, $$invalidate) {
8609
8579
  $$invalidate(9, t = i18n4[language]);
8610
8580
  }
8611
8581
  if ($$self.$$.dirty[0] & 1) {
8612
- $$invalidate(32, hotkeys = app == null ? void 0 : app.hotKeys);
8582
+ $$invalidate(32, hotkeys = app?.hotKeys);
8613
8583
  }
8614
8584
  if ($$self.$$.dirty[0] & 512 | $$self.$$.dirty[1] & 2) {
8615
8585
  $$invalidate(18, c = {
8616
- clicker: tooltip(t.clicker, hotkeys == null ? void 0 : hotkeys.changeToClick),
8617
- selector: tooltip(t.selector, hotkeys == null ? void 0 : hotkeys.changeToSelector),
8618
- pencil: tooltip(t.pencil, hotkeys == null ? void 0 : hotkeys.changeToPencil),
8619
- eraser: tooltip(t.eraser, hotkeys == null ? void 0 : hotkeys.changeToEraser),
8620
- text: tooltip(t.text, hotkeys == null ? void 0 : hotkeys.changeToText)
8586
+ clicker: tooltip(t.clicker, hotkeys?.changeToClick),
8587
+ selector: tooltip(t.selector, hotkeys?.changeToSelector),
8588
+ pencil: tooltip(t.pencil, hotkeys?.changeToPencil),
8589
+ eraser: tooltip(t.eraser, hotkeys?.changeToEraser),
8590
+ text: tooltip(t.text, hotkeys?.changeToText)
8621
8591
  });
8622
8592
  }
8623
8593
  if ($$self.$$.dirty[0] & 1) {
8624
- $$subscribe_memberState($$invalidate(17, memberState = app == null ? void 0 : app.memberState));
8594
+ $$subscribe_memberState($$invalidate(17, memberState = app?.memberState));
8625
8595
  }
8626
8596
  if ($$self.$$.dirty[1] & 8) {
8627
- $$invalidate(8, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
8597
+ $$invalidate(8, appliance = $memberState?.currentApplianceName);
8628
8598
  }
8629
8599
  if ($$self.$$.dirty[1] & 8) {
8630
- $$invalidate(7, shape = $memberState == null ? void 0 : $memberState.shapeType);
8600
+ $$invalidate(7, shape = $memberState?.shapeType);
8631
8601
  }
8632
8602
  if ($$self.$$.dirty[0] & 1) {
8633
- $$subscribe_status($$invalidate(16, status = app == null ? void 0 : app.appsStatus));
8603
+ $$subscribe_status($$invalidate(16, status = app?.appsStatus));
8634
8604
  }
8635
8605
  if ($$self.$$.dirty[0] & 384) {
8636
8606
  if (applianceShapes.includes(appliance)) {
@@ -8688,16 +8658,25 @@ function instance54($$self, $$props, $$invalidate) {
8688
8658
  var Contents = class extends SvelteComponent {
8689
8659
  constructor(options) {
8690
8660
  super();
8691
- init(this, options, instance54, create_fragment54, safe_not_equal, {
8692
- app: 0,
8693
- theme: 1,
8694
- language: 2,
8695
- disabled: 3,
8696
- scroll_height: 4,
8697
- computed_height: 31,
8698
- scrollable: 5,
8699
- hide_apps: 6
8700
- }, null, [-1, -1]);
8661
+ init(
8662
+ this,
8663
+ options,
8664
+ instance54,
8665
+ create_fragment54,
8666
+ safe_not_equal,
8667
+ {
8668
+ app: 0,
8669
+ theme: 1,
8670
+ language: 2,
8671
+ disabled: 3,
8672
+ scroll_height: 4,
8673
+ computed_height: 31,
8674
+ scrollable: 5,
8675
+ hide_apps: 6
8676
+ },
8677
+ null,
8678
+ [-1, -1]
8679
+ );
8701
8680
  }
8702
8681
  };
8703
8682
  var Contents_default = Contents;
@@ -8809,7 +8788,12 @@ function create_fragment55(ctx) {
8809
8788
  path1 = svg_element("path");
8810
8789
  if_block.c();
8811
8790
  attr(div0, "class", div0_class_value = name6 + "-contents " + ctx[1]);
8812
- set_style(div0, "height", ctx[5] ? ctx[6] + "px" : "auto", false);
8791
+ set_style(
8792
+ div0,
8793
+ "height",
8794
+ ctx[5] ? ctx[6] + "px" : "auto",
8795
+ false
8796
+ );
8813
8797
  attr(input, "type", "checkbox");
8814
8798
  attr(path0, "fill", "#fff");
8815
8799
  attr(path0, "stroke", "none");
@@ -8868,7 +8852,12 @@ function create_fragment55(ctx) {
8868
8852
  attr(div0, "class", div0_class_value);
8869
8853
  }
8870
8854
  if (dirty & 96) {
8871
- set_style(div0, "height", ctx2[5] ? ctx2[6] + "px" : "auto", false);
8855
+ set_style(
8856
+ div0,
8857
+ "height",
8858
+ ctx2[5] ? ctx2[6] + "px" : "auto",
8859
+ false
8860
+ );
8872
8861
  }
8873
8862
  if (dirty & 8) {
8874
8863
  input.checked = ctx2[3];
@@ -8949,9 +8938,8 @@ function instance55($$self, $$props, $$invalidate) {
8949
8938
  $$invalidate(11, config = $$props2.config);
8950
8939
  };
8951
8940
  $$self.$$.update = () => {
8952
- var _a;
8953
8941
  if ($$self.$$.dirty & 1) {
8954
- $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
8942
+ $$subscribe_writable($$invalidate(8, writable2 = app?.writable));
8955
8943
  }
8956
8944
  if ($$self.$$.dirty & 16384) {
8957
8945
  $$invalidate(7, disabled = !$writable);
@@ -8963,7 +8951,7 @@ function instance55($$self, $$props, $$invalidate) {
8963
8951
  $$invalidate(5, scrollable = $scroll_height + extra_height > $container_height);
8964
8952
  }
8965
8953
  if ($$self.$$.dirty & 2048) {
8966
- $$invalidate(4, hide_apps = ((_a = config.apps) == null ? void 0 : _a.enable) === false);
8954
+ $$invalidate(4, hide_apps = config.apps?.enable === false);
8967
8955
  }
8968
8956
  };
8969
8957
  return [
@@ -9005,12 +8993,11 @@ function get_each_context5(ctx, list, i) {
9005
8993
  return child_ctx;
9006
8994
  }
9007
8995
  function create_else_block_13(ctx) {
9008
- var _a;
9009
8996
  let icon;
9010
8997
  let current;
9011
8998
  icon = new Icon_default({
9012
8999
  props: {
9013
- src: (_a = ctx[1]) == null ? void 0 : _a.play[ctx[5]],
9000
+ src: ctx[1]?.play[ctx[5]],
9014
9001
  alt: "[play]",
9015
9002
  $$slots: { default: [create_default_slot_54] },
9016
9003
  $$scope: { ctx }
@@ -9025,10 +9012,9 @@ function create_else_block_13(ctx) {
9025
9012
  current = true;
9026
9013
  },
9027
9014
  p(ctx2, dirty) {
9028
- var _a2;
9029
9015
  const icon_changes = {};
9030
9016
  if (dirty & 34)
9031
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.play[ctx2[5]];
9017
+ icon_changes.src = ctx2[1]?.play[ctx2[5]];
9032
9018
  if (dirty & 268435457) {
9033
9019
  icon_changes.$$scope = { dirty, ctx: ctx2 };
9034
9020
  }
@@ -9050,12 +9036,11 @@ function create_else_block_13(ctx) {
9050
9036
  };
9051
9037
  }
9052
9038
  function create_if_block_22(ctx) {
9053
- var _a;
9054
9039
  let icon;
9055
9040
  let current;
9056
9041
  icon = new Icon_default({
9057
9042
  props: {
9058
- src: (_a = ctx[1]) == null ? void 0 : _a.pause[ctx[5]],
9043
+ src: ctx[1]?.pause[ctx[5]],
9059
9044
  alt: "[pause]",
9060
9045
  $$slots: { default: [create_default_slot_44] },
9061
9046
  $$scope: { ctx }
@@ -9070,10 +9055,9 @@ function create_if_block_22(ctx) {
9070
9055
  current = true;
9071
9056
  },
9072
9057
  p(ctx2, dirty) {
9073
- var _a2;
9074
9058
  const icon_changes = {};
9075
9059
  if (dirty & 34)
9076
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.pause[ctx2[5]];
9060
+ icon_changes.src = ctx2[1]?.pause[ctx2[5]];
9077
9061
  if (dirty & 268435457) {
9078
9062
  icon_changes.$$scope = { dirty, ctx: ctx2 };
9079
9063
  }
@@ -9095,12 +9079,11 @@ function create_if_block_22(ctx) {
9095
9079
  };
9096
9080
  }
9097
9081
  function create_if_block_13(ctx) {
9098
- var _a;
9099
9082
  let icon;
9100
9083
  let current;
9101
9084
  icon = new Icon_default({
9102
9085
  props: {
9103
- src: (_a = ctx[1]) == null ? void 0 : _a.loading[ctx[5]],
9086
+ src: ctx[1]?.loading[ctx[5]],
9104
9087
  alt: "[loading]",
9105
9088
  $$slots: { default: [create_default_slot_35] },
9106
9089
  $$scope: { ctx }
@@ -9115,10 +9098,9 @@ function create_if_block_13(ctx) {
9115
9098
  current = true;
9116
9099
  },
9117
9100
  p(ctx2, dirty) {
9118
- var _a2;
9119
9101
  const icon_changes = {};
9120
9102
  if (dirty & 34)
9121
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.loading[ctx2[5]];
9103
+ icon_changes.src = ctx2[1]?.loading[ctx2[5]];
9122
9104
  if (dirty & 268435457) {
9123
9105
  icon_changes.$$scope = { dirty, ctx: ctx2 };
9124
9106
  }
@@ -9827,7 +9809,7 @@ function instance56($$self, $$props, $$invalidate) {
9827
9809
  $$invalidate(12, t = i18n6[language]);
9828
9810
  }
9829
9811
  if ($$self.$$.dirty & 524288) {
9830
- $$invalidate(21, canPlay = player == null ? void 0 : player.canplay);
9812
+ $$invalidate(21, canPlay = player?.canplay);
9831
9813
  }
9832
9814
  if ($$self.$$.dirty & 2097152) {
9833
9815
  $$invalidate(4, disabled = !canPlay);
@@ -9836,16 +9818,16 @@ function instance56($$self, $$props, $$invalidate) {
9836
9818
  $$invalidate(5, type = disabled ? "disable" : "normal");
9837
9819
  }
9838
9820
  if ($$self.$$.dirty & 524288) {
9839
- $$subscribe_duration($$invalidate(11, duration = player == null ? void 0 : player.duration));
9821
+ $$subscribe_duration($$invalidate(11, duration = player?.duration));
9840
9822
  }
9841
9823
  if ($$self.$$.dirty & 524288) {
9842
- $$subscribe_current($$invalidate(10, current = player == null ? void 0 : player.currentTime));
9824
+ $$subscribe_current($$invalidate(10, current = player?.currentTime));
9843
9825
  }
9844
9826
  if ($$self.$$.dirty & 524288) {
9845
- $$subscribe_playbackRate($$invalidate(9, playbackRate = player == null ? void 0 : player.playbackRate));
9827
+ $$subscribe_playbackRate($$invalidate(9, playbackRate = player?.playbackRate));
9846
9828
  }
9847
9829
  if ($$self.$$.dirty & 524288) {
9848
- $$subscribe_phase($$invalidate(8, phase = player == null ? void 0 : player.phase));
9830
+ $$subscribe_phase($$invalidate(8, phase = player?.phase));
9849
9831
  }
9850
9832
  if ($$self.$$.dirty & 4194304) {
9851
9833
  $$invalidate(3, loading = $phase === "waitingFirstFrame" || $phase === "buffering");
@@ -9899,29 +9881,69 @@ var PlayerControl = class extends SvelteComponent {
9899
9881
  var PlayerControl_default = PlayerControl;
9900
9882
 
9901
9883
  // src/components/Fastboard/ReplayFastboard.svelte
9902
- function create_fragment57(ctx) {
9903
- let div2;
9904
- let div0;
9905
- let t;
9906
- let div1;
9884
+ function create_if_block9(ctx) {
9907
9885
  let playercontrol;
9908
9886
  let current;
9909
- let mounted;
9910
- let dispose;
9911
9887
  playercontrol = new PlayerControl_default({
9912
9888
  props: {
9913
9889
  player: ctx[0],
9914
9890
  theme: ctx[1],
9915
- language: ctx[2]
9891
+ language: ctx[2],
9892
+ icons: ctx[3].player_control?.icons
9916
9893
  }
9917
9894
  });
9895
+ return {
9896
+ c() {
9897
+ create_component(playercontrol.$$.fragment);
9898
+ },
9899
+ m(target, anchor) {
9900
+ mount_component(playercontrol, target, anchor);
9901
+ current = true;
9902
+ },
9903
+ p(ctx2, dirty) {
9904
+ const playercontrol_changes = {};
9905
+ if (dirty & 1)
9906
+ playercontrol_changes.player = ctx2[0];
9907
+ if (dirty & 2)
9908
+ playercontrol_changes.theme = ctx2[1];
9909
+ if (dirty & 4)
9910
+ playercontrol_changes.language = ctx2[2];
9911
+ if (dirty & 8)
9912
+ playercontrol_changes.icons = ctx2[3].player_control?.icons;
9913
+ playercontrol.$set(playercontrol_changes);
9914
+ },
9915
+ i(local) {
9916
+ if (current)
9917
+ return;
9918
+ transition_in(playercontrol.$$.fragment, local);
9919
+ current = true;
9920
+ },
9921
+ o(local) {
9922
+ transition_out(playercontrol.$$.fragment, local);
9923
+ current = false;
9924
+ },
9925
+ d(detaching) {
9926
+ destroy_component(playercontrol, detaching);
9927
+ }
9928
+ };
9929
+ }
9930
+ function create_fragment57(ctx) {
9931
+ let div2;
9932
+ let div0;
9933
+ let t;
9934
+ let div1;
9935
+ let current;
9936
+ let mounted;
9937
+ let dispose;
9938
+ let if_block = ctx[3].player_control?.enable !== false && create_if_block9(ctx);
9918
9939
  return {
9919
9940
  c() {
9920
9941
  div2 = element("div");
9921
9942
  div0 = element("div");
9922
9943
  t = space();
9923
9944
  div1 = element("div");
9924
- create_component(playercontrol.$$.fragment);
9945
+ if (if_block)
9946
+ if_block.c();
9925
9947
  attr(div0, "class", name8 + "-view");
9926
9948
  attr(div1, "class", name8 + "-bottom");
9927
9949
  attr(div2, "class", name8 + "-root");
@@ -9930,25 +9952,37 @@ function create_fragment57(ctx) {
9930
9952
  m(target, anchor) {
9931
9953
  insert(target, div2, anchor);
9932
9954
  append(div2, div0);
9933
- ctx[6](div0);
9955
+ ctx[8](div0);
9934
9956
  append(div2, t);
9935
9957
  append(div2, div1);
9936
- mount_component(playercontrol, div1, null);
9958
+ if (if_block)
9959
+ if_block.m(div1, null);
9937
9960
  current = true;
9938
9961
  if (!mounted) {
9939
- dispose = listen(div0, "touchstart", tippy_hide_all, { passive: true, capture: true });
9962
+ dispose = listen(div0, "touchstart", ctx[5], { passive: true, capture: true });
9940
9963
  mounted = true;
9941
9964
  }
9942
9965
  },
9943
9966
  p(ctx2, [dirty]) {
9944
- const playercontrol_changes = {};
9945
- if (dirty & 1)
9946
- playercontrol_changes.player = ctx2[0];
9947
- if (dirty & 2)
9948
- playercontrol_changes.theme = ctx2[1];
9949
- if (dirty & 4)
9950
- playercontrol_changes.language = ctx2[2];
9951
- playercontrol.$set(playercontrol_changes);
9967
+ if (ctx2[3].player_control?.enable !== false) {
9968
+ if (if_block) {
9969
+ if_block.p(ctx2, dirty);
9970
+ if (dirty & 8) {
9971
+ transition_in(if_block, 1);
9972
+ }
9973
+ } else {
9974
+ if_block = create_if_block9(ctx2);
9975
+ if_block.c();
9976
+ transition_in(if_block, 1);
9977
+ if_block.m(div1, null);
9978
+ }
9979
+ } else if (if_block) {
9980
+ group_outros();
9981
+ transition_out(if_block, 1, 1, () => {
9982
+ if_block = null;
9983
+ });
9984
+ check_outros();
9985
+ }
9952
9986
  if (dirty & 1) {
9953
9987
  toggle_class(div2, "loading", !ctx2[0]);
9954
9988
  }
@@ -9956,18 +9990,19 @@ function create_fragment57(ctx) {
9956
9990
  i(local) {
9957
9991
  if (current)
9958
9992
  return;
9959
- transition_in(playercontrol.$$.fragment, local);
9993
+ transition_in(if_block);
9960
9994
  current = true;
9961
9995
  },
9962
9996
  o(local) {
9963
- transition_out(playercontrol.$$.fragment, local);
9997
+ transition_out(if_block);
9964
9998
  current = false;
9965
9999
  },
9966
10000
  d(detaching) {
9967
10001
  if (detaching)
9968
10002
  detach(div2);
9969
- ctx[6](null);
9970
- destroy_component(playercontrol);
10003
+ ctx[8](null);
10004
+ if (if_block)
10005
+ if_block.d();
9971
10006
  mounted = false;
9972
10007
  dispose();
9973
10008
  }
@@ -9978,6 +10013,7 @@ function instance57($$self, $$props, $$invalidate) {
9978
10013
  let { player = null } = $$props;
9979
10014
  let { theme = "light" } = $$props;
9980
10015
  let { language = "en" } = $$props;
10016
+ let { config = {} } = $$props;
9981
10017
  let { containerRef = void 0 } = $$props;
9982
10018
  let container;
9983
10019
  let mounted = false;
@@ -9990,10 +10026,15 @@ function instance57($$self, $$props, $$invalidate) {
9990
10026
  };
9991
10027
  }
9992
10028
  });
10029
+ function focus_me() {
10030
+ tippy_hide_all();
10031
+ let a = document.activeElement;
10032
+ a && a.blur && a.blur();
10033
+ }
9993
10034
  function div0_binding($$value) {
9994
10035
  binding_callbacks[$$value ? "unshift" : "push"](() => {
9995
10036
  container = $$value;
9996
- $$invalidate(3, container);
10037
+ $$invalidate(4, container);
9997
10038
  });
9998
10039
  }
9999
10040
  $$self.$$set = ($$props2) => {
@@ -10003,28 +10044,40 @@ function instance57($$self, $$props, $$invalidate) {
10003
10044
  $$invalidate(1, theme = $$props2.theme);
10004
10045
  if ("language" in $$props2)
10005
10046
  $$invalidate(2, language = $$props2.language);
10047
+ if ("config" in $$props2)
10048
+ $$invalidate(3, config = $$props2.config);
10006
10049
  if ("containerRef" in $$props2)
10007
- $$invalidate(4, containerRef = $$props2.containerRef);
10050
+ $$invalidate(6, containerRef = $$props2.containerRef);
10008
10051
  };
10009
10052
  $$self.$$.update = () => {
10010
- if ($$self.$$.dirty & 9) {
10053
+ if ($$self.$$.dirty & 17) {
10011
10054
  try {
10012
10055
  if (player && container) {
10013
10056
  player.bindContainer(container);
10014
- $$invalidate(5, mounted = true);
10057
+ $$invalidate(7, mounted = true);
10015
10058
  }
10016
10059
  } catch (err) {
10017
10060
  console.error("[fastboard] An error occurred while binding container");
10018
10061
  console.error(err);
10019
10062
  }
10020
10063
  }
10021
- if ($$self.$$.dirty & 35) {
10064
+ if ($$self.$$.dirty & 131) {
10022
10065
  if (player && theme && mounted) {
10023
10066
  player.manager.setPrefersColorScheme(theme);
10024
10067
  }
10025
10068
  }
10026
10069
  };
10027
- return [player, theme, language, container, containerRef, mounted, div0_binding];
10070
+ return [
10071
+ player,
10072
+ theme,
10073
+ language,
10074
+ config,
10075
+ container,
10076
+ focus_me,
10077
+ containerRef,
10078
+ mounted,
10079
+ div0_binding
10080
+ ];
10028
10081
  }
10029
10082
  var ReplayFastboard = class extends SvelteComponent {
10030
10083
  constructor(options) {
@@ -10033,7 +10086,8 @@ var ReplayFastboard = class extends SvelteComponent {
10033
10086
  player: 0,
10034
10087
  theme: 1,
10035
10088
  language: 2,
10036
- containerRef: 4
10089
+ config: 3,
10090
+ containerRef: 6
10037
10091
  });
10038
10092
  }
10039
10093
  };
@@ -10093,7 +10147,8 @@ function create_if_block_23(ctx) {
10093
10147
  props: {
10094
10148
  app: ctx[0],
10095
10149
  theme: ctx[1],
10096
- language: ctx[2]
10150
+ language: ctx[2],
10151
+ icons: ctx[3].redo_undo?.icons
10097
10152
  }
10098
10153
  });
10099
10154
  return {
@@ -10112,6 +10167,8 @@ function create_if_block_23(ctx) {
10112
10167
  redoundo_changes.theme = ctx2[1];
10113
10168
  if (dirty & 4)
10114
10169
  redoundo_changes.language = ctx2[2];
10170
+ if (dirty & 8)
10171
+ redoundo_changes.icons = ctx2[3].redo_undo?.icons;
10115
10172
  redoundo.$set(redoundo_changes);
10116
10173
  },
10117
10174
  i(local) {
@@ -10136,7 +10193,8 @@ function create_if_block_14(ctx) {
10136
10193
  props: {
10137
10194
  app: ctx[0],
10138
10195
  theme: ctx[1],
10139
- language: ctx[2]
10196
+ language: ctx[2],
10197
+ icons: ctx[3].zoom_control?.icons
10140
10198
  }
10141
10199
  });
10142
10200
  return {
@@ -10155,6 +10213,8 @@ function create_if_block_14(ctx) {
10155
10213
  zoomcontrol_changes.theme = ctx2[1];
10156
10214
  if (dirty & 4)
10157
10215
  zoomcontrol_changes.language = ctx2[2];
10216
+ if (dirty & 8)
10217
+ zoomcontrol_changes.icons = ctx2[3].zoom_control?.icons;
10158
10218
  zoomcontrol.$set(zoomcontrol_changes);
10159
10219
  },
10160
10220
  i(local) {
@@ -10172,14 +10232,15 @@ function create_if_block_14(ctx) {
10172
10232
  }
10173
10233
  };
10174
10234
  }
10175
- function create_if_block9(ctx) {
10235
+ function create_if_block10(ctx) {
10176
10236
  let pagecontrol;
10177
10237
  let current;
10178
10238
  pagecontrol = new PageControl_default({
10179
10239
  props: {
10180
10240
  app: ctx[0],
10181
10241
  theme: ctx[1],
10182
- language: ctx[2]
10242
+ language: ctx[2],
10243
+ icons: ctx[3].page_control?.icons
10183
10244
  }
10184
10245
  });
10185
10246
  return {
@@ -10198,6 +10259,8 @@ function create_if_block9(ctx) {
10198
10259
  pagecontrol_changes.theme = ctx2[1];
10199
10260
  if (dirty & 4)
10200
10261
  pagecontrol_changes.language = ctx2[2];
10262
+ if (dirty & 8)
10263
+ pagecontrol_changes.icons = ctx2[3].page_control?.icons;
10201
10264
  pagecontrol.$set(pagecontrol_changes);
10202
10265
  },
10203
10266
  i(local) {
@@ -10216,7 +10279,6 @@ function create_if_block9(ctx) {
10216
10279
  };
10217
10280
  }
10218
10281
  function create_fragment58(ctx) {
10219
- var _a, _b, _c, _d;
10220
10282
  let div4;
10221
10283
  let div0;
10222
10284
  let t0;
@@ -10229,10 +10291,10 @@ function create_fragment58(ctx) {
10229
10291
  let current;
10230
10292
  let mounted;
10231
10293
  let dispose;
10232
- let if_block0 = ((_a = ctx[3].toolbar) == null ? void 0 : _a.enable) !== false && create_if_block_32(ctx);
10233
- let if_block1 = ((_b = ctx[3].redo_undo) == null ? void 0 : _b.enable) !== false && create_if_block_23(ctx);
10234
- let if_block2 = ((_c = ctx[3].zoom_control) == null ? void 0 : _c.enable) !== false && create_if_block_14(ctx);
10235
- let if_block3 = ((_d = ctx[3].page_control) == null ? void 0 : _d.enable) !== false && create_if_block9(ctx);
10294
+ let if_block0 = ctx[3].toolbar?.enable !== false && create_if_block_32(ctx);
10295
+ let if_block1 = ctx[3].redo_undo?.enable !== false && create_if_block_23(ctx);
10296
+ let if_block2 = ctx[3].zoom_control?.enable !== false && create_if_block_14(ctx);
10297
+ let if_block3 = ctx[3].page_control?.enable !== false && create_if_block10(ctx);
10236
10298
  return {
10237
10299
  c() {
10238
10300
  div4 = element("div");
@@ -10265,7 +10327,7 @@ function create_fragment58(ctx) {
10265
10327
  m(target, anchor) {
10266
10328
  insert(target, div4, anchor);
10267
10329
  append(div4, div0);
10268
- ctx[14](div0);
10330
+ ctx[15](div0);
10269
10331
  append(div4, t0);
10270
10332
  append(div4, div1);
10271
10333
  if (if_block0)
@@ -10283,13 +10345,12 @@ function create_fragment58(ctx) {
10283
10345
  if_block3.m(div3, null);
10284
10346
  current = true;
10285
10347
  if (!mounted) {
10286
- dispose = listen(div0, "touchstart", tippy_hide_all, { passive: true, capture: true });
10348
+ dispose = listen(div0, "touchstart", ctx[9], { passive: true, capture: true });
10287
10349
  mounted = true;
10288
10350
  }
10289
10351
  },
10290
10352
  p(ctx2, [dirty]) {
10291
- var _a2, _b2, _c2, _d2;
10292
- if (((_a2 = ctx2[3].toolbar) == null ? void 0 : _a2.enable) !== false) {
10353
+ if (ctx2[3].toolbar?.enable !== false) {
10293
10354
  if (if_block0) {
10294
10355
  if_block0.p(ctx2, dirty);
10295
10356
  if (dirty & 8) {
@@ -10311,7 +10372,7 @@ function create_fragment58(ctx) {
10311
10372
  if (dirty & 32) {
10312
10373
  toggle_class(div1, "hidden", !(ctx2[5] === "visible" || ctx2[5] === "toolbar-only"));
10313
10374
  }
10314
- if (((_b2 = ctx2[3].redo_undo) == null ? void 0 : _b2.enable) !== false) {
10375
+ if (ctx2[3].redo_undo?.enable !== false) {
10315
10376
  if (if_block1) {
10316
10377
  if_block1.p(ctx2, dirty);
10317
10378
  if (dirty & 8) {
@@ -10330,7 +10391,7 @@ function create_fragment58(ctx) {
10330
10391
  });
10331
10392
  check_outros();
10332
10393
  }
10333
- if (((_c2 = ctx2[3].zoom_control) == null ? void 0 : _c2.enable) !== false) {
10394
+ if (ctx2[3].zoom_control?.enable !== false) {
10334
10395
  if (if_block2) {
10335
10396
  if_block2.p(ctx2, dirty);
10336
10397
  if (dirty & 8) {
@@ -10352,14 +10413,14 @@ function create_fragment58(ctx) {
10352
10413
  if (dirty & 32) {
10353
10414
  toggle_class(div2, "hidden", ctx2[5] !== "visible");
10354
10415
  }
10355
- if (((_d2 = ctx2[3].page_control) == null ? void 0 : _d2.enable) !== false) {
10416
+ if (ctx2[3].page_control?.enable !== false) {
10356
10417
  if (if_block3) {
10357
10418
  if_block3.p(ctx2, dirty);
10358
10419
  if (dirty & 8) {
10359
10420
  transition_in(if_block3, 1);
10360
10421
  }
10361
10422
  } else {
10362
- if_block3 = create_if_block9(ctx2);
10423
+ if_block3 = create_if_block10(ctx2);
10363
10424
  if_block3.c();
10364
10425
  transition_in(if_block3, 1);
10365
10426
  if_block3.m(div3, null);
@@ -10397,7 +10458,7 @@ function create_fragment58(ctx) {
10397
10458
  d(detaching) {
10398
10459
  if (detaching)
10399
10460
  detach(div4);
10400
- ctx[14](null);
10461
+ ctx[15](null);
10401
10462
  if (if_block0)
10402
10463
  if_block0.d();
10403
10464
  if (if_block1)
@@ -10416,9 +10477,9 @@ function instance58($$self, $$props, $$invalidate) {
10416
10477
  let writable2;
10417
10478
  let boxState;
10418
10479
  let focusedApp;
10419
- let $focusedApp, $$unsubscribe_focusedApp = noop, $$subscribe_focusedApp = () => ($$unsubscribe_focusedApp(), $$unsubscribe_focusedApp = subscribe(focusedApp, ($$value) => $$invalidate(11, $focusedApp = $$value)), focusedApp);
10420
- let $boxState, $$unsubscribe_boxState = noop, $$subscribe_boxState = () => ($$unsubscribe_boxState(), $$unsubscribe_boxState = subscribe(boxState, ($$value) => $$invalidate(12, $boxState = $$value)), boxState);
10421
- let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(13, $writable = $$value)), writable2);
10480
+ let $focusedApp, $$unsubscribe_focusedApp = noop, $$subscribe_focusedApp = () => ($$unsubscribe_focusedApp(), $$unsubscribe_focusedApp = subscribe(focusedApp, ($$value) => $$invalidate(12, $focusedApp = $$value)), focusedApp);
10481
+ let $boxState, $$unsubscribe_boxState = noop, $$subscribe_boxState = () => ($$unsubscribe_boxState(), $$unsubscribe_boxState = subscribe(boxState, ($$value) => $$invalidate(13, $boxState = $$value)), boxState);
10482
+ let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(14, $writable = $$value)), writable2);
10422
10483
  $$self.$$.on_destroy.push(() => $$unsubscribe_focusedApp());
10423
10484
  $$self.$$.on_destroy.push(() => $$unsubscribe_boxState());
10424
10485
  $$self.$$.on_destroy.push(() => $$unsubscribe_writable());
@@ -10440,6 +10501,11 @@ function instance58($$self, $$props, $$invalidate) {
10440
10501
  };
10441
10502
  }
10442
10503
  });
10504
+ function focus_me() {
10505
+ tippy_hide_all();
10506
+ let a = document.activeElement;
10507
+ a && a.blur && a.blur();
10508
+ }
10443
10509
  function div0_binding($$value) {
10444
10510
  binding_callbacks[$$value ? "unshift" : "push"](() => {
10445
10511
  container = $$value;
@@ -10454,21 +10520,21 @@ function instance58($$self, $$props, $$invalidate) {
10454
10520
  if ("language" in $$props2)
10455
10521
  $$invalidate(2, language = $$props2.language);
10456
10522
  if ("containerRef" in $$props2)
10457
- $$invalidate(9, containerRef = $$props2.containerRef);
10523
+ $$invalidate(10, containerRef = $$props2.containerRef);
10458
10524
  if ("config" in $$props2)
10459
10525
  $$invalidate(3, config = $$props2.config);
10460
10526
  };
10461
10527
  $$self.$$.update = () => {
10462
10528
  if ($$self.$$.dirty & 1) {
10463
- $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
10529
+ $$subscribe_writable($$invalidate(8, writable2 = app?.writable));
10464
10530
  }
10465
10531
  if ($$self.$$.dirty & 1) {
10466
- $$subscribe_boxState($$invalidate(7, boxState = app == null ? void 0 : app.boxState));
10532
+ $$subscribe_boxState($$invalidate(7, boxState = app?.boxState));
10467
10533
  }
10468
10534
  if ($$self.$$.dirty & 1) {
10469
- $$subscribe_focusedApp($$invalidate(6, focusedApp = app == null ? void 0 : app.focusedApp));
10535
+ $$subscribe_focusedApp($$invalidate(6, focusedApp = app?.focusedApp));
10470
10536
  }
10471
- if ($$self.$$.dirty & 14336) {
10537
+ if ($$self.$$.dirty & 28672) {
10472
10538
  if (!$writable) {
10473
10539
  $$invalidate(5, layout = "hidden");
10474
10540
  } else if ($boxState === "maximized") {
@@ -10485,14 +10551,14 @@ function instance58($$self, $$props, $$invalidate) {
10485
10551
  try {
10486
10552
  if (app && container) {
10487
10553
  app.bindContainer(container);
10488
- $$invalidate(10, mounted = true);
10554
+ $$invalidate(11, mounted = true);
10489
10555
  }
10490
10556
  } catch (err) {
10491
10557
  console.error("[fastboard] An error occurred while binding container");
10492
10558
  console.error(err);
10493
10559
  }
10494
10560
  }
10495
- if ($$self.$$.dirty & 1027) {
10561
+ if ($$self.$$.dirty & 2051) {
10496
10562
  if (app && theme && mounted) {
10497
10563
  app.manager.setPrefersColorScheme(theme);
10498
10564
  }
@@ -10508,6 +10574,7 @@ function instance58($$self, $$props, $$invalidate) {
10508
10574
  focusedApp,
10509
10575
  boxState,
10510
10576
  writable2,
10577
+ focus_me,
10511
10578
  containerRef,
10512
10579
  mounted,
10513
10580
  $focusedApp,
@@ -10523,7 +10590,7 @@ var Fastboard = class extends SvelteComponent {
10523
10590
  app: 0,
10524
10591
  theme: 1,
10525
10592
  language: 2,
10526
- containerRef: 9,
10593
+ containerRef: 10,
10527
10594
  config: 3
10528
10595
  });
10529
10596
  }
@@ -10533,74 +10600,70 @@ var Fastboard_default = Fastboard;
10533
10600
  // src/helpers/index.ts
10534
10601
  function createUI(app, div) {
10535
10602
  let fastboard;
10536
- const ui = {
10537
- mount(div2, props) {
10538
- if (fastboard) {
10539
- fastboard.$destroy();
10540
- }
10541
- fastboard = new Fastboard_default({ target: div2, props: __spreadValues({ app }, props) });
10542
- return ui;
10543
- },
10544
- update(props) {
10545
- if (fastboard) {
10546
- fastboard.$set(props);
10547
- }
10548
- },
10549
- destroy() {
10550
- if (fastboard) {
10551
- fastboard.$destroy();
10552
- }
10553
- fastboard = void 0;
10603
+ function mount(div2, props) {
10604
+ if (fastboard) {
10605
+ fastboard.$destroy();
10554
10606
  }
10555
- };
10607
+ fastboard = new Fastboard_default({ target: div2, props: { app, ...props } });
10608
+ return ui;
10609
+ }
10610
+ function update2(props) {
10611
+ if (fastboard) {
10612
+ fastboard.$set(props);
10613
+ }
10614
+ }
10615
+ function destroy() {
10616
+ if (fastboard) {
10617
+ fastboard.$destroy();
10618
+ }
10619
+ fastboard = void 0;
10620
+ }
10621
+ function setElement(div2) {
10622
+ if (div2) {
10623
+ mount(div2);
10624
+ } else {
10625
+ destroy();
10626
+ }
10627
+ }
10628
+ const ui = { mount, update: update2, destroy, setElement };
10556
10629
  if (div) {
10557
- ui.mount(div);
10630
+ mount(div, { app });
10558
10631
  }
10559
10632
  return ui;
10560
10633
  }
10561
10634
  function createReplayUI(player, div) {
10562
10635
  let fastboard;
10563
- const ui = {
10564
- mount(div2, props) {
10565
- if (fastboard) {
10566
- fastboard.$destroy();
10567
- }
10568
- fastboard = new ReplayFastboard_default({ target: div2, props: __spreadValues({ player }, props) });
10569
- return ui;
10570
- },
10571
- update(props) {
10572
- if (fastboard) {
10573
- fastboard.$set(props);
10574
- }
10575
- },
10576
- destroy() {
10577
- if (fastboard) {
10578
- fastboard.$destroy();
10579
- }
10580
- fastboard = void 0;
10636
+ function mount(div2, props) {
10637
+ if (fastboard) {
10638
+ fastboard.$destroy();
10581
10639
  }
10582
- };
10640
+ fastboard = new ReplayFastboard_default({ target: div2, props: { player, ...props } });
10641
+ return ui;
10642
+ }
10643
+ function update2(props) {
10644
+ if (fastboard) {
10645
+ fastboard.$set(props);
10646
+ }
10647
+ }
10648
+ function destroy() {
10649
+ if (fastboard) {
10650
+ fastboard.$destroy();
10651
+ }
10652
+ fastboard = void 0;
10653
+ }
10654
+ function setElement(div2) {
10655
+ if (div2) {
10656
+ mount(div2);
10657
+ } else {
10658
+ destroy();
10659
+ }
10660
+ }
10661
+ const ui = { mount, update: update2, destroy, setElement };
10583
10662
  if (div) {
10584
- ui.mount(div);
10663
+ mount(div, { player });
10585
10664
  }
10586
10665
  return ui;
10587
10666
  }
10588
10667
 
10589
- // inline-sass-helper:inline-sass-style-helper.js
10590
- function injectStyle(text2) {
10591
- if (typeof document !== "undefined") {
10592
- var style = document.createElement("style");
10593
- var node = document.createTextNode(text2);
10594
- style.appendChild(node);
10595
- document.head.appendChild(style);
10596
- }
10597
- }
10598
-
10599
- // inline-sass-content:./src/style.scss
10600
- var style_default = '.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-theme~=light]{color:#26323d;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:#fff}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.fastboard-icon.light .fastboard-icon-stroke-color{stroke:var(--fastboard-color, #5d6066)}.fastboard-icon.light .fastboard-icon-fill-color{fill:var(--fastboard-color, #5d6066)}.fastboard-icon.light.is-active .fastboard-icon-stroke-color{stroke:var(--fastboard-active-color, #3381ff)}.fastboard-icon.light.is-active .fastboard-icon-fill-color{fill:var(--fastboard-active-color, #3381ff)}.fastboard-icon.dark .fastboard-icon-stroke-color{stroke:var(--fastboard-color, #7b7e84)}.fastboard-icon.dark .fastboard-icon-fill-color{fill:var(--fastboard-color, #7b7e84)}.fastboard-icon.dark.is-active .fastboard-icon-stroke-color{stroke:var(--fastboard-active-color, #2867cc)}.fastboard-icon.dark.is-active .fastboard-icon-fill-color{fill:var(--fastboard-active-color, #2867cc)}.fastboard-redo-undo{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-redo-undo *{box-sizing:inherit}.fastboard-redo-undo.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-redo-undo.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-redo-undo-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-redo-undo-btn svg,.fastboard-redo-undo-btn img{width:100%;height:100%;pointer-events:none}.fastboard-redo-undo-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-redo-undo-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-redo-undo-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-zoom-control{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-zoom-control *{box-sizing:inherit}.fastboard-zoom-control.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-zoom-control.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-zoom-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-zoom-control-btn svg,.fastboard-zoom-control-btn img{width:100%;height:100%;pointer-events:none}.fastboard-zoom-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-zoom-control-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-zoom-control-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-zoom-control-text{font-variant-numeric:tabular-nums}.fastboard-page-control{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-page-control *{box-sizing:inherit}.fastboard-page-control.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-page-control.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-page-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-page-control-btn svg,.fastboard-page-control-btn img{width:100%;height:100%;pointer-events:none}.fastboard-page-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-page-control-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-page-control-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-page-control-text{font-variant-numeric:tabular-nums}.fastboard-player-control{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);width:100%}.fastboard-player-control *{box-sizing:inherit}.fastboard-player-control.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-player-control.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-player-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0;display:inline}.fastboard-player-control-btn svg,.fastboard-player-control-btn img{width:100%;height:100%;pointer-events:none}.fastboard-player-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-player-control-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-player-control-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-player-control-btn.loading svg,.fastboard-player-control-btn.loading img{animation:fastboard-player-control-rotate .5s linear infinite}@keyframes fastboard-player-control-rotate{to{transform:rotate(360deg)}}.fastboard-player-control-btn.speed{width:auto;padding:4px;text-align:right;font-size:14px;font-variant-numeric:tabular-nums}.fastboard-player-control-btn.is-active.light{color:var(--fastboard-active-color, #3381ff)}.fastboard-player-control-btn.is-active.dark{color:var(--fastboard-active-color, #2867cc)}.fastboard-player-control-speed-text,.fastboard-player-control-progress{font-size:14px;font-variant-numeric:tabular-nums;line-height:16px}.fastboard-player-control-progress{display:inline-flex;align-items:center}.fastboard-player-control-panel.speed{display:flex;flex-direction:column}.fastboard-toolbar{height:100%;display:flex;align-items:center;position:relative;transform:translate(0);transition:transform .5s cubic-bezier(.34,1.56,.64,1);pointer-events:none}.fastboard-toolbar.collapsed{transform:translate(-100%)}.fastboard-toolbar-handler{position:absolute;left:100%;width:17px;font-size:0;border-radius:3px;cursor:pointer;pointer-events:auto}.fastboard-toolbar-handler:focus-within{outline:2px solid -webkit-focus-ring-color}.fastboard-toolbar-handler input[type=checkbox]{position:absolute;top:0;left:0;appearance:none;margin:0;width:100%;height:100%;cursor:pointer;opacity:0;z-index:-1}.fastboard-toolbar-handler svg{opacity:0;transition:opacity .5s 1s;pointer-events:none}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-bg-color{fill:var(--fastboard-bg-color, rgba(255, 255, 255, .9))}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-border-color{stroke:var(--fastboard-border-color, #e5e8f0)}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-image-stroke-color{stroke:var(--fastboard-color, #5d6066)}.fastboard-toolbar-handler.light .fastboard-toolbar-handler-image-fill-color{fill:var(--fastboard-color, #5d6066)}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-bg-color{fill:var(--fastboard-bg-color, rgba(20, 24, 30, .9))}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-border-color{stroke:var(--fastboard-border-color, #383b42)}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-image-stroke-color{stroke:var(--fastboard-color, #7b7e84)}.fastboard-toolbar-handler.dark .fastboard-toolbar-handler-image-fill-color{fill:var(--fastboard-color, #7b7e84)}.fastboard-toolbar:hover .fastboard-toolbar-handler svg,.fastboard-toolbar.collapsed .fastboard-toolbar-handler svg{opacity:1;transition:opacity .2s}.fastboard-toolbar-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:4px;width:32px;height:32px;background-color:#0000;border-radius:4px;font-size:0;line-height:1;flex-shrink:0}.fastboard-toolbar-btn svg,.fastboard-toolbar-btn img{width:100%;height:100%;pointer-events:none}.fastboard-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-toolbar-btn.light:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-toolbar-btn.dark:not(:disabled):hover{background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-slider{box-sizing:border-box;position:relative;width:100%;height:100%;display:flex;align-items:center}.fastboard-slider *{box-sizing:inherit}.fastboard-slider-track{appearance:none;background:rgba(0,0,0,0);border:0;border-radius:26px;flex:1;display:block;height:19px;margin:0;width:0;min-width:0;padding:0;transition:box-shadow .3s ease;cursor:pointer;touch-action:manipulation}.fastboard-slider-track::-webkit-slider-runnable-track{border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;user-select:none;background-color:#80808040;-webkit-user-select:none;background-image:linear-gradient(to right,currentColor var(--value, 0%),transparent var(--value, 0%))}.fastboard-slider-track::-webkit-slider-thumb{background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px #23292f26,0 0 0 1px #23292f33;width:13px;height:13px;position:relative;transition:all .2s ease;cursor:grab;appearance:none;margin-top:-4px}.fastboard-slider-track::-moz-range-track{border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;user-select:none;background-color:#80808040;-webkit-user-select:none}.fastboard-slider-track::-moz-range-thumb{appearance:none;background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px #23292f26,0 0 0 1px #23292f33;width:13px;height:13px;position:relative;transition:all .2s ease;cursor:grab}.fastboard-slider-track::-moz-range-progress{background:currentColor;border-radius:2.5px;height:5px}.fastboard-slider-track::-ms-track{border:0;border-radius:2.5px;height:5px;transition:box-shadow .3s ease;user-select:none;background-color:#80808040;-webkit-user-select:none;color:#0000}.fastboard-slider-track::-ms-thumb{appearance:none;background:#fff;border:0;border-radius:100%;box-shadow:0 1px 1px #23292f26,0 0 0 1px #23292f33;width:13px;height:13px;position:relative;transition:all .2s ease;cursor:grab;margin-top:0}.fastboard-slider-track::-ms-tooltip{display:none}.fastboard-slider-track::-moz-focus-outer{border:0}.fastboard-slider-track.grabbing::-webkit-slider-thumb{cursor:grabbing}.fastboard-slider-track.light{color:var(--fastboard-active-color, #3381ff)}.fastboard-slider-track.dark{color:var(--fastboard-active-color, #2867cc)}.fastboard-toolbar-contents{box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;border:1px solid;border-radius:4px;font-size:14px;font-family:system-ui;pointer-events:auto;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);padding:2px 0;gap:0;flex-direction:column}.fastboard-toolbar-contents *{box-sizing:inherit}.fastboard-toolbar-contents.light{color:var(--fastboard-color, #5d6066);background-color:var(--fastboard-bg-color, rgba(255, 255, 255, .9));border-color:var(--fastboard-border-color, #e5e8f0)}.fastboard-toolbar-contents.dark{color:var(--fastboard-color, #7b7e84);background-color:var(--fastboard-bg-color, rgba(20, 24, 30, .9));border-color:var(--fastboard-border-color, #383b42)}.fastboard-toolbar-contents>.fastboard-toolbar-btn{margin:2px 4px}.fastboard-toolbar-btn-interactive{position:relative}.fastboard-toolbar-triangle{width:0px;height:0px;border-bottom:4px solid;border-left:4px solid rgba(0,0,0,0);position:absolute;bottom:0;right:0}.fastboard-toolbar-btn:focus+.fastboard-toolbar-triangle{opacity:0}.fastboard-toolbar-scrollable{padding:2px 4px;overflow:hidden;display:flex;flex-direction:column;gap:4px}.fastboard-toolbar-tooltip{display:inline-flex;align-items:center;gap:4px}.fastboard-toolbar-hotkey{display:inline-flex;margin-right:-4px;width:24px;height:24px;align-items:center;justify-content:center;background-color:#ffffff1a;border-radius:4px}.fastboard-toolbar-panel-wrapper{display:none}.fastboard-toolbar-panel{display:flex;flex-direction:column}.fastboard-toolbar-panel-divider{height:.5px;width:100%;margin:4px 0;background-color:#ffffff26}.fastboard-toolbar-colors,.fastboard-toolbar-shapes{display:grid;align-self:center;grid-template:repeat(2,1fr)/repeat(4,1fr);align-items:center;justify-items:center;gap:4px}.fastboard-toolbar-shape-btn,.fastboard-toolbar-color-btn{width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-color-btn{border:1px solid rgba(0,0,0,0)}.fastboard-toolbar-color-btn.light.is-active{border-color:var(--fastboard-active-color, #3381ff)}.fastboard-toolbar-color-btn.dark.is-active{border-color:var(--fastboard-active-color, #2867cc)}.fastboard-toolbar-color-item{display:inline-block;width:16px;height:16px;border-radius:4px;pointer-events:none}.fastboard-toolbar-panel.apps{display:grid;grid-template-columns:repeat(min(var(--n, 3),3),minmax(max-content,1fr));gap:4px}.fastboard-toolbar-app-btn{margin:0;border:0;border-radius:2px;padding:4px 6px;background-color:#0000;display:inline-flex;flex-direction:column;align-items:center;gap:4px;font-size:0}.fastboard-toolbar-app-btn:disabled{opacity:.8}.fastboard-toolbar-app-btn-icon{width:32px;height:32px;pointer-events:none}.fastboard-toolbar-app-btn-text{font-size:14px;line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis}.fastboard-toolbar-app-btn.is-loading{cursor:progress}.fastboard-toolbar-app-btn.is-failed{cursor:not-allowed;opacity:.5}.fastboard-toolbar-app-btn:not(:disabled,.is-loading,.is-failed):hover.light{cursor:pointer;background-color:var(--fastboard-hover-bg-color, #ebf2ff)}.fastboard-toolbar-app-btn-text.light{color:var(--fastboard-color, #5d6066)}.fastboard-toolbar-app-btn:not(:disabled,.is-loading,.is-failed):hover.dark{cursor:pointer;background-color:var(--fastboard-hover-bg-color, #383b42)}.fastboard-toolbar-app-btn-text.dark{color:var(--fastboard-color, #7b7e84)}.fastboard-root{position:relative;width:100%;height:100%;overflow:hidden}.fastboard-view{position:absolute;top:0;left:0;width:100%;height:100%}.fastboard-left{display:flex;align-items:center;position:absolute;bottom:62px;top:8px;left:0;z-index:200;pointer-events:none}.fastboard-left .fastboard-toolbar{padding-left:16px}.fastboard-bottom-left,.fastboard-bottom,.fastboard-bottom-right{display:flex;gap:10px;position:absolute;bottom:8px;left:8px;padding:8px;z-index:200;pointer-events:none}.fastboard-bottom-right{left:auto;right:8px}.fastboard-bottom{right:8px}.fastboard-left.hidden *,.fastboard-bottom.hidden *,.fastboard-bottom-left.hidden *,.fastboard-bottom-right.hidden *{opacity:0;pointer-events:none}.fastboard-tip{font-family:inherit;color:#d5d9e0;background-color:#03060d}.fastboard-tip[data-placement^=right]>.tippy-arrow:before{top:4px;border-width:4px;border-right-color:#03060d}.fastboard-tip[data-placement^=top]>.tippy-arrow:before{left:4px;border-width:4px;border-top-color:#03060d}.fastboard-panel .tippy-content{padding:8px}';
10601
-
10602
- // inline-sass-stub:./src/style.scss
10603
- injectStyle(style_default);
10604
-
10605
10668
  export { Fastboard_default as Fastboard, PageControl_default as PageControl, PlayerControl_default as PlayerControl, RedoUndo_default as RedoUndo, ReplayFastboard_default as ReplayFastboard, Toolbar_default as Toolbar, ZoomControl_default as ZoomControl, apps, createReplayUI, createUI };
10606
10669
  //# sourceMappingURL=index.mjs.map