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