@netless/fastboard-ui 0.3.6 → 1.0.0-canary.2

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[7](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", ctx[4], { 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[7](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;
@@ -9337,7 +9371,7 @@ function instance57($$self, $$props, $$invalidate) {
9337
9371
  function div0_binding($$value) {
9338
9372
  binding_callbacks[$$value ? "unshift" : "push"](() => {
9339
9373
  container = $$value;
9340
- $$invalidate(3, container);
9374
+ $$invalidate(4, container);
9341
9375
  });
9342
9376
  }
9343
9377
  $$self.$$set = ($$props2) => {
@@ -9347,22 +9381,24 @@ function instance57($$self, $$props, $$invalidate) {
9347
9381
  $$invalidate(1, theme = $$props2.theme);
9348
9382
  if ("language" in $$props2)
9349
9383
  $$invalidate(2, language = $$props2.language);
9384
+ if ("config" in $$props2)
9385
+ $$invalidate(3, config = $$props2.config);
9350
9386
  if ("containerRef" in $$props2)
9351
- $$invalidate(5, containerRef = $$props2.containerRef);
9387
+ $$invalidate(6, containerRef = $$props2.containerRef);
9352
9388
  };
9353
9389
  $$self.$$.update = () => {
9354
- if ($$self.$$.dirty & 9) {
9390
+ if ($$self.$$.dirty & 17) {
9355
9391
  try {
9356
9392
  if (player && container) {
9357
9393
  player.bindContainer(container);
9358
- $$invalidate(6, mounted = true);
9394
+ $$invalidate(7, mounted = true);
9359
9395
  }
9360
9396
  } catch (err) {
9361
9397
  console.error("[fastboard] An error occurred while binding container");
9362
9398
  console.error(err);
9363
9399
  }
9364
9400
  }
9365
- if ($$self.$$.dirty & 67) {
9401
+ if ($$self.$$.dirty & 131) {
9366
9402
  if (player && theme && mounted) {
9367
9403
  player.manager.setPrefersColorScheme(theme);
9368
9404
  }
@@ -9372,6 +9408,7 @@ function instance57($$self, $$props, $$invalidate) {
9372
9408
  player,
9373
9409
  theme,
9374
9410
  language,
9411
+ config,
9375
9412
  container,
9376
9413
  focus_me,
9377
9414
  containerRef,
@@ -9386,7 +9423,8 @@ var ReplayFastboard = class extends SvelteComponent {
9386
9423
  player: 0,
9387
9424
  theme: 1,
9388
9425
  language: 2,
9389
- containerRef: 5
9426
+ config: 3,
9427
+ containerRef: 6
9390
9428
  });
9391
9429
  }
9392
9430
  };
@@ -9444,7 +9482,8 @@ function create_if_block_23(ctx) {
9444
9482
  props: {
9445
9483
  app: ctx[0],
9446
9484
  theme: ctx[1],
9447
- language: ctx[2]
9485
+ language: ctx[2],
9486
+ icons: ctx[3].redo_undo?.icons
9448
9487
  }
9449
9488
  });
9450
9489
  return {
@@ -9463,6 +9502,8 @@ function create_if_block_23(ctx) {
9463
9502
  redoundo_changes.theme = ctx2[1];
9464
9503
  if (dirty & 4)
9465
9504
  redoundo_changes.language = ctx2[2];
9505
+ if (dirty & 8)
9506
+ redoundo_changes.icons = ctx2[3].redo_undo?.icons;
9466
9507
  redoundo.$set(redoundo_changes);
9467
9508
  },
9468
9509
  i(local) {
@@ -9487,7 +9528,8 @@ function create_if_block_14(ctx) {
9487
9528
  props: {
9488
9529
  app: ctx[0],
9489
9530
  theme: ctx[1],
9490
- language: ctx[2]
9531
+ language: ctx[2],
9532
+ icons: ctx[3].zoom_control?.icons
9491
9533
  }
9492
9534
  });
9493
9535
  return {
@@ -9506,6 +9548,8 @@ function create_if_block_14(ctx) {
9506
9548
  zoomcontrol_changes.theme = ctx2[1];
9507
9549
  if (dirty & 4)
9508
9550
  zoomcontrol_changes.language = ctx2[2];
9551
+ if (dirty & 8)
9552
+ zoomcontrol_changes.icons = ctx2[3].zoom_control?.icons;
9509
9553
  zoomcontrol.$set(zoomcontrol_changes);
9510
9554
  },
9511
9555
  i(local) {
@@ -9523,14 +9567,15 @@ function create_if_block_14(ctx) {
9523
9567
  }
9524
9568
  };
9525
9569
  }
9526
- function create_if_block9(ctx) {
9570
+ function create_if_block10(ctx) {
9527
9571
  let pagecontrol;
9528
9572
  let current;
9529
9573
  pagecontrol = new PageControl_default({
9530
9574
  props: {
9531
9575
  app: ctx[0],
9532
9576
  theme: ctx[1],
9533
- language: ctx[2]
9577
+ language: ctx[2],
9578
+ icons: ctx[3].page_control?.icons
9534
9579
  }
9535
9580
  });
9536
9581
  return {
@@ -9549,6 +9594,8 @@ function create_if_block9(ctx) {
9549
9594
  pagecontrol_changes.theme = ctx2[1];
9550
9595
  if (dirty & 4)
9551
9596
  pagecontrol_changes.language = ctx2[2];
9597
+ if (dirty & 8)
9598
+ pagecontrol_changes.icons = ctx2[3].page_control?.icons;
9552
9599
  pagecontrol.$set(pagecontrol_changes);
9553
9600
  },
9554
9601
  i(local) {
@@ -9567,7 +9614,6 @@ function create_if_block9(ctx) {
9567
9614
  };
9568
9615
  }
9569
9616
  function create_fragment58(ctx) {
9570
- var _a, _b, _c, _d;
9571
9617
  let div4;
9572
9618
  let div0;
9573
9619
  let t0;
@@ -9580,10 +9626,10 @@ function create_fragment58(ctx) {
9580
9626
  let current;
9581
9627
  let mounted;
9582
9628
  let dispose;
9583
- let if_block0 = ((_a = ctx[3].toolbar) == null ? void 0 : _a.enable) !== false && create_if_block_32(ctx);
9584
- let if_block1 = ((_b = ctx[3].redo_undo) == null ? void 0 : _b.enable) !== false && create_if_block_23(ctx);
9585
- let if_block2 = ((_c = ctx[3].zoom_control) == null ? void 0 : _c.enable) !== false && create_if_block_14(ctx);
9586
- 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);
9587
9633
  return {
9588
9634
  c() {
9589
9635
  div4 = element("div");
@@ -9639,8 +9685,7 @@ function create_fragment58(ctx) {
9639
9685
  }
9640
9686
  },
9641
9687
  p(ctx2, [dirty]) {
9642
- var _a2, _b2, _c2, _d2;
9643
- if (((_a2 = ctx2[3].toolbar) == null ? void 0 : _a2.enable) !== false) {
9688
+ if (ctx2[3].toolbar?.enable !== false) {
9644
9689
  if (if_block0) {
9645
9690
  if_block0.p(ctx2, dirty);
9646
9691
  if (dirty & 8) {
@@ -9662,7 +9707,7 @@ function create_fragment58(ctx) {
9662
9707
  if (dirty & 32) {
9663
9708
  toggle_class(div1, "hidden", !(ctx2[5] === "visible" || ctx2[5] === "toolbar-only"));
9664
9709
  }
9665
- if (((_b2 = ctx2[3].redo_undo) == null ? void 0 : _b2.enable) !== false) {
9710
+ if (ctx2[3].redo_undo?.enable !== false) {
9666
9711
  if (if_block1) {
9667
9712
  if_block1.p(ctx2, dirty);
9668
9713
  if (dirty & 8) {
@@ -9681,7 +9726,7 @@ function create_fragment58(ctx) {
9681
9726
  });
9682
9727
  check_outros();
9683
9728
  }
9684
- if (((_c2 = ctx2[3].zoom_control) == null ? void 0 : _c2.enable) !== false) {
9729
+ if (ctx2[3].zoom_control?.enable !== false) {
9685
9730
  if (if_block2) {
9686
9731
  if_block2.p(ctx2, dirty);
9687
9732
  if (dirty & 8) {
@@ -9703,14 +9748,14 @@ function create_fragment58(ctx) {
9703
9748
  if (dirty & 32) {
9704
9749
  toggle_class(div2, "hidden", ctx2[5] !== "visible");
9705
9750
  }
9706
- if (((_d2 = ctx2[3].page_control) == null ? void 0 : _d2.enable) !== false) {
9751
+ if (ctx2[3].page_control?.enable !== false) {
9707
9752
  if (if_block3) {
9708
9753
  if_block3.p(ctx2, dirty);
9709
9754
  if (dirty & 8) {
9710
9755
  transition_in(if_block3, 1);
9711
9756
  }
9712
9757
  } else {
9713
- if_block3 = create_if_block9(ctx2);
9758
+ if_block3 = create_if_block10(ctx2);
9714
9759
  if_block3.c();
9715
9760
  transition_in(if_block3, 1);
9716
9761
  if_block3.m(div3, null);
@@ -9816,13 +9861,13 @@ function instance58($$self, $$props, $$invalidate) {
9816
9861
  };
9817
9862
  $$self.$$.update = () => {
9818
9863
  if ($$self.$$.dirty & 1) {
9819
- $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
9864
+ $$subscribe_writable($$invalidate(8, writable2 = app?.writable));
9820
9865
  }
9821
9866
  if ($$self.$$.dirty & 1) {
9822
- $$subscribe_boxState($$invalidate(7, boxState = app == null ? void 0 : app.boxState));
9867
+ $$subscribe_boxState($$invalidate(7, boxState = app?.boxState));
9823
9868
  }
9824
9869
  if ($$self.$$.dirty & 1) {
9825
- $$subscribe_focusedApp($$invalidate(6, focusedApp = app == null ? void 0 : app.focusedApp));
9870
+ $$subscribe_focusedApp($$invalidate(6, focusedApp = app?.focusedApp));
9826
9871
  }
9827
9872
  if ($$self.$$.dirty & 28672) {
9828
9873
  if (!$writable) {
@@ -9890,74 +9935,70 @@ var Fastboard_default = Fastboard;
9890
9935
  // src/helpers/index.ts
9891
9936
  function createUI(app, div) {
9892
9937
  let fastboard;
9893
- const ui = {
9894
- mount(div2, props) {
9895
- if (fastboard) {
9896
- fastboard.$destroy();
9897
- }
9898
- fastboard = new Fastboard_default({ target: div2, props: __spreadValues({ app }, props) });
9899
- return ui;
9900
- },
9901
- update(props) {
9902
- if (fastboard) {
9903
- fastboard.$set(props);
9904
- }
9905
- },
9906
- destroy() {
9907
- if (fastboard) {
9908
- fastboard.$destroy();
9909
- }
9910
- fastboard = void 0;
9938
+ function mount(div2, props) {
9939
+ if (fastboard) {
9940
+ fastboard.$destroy();
9911
9941
  }
9912
- };
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 };
9913
9964
  if (div) {
9914
- ui.mount(div, { app });
9965
+ mount(div, { app });
9915
9966
  }
9916
9967
  return ui;
9917
9968
  }
9918
9969
  function createReplayUI(player, div) {
9919
9970
  let fastboard;
9920
- const ui = {
9921
- mount(div2, props) {
9922
- if (fastboard) {
9923
- fastboard.$destroy();
9924
- }
9925
- fastboard = new ReplayFastboard_default({ target: div2, props: __spreadValues({ player }, props) });
9926
- return ui;
9927
- },
9928
- update(props) {
9929
- if (fastboard) {
9930
- fastboard.$set(props);
9931
- }
9932
- },
9933
- destroy() {
9934
- if (fastboard) {
9935
- fastboard.$destroy();
9936
- }
9937
- fastboard = void 0;
9971
+ function mount(div2, props) {
9972
+ if (fastboard) {
9973
+ fastboard.$destroy();
9938
9974
  }
9939
- };
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 };
9940
9997
  if (div) {
9941
- ui.mount(div, { player });
9998
+ mount(div, { player });
9942
9999
  }
9943
10000
  return ui;
9944
10001
  }
9945
10002
 
9946
- // inline-sass-helper:inline-sass-style-helper.js
9947
- function injectStyle(text4) {
9948
- if (typeof document !== "undefined") {
9949
- var style = document.createElement("style");
9950
- var node = document.createTextNode(text4);
9951
- style.appendChild(node);
9952
- document.head.appendChild(style);
9953
- }
9954
- }
9955
-
9956
- // inline-sass-content:./src/style.scss
9957
- 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}';
9958
-
9959
- // inline-sass-stub:./src/style.scss
9960
- injectStyle(style_default);
9961
-
9962
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 };
9963
10004
  //# sourceMappingURL=index.svelte.mjs.map