@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.
@@ -3,25 +3,21 @@ import Tippy from 'tippy.js';
3
3
  import { writable } from 'svelte/store';
4
4
  import { onMount, createEventDispatcher } from 'svelte';
5
5
 
6
- var __defProp = Object.defineProperty;
7
- var __defProps = Object.defineProperties;
8
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
9
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
10
- var __hasOwnProp = Object.prototype.hasOwnProperty;
11
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
12
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
13
- var __spreadValues = (a, b) => {
14
- for (var prop in b || (b = {}))
15
- if (__hasOwnProp.call(b, prop))
16
- __defNormalProp(a, prop, b[prop]);
17
- if (__getOwnPropSymbols)
18
- for (var prop of __getOwnPropSymbols(b)) {
19
- if (__propIsEnum.call(b, prop))
20
- __defNormalProp(a, prop, b[prop]);
21
- }
22
- return a;
23
- };
24
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
6
+ // inline-sass-helper:inline-sass-style-helper.js
7
+ function injectStyle(text4) {
8
+ if (typeof document !== "undefined") {
9
+ var style = document.createElement("style");
10
+ var node = document.createTextNode(text4);
11
+ style.appendChild(node);
12
+ document.head.appendChild(style);
13
+ }
14
+ }
15
+
16
+ // inline-sass-content:./src/style.scss
17
+ 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}';
18
+
19
+ // inline-sass-stub:./src/style.scss
20
+ injectStyle(style_default);
25
21
  function create_else_block(ctx) {
26
22
  let current;
27
23
  const default_slot_template = ctx[4].default;
@@ -40,7 +36,14 @@ function create_else_block(ctx) {
40
36
  p(ctx2, dirty) {
41
37
  if (default_slot) {
42
38
  if (default_slot.p && (!current || dirty & 8)) {
43
- 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);
39
+ update_slot_base(
40
+ default_slot,
41
+ default_slot_template,
42
+ ctx2,
43
+ ctx2[3],
44
+ !current ? get_all_dirty_from_scope(ctx2[3]) : get_slot_changes(default_slot_template, ctx2[3], dirty, null),
45
+ null
46
+ );
44
47
  }
45
48
  }
46
49
  },
@@ -2801,8 +2804,7 @@ if (is_client) {
2801
2804
  }
2802
2805
  }
2803
2806
  function remove() {
2804
- var _a;
2805
- (_a = instance59.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
2807
+ instance59.popper.firstElementChild?.classList.remove("fastboard-tip");
2806
2808
  }
2807
2809
  return {
2808
2810
  onCreate: add,
@@ -2826,11 +2828,13 @@ var tippy = function(node, props) {
2826
2828
  };
2827
2829
  };
2828
2830
  function tippy_hide_all() {
2829
- document.querySelectorAll("[data-tippy-root]").forEach((el) => {
2830
- const instance59 = el._tippy;
2831
- if (instance59)
2832
- instance59.hide();
2833
- });
2831
+ document.querySelectorAll("[data-tippy-root]").forEach(tippy_hide);
2832
+ }
2833
+ function tippy_hide(el) {
2834
+ const instance59 = el._tippy;
2835
+ if (instance59) {
2836
+ instance59.hide();
2837
+ }
2834
2838
  }
2835
2839
  var tippy_menu = {
2836
2840
  delay: 0,
@@ -2871,7 +2875,14 @@ function create_else_block_1(ctx) {
2871
2875
  p(ctx2, dirty) {
2872
2876
  if (default_slot) {
2873
2877
  if (default_slot.p && (!current || dirty & 256)) {
2874
- 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);
2878
+ update_slot_base(
2879
+ default_slot,
2880
+ default_slot_template,
2881
+ ctx2,
2882
+ ctx2[8],
2883
+ !current ? get_all_dirty_from_scope(ctx2[8]) : get_slot_changes(default_slot_template, ctx2[8], dirty, null),
2884
+ null
2885
+ );
2875
2886
  }
2876
2887
  }
2877
2888
  if (!current || dirty & 7 && button_class_value !== (button_class_value = ctx2[1] + "-btn " + ctx2[0] + " " + ctx2[2])) {
@@ -3002,7 +3013,14 @@ function create_else_block2(ctx) {
3002
3013
  p(ctx2, dirty) {
3003
3014
  if (default_slot) {
3004
3015
  if (default_slot.p && (!current || dirty & 256)) {
3005
- 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);
3016
+ update_slot_base(
3017
+ default_slot,
3018
+ default_slot_template,
3019
+ ctx2,
3020
+ ctx2[8],
3021
+ !current ? get_all_dirty_from_scope(ctx2[8]) : get_slot_changes(default_slot_template, ctx2[8], dirty, null),
3022
+ null
3023
+ );
3006
3024
  }
3007
3025
  }
3008
3026
  if (!current || dirty & 7 && button_class_value !== (button_class_value = ctx2[1] + "-btn " + ctx2[0] + " " + ctx2[2])) {
@@ -3078,14 +3096,14 @@ function create_if_block_1(ctx) {
3078
3096
  if (!mounted) {
3079
3097
  dispose = [
3080
3098
  listen(button, "click", ctx[10]),
3081
- action_destroyer(tippy_action = tippy.call(null, button, __spreadProps(__spreadValues({
3082
- content: ctx[6]
3083
- }, tippy_menu), {
3099
+ action_destroyer(tippy_action = tippy.call(null, button, {
3100
+ content: ctx[6],
3101
+ ...tippy_menu,
3084
3102
  placement: ctx[7],
3085
3103
  appendTo: document.body,
3086
3104
  theme: ctx[2],
3087
3105
  className: "fastboard-panel"
3088
- }))),
3106
+ })),
3089
3107
  action_destroyer(tippy_action_1 = tippy.call(null, span1, {
3090
3108
  content: ctx[4],
3091
3109
  placement: ctx[5],
@@ -3098,7 +3116,14 @@ function create_if_block_1(ctx) {
3098
3116
  p(ctx2, dirty) {
3099
3117
  if (default_slot) {
3100
3118
  if (default_slot.p && (!current || dirty & 256)) {
3101
- 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);
3119
+ update_slot_base(
3120
+ default_slot,
3121
+ default_slot_template,
3122
+ ctx2,
3123
+ ctx2[8],
3124
+ !current ? get_all_dirty_from_scope(ctx2[8]) : get_slot_changes(default_slot_template, ctx2[8], dirty, null),
3125
+ null
3126
+ );
3102
3127
  }
3103
3128
  }
3104
3129
  if (!current || dirty & 7 && button_class_value !== (button_class_value = ctx2[1] + "-btn " + ctx2[0] + " " + ctx2[2])) {
@@ -3108,14 +3133,14 @@ function create_if_block_1(ctx) {
3108
3133
  button.disabled = ctx2[3];
3109
3134
  }
3110
3135
  if (tippy_action && is_function(tippy_action.update) && dirty & 196)
3111
- tippy_action.update.call(null, __spreadProps(__spreadValues({
3112
- content: ctx2[6]
3113
- }, tippy_menu), {
3136
+ tippy_action.update.call(null, {
3137
+ content: ctx2[6],
3138
+ ...tippy_menu,
3114
3139
  placement: ctx2[7],
3115
3140
  appendTo: document.body,
3116
3141
  theme: ctx2[2],
3117
3142
  className: "fastboard-panel"
3118
- }));
3143
+ });
3119
3144
  if (!current || dirty & 2 && span0_class_value !== (span0_class_value = ctx2[1] + "-triangle")) {
3120
3145
  attr(span0, "class", span0_class_value);
3121
3146
  }
@@ -3319,12 +3344,11 @@ function create_default_slot_3(ctx) {
3319
3344
  };
3320
3345
  }
3321
3346
  function create_default_slot_2(ctx) {
3322
- var _a;
3323
3347
  let icon;
3324
3348
  let current;
3325
3349
  icon = new Icon_default({
3326
3350
  props: {
3327
- src: (_a = ctx[1]) == null ? void 0 : _a.undo[ctx[2]],
3351
+ src: ctx[1]?.undo[ctx[2]],
3328
3352
  alt: "[undo]",
3329
3353
  $$slots: { default: [create_default_slot_3] },
3330
3354
  $$scope: { ctx }
@@ -3339,10 +3363,9 @@ function create_default_slot_2(ctx) {
3339
3363
  current = true;
3340
3364
  },
3341
3365
  p(ctx2, dirty) {
3342
- var _a2;
3343
3366
  const icon_changes = {};
3344
3367
  if (dirty & 6)
3345
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.undo[ctx2[2]];
3368
+ icon_changes.src = ctx2[1]?.undo[ctx2[2]];
3346
3369
  if (dirty & 131073) {
3347
3370
  icon_changes.$$scope = { dirty, ctx: ctx2 };
3348
3371
  }
@@ -3397,12 +3420,11 @@ function create_default_slot_1(ctx) {
3397
3420
  };
3398
3421
  }
3399
3422
  function create_default_slot(ctx) {
3400
- var _a;
3401
3423
  let icon;
3402
3424
  let current;
3403
3425
  icon = new Icon_default({
3404
3426
  props: {
3405
- src: (_a = ctx[1]) == null ? void 0 : _a.redo[ctx[2]],
3427
+ src: ctx[1]?.redo[ctx[2]],
3406
3428
  alt: "[redo]",
3407
3429
  $$slots: { default: [create_default_slot_1] },
3408
3430
  $$scope: { ctx }
@@ -3417,10 +3439,9 @@ function create_default_slot(ctx) {
3417
3439
  current = true;
3418
3440
  },
3419
3441
  p(ctx2, dirty) {
3420
- var _a2;
3421
3442
  const icon_changes = {};
3422
3443
  if (dirty & 6)
3423
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.redo[ctx2[2]];
3444
+ icon_changes.src = ctx2[1]?.redo[ctx2[2]];
3424
3445
  if (dirty & 131073) {
3425
3446
  icon_changes.$$scope = { dirty, ctx: ctx2 };
3426
3447
  }
@@ -3562,10 +3583,10 @@ function instance46($$self, $$props, $$invalidate) {
3562
3583
  let { icons = void 0 } = $$props;
3563
3584
  let type;
3564
3585
  function undo() {
3565
- app == null ? void 0 : app.undo();
3586
+ app?.undo();
3566
3587
  }
3567
3588
  function redo() {
3568
- app == null ? void 0 : app.redo();
3589
+ app?.redo();
3569
3590
  }
3570
3591
  $$self.$$set = ($$props2) => {
3571
3592
  if ("app" in $$props2)
@@ -3579,7 +3600,7 @@ function instance46($$self, $$props, $$invalidate) {
3579
3600
  };
3580
3601
  $$self.$$.update = () => {
3581
3602
  if ($$self.$$.dirty & 2048) {
3582
- $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
3603
+ $$subscribe_writable($$invalidate(8, writable2 = app?.writable));
3583
3604
  }
3584
3605
  if ($$self.$$.dirty & 65536) {
3585
3606
  $$invalidate(13, disabled = !$writable);
@@ -3591,10 +3612,10 @@ function instance46($$self, $$props, $$invalidate) {
3591
3612
  $$invalidate(2, type = disabled ? "disable" : "normal");
3592
3613
  }
3593
3614
  if ($$self.$$.dirty & 2048) {
3594
- $$subscribe_undoSteps($$invalidate(6, undoSteps = app == null ? void 0 : app.canUndoSteps));
3615
+ $$subscribe_undoSteps($$invalidate(6, undoSteps = app?.canUndoSteps));
3595
3616
  }
3596
3617
  if ($$self.$$.dirty & 2048) {
3597
- $$subscribe_redoSteps($$invalidate(5, redoSteps = app == null ? void 0 : app.canRedoSteps));
3618
+ $$subscribe_redoSteps($$invalidate(5, redoSteps = app?.canRedoSteps));
3598
3619
  }
3599
3620
  if ($$self.$$.dirty & 40960) {
3600
3621
  $$invalidate(4, undo_disabled = disabled || !$undoSteps);
@@ -3669,12 +3690,11 @@ function create_default_slot_5(ctx) {
3669
3690
  };
3670
3691
  }
3671
3692
  function create_default_slot_4(ctx) {
3672
- var _a;
3673
3693
  let icon;
3674
3694
  let current;
3675
3695
  icon = new Icon_default({
3676
3696
  props: {
3677
- src: (_a = ctx[1]) == null ? void 0 : _a.prev[ctx[5]],
3697
+ src: ctx[1]?.prev[ctx[5]],
3678
3698
  alt: "[prev]",
3679
3699
  $$slots: { default: [create_default_slot_5] },
3680
3700
  $$scope: { ctx }
@@ -3689,10 +3709,9 @@ function create_default_slot_4(ctx) {
3689
3709
  current = true;
3690
3710
  },
3691
3711
  p(ctx2, dirty) {
3692
- var _a2;
3693
3712
  const icon_changes = {};
3694
3713
  if (dirty & 34)
3695
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.prev[ctx2[5]];
3714
+ icon_changes.src = ctx2[1]?.prev[ctx2[5]];
3696
3715
  if (dirty & 262145) {
3697
3716
  icon_changes.$$scope = { dirty, ctx: ctx2 };
3698
3717
  }
@@ -3795,12 +3814,11 @@ function create_default_slot_32(ctx) {
3795
3814
  };
3796
3815
  }
3797
3816
  function create_default_slot_22(ctx) {
3798
- var _a;
3799
3817
  let icon;
3800
3818
  let current;
3801
3819
  icon = new Icon_default({
3802
3820
  props: {
3803
- src: (_a = ctx[1]) == null ? void 0 : _a.next[ctx[5]],
3821
+ src: ctx[1]?.next[ctx[5]],
3804
3822
  alt: "[next]",
3805
3823
  $$slots: { default: [create_default_slot_32] },
3806
3824
  $$scope: { ctx }
@@ -3815,10 +3833,9 @@ function create_default_slot_22(ctx) {
3815
3833
  current = true;
3816
3834
  },
3817
3835
  p(ctx2, dirty) {
3818
- var _a2;
3819
3836
  const icon_changes = {};
3820
3837
  if (dirty & 34)
3821
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.next[ctx2[5]];
3838
+ icon_changes.src = ctx2[1]?.next[ctx2[5]];
3822
3839
  if (dirty & 262145) {
3823
3840
  icon_changes.$$scope = { dirty, ctx: ctx2 };
3824
3841
  }
@@ -3873,12 +3890,11 @@ function create_default_slot_12(ctx) {
3873
3890
  };
3874
3891
  }
3875
3892
  function create_default_slot2(ctx) {
3876
- var _a;
3877
3893
  let icon;
3878
3894
  let current;
3879
3895
  icon = new Icon_default({
3880
3896
  props: {
3881
- src: (_a = ctx[1]) == null ? void 0 : _a.add[ctx[5]],
3897
+ src: ctx[1]?.add[ctx[5]],
3882
3898
  alt: "[add]",
3883
3899
  $$slots: { default: [create_default_slot_12] },
3884
3900
  $$scope: { ctx }
@@ -3893,10 +3909,9 @@ function create_default_slot2(ctx) {
3893
3909
  current = true;
3894
3910
  },
3895
3911
  p(ctx2, dirty) {
3896
- var _a2;
3897
3912
  const icon_changes = {};
3898
3913
  if (dirty & 34)
3899
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.add[ctx2[5]];
3914
+ icon_changes.src = ctx2[1]?.add[ctx2[5]];
3900
3915
  if (dirty & 262145) {
3901
3916
  icon_changes.$$scope = { dirty, ctx: ctx2 };
3902
3917
  }
@@ -4106,14 +4121,14 @@ function instance47($$self, $$props, $$invalidate) {
4106
4121
  let { icons = void 0 } = $$props;
4107
4122
  let type;
4108
4123
  function prevPage() {
4109
- app == null ? void 0 : app.prevPage();
4124
+ app?.prevPage();
4110
4125
  }
4111
4126
  function nextPage() {
4112
- app == null ? void 0 : app.nextPage();
4127
+ app?.nextPage();
4113
4128
  }
4114
4129
  function addPage() {
4115
- app == null ? void 0 : app.addPage({ after: true });
4116
- app == null ? void 0 : app.nextPage();
4130
+ app?.addPage({ after: true });
4131
+ app?.nextPage();
4117
4132
  }
4118
4133
  $$self.$$set = ($$props2) => {
4119
4134
  if ("app" in $$props2)
@@ -4127,7 +4142,7 @@ function instance47($$self, $$props, $$invalidate) {
4127
4142
  };
4128
4143
  $$self.$$.update = () => {
4129
4144
  if ($$self.$$.dirty & 32768) {
4130
- $$subscribe_writable($$invalidate(11, writable2 = app == null ? void 0 : app.writable));
4145
+ $$subscribe_writable($$invalidate(11, writable2 = app?.writable));
4131
4146
  }
4132
4147
  if ($$self.$$.dirty & 131072) {
4133
4148
  $$invalidate(2, disabled = !$writable);
@@ -4139,10 +4154,10 @@ function instance47($$self, $$props, $$invalidate) {
4139
4154
  $$invalidate(5, type = disabled ? "disable" : "normal");
4140
4155
  }
4141
4156
  if ($$self.$$.dirty & 32768) {
4142
- $$subscribe_index($$invalidate(9, index = app == null ? void 0 : app.sceneIndex));
4157
+ $$subscribe_index($$invalidate(9, index = app?.pageIndex));
4143
4158
  }
4144
4159
  if ($$self.$$.dirty & 32768) {
4145
- $$subscribe_length($$invalidate(8, length = app == null ? void 0 : app.sceneLength));
4160
+ $$subscribe_length($$invalidate(8, length = app?.pageLength));
4146
4161
  }
4147
4162
  if ($$self.$$.dirty & 20) {
4148
4163
  $$invalidate(7, prev_disabled = disabled || !$index);
@@ -4225,12 +4240,11 @@ function create_default_slot_52(ctx) {
4225
4240
  };
4226
4241
  }
4227
4242
  function create_default_slot_42(ctx) {
4228
- var _a;
4229
4243
  let icon;
4230
4244
  let current;
4231
4245
  icon = new Icon_default({
4232
4246
  props: {
4233
- src: (_a = ctx[1]) == null ? void 0 : _a.plus[ctx[5]],
4247
+ src: ctx[1]?.plus[ctx[4]],
4234
4248
  alt: "[plus]",
4235
4249
  $$slots: { default: [create_default_slot_52] },
4236
4250
  $$scope: { ctx }
@@ -4245,11 +4259,10 @@ function create_default_slot_42(ctx) {
4245
4259
  current = true;
4246
4260
  },
4247
4261
  p(ctx2, dirty) {
4248
- var _a2;
4249
4262
  const icon_changes = {};
4250
- if (dirty & 34)
4251
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.plus[ctx2[5]];
4252
- if (dirty & 131073) {
4263
+ if (dirty & 18)
4264
+ icon_changes.src = ctx2[1]?.plus[ctx2[4]];
4265
+ if (dirty & 262145) {
4253
4266
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4254
4267
  }
4255
4268
  icon.$set(icon_changes);
@@ -4270,12 +4283,11 @@ function create_default_slot_42(ctx) {
4270
4283
  };
4271
4284
  }
4272
4285
  function create_else_block4(ctx) {
4273
- let t0_value = Math.ceil(ctx[2] * 100) + "";
4274
4286
  let t0;
4275
4287
  let t1;
4276
4288
  return {
4277
4289
  c() {
4278
- t0 = text(t0_value);
4290
+ t0 = text(ctx[5]);
4279
4291
  t1 = text("%");
4280
4292
  },
4281
4293
  m(target, anchor) {
@@ -4283,8 +4295,8 @@ function create_else_block4(ctx) {
4283
4295
  insert(target, t1, anchor);
4284
4296
  },
4285
4297
  p(ctx2, dirty) {
4286
- if (dirty & 4 && t0_value !== (t0_value = Math.ceil(ctx2[2] * 100) + ""))
4287
- set_data(t0, t0_value);
4298
+ if (dirty & 32)
4299
+ set_data(t0, ctx2[5]);
4288
4300
  },
4289
4301
  d(detaching) {
4290
4302
  if (detaching)
@@ -4344,12 +4356,11 @@ function create_default_slot_33(ctx) {
4344
4356
  };
4345
4357
  }
4346
4358
  function create_default_slot_23(ctx) {
4347
- var _a;
4348
4359
  let icon;
4349
4360
  let current;
4350
4361
  icon = new Icon_default({
4351
4362
  props: {
4352
- src: (_a = ctx[1]) == null ? void 0 : _a.minus[ctx[5]],
4363
+ src: ctx[1]?.minus[ctx[4]],
4353
4364
  alt: "[minus]",
4354
4365
  $$slots: { default: [create_default_slot_33] },
4355
4366
  $$scope: { ctx }
@@ -4364,11 +4375,10 @@ function create_default_slot_23(ctx) {
4364
4375
  current = true;
4365
4376
  },
4366
4377
  p(ctx2, dirty) {
4367
- var _a2;
4368
4378
  const icon_changes = {};
4369
- if (dirty & 34)
4370
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.minus[ctx2[5]];
4371
- if (dirty & 131073) {
4379
+ if (dirty & 18)
4380
+ icon_changes.src = ctx2[1]?.minus[ctx2[4]];
4381
+ if (dirty & 262145) {
4372
4382
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4373
4383
  }
4374
4384
  icon.$set(icon_changes);
@@ -4422,12 +4432,11 @@ function create_default_slot_13(ctx) {
4422
4432
  };
4423
4433
  }
4424
4434
  function create_default_slot3(ctx) {
4425
- var _a;
4426
4435
  let icon;
4427
4436
  let current;
4428
4437
  icon = new Icon_default({
4429
4438
  props: {
4430
- src: (_a = ctx[1]) == null ? void 0 : _a.reset[ctx[5]],
4439
+ src: ctx[1]?.reset[ctx[4]],
4431
4440
  alt: "[reset]",
4432
4441
  $$slots: { default: [create_default_slot_13] },
4433
4442
  $$scope: { ctx }
@@ -4442,11 +4451,10 @@ function create_default_slot3(ctx) {
4442
4451
  current = true;
4443
4452
  },
4444
4453
  p(ctx2, dirty) {
4445
- var _a2;
4446
4454
  const icon_changes = {};
4447
- if (dirty & 34)
4448
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.reset[ctx2[5]];
4449
- if (dirty & 131073) {
4455
+ if (dirty & 18)
4456
+ icon_changes.src = ctx2[1]?.reset[ctx2[4]];
4457
+ if (dirty & 262145) {
4450
4458
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4451
4459
  }
4452
4460
  icon.$set(icon_changes);
@@ -4491,7 +4499,7 @@ function create_fragment48(ctx) {
4491
4499
  });
4492
4500
  button0.$on("click", ctx[11]);
4493
4501
  function select_block_type(ctx2, dirty) {
4494
- if (ctx2[4] == null)
4502
+ if (ctx2[3] == null)
4495
4503
  return create_if_block4;
4496
4504
  return create_else_block4;
4497
4505
  }
@@ -4514,7 +4522,7 @@ function create_fragment48(ctx) {
4514
4522
  class: "reset",
4515
4523
  name: name3,
4516
4524
  theme: ctx[0],
4517
- disabled: ctx[3],
4525
+ disabled: ctx[2],
4518
4526
  content: ctx[9].reset,
4519
4527
  $$slots: { default: [create_default_slot3] },
4520
4528
  $$scope: { ctx }
@@ -4555,7 +4563,7 @@ function create_fragment48(ctx) {
4555
4563
  button0_changes.disabled = ctx2[7];
4556
4564
  if (dirty & 512)
4557
4565
  button0_changes.content = ctx2[9].plus;
4558
- if (dirty & 131107) {
4566
+ if (dirty & 262163) {
4559
4567
  button0_changes.$$scope = { dirty, ctx: ctx2 };
4560
4568
  }
4561
4569
  button0.$set(button0_changes);
@@ -4579,18 +4587,18 @@ function create_fragment48(ctx) {
4579
4587
  button1_changes.disabled = ctx2[6];
4580
4588
  if (dirty & 512)
4581
4589
  button1_changes.content = ctx2[9].minus;
4582
- if (dirty & 131107) {
4590
+ if (dirty & 262163) {
4583
4591
  button1_changes.$$scope = { dirty, ctx: ctx2 };
4584
4592
  }
4585
4593
  button1.$set(button1_changes);
4586
4594
  const button2_changes = {};
4587
4595
  if (dirty & 1)
4588
4596
  button2_changes.theme = ctx2[0];
4589
- if (dirty & 8)
4590
- button2_changes.disabled = ctx2[3];
4597
+ if (dirty & 4)
4598
+ button2_changes.disabled = ctx2[2];
4591
4599
  if (dirty & 512)
4592
4600
  button2_changes.content = ctx2[9].reset;
4593
- if (dirty & 131107) {
4601
+ if (dirty & 262163) {
4594
4602
  button2_changes.$$scope = { dirty, ctx: ctx2 };
4595
4603
  }
4596
4604
  button2.$set(button2_changes);
@@ -4672,8 +4680,9 @@ function instance48($$self, $$props, $$invalidate) {
4672
4680
  let scale;
4673
4681
  let plus_disabled;
4674
4682
  let minus_disabled;
4675
- let $camera, $$unsubscribe_camera = noop, $$subscribe_camera = () => ($$unsubscribe_camera(), $$unsubscribe_camera = subscribe(camera, ($$value) => $$invalidate(4, $camera = $$value)), camera);
4676
- let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(16, $writable = $$value)), writable2);
4683
+ let display_scale;
4684
+ let $camera, $$unsubscribe_camera = noop, $$subscribe_camera = () => ($$unsubscribe_camera(), $$unsubscribe_camera = subscribe(camera, ($$value) => $$invalidate(3, $camera = $$value)), camera);
4685
+ let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(17, $writable = $$value)), writable2);
4677
4686
  $$self.$$.on_destroy.push(() => $$unsubscribe_camera());
4678
4687
  $$self.$$.on_destroy.push(() => $$unsubscribe_writable());
4679
4688
  let { app = null } = $$props;
@@ -4682,21 +4691,21 @@ function instance48($$self, $$props, $$invalidate) {
4682
4691
  let { icons = void 0 } = $$props;
4683
4692
  let type;
4684
4693
  function plus() {
4685
- app == null ? void 0 : app.moveCamera({
4694
+ app?.moveCamera({
4686
4695
  scale: next_scale(scale, 1),
4687
4696
  centerX: 0,
4688
4697
  centerY: 0
4689
4698
  });
4690
4699
  }
4691
4700
  function minus() {
4692
- app == null ? void 0 : app.moveCamera({
4701
+ app?.moveCamera({
4693
4702
  scale: next_scale(scale, -1),
4694
4703
  centerX: 0,
4695
4704
  centerY: 0
4696
4705
  });
4697
4706
  }
4698
4707
  function reset() {
4699
- app == null ? void 0 : app.moveCamera({ scale: 1, centerX: 0, centerY: 0 });
4708
+ app?.moveCamera({ scale: 1, centerX: 0, centerY: 0 });
4700
4709
  }
4701
4710
  $$self.$$set = ($$props2) => {
4702
4711
  if ("app" in $$props2)
@@ -4709,39 +4718,41 @@ function instance48($$self, $$props, $$invalidate) {
4709
4718
  $$invalidate(1, icons = $$props2.icons);
4710
4719
  };
4711
4720
  $$self.$$.update = () => {
4712
- var _a;
4713
4721
  if ($$self.$$.dirty & 16384) {
4714
- $$subscribe_writable($$invalidate(10, writable2 = app == null ? void 0 : app.writable));
4722
+ $$subscribe_writable($$invalidate(10, writable2 = app?.writable));
4715
4723
  }
4716
- if ($$self.$$.dirty & 65536) {
4717
- $$invalidate(3, disabled = !$writable);
4724
+ if ($$self.$$.dirty & 131072) {
4725
+ $$invalidate(2, disabled = !$writable);
4718
4726
  }
4719
4727
  if ($$self.$$.dirty & 32768) {
4720
4728
  $$invalidate(9, t = i18n3[language]);
4721
4729
  }
4722
- if ($$self.$$.dirty & 8) {
4723
- $$invalidate(5, type = disabled ? "disable" : "normal");
4730
+ if ($$self.$$.dirty & 4) {
4731
+ $$invalidate(4, type = disabled ? "disable" : "normal");
4724
4732
  }
4725
4733
  if ($$self.$$.dirty & 16384) {
4726
- $$subscribe_camera($$invalidate(8, camera = app == null ? void 0 : app.camera));
4734
+ $$subscribe_camera($$invalidate(8, camera = app?.baseCamera));
4727
4735
  }
4728
- if ($$self.$$.dirty & 16) {
4729
- $$invalidate(2, scale = (_a = $camera == null ? void 0 : $camera.scale) != null ? _a : 1);
4736
+ if ($$self.$$.dirty & 8) {
4737
+ $$invalidate(16, scale = $camera?.scale ?? 1);
4730
4738
  }
4731
- if ($$self.$$.dirty & 12) {
4732
- $$invalidate(7, plus_disabled = disabled || next_scale(scale, 1) === scale);
4739
+ if ($$self.$$.dirty & 65540) {
4740
+ $$invalidate(7, plus_disabled = disabled || next_scale(scale, 1) <= scale);
4733
4741
  }
4734
- if ($$self.$$.dirty & 12) {
4735
- $$invalidate(6, minus_disabled = disabled || next_scale(scale, -1) === scale);
4742
+ if ($$self.$$.dirty & 65540) {
4743
+ $$invalidate(6, minus_disabled = disabled || next_scale(scale, -1) >= scale);
4744
+ }
4745
+ if ($$self.$$.dirty & 65536) {
4746
+ $$invalidate(5, display_scale = clamp(Math.round(scale * 100), 30, 300));
4736
4747
  }
4737
4748
  };
4738
4749
  return [
4739
4750
  theme,
4740
4751
  icons,
4741
- scale,
4742
4752
  disabled,
4743
4753
  $camera,
4744
4754
  type,
4755
+ display_scale,
4745
4756
  minus_disabled,
4746
4757
  plus_disabled,
4747
4758
  camera,
@@ -4752,6 +4763,7 @@ function instance48($$self, $$props, $$invalidate) {
4752
4763
  reset,
4753
4764
  app,
4754
4765
  language,
4766
+ scale,
4755
4767
  $writable
4756
4768
  ];
4757
4769
  }
@@ -4891,21 +4903,12 @@ var scrollTop = function(node, value) {
4891
4903
  };
4892
4904
  };
4893
4905
 
4894
- // src/behaviors/icons/visual-studio-code.svg
4895
- var visual_studio_code_default = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMS4wMWVtIiBoZWlnaHQ9IjFlbSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDI1NiAyNTQiIHN0eWxlPSItbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0MzkiIHgxPSI1MCUiIHgyPSI1MCUiIHkxPSIwJSIgeTI9IjEwMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNGRkYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNGRkYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggaWQ9Ikljb25pZnlJZC0xN2Y4NzIxNTViZS1jYzc2NmUtNTQ0MCIgZD0iTTE4MC44MjggMjUyLjYwNWExNS44NzIgMTUuODcyIDAgMCAwIDEyLjY1LS40ODZsNTIuNTAxLTI1LjI2MmExNS45NCAxNS45NCAwIDAgMCA5LjAyNS0xNC4zNjRWNDEuMTk3YTE1LjkzOSAxNS45MzkgMCAwIDAtOS4wMjUtMTQuMzYzbC01Mi41LTI1LjI2M2ExNS44NzcgMTUuODc3IDAgMCAwLTE4LjExNSAzLjA4NEw3NC44NTcgOTYuMzVsLTQzLjc4LTMzLjIzMmExMC42MTQgMTAuNjE0IDAgMCAwLTEzLjU2LjYwM0wzLjQ3NiA3Ni40OTRjLTQuNjMgNC4yMTEtNC42MzUgMTEuNDk1LS4wMTIgMTUuNzEzbDM3Ljk2NyAzNC42MzhsLTM3Ljk2NyAzNC42MzdjLTQuNjIzIDQuMjE5LTQuNjE4IDExLjUwMi4wMTIgMTUuNzE0bDE0LjA0MSAxMi43NzJhMTAuNjE0IDEwLjYxNCAwIDAgMCAxMy41Ni42MDRsNDMuNzgtMzMuMjMzbDEwMC41MDcgOTEuNjk1YTE1Ljg1MyAxNS44NTMgMCAwIDAgNS40NjQgMy41NzFabTEwLjQ2NC0xODMuNjQ5bC03Ni4yNjIgNTcuODg5bDc2LjI2MiA1Ny44ODhWNjguOTU2WiIvPjwvZGVmcz48bWFzayBpZD0iSWNvbmlmeUlkLTE3Zjg3MjE1NWJlLWNjNzY2ZS01NDQxIiBmaWxsPSIjZmZmIj48dXNlIGhyZWY9IiNJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0NDAiLz48L21hc2s+PHBhdGggZmlsbD0iIzAwNjVBOSIgZD0iTTI0Ni4xMzUgMjYuODczTDE5My41OTMgMS41NzVhMTUuODg1IDE1Ljg4NSAwIDAgMC0xOC4xMjMgMy4wOEwzLjQ2NiAxNjEuNDgyYy00LjYyNiA0LjIxOS00LjYyIDExLjUwMi4wMTIgMTUuNzE0bDE0LjA1IDEyLjc3MmExMC42MjUgMTAuNjI1IDAgMCAwIDEzLjU2OS42MDRMMjM4LjIyOSAzMy40MzZjNi45NDktNS4yNzEgMTYuOTMtLjMxNSAxNi45MyA4LjQwN3YtLjYxYTE1LjkzOCAxNS45MzggMCAwIDAtOS4wMjQtMTQuMzZaIiBtYXNrPSJ1cmwoI0ljb25pZnlJZC0xN2Y4NzIxNTViZS1jYzc2NmUtNTQ0MSkiLz48cGF0aCBmaWxsPSIjMDA3QUNDIiBkPSJtMjQ2LjEzNSAyMjYuODE2bC01Mi41NDIgMjUuMjk4YTE1Ljg4NyAxNS44ODcgMCAwIDEtMTguMTIzLTMuMDhMMy40NjYgOTIuMjA3Yy00LjYyNi00LjIxOC00LjYyLTExLjUwMi4wMTItMTUuNzEzbDE0LjA1LTEyLjc3M2ExMC42MjUgMTAuNjI1IDAgMCAxIDEzLjU2OS0uNjAzbDIwNy4xMzIgMTU3LjEzNWM2Ljk0OSA1LjI3MSAxNi45My4zMTUgMTYuOTMtOC40MDh2LjYxMWExNS45MzkgMTUuOTM5IDAgMCAxLTkuMDI0IDE0LjM2WiIgbWFzaz0idXJsKCNJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0NDEpIi8+PHBhdGggZmlsbD0iIzFGOUNGMCIgZD0iTTE5My40MjggMjUyLjEzNGExNS44OTIgMTUuODkyIDAgMCAxLTE4LjEyNS0zLjA4M2M1Ljg4MSA1Ljg4IDE1LjkzOCAxLjcxNSAxNS45MzgtNi42MDNWMTEuMjczYzAtOC4zMTgtMTAuMDU3LTEyLjQ4My0xNS45MzgtNi42MDJhMTUuODkyIDE1Ljg5MiAwIDAgMSAxOC4xMjUtMy4wODRsNTIuNTMzIDI1LjI2M2ExNS45MzcgMTUuOTM3IDAgMCAxIDkuMDMgMTQuMzYzVjIxMi41MWMwIDYuMTI1LTMuNTEgMTEuNzA5LTkuMDMgMTQuMzYzbC01Mi41MzMgMjUuMjYyWiIgbWFzaz0idXJsKCNJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0NDEpIi8+PHBhdGggZmlsbD0idXJsKCNJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0MzkpIiBmaWxsLW9wYWNpdHk9Ii4yNSIgZD0iTTE4MC44MjggMjUyLjYwNWExNS44NzQgMTUuODc0IDAgMCAwIDEyLjY1LS40ODZsNTIuNS0yNS4yNjNhMTUuOTM4IDE1LjkzOCAwIDAgMCA5LjAyNi0xNC4zNjNWNDEuMTk3YTE1LjkzOSAxNS45MzkgMCAwIDAtOS4wMjUtMTQuMzYzTDE5My40NzcgMS41N2ExNS44NzcgMTUuODc3IDAgMCAwLTE4LjExNCAzLjA4NEw3NC44NTcgOTYuMzVsLTQzLjc4LTMzLjIzMmExMC42MTQgMTAuNjE0IDAgMCAwLTEzLjU2LjYwM0wzLjQ3NiA3Ni40OTRjLTQuNjMgNC4yMTEtNC42MzUgMTEuNDk1LS4wMTIgMTUuNzEzbDM3Ljk2NyAzNC42MzhsLTM3Ljk2NyAzNC42MzdjLTQuNjIzIDQuMjE5LTQuNjE4IDExLjUwMi4wMTIgMTUuNzE0bDE0LjA0MSAxMi43NzJhMTAuNjE0IDEwLjYxNCAwIDAgMCAxMy41Ni42MDRsNDMuNzgtMzMuMjMzbDEwMC41MDYgOTEuNjk1YTE1Ljg1NyAxNS44NTcgMCAwIDAgNS40NjUgMy41NzFabTEwLjQ2NC0xODMuNjVsLTc2LjI2MiA1Ny44OWw3Ni4yNjIgNTcuODg4VjY4Ljk1NloiIG1hc2s9InVybCgjSWNvbmlmeUlkLTE3Zjg3MjE1NWJlLWNjNzY2ZS01NDQxKSIvPjwvc3ZnPg==";
4896
-
4897
- // src/behaviors/icons/geogebra.svg
4898
- var geogebra_default = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1hcmN0aWNvbnMiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiM2NTU3ZDIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNMjQgM2E0Ljc3IDQuNzcgMCAxIDAgNC43NyA0Ljc3QTQuNzggNC43OCAwIDAgMCAyNCAzWk03LjY5IDE0Ljg2YTQuNzcgNC43NyAwIDEgMCA0Ljc2IDQuNzdhNC43NiA0Ljc2IDAgMCAwLTQuNzYtNC43N1ptMzIuNjQgMGE0Ljc3IDQuNzcgMCAxIDAgNC43NyA0Ljc3YTQuNzcgNC43NyAwIDAgMC00Ljc3LTQuNzdaTTEzLjkyIDM0LjA1YTQuNzcgNC43NyAwIDEgMCA0Ljc3IDQuNzdhNC43NiA0Ljc2IDAgMCAwLTQuNzctNC43N1ptMjAuMTggMGE0Ljc3IDQuNzcgMCAxIDAgNC43NiA0Ljc3YTQuNzYgNC43NiAwIDAgMC00Ljc2LTQuNzdaIj48L3BhdGg+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNjU1N2QyIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTE5LjI3IDguMzVhMTcuMjQgMTcuMjQgMCAwIDAtOS43MyA2Ljg3bTI4LjUxLjIyYTE3LjI4IDE3LjI4IDAgMCAwLTkuMzQtNi45NG04LjcgMjYuODlBMTcuMDkgMTcuMDkgMCAwIDAgNDAuOTMgMjV2LS42MU0xOCA0MS4yMmExNy4yMyAxNy4yMyAwIDAgMCA1LjY4IDFhMTcgMTcgMCAwIDAgNi4yLTEuMjJNNi41MyAyNC4yNXYuNzJhMTcuMTYgMTcuMTYgMCAwIDAgMy43NyAxMC43NiI+PC9wYXRoPjwvc3ZnPg==";
4899
-
4900
- // src/behaviors/icons/countdown.svg
4901
- var countdown_default = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1yYWRpeC1pY29ucyIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IiB2aWV3Qm94PSIwIDAgMTUgMTUiPjxwYXRoIGZpbGw9ImdyZXkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEzLjE1IDcuNWMwLTIuODM1LTIuMjEtNS42NS01LjY1LTUuNjVjLTIuNzc4IDAtNC4xNTEgMi4wNTYtNC43MzcgMy4xNUg0LjVhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAxIDEgMHYxLjgxM0MyLjcwNSAzLjA3MSA0LjMzNC44NSA3LjUuODVjNC4wNjMgMCA2LjY1IDMuMzM1IDYuNjUgNi42NWMwIDMuMzE1LTIuNTg3IDYuNjUtNi42NSA2LjY1Yy0xLjk0NCAwLTMuNTYyLS43Ny00LjcxNS0xLjk0MmE2Ljc3MiA2Ljc3MiAwIDAgMS0xLjQyNy0yLjE2N2EuNS41IDAgMSAxIC45MjUtLjM4Yy4yOC42ODEuNjkyIDEuMzE0IDEuMjE2IDEuODQ2Yy45NzIuOTkgMi4zMzYgMS42NDMgNC4wMDEgMS42NDNjMy40NCAwIDUuNjUtMi44MTUgNS42NS01LjY1Wk03IDEwVjVoMXY1SDdaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiPjwvcGF0aD48L3N2Zz4=";
4902
-
4903
4906
  // src/behaviors/apps.ts
4904
4907
  var AppsInToolbar = class {
4905
4908
  constructor(_data) {
4906
4909
  this._data = _data;
4907
- this._listeners = [];
4908
4910
  }
4911
+ _listeners = [];
4909
4912
  get data() {
4910
4913
  return this._data;
4911
4914
  }
@@ -4936,41 +4939,7 @@ var AppsInToolbar = class {
4936
4939
  this._listeners.forEach((fn) => fn(this._data));
4937
4940
  }
4938
4941
  };
4939
- var apps = new AppsInToolbar([
4940
- {
4941
- kind: "Monaco",
4942
- icon: visual_studio_code_default,
4943
- label: "Code Editor",
4944
- onClick(app) {
4945
- app.manager.addApp({
4946
- kind: "Monaco",
4947
- options: { title: "Code Editor" }
4948
- });
4949
- }
4950
- },
4951
- {
4952
- kind: "GeoGebra",
4953
- icon: geogebra_default,
4954
- label: "GeoGebra",
4955
- onClick(app) {
4956
- app.manager.addApp({
4957
- kind: "GeoGebra",
4958
- options: { title: "GeoGebra" }
4959
- });
4960
- }
4961
- },
4962
- {
4963
- kind: "Countdown",
4964
- icon: countdown_default,
4965
- label: "Countdown",
4966
- onClick(app) {
4967
- app.manager.addApp({
4968
- kind: "Countdown",
4969
- options: { title: "Countdown" }
4970
- });
4971
- }
4972
- }
4973
- ]);
4942
+ var apps = new AppsInToolbar([]);
4974
4943
  function tooltip(text4, hotkey) {
4975
4944
  if (!hotkey || typeof hotkey !== "string")
4976
4945
  return text4;
@@ -5213,7 +5182,7 @@ function instance50($$self, $$props, $$invalidate) {
5213
5182
  let { theme = "light" } = $$props;
5214
5183
  let { disabled = false } = $$props;
5215
5184
  function set_stroke_width({ detail: value2 }) {
5216
- app == null ? void 0 : app.setStrokeWidth(value2);
5185
+ app?.setStrokeWidth(value2);
5217
5186
  }
5218
5187
  $$self.$$set = ($$props2) => {
5219
5188
  if ("app" in $$props2)
@@ -5224,12 +5193,11 @@ function instance50($$self, $$props, $$invalidate) {
5224
5193
  $$invalidate(5, disabled = $$props2.disabled);
5225
5194
  };
5226
5195
  $$self.$$.update = () => {
5227
- var _a;
5228
5196
  if ($$self.$$.dirty & 8) {
5229
- $$subscribe_memberState($$invalidate(1, memberState = app == null ? void 0 : app.memberState));
5197
+ $$subscribe_memberState($$invalidate(1, memberState = app?.memberState));
5230
5198
  }
5231
5199
  if ($$self.$$.dirty & 128) {
5232
- $$invalidate(6, value = (_a = $memberState == null ? void 0 : $memberState.strokeWidth) != null ? _a : 1);
5200
+ $$invalidate(6, value = $memberState?.strokeWidth ?? 1);
5233
5201
  }
5234
5202
  if ($$self.$$.dirty & 112) {
5235
5203
  $$invalidate(0, props = { value, theme, disabled });
@@ -5385,10 +5353,10 @@ function instance51($$self, $$props, $$invalidate) {
5385
5353
  };
5386
5354
  $$self.$$.update = () => {
5387
5355
  if ($$self.$$.dirty & 32) {
5388
- $$subscribe_memberState($$invalidate(3, memberState = app == null ? void 0 : app.memberState));
5356
+ $$subscribe_memberState($$invalidate(3, memberState = app?.memberState));
5389
5357
  }
5390
5358
  if ($$self.$$.dirty & 64) {
5391
- $$invalidate(2, strokeColor = $memberState == null ? void 0 : $memberState.strokeColor);
5359
+ $$invalidate(2, strokeColor = $memberState?.strokeColor);
5392
5360
  }
5393
5361
  };
5394
5362
  return [theme, disabled, strokeColor, memberState, set_stroke_color, app, $memberState];
@@ -5532,10 +5500,10 @@ function instance52($$self, $$props, $$invalidate) {
5532
5500
  };
5533
5501
  $$self.$$.update = () => {
5534
5502
  if ($$self.$$.dirty & 32) {
5535
- $$subscribe_memberState($$invalidate(3, memberState = app == null ? void 0 : app.memberState));
5503
+ $$subscribe_memberState($$invalidate(3, memberState = app?.memberState));
5536
5504
  }
5537
5505
  if ($$self.$$.dirty & 64) {
5538
- $$invalidate(2, textColor = $memberState == null ? void 0 : $memberState.textColor);
5506
+ $$invalidate(2, textColor = $memberState?.textColor);
5539
5507
  }
5540
5508
  };
5541
5509
  return [theme, disabled, textColor, memberState, set_stroke_color, app, $memberState];
@@ -5928,23 +5896,23 @@ function instance53($$self, $$props, $$invalidate) {
5928
5896
  $$invalidate(6, t = i18n5[language]);
5929
5897
  }
5930
5898
  if ($$self.$$.dirty & 256) {
5931
- $$subscribe_memberState($$invalidate(5, memberState = app == null ? void 0 : app.memberState));
5899
+ $$subscribe_memberState($$invalidate(5, memberState = app?.memberState));
5932
5900
  }
5933
5901
  if ($$self.$$.dirty & 2048) {
5934
- $$invalidate(4, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
5902
+ $$invalidate(4, appliance = $memberState?.currentApplianceName);
5935
5903
  }
5936
5904
  if ($$self.$$.dirty & 2048) {
5937
- $$invalidate(3, shape = $memberState == null ? void 0 : $memberState.shapeType);
5905
+ $$invalidate(3, shape = $memberState?.shapeType);
5938
5906
  }
5939
5907
  if ($$self.$$.dirty & 256) {
5940
- $$invalidate(10, hotkeys = app == null ? void 0 : app.hotKeys);
5908
+ $$invalidate(10, hotkeys = app?.hotKeys);
5941
5909
  }
5942
5910
  if ($$self.$$.dirty & 1024) {
5943
5911
  $$invalidate(2, c = {
5944
- rectangle: hotkeys == null ? void 0 : hotkeys.changeToRectangle,
5945
- ellipse: hotkeys == null ? void 0 : hotkeys.changeToEllipse,
5946
- straight: hotkeys == null ? void 0 : hotkeys.changeToStraight,
5947
- arrow: hotkeys == null ? void 0 : hotkeys.changeToArrow
5912
+ rectangle: hotkeys?.changeToRectangle,
5913
+ ellipse: hotkeys?.changeToEllipse,
5914
+ straight: hotkeys?.changeToStraight,
5915
+ arrow: hotkeys?.changeToArrow
5948
5916
  });
5949
5917
  }
5950
5918
  };
@@ -7873,29 +7841,29 @@ function instance54($$self, $$props, $$invalidate) {
7873
7841
  set_store_value(top, $top = clamp($top + 32 + 4, 0, max_scroll), $top);
7874
7842
  }
7875
7843
  function clicker() {
7876
- app == null ? void 0 : app.setAppliance("clicker");
7844
+ app?.setAppliance("clicker");
7877
7845
  }
7878
7846
  function selector() {
7879
- app == null ? void 0 : app.setAppliance("selector");
7847
+ app?.setAppliance("selector");
7880
7848
  }
7881
7849
  function pencil() {
7882
- app == null ? void 0 : app.setAppliance("pencil");
7850
+ app?.setAppliance("pencil");
7883
7851
  }
7884
7852
  function text4() {
7885
- app == null ? void 0 : app.setAppliance("text");
7853
+ app?.setAppliance("text");
7886
7854
  }
7887
7855
  function select_last_shape() {
7888
7856
  if (applianceShapes.includes(last_shape)) {
7889
- app == null ? void 0 : app.setAppliance(last_shape);
7857
+ app?.setAppliance(last_shape);
7890
7858
  } else {
7891
- app == null ? void 0 : app.setAppliance("shape", last_shape);
7859
+ app?.setAppliance("shape", last_shape);
7892
7860
  }
7893
7861
  }
7894
7862
  function eraser() {
7895
- app == null ? void 0 : app.setAppliance("eraser");
7863
+ app?.setAppliance("eraser");
7896
7864
  }
7897
7865
  function clear() {
7898
- app == null ? void 0 : app.cleanCurrentScene();
7866
+ app?.cleanCurrentScene();
7899
7867
  }
7900
7868
  function div2_binding($$value) {
7901
7869
  binding_callbacks[$$value ? "unshift" : "push"](() => {
@@ -7952,28 +7920,28 @@ function instance54($$self, $$props, $$invalidate) {
7952
7920
  $$invalidate(9, t = i18n4[language]);
7953
7921
  }
7954
7922
  if ($$self.$$.dirty[0] & 1) {
7955
- $$invalidate(32, hotkeys = app == null ? void 0 : app.hotKeys);
7923
+ $$invalidate(32, hotkeys = app?.hotKeys);
7956
7924
  }
7957
7925
  if ($$self.$$.dirty[0] & 512 | $$self.$$.dirty[1] & 2) {
7958
7926
  $$invalidate(18, c = {
7959
- clicker: tooltip(t.clicker, hotkeys == null ? void 0 : hotkeys.changeToClick),
7960
- selector: tooltip(t.selector, hotkeys == null ? void 0 : hotkeys.changeToSelector),
7961
- pencil: tooltip(t.pencil, hotkeys == null ? void 0 : hotkeys.changeToPencil),
7962
- eraser: tooltip(t.eraser, hotkeys == null ? void 0 : hotkeys.changeToEraser),
7963
- text: tooltip(t.text, hotkeys == null ? void 0 : hotkeys.changeToText)
7927
+ clicker: tooltip(t.clicker, hotkeys?.changeToClick),
7928
+ selector: tooltip(t.selector, hotkeys?.changeToSelector),
7929
+ pencil: tooltip(t.pencil, hotkeys?.changeToPencil),
7930
+ eraser: tooltip(t.eraser, hotkeys?.changeToEraser),
7931
+ text: tooltip(t.text, hotkeys?.changeToText)
7964
7932
  });
7965
7933
  }
7966
7934
  if ($$self.$$.dirty[0] & 1) {
7967
- $$subscribe_memberState($$invalidate(17, memberState = app == null ? void 0 : app.memberState));
7935
+ $$subscribe_memberState($$invalidate(17, memberState = app?.memberState));
7968
7936
  }
7969
7937
  if ($$self.$$.dirty[1] & 8) {
7970
- $$invalidate(8, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
7938
+ $$invalidate(8, appliance = $memberState?.currentApplianceName);
7971
7939
  }
7972
7940
  if ($$self.$$.dirty[1] & 8) {
7973
- $$invalidate(7, shape = $memberState == null ? void 0 : $memberState.shapeType);
7941
+ $$invalidate(7, shape = $memberState?.shapeType);
7974
7942
  }
7975
7943
  if ($$self.$$.dirty[0] & 1) {
7976
- $$subscribe_status($$invalidate(16, status = app == null ? void 0 : app.appsStatus));
7944
+ $$subscribe_status($$invalidate(16, status = app?.appsStatus));
7977
7945
  }
7978
7946
  if ($$self.$$.dirty[0] & 384) {
7979
7947
  if (applianceShapes.includes(appliance)) {
@@ -8031,16 +7999,25 @@ function instance54($$self, $$props, $$invalidate) {
8031
7999
  var Contents = class extends SvelteComponent {
8032
8000
  constructor(options) {
8033
8001
  super();
8034
- init(this, options, instance54, create_fragment54, safe_not_equal, {
8035
- app: 0,
8036
- theme: 1,
8037
- language: 2,
8038
- disabled: 3,
8039
- scroll_height: 4,
8040
- computed_height: 31,
8041
- scrollable: 5,
8042
- hide_apps: 6
8043
- }, null, [-1, -1]);
8002
+ init(
8003
+ this,
8004
+ options,
8005
+ instance54,
8006
+ create_fragment54,
8007
+ safe_not_equal,
8008
+ {
8009
+ app: 0,
8010
+ theme: 1,
8011
+ language: 2,
8012
+ disabled: 3,
8013
+ scroll_height: 4,
8014
+ computed_height: 31,
8015
+ scrollable: 5,
8016
+ hide_apps: 6
8017
+ },
8018
+ null,
8019
+ [-1, -1]
8020
+ );
8044
8021
  }
8045
8022
  };
8046
8023
  var Contents_default = Contents;
@@ -8152,7 +8129,12 @@ function create_fragment55(ctx) {
8152
8129
  path1 = svg_element("path");
8153
8130
  if_block.c();
8154
8131
  attr(div0, "class", div0_class_value = name6 + "-contents " + ctx[1]);
8155
- set_style(div0, "height", ctx[5] ? ctx[6] + "px" : "auto", false);
8132
+ set_style(
8133
+ div0,
8134
+ "height",
8135
+ ctx[5] ? ctx[6] + "px" : "auto",
8136
+ false
8137
+ );
8156
8138
  attr(input, "type", "checkbox");
8157
8139
  attr(path0, "fill", "#fff");
8158
8140
  attr(path0, "stroke", "none");
@@ -8211,7 +8193,12 @@ function create_fragment55(ctx) {
8211
8193
  attr(div0, "class", div0_class_value);
8212
8194
  }
8213
8195
  if (dirty & 96) {
8214
- set_style(div0, "height", ctx2[5] ? ctx2[6] + "px" : "auto", false);
8196
+ set_style(
8197
+ div0,
8198
+ "height",
8199
+ ctx2[5] ? ctx2[6] + "px" : "auto",
8200
+ false
8201
+ );
8215
8202
  }
8216
8203
  if (dirty & 8) {
8217
8204
  input.checked = ctx2[3];
@@ -8292,9 +8279,8 @@ function instance55($$self, $$props, $$invalidate) {
8292
8279
  $$invalidate(11, config = $$props2.config);
8293
8280
  };
8294
8281
  $$self.$$.update = () => {
8295
- var _a;
8296
8282
  if ($$self.$$.dirty & 1) {
8297
- $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
8283
+ $$subscribe_writable($$invalidate(8, writable2 = app?.writable));
8298
8284
  }
8299
8285
  if ($$self.$$.dirty & 16384) {
8300
8286
  $$invalidate(7, disabled = !$writable);
@@ -8306,7 +8292,7 @@ function instance55($$self, $$props, $$invalidate) {
8306
8292
  $$invalidate(5, scrollable = $scroll_height + extra_height > $container_height);
8307
8293
  }
8308
8294
  if ($$self.$$.dirty & 2048) {
8309
- $$invalidate(4, hide_apps = ((_a = config.apps) == null ? void 0 : _a.enable) === false);
8295
+ $$invalidate(4, hide_apps = config.apps?.enable === false);
8310
8296
  }
8311
8297
  };
8312
8298
  return [
@@ -8346,12 +8332,11 @@ function get_each_context5(ctx, list, i) {
8346
8332
  return child_ctx;
8347
8333
  }
8348
8334
  function create_else_block_13(ctx) {
8349
- var _a;
8350
8335
  let icon;
8351
8336
  let current;
8352
8337
  icon = new Icon_default({
8353
8338
  props: {
8354
- src: (_a = ctx[1]) == null ? void 0 : _a.play[ctx[5]],
8339
+ src: ctx[1]?.play[ctx[5]],
8355
8340
  alt: "[play]",
8356
8341
  $$slots: { default: [create_default_slot_54] },
8357
8342
  $$scope: { ctx }
@@ -8366,10 +8351,9 @@ function create_else_block_13(ctx) {
8366
8351
  current = true;
8367
8352
  },
8368
8353
  p(ctx2, dirty) {
8369
- var _a2;
8370
8354
  const icon_changes = {};
8371
8355
  if (dirty & 34)
8372
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.play[ctx2[5]];
8356
+ icon_changes.src = ctx2[1]?.play[ctx2[5]];
8373
8357
  if (dirty & 268435457) {
8374
8358
  icon_changes.$$scope = { dirty, ctx: ctx2 };
8375
8359
  }
@@ -8391,12 +8375,11 @@ function create_else_block_13(ctx) {
8391
8375
  };
8392
8376
  }
8393
8377
  function create_if_block_22(ctx) {
8394
- var _a;
8395
8378
  let icon;
8396
8379
  let current;
8397
8380
  icon = new Icon_default({
8398
8381
  props: {
8399
- src: (_a = ctx[1]) == null ? void 0 : _a.pause[ctx[5]],
8382
+ src: ctx[1]?.pause[ctx[5]],
8400
8383
  alt: "[pause]",
8401
8384
  $$slots: { default: [create_default_slot_44] },
8402
8385
  $$scope: { ctx }
@@ -8411,10 +8394,9 @@ function create_if_block_22(ctx) {
8411
8394
  current = true;
8412
8395
  },
8413
8396
  p(ctx2, dirty) {
8414
- var _a2;
8415
8397
  const icon_changes = {};
8416
8398
  if (dirty & 34)
8417
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.pause[ctx2[5]];
8399
+ icon_changes.src = ctx2[1]?.pause[ctx2[5]];
8418
8400
  if (dirty & 268435457) {
8419
8401
  icon_changes.$$scope = { dirty, ctx: ctx2 };
8420
8402
  }
@@ -8436,12 +8418,11 @@ function create_if_block_22(ctx) {
8436
8418
  };
8437
8419
  }
8438
8420
  function create_if_block_13(ctx) {
8439
- var _a;
8440
8421
  let icon;
8441
8422
  let current;
8442
8423
  icon = new Icon_default({
8443
8424
  props: {
8444
- src: (_a = ctx[1]) == null ? void 0 : _a.loading[ctx[5]],
8425
+ src: ctx[1]?.loading[ctx[5]],
8445
8426
  alt: "[loading]",
8446
8427
  $$slots: { default: [create_default_slot_35] },
8447
8428
  $$scope: { ctx }
@@ -8456,10 +8437,9 @@ function create_if_block_13(ctx) {
8456
8437
  current = true;
8457
8438
  },
8458
8439
  p(ctx2, dirty) {
8459
- var _a2;
8460
8440
  const icon_changes = {};
8461
8441
  if (dirty & 34)
8462
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.loading[ctx2[5]];
8442
+ icon_changes.src = ctx2[1]?.loading[ctx2[5]];
8463
8443
  if (dirty & 268435457) {
8464
8444
  icon_changes.$$scope = { dirty, ctx: ctx2 };
8465
8445
  }
@@ -9168,7 +9148,7 @@ function instance56($$self, $$props, $$invalidate) {
9168
9148
  $$invalidate(12, t = i18n6[language]);
9169
9149
  }
9170
9150
  if ($$self.$$.dirty & 524288) {
9171
- $$invalidate(21, canPlay = player == null ? void 0 : player.canplay);
9151
+ $$invalidate(21, canPlay = player?.canplay);
9172
9152
  }
9173
9153
  if ($$self.$$.dirty & 2097152) {
9174
9154
  $$invalidate(4, disabled = !canPlay);
@@ -9177,16 +9157,16 @@ function instance56($$self, $$props, $$invalidate) {
9177
9157
  $$invalidate(5, type = disabled ? "disable" : "normal");
9178
9158
  }
9179
9159
  if ($$self.$$.dirty & 524288) {
9180
- $$subscribe_duration($$invalidate(11, duration = player == null ? void 0 : player.duration));
9160
+ $$subscribe_duration($$invalidate(11, duration = player?.duration));
9181
9161
  }
9182
9162
  if ($$self.$$.dirty & 524288) {
9183
- $$subscribe_current($$invalidate(10, current = player == null ? void 0 : player.currentTime));
9163
+ $$subscribe_current($$invalidate(10, current = player?.currentTime));
9184
9164
  }
9185
9165
  if ($$self.$$.dirty & 524288) {
9186
- $$subscribe_playbackRate($$invalidate(9, playbackRate = player == null ? void 0 : player.playbackRate));
9166
+ $$subscribe_playbackRate($$invalidate(9, playbackRate = player?.playbackRate));
9187
9167
  }
9188
9168
  if ($$self.$$.dirty & 524288) {
9189
- $$subscribe_phase($$invalidate(8, phase = player == null ? void 0 : player.phase));
9169
+ $$subscribe_phase($$invalidate(8, phase = player?.phase));
9190
9170
  }
9191
9171
  if ($$self.$$.dirty & 4194304) {
9192
9172
  $$invalidate(3, loading = $phase === "waitingFirstFrame" || $phase === "buffering");
@@ -9238,29 +9218,69 @@ var PlayerControl = class extends SvelteComponent {
9238
9218
  }
9239
9219
  };
9240
9220
  var PlayerControl_default = PlayerControl;
9241
- function create_fragment57(ctx) {
9242
- let div2;
9243
- let div0;
9244
- let t;
9245
- let div1;
9221
+ function create_if_block9(ctx) {
9246
9222
  let playercontrol;
9247
9223
  let current;
9248
- let mounted;
9249
- let dispose;
9250
9224
  playercontrol = new PlayerControl_default({
9251
9225
  props: {
9252
9226
  player: ctx[0],
9253
9227
  theme: ctx[1],
9254
- language: ctx[2]
9228
+ language: ctx[2],
9229
+ icons: ctx[3].player_control?.icons
9255
9230
  }
9256
9231
  });
9232
+ return {
9233
+ c() {
9234
+ create_component(playercontrol.$$.fragment);
9235
+ },
9236
+ m(target, anchor) {
9237
+ mount_component(playercontrol, target, anchor);
9238
+ current = true;
9239
+ },
9240
+ p(ctx2, dirty) {
9241
+ const playercontrol_changes = {};
9242
+ if (dirty & 1)
9243
+ playercontrol_changes.player = ctx2[0];
9244
+ if (dirty & 2)
9245
+ playercontrol_changes.theme = ctx2[1];
9246
+ if (dirty & 4)
9247
+ playercontrol_changes.language = ctx2[2];
9248
+ if (dirty & 8)
9249
+ playercontrol_changes.icons = ctx2[3].player_control?.icons;
9250
+ playercontrol.$set(playercontrol_changes);
9251
+ },
9252
+ i(local) {
9253
+ if (current)
9254
+ return;
9255
+ transition_in(playercontrol.$$.fragment, local);
9256
+ current = true;
9257
+ },
9258
+ o(local) {
9259
+ transition_out(playercontrol.$$.fragment, local);
9260
+ current = false;
9261
+ },
9262
+ d(detaching) {
9263
+ destroy_component(playercontrol, detaching);
9264
+ }
9265
+ };
9266
+ }
9267
+ function create_fragment57(ctx) {
9268
+ let div2;
9269
+ let div0;
9270
+ let t;
9271
+ let div1;
9272
+ let current;
9273
+ let mounted;
9274
+ let dispose;
9275
+ let if_block = ctx[3].player_control?.enable !== false && create_if_block9(ctx);
9257
9276
  return {
9258
9277
  c() {
9259
9278
  div2 = element("div");
9260
9279
  div0 = element("div");
9261
9280
  t = space();
9262
9281
  div1 = element("div");
9263
- create_component(playercontrol.$$.fragment);
9282
+ if (if_block)
9283
+ if_block.c();
9264
9284
  attr(div0, "class", name8 + "-view");
9265
9285
  attr(div1, "class", name8 + "-bottom");
9266
9286
  attr(div2, "class", name8 + "-root");
@@ -9269,25 +9289,37 @@ function create_fragment57(ctx) {
9269
9289
  m(target, anchor) {
9270
9290
  insert(target, div2, anchor);
9271
9291
  append(div2, div0);
9272
- ctx[6](div0);
9292
+ ctx[8](div0);
9273
9293
  append(div2, t);
9274
9294
  append(div2, div1);
9275
- mount_component(playercontrol, div1, null);
9295
+ if (if_block)
9296
+ if_block.m(div1, null);
9276
9297
  current = true;
9277
9298
  if (!mounted) {
9278
- dispose = listen(div0, "touchstart", tippy_hide_all, { passive: true, capture: true });
9299
+ dispose = listen(div0, "touchstart", ctx[5], { passive: true, capture: true });
9279
9300
  mounted = true;
9280
9301
  }
9281
9302
  },
9282
9303
  p(ctx2, [dirty]) {
9283
- const playercontrol_changes = {};
9284
- if (dirty & 1)
9285
- playercontrol_changes.player = ctx2[0];
9286
- if (dirty & 2)
9287
- playercontrol_changes.theme = ctx2[1];
9288
- if (dirty & 4)
9289
- playercontrol_changes.language = ctx2[2];
9290
- playercontrol.$set(playercontrol_changes);
9304
+ if (ctx2[3].player_control?.enable !== false) {
9305
+ if (if_block) {
9306
+ if_block.p(ctx2, dirty);
9307
+ if (dirty & 8) {
9308
+ transition_in(if_block, 1);
9309
+ }
9310
+ } else {
9311
+ if_block = create_if_block9(ctx2);
9312
+ if_block.c();
9313
+ transition_in(if_block, 1);
9314
+ if_block.m(div1, null);
9315
+ }
9316
+ } else if (if_block) {
9317
+ group_outros();
9318
+ transition_out(if_block, 1, 1, () => {
9319
+ if_block = null;
9320
+ });
9321
+ check_outros();
9322
+ }
9291
9323
  if (dirty & 1) {
9292
9324
  toggle_class(div2, "loading", !ctx2[0]);
9293
9325
  }
@@ -9295,18 +9327,19 @@ function create_fragment57(ctx) {
9295
9327
  i(local) {
9296
9328
  if (current)
9297
9329
  return;
9298
- transition_in(playercontrol.$$.fragment, local);
9330
+ transition_in(if_block);
9299
9331
  current = true;
9300
9332
  },
9301
9333
  o(local) {
9302
- transition_out(playercontrol.$$.fragment, local);
9334
+ transition_out(if_block);
9303
9335
  current = false;
9304
9336
  },
9305
9337
  d(detaching) {
9306
9338
  if (detaching)
9307
9339
  detach(div2);
9308
- ctx[6](null);
9309
- destroy_component(playercontrol);
9340
+ ctx[8](null);
9341
+ if (if_block)
9342
+ if_block.d();
9310
9343
  mounted = false;
9311
9344
  dispose();
9312
9345
  }
@@ -9317,6 +9350,7 @@ function instance57($$self, $$props, $$invalidate) {
9317
9350
  let { player = null } = $$props;
9318
9351
  let { theme = "light" } = $$props;
9319
9352
  let { language = "en" } = $$props;
9353
+ let { config = {} } = $$props;
9320
9354
  let { containerRef = void 0 } = $$props;
9321
9355
  let container;
9322
9356
  let mounted = false;
@@ -9329,10 +9363,15 @@ function instance57($$self, $$props, $$invalidate) {
9329
9363
  };
9330
9364
  }
9331
9365
  });
9366
+ function focus_me() {
9367
+ tippy_hide_all();
9368
+ let a = document.activeElement;
9369
+ a && a.blur && a.blur();
9370
+ }
9332
9371
  function div0_binding($$value) {
9333
9372
  binding_callbacks[$$value ? "unshift" : "push"](() => {
9334
9373
  container = $$value;
9335
- $$invalidate(3, container);
9374
+ $$invalidate(4, container);
9336
9375
  });
9337
9376
  }
9338
9377
  $$self.$$set = ($$props2) => {
@@ -9342,28 +9381,40 @@ function instance57($$self, $$props, $$invalidate) {
9342
9381
  $$invalidate(1, theme = $$props2.theme);
9343
9382
  if ("language" in $$props2)
9344
9383
  $$invalidate(2, language = $$props2.language);
9384
+ if ("config" in $$props2)
9385
+ $$invalidate(3, config = $$props2.config);
9345
9386
  if ("containerRef" in $$props2)
9346
- $$invalidate(4, containerRef = $$props2.containerRef);
9387
+ $$invalidate(6, containerRef = $$props2.containerRef);
9347
9388
  };
9348
9389
  $$self.$$.update = () => {
9349
- if ($$self.$$.dirty & 9) {
9390
+ if ($$self.$$.dirty & 17) {
9350
9391
  try {
9351
9392
  if (player && container) {
9352
9393
  player.bindContainer(container);
9353
- $$invalidate(5, mounted = true);
9394
+ $$invalidate(7, mounted = true);
9354
9395
  }
9355
9396
  } catch (err) {
9356
9397
  console.error("[fastboard] An error occurred while binding container");
9357
9398
  console.error(err);
9358
9399
  }
9359
9400
  }
9360
- if ($$self.$$.dirty & 35) {
9401
+ if ($$self.$$.dirty & 131) {
9361
9402
  if (player && theme && mounted) {
9362
9403
  player.manager.setPrefersColorScheme(theme);
9363
9404
  }
9364
9405
  }
9365
9406
  };
9366
- return [player, theme, language, container, containerRef, mounted, div0_binding];
9407
+ return [
9408
+ player,
9409
+ theme,
9410
+ language,
9411
+ config,
9412
+ container,
9413
+ focus_me,
9414
+ containerRef,
9415
+ mounted,
9416
+ div0_binding
9417
+ ];
9367
9418
  }
9368
9419
  var ReplayFastboard = class extends SvelteComponent {
9369
9420
  constructor(options) {
@@ -9372,7 +9423,8 @@ var ReplayFastboard = class extends SvelteComponent {
9372
9423
  player: 0,
9373
9424
  theme: 1,
9374
9425
  language: 2,
9375
- containerRef: 4
9426
+ config: 3,
9427
+ containerRef: 6
9376
9428
  });
9377
9429
  }
9378
9430
  };
@@ -9430,7 +9482,8 @@ function create_if_block_23(ctx) {
9430
9482
  props: {
9431
9483
  app: ctx[0],
9432
9484
  theme: ctx[1],
9433
- language: ctx[2]
9485
+ language: ctx[2],
9486
+ icons: ctx[3].redo_undo?.icons
9434
9487
  }
9435
9488
  });
9436
9489
  return {
@@ -9449,6 +9502,8 @@ function create_if_block_23(ctx) {
9449
9502
  redoundo_changes.theme = ctx2[1];
9450
9503
  if (dirty & 4)
9451
9504
  redoundo_changes.language = ctx2[2];
9505
+ if (dirty & 8)
9506
+ redoundo_changes.icons = ctx2[3].redo_undo?.icons;
9452
9507
  redoundo.$set(redoundo_changes);
9453
9508
  },
9454
9509
  i(local) {
@@ -9473,7 +9528,8 @@ function create_if_block_14(ctx) {
9473
9528
  props: {
9474
9529
  app: ctx[0],
9475
9530
  theme: ctx[1],
9476
- language: ctx[2]
9531
+ language: ctx[2],
9532
+ icons: ctx[3].zoom_control?.icons
9477
9533
  }
9478
9534
  });
9479
9535
  return {
@@ -9492,6 +9548,8 @@ function create_if_block_14(ctx) {
9492
9548
  zoomcontrol_changes.theme = ctx2[1];
9493
9549
  if (dirty & 4)
9494
9550
  zoomcontrol_changes.language = ctx2[2];
9551
+ if (dirty & 8)
9552
+ zoomcontrol_changes.icons = ctx2[3].zoom_control?.icons;
9495
9553
  zoomcontrol.$set(zoomcontrol_changes);
9496
9554
  },
9497
9555
  i(local) {
@@ -9509,14 +9567,15 @@ function create_if_block_14(ctx) {
9509
9567
  }
9510
9568
  };
9511
9569
  }
9512
- function create_if_block9(ctx) {
9570
+ function create_if_block10(ctx) {
9513
9571
  let pagecontrol;
9514
9572
  let current;
9515
9573
  pagecontrol = new PageControl_default({
9516
9574
  props: {
9517
9575
  app: ctx[0],
9518
9576
  theme: ctx[1],
9519
- language: ctx[2]
9577
+ language: ctx[2],
9578
+ icons: ctx[3].page_control?.icons
9520
9579
  }
9521
9580
  });
9522
9581
  return {
@@ -9535,6 +9594,8 @@ function create_if_block9(ctx) {
9535
9594
  pagecontrol_changes.theme = ctx2[1];
9536
9595
  if (dirty & 4)
9537
9596
  pagecontrol_changes.language = ctx2[2];
9597
+ if (dirty & 8)
9598
+ pagecontrol_changes.icons = ctx2[3].page_control?.icons;
9538
9599
  pagecontrol.$set(pagecontrol_changes);
9539
9600
  },
9540
9601
  i(local) {
@@ -9553,7 +9614,6 @@ function create_if_block9(ctx) {
9553
9614
  };
9554
9615
  }
9555
9616
  function create_fragment58(ctx) {
9556
- var _a, _b, _c, _d;
9557
9617
  let div4;
9558
9618
  let div0;
9559
9619
  let t0;
@@ -9566,10 +9626,10 @@ function create_fragment58(ctx) {
9566
9626
  let current;
9567
9627
  let mounted;
9568
9628
  let dispose;
9569
- let if_block0 = ((_a = ctx[3].toolbar) == null ? void 0 : _a.enable) !== false && create_if_block_32(ctx);
9570
- let if_block1 = ((_b = ctx[3].redo_undo) == null ? void 0 : _b.enable) !== false && create_if_block_23(ctx);
9571
- let if_block2 = ((_c = ctx[3].zoom_control) == null ? void 0 : _c.enable) !== false && create_if_block_14(ctx);
9572
- let if_block3 = ((_d = ctx[3].page_control) == null ? void 0 : _d.enable) !== false && create_if_block9(ctx);
9629
+ let if_block0 = ctx[3].toolbar?.enable !== false && create_if_block_32(ctx);
9630
+ let if_block1 = ctx[3].redo_undo?.enable !== false && create_if_block_23(ctx);
9631
+ let if_block2 = ctx[3].zoom_control?.enable !== false && create_if_block_14(ctx);
9632
+ let if_block3 = ctx[3].page_control?.enable !== false && create_if_block10(ctx);
9573
9633
  return {
9574
9634
  c() {
9575
9635
  div4 = element("div");
@@ -9602,7 +9662,7 @@ function create_fragment58(ctx) {
9602
9662
  m(target, anchor) {
9603
9663
  insert(target, div4, anchor);
9604
9664
  append(div4, div0);
9605
- ctx[14](div0);
9665
+ ctx[15](div0);
9606
9666
  append(div4, t0);
9607
9667
  append(div4, div1);
9608
9668
  if (if_block0)
@@ -9620,13 +9680,12 @@ function create_fragment58(ctx) {
9620
9680
  if_block3.m(div3, null);
9621
9681
  current = true;
9622
9682
  if (!mounted) {
9623
- dispose = listen(div0, "touchstart", tippy_hide_all, { passive: true, capture: true });
9683
+ dispose = listen(div0, "touchstart", ctx[9], { passive: true, capture: true });
9624
9684
  mounted = true;
9625
9685
  }
9626
9686
  },
9627
9687
  p(ctx2, [dirty]) {
9628
- var _a2, _b2, _c2, _d2;
9629
- if (((_a2 = ctx2[3].toolbar) == null ? void 0 : _a2.enable) !== false) {
9688
+ if (ctx2[3].toolbar?.enable !== false) {
9630
9689
  if (if_block0) {
9631
9690
  if_block0.p(ctx2, dirty);
9632
9691
  if (dirty & 8) {
@@ -9648,7 +9707,7 @@ function create_fragment58(ctx) {
9648
9707
  if (dirty & 32) {
9649
9708
  toggle_class(div1, "hidden", !(ctx2[5] === "visible" || ctx2[5] === "toolbar-only"));
9650
9709
  }
9651
- if (((_b2 = ctx2[3].redo_undo) == null ? void 0 : _b2.enable) !== false) {
9710
+ if (ctx2[3].redo_undo?.enable !== false) {
9652
9711
  if (if_block1) {
9653
9712
  if_block1.p(ctx2, dirty);
9654
9713
  if (dirty & 8) {
@@ -9667,7 +9726,7 @@ function create_fragment58(ctx) {
9667
9726
  });
9668
9727
  check_outros();
9669
9728
  }
9670
- if (((_c2 = ctx2[3].zoom_control) == null ? void 0 : _c2.enable) !== false) {
9729
+ if (ctx2[3].zoom_control?.enable !== false) {
9671
9730
  if (if_block2) {
9672
9731
  if_block2.p(ctx2, dirty);
9673
9732
  if (dirty & 8) {
@@ -9689,14 +9748,14 @@ function create_fragment58(ctx) {
9689
9748
  if (dirty & 32) {
9690
9749
  toggle_class(div2, "hidden", ctx2[5] !== "visible");
9691
9750
  }
9692
- if (((_d2 = ctx2[3].page_control) == null ? void 0 : _d2.enable) !== false) {
9751
+ if (ctx2[3].page_control?.enable !== false) {
9693
9752
  if (if_block3) {
9694
9753
  if_block3.p(ctx2, dirty);
9695
9754
  if (dirty & 8) {
9696
9755
  transition_in(if_block3, 1);
9697
9756
  }
9698
9757
  } else {
9699
- if_block3 = create_if_block9(ctx2);
9758
+ if_block3 = create_if_block10(ctx2);
9700
9759
  if_block3.c();
9701
9760
  transition_in(if_block3, 1);
9702
9761
  if_block3.m(div3, null);
@@ -9734,7 +9793,7 @@ function create_fragment58(ctx) {
9734
9793
  d(detaching) {
9735
9794
  if (detaching)
9736
9795
  detach(div4);
9737
- ctx[14](null);
9796
+ ctx[15](null);
9738
9797
  if (if_block0)
9739
9798
  if_block0.d();
9740
9799
  if (if_block1)
@@ -9753,9 +9812,9 @@ function instance58($$self, $$props, $$invalidate) {
9753
9812
  let writable2;
9754
9813
  let boxState;
9755
9814
  let focusedApp;
9756
- let $focusedApp, $$unsubscribe_focusedApp = noop, $$subscribe_focusedApp = () => ($$unsubscribe_focusedApp(), $$unsubscribe_focusedApp = subscribe(focusedApp, ($$value) => $$invalidate(11, $focusedApp = $$value)), focusedApp);
9757
- let $boxState, $$unsubscribe_boxState = noop, $$subscribe_boxState = () => ($$unsubscribe_boxState(), $$unsubscribe_boxState = subscribe(boxState, ($$value) => $$invalidate(12, $boxState = $$value)), boxState);
9758
- let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(13, $writable = $$value)), writable2);
9815
+ let $focusedApp, $$unsubscribe_focusedApp = noop, $$subscribe_focusedApp = () => ($$unsubscribe_focusedApp(), $$unsubscribe_focusedApp = subscribe(focusedApp, ($$value) => $$invalidate(12, $focusedApp = $$value)), focusedApp);
9816
+ let $boxState, $$unsubscribe_boxState = noop, $$subscribe_boxState = () => ($$unsubscribe_boxState(), $$unsubscribe_boxState = subscribe(boxState, ($$value) => $$invalidate(13, $boxState = $$value)), boxState);
9817
+ let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(14, $writable = $$value)), writable2);
9759
9818
  $$self.$$.on_destroy.push(() => $$unsubscribe_focusedApp());
9760
9819
  $$self.$$.on_destroy.push(() => $$unsubscribe_boxState());
9761
9820
  $$self.$$.on_destroy.push(() => $$unsubscribe_writable());
@@ -9777,6 +9836,11 @@ function instance58($$self, $$props, $$invalidate) {
9777
9836
  };
9778
9837
  }
9779
9838
  });
9839
+ function focus_me() {
9840
+ tippy_hide_all();
9841
+ let a = document.activeElement;
9842
+ a && a.blur && a.blur();
9843
+ }
9780
9844
  function div0_binding($$value) {
9781
9845
  binding_callbacks[$$value ? "unshift" : "push"](() => {
9782
9846
  container = $$value;
@@ -9791,21 +9855,21 @@ function instance58($$self, $$props, $$invalidate) {
9791
9855
  if ("language" in $$props2)
9792
9856
  $$invalidate(2, language = $$props2.language);
9793
9857
  if ("containerRef" in $$props2)
9794
- $$invalidate(9, containerRef = $$props2.containerRef);
9858
+ $$invalidate(10, containerRef = $$props2.containerRef);
9795
9859
  if ("config" in $$props2)
9796
9860
  $$invalidate(3, config = $$props2.config);
9797
9861
  };
9798
9862
  $$self.$$.update = () => {
9799
9863
  if ($$self.$$.dirty & 1) {
9800
- $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
9864
+ $$subscribe_writable($$invalidate(8, writable2 = app?.writable));
9801
9865
  }
9802
9866
  if ($$self.$$.dirty & 1) {
9803
- $$subscribe_boxState($$invalidate(7, boxState = app == null ? void 0 : app.boxState));
9867
+ $$subscribe_boxState($$invalidate(7, boxState = app?.boxState));
9804
9868
  }
9805
9869
  if ($$self.$$.dirty & 1) {
9806
- $$subscribe_focusedApp($$invalidate(6, focusedApp = app == null ? void 0 : app.focusedApp));
9870
+ $$subscribe_focusedApp($$invalidate(6, focusedApp = app?.focusedApp));
9807
9871
  }
9808
- if ($$self.$$.dirty & 14336) {
9872
+ if ($$self.$$.dirty & 28672) {
9809
9873
  if (!$writable) {
9810
9874
  $$invalidate(5, layout = "hidden");
9811
9875
  } else if ($boxState === "maximized") {
@@ -9822,14 +9886,14 @@ function instance58($$self, $$props, $$invalidate) {
9822
9886
  try {
9823
9887
  if (app && container) {
9824
9888
  app.bindContainer(container);
9825
- $$invalidate(10, mounted = true);
9889
+ $$invalidate(11, mounted = true);
9826
9890
  }
9827
9891
  } catch (err) {
9828
9892
  console.error("[fastboard] An error occurred while binding container");
9829
9893
  console.error(err);
9830
9894
  }
9831
9895
  }
9832
- if ($$self.$$.dirty & 1027) {
9896
+ if ($$self.$$.dirty & 2051) {
9833
9897
  if (app && theme && mounted) {
9834
9898
  app.manager.setPrefersColorScheme(theme);
9835
9899
  }
@@ -9845,6 +9909,7 @@ function instance58($$self, $$props, $$invalidate) {
9845
9909
  focusedApp,
9846
9910
  boxState,
9847
9911
  writable2,
9912
+ focus_me,
9848
9913
  containerRef,
9849
9914
  mounted,
9850
9915
  $focusedApp,
@@ -9860,7 +9925,7 @@ var Fastboard = class extends SvelteComponent {
9860
9925
  app: 0,
9861
9926
  theme: 1,
9862
9927
  language: 2,
9863
- containerRef: 9,
9928
+ containerRef: 10,
9864
9929
  config: 3
9865
9930
  });
9866
9931
  }
@@ -9870,74 +9935,70 @@ var Fastboard_default = Fastboard;
9870
9935
  // src/helpers/index.ts
9871
9936
  function createUI(app, div) {
9872
9937
  let fastboard;
9873
- const ui = {
9874
- mount(div2, props) {
9875
- if (fastboard) {
9876
- fastboard.$destroy();
9877
- }
9878
- fastboard = new Fastboard_default({ target: div2, props: __spreadValues({ app }, props) });
9879
- return ui;
9880
- },
9881
- update(props) {
9882
- if (fastboard) {
9883
- fastboard.$set(props);
9884
- }
9885
- },
9886
- destroy() {
9887
- if (fastboard) {
9888
- fastboard.$destroy();
9889
- }
9890
- fastboard = void 0;
9938
+ function mount(div2, props) {
9939
+ if (fastboard) {
9940
+ fastboard.$destroy();
9891
9941
  }
9892
- };
9942
+ fastboard = new Fastboard_default({ target: div2, props: { app, ...props } });
9943
+ return ui;
9944
+ }
9945
+ function update(props) {
9946
+ if (fastboard) {
9947
+ fastboard.$set(props);
9948
+ }
9949
+ }
9950
+ function destroy() {
9951
+ if (fastboard) {
9952
+ fastboard.$destroy();
9953
+ }
9954
+ fastboard = void 0;
9955
+ }
9956
+ function setElement(div2) {
9957
+ if (div2) {
9958
+ mount(div2);
9959
+ } else {
9960
+ destroy();
9961
+ }
9962
+ }
9963
+ const ui = { mount, update, destroy, setElement };
9893
9964
  if (div) {
9894
- ui.mount(div);
9965
+ mount(div, { app });
9895
9966
  }
9896
9967
  return ui;
9897
9968
  }
9898
9969
  function createReplayUI(player, div) {
9899
9970
  let fastboard;
9900
- const ui = {
9901
- mount(div2, props) {
9902
- if (fastboard) {
9903
- fastboard.$destroy();
9904
- }
9905
- fastboard = new ReplayFastboard_default({ target: div2, props: __spreadValues({ player }, props) });
9906
- return ui;
9907
- },
9908
- update(props) {
9909
- if (fastboard) {
9910
- fastboard.$set(props);
9911
- }
9912
- },
9913
- destroy() {
9914
- if (fastboard) {
9915
- fastboard.$destroy();
9916
- }
9917
- fastboard = void 0;
9971
+ function mount(div2, props) {
9972
+ if (fastboard) {
9973
+ fastboard.$destroy();
9918
9974
  }
9919
- };
9975
+ fastboard = new ReplayFastboard_default({ target: div2, props: { player, ...props } });
9976
+ return ui;
9977
+ }
9978
+ function update(props) {
9979
+ if (fastboard) {
9980
+ fastboard.$set(props);
9981
+ }
9982
+ }
9983
+ function destroy() {
9984
+ if (fastboard) {
9985
+ fastboard.$destroy();
9986
+ }
9987
+ fastboard = void 0;
9988
+ }
9989
+ function setElement(div2) {
9990
+ if (div2) {
9991
+ mount(div2);
9992
+ } else {
9993
+ destroy();
9994
+ }
9995
+ }
9996
+ const ui = { mount, update, destroy, setElement };
9920
9997
  if (div) {
9921
- ui.mount(div);
9998
+ mount(div, { player });
9922
9999
  }
9923
10000
  return ui;
9924
10001
  }
9925
10002
 
9926
- // inline-sass-helper:inline-sass-style-helper.js
9927
- function injectStyle(text4) {
9928
- if (typeof document !== "undefined") {
9929
- var style = document.createElement("style");
9930
- var node = document.createTextNode(text4);
9931
- style.appendChild(node);
9932
- document.head.appendChild(style);
9933
- }
9934
- }
9935
-
9936
- // inline-sass-content:./src/style.scss
9937
- 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}';
9938
-
9939
- // inline-sass-stub:./src/style.scss
9940
- injectStyle(style_default);
9941
-
9942
10003
  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 };
9943
10004
  //# sourceMappingURL=index.svelte.mjs.map