@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.js CHANGED
@@ -1,58 +1,28 @@
1
1
  'use strict';
2
2
 
3
- var __create = Object.create;
4
- var __defProp = Object.defineProperty;
5
- var __defProps = Object.defineProperties;
6
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
8
- var __getOwnPropNames = Object.getOwnPropertyNames;
9
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
10
- var __getProtoOf = Object.getPrototypeOf;
11
- var __hasOwnProp = Object.prototype.hasOwnProperty;
12
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
13
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
- var __spreadValues = (a, b) => {
15
- for (var prop in b || (b = {}))
16
- if (__hasOwnProp.call(b, prop))
17
- __defNormalProp(a, prop, b[prop]);
18
- if (__getOwnPropSymbols)
19
- for (var prop of __getOwnPropSymbols(b)) {
20
- if (__propIsEnum.call(b, prop))
21
- __defNormalProp(a, prop, b[prop]);
22
- }
23
- return a;
24
- };
25
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
26
- var __export = (target, all) => {
27
- for (var name10 in all)
28
- __defProp(target, name10, { get: all[name10], enumerable: true });
29
- };
30
- var __copyProps = (to, from, except, desc) => {
31
- if (from && typeof from === "object" || typeof from === "function") {
32
- for (let key of __getOwnPropNames(from))
33
- if (!__hasOwnProp.call(to, key) && key !== except)
34
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Tippy = require('tippy.js');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var Tippy__default = /*#__PURE__*/_interopDefaultLegacy(Tippy);
10
+
11
+ // inline-sass-helper:inline-sass-style-helper.js
12
+ function injectStyle(text2) {
13
+ if (typeof document !== "undefined") {
14
+ var style = document.createElement("style");
15
+ var node = document.createTextNode(text2);
16
+ style.appendChild(node);
17
+ document.head.appendChild(style);
35
18
  }
36
- return to;
37
- };
38
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
39
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ }
40
20
 
41
- // src/index.ts
42
- var src_exports = {};
43
- __export(src_exports, {
44
- Fastboard: () => Fastboard_default,
45
- PageControl: () => PageControl_default,
46
- PlayerControl: () => PlayerControl_default,
47
- RedoUndo: () => RedoUndo_default,
48
- ReplayFastboard: () => ReplayFastboard_default,
49
- Toolbar: () => Toolbar_default,
50
- ZoomControl: () => ZoomControl_default,
51
- apps: () => apps,
52
- createReplayUI: () => createReplayUI,
53
- createUI: () => createUI
54
- });
55
- module.exports = __toCommonJS(src_exports);
21
+ // inline-sass-content:./src/style.scss
22
+ 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}';
23
+
24
+ // inline-sass-stub:./src/style.scss
25
+ injectStyle(style_default);
56
26
 
57
27
  // ../../node_modules/.pnpm/svelte@3.49.0/node_modules/svelte/internal/index.mjs
58
28
  function noop() {
@@ -591,7 +561,14 @@ function create_else_block(ctx) {
591
561
  p(ctx2, dirty) {
592
562
  if (default_slot) {
593
563
  if (default_slot.p && (!current || dirty & 8)) {
594
- 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);
564
+ update_slot_base(
565
+ default_slot,
566
+ default_slot_template,
567
+ ctx2,
568
+ ctx2[3],
569
+ !current ? get_all_dirty_from_scope(ctx2[3]) : get_slot_changes(default_slot_template, ctx2[3], dirty, null),
570
+ null
571
+ );
595
572
  }
596
573
  }
597
574
  },
@@ -3416,11 +3393,8 @@ var Icons = {
3416
3393
  Loading: Loading_default
3417
3394
  };
3418
3395
  var Icons_default = Icons;
3419
-
3420
- // src/actions/tippy.ts
3421
- var import_tippy = __toESM(require("tippy.js"));
3422
3396
  if (is_client) {
3423
- import_tippy.default.setDefaultProps({
3397
+ Tippy__default["default"].setDefaultProps({
3424
3398
  delay: [1e3, 400],
3425
3399
  duration: 300,
3426
3400
  offset: [0, 11],
@@ -3441,8 +3415,7 @@ if (is_client) {
3441
3415
  }
3442
3416
  }
3443
3417
  function remove() {
3444
- var _a;
3445
- (_a = instance59.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
3418
+ instance59.popper.firstElementChild?.classList.remove("fastboard-tip");
3446
3419
  }
3447
3420
  return {
3448
3421
  onCreate: add,
@@ -3455,7 +3428,7 @@ if (is_client) {
3455
3428
  });
3456
3429
  }
3457
3430
  var tippy = function(node, props) {
3458
- const instance59 = (0, import_tippy.default)(node, props);
3431
+ const instance59 = Tippy__default["default"](node, props);
3459
3432
  return {
3460
3433
  update(props2) {
3461
3434
  instance59.setProps(props2);
@@ -3466,11 +3439,13 @@ var tippy = function(node, props) {
3466
3439
  };
3467
3440
  };
3468
3441
  function tippy_hide_all() {
3469
- document.querySelectorAll("[data-tippy-root]").forEach((el) => {
3470
- const instance59 = el._tippy;
3471
- if (instance59)
3472
- instance59.hide();
3473
- });
3442
+ document.querySelectorAll("[data-tippy-root]").forEach(tippy_hide);
3443
+ }
3444
+ function tippy_hide(el) {
3445
+ const instance59 = el._tippy;
3446
+ if (instance59) {
3447
+ instance59.hide();
3448
+ }
3474
3449
  }
3475
3450
  var tippy_menu = {
3476
3451
  delay: 0,
@@ -3511,7 +3486,14 @@ function create_else_block_1(ctx) {
3511
3486
  p(ctx2, dirty) {
3512
3487
  if (default_slot) {
3513
3488
  if (default_slot.p && (!current || dirty & 256)) {
3514
- 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);
3489
+ update_slot_base(
3490
+ default_slot,
3491
+ default_slot_template,
3492
+ ctx2,
3493
+ ctx2[8],
3494
+ !current ? get_all_dirty_from_scope(ctx2[8]) : get_slot_changes(default_slot_template, ctx2[8], dirty, null),
3495
+ null
3496
+ );
3515
3497
  }
3516
3498
  }
3517
3499
  if (!current || dirty & 7 && button_class_value !== (button_class_value = ctx2[1] + "-btn " + ctx2[0] + " " + ctx2[2])) {
@@ -3642,7 +3624,14 @@ function create_else_block2(ctx) {
3642
3624
  p(ctx2, dirty) {
3643
3625
  if (default_slot) {
3644
3626
  if (default_slot.p && (!current || dirty & 256)) {
3645
- 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);
3627
+ update_slot_base(
3628
+ default_slot,
3629
+ default_slot_template,
3630
+ ctx2,
3631
+ ctx2[8],
3632
+ !current ? get_all_dirty_from_scope(ctx2[8]) : get_slot_changes(default_slot_template, ctx2[8], dirty, null),
3633
+ null
3634
+ );
3646
3635
  }
3647
3636
  }
3648
3637
  if (!current || dirty & 7 && button_class_value !== (button_class_value = ctx2[1] + "-btn " + ctx2[0] + " " + ctx2[2])) {
@@ -3718,14 +3707,14 @@ function create_if_block_1(ctx) {
3718
3707
  if (!mounted) {
3719
3708
  dispose = [
3720
3709
  listen(button, "click", ctx[10]),
3721
- action_destroyer(tippy_action = tippy.call(null, button, __spreadProps(__spreadValues({
3722
- content: ctx[6]
3723
- }, tippy_menu), {
3710
+ action_destroyer(tippy_action = tippy.call(null, button, {
3711
+ content: ctx[6],
3712
+ ...tippy_menu,
3724
3713
  placement: ctx[7],
3725
3714
  appendTo: document.body,
3726
3715
  theme: ctx[2],
3727
3716
  className: "fastboard-panel"
3728
- }))),
3717
+ })),
3729
3718
  action_destroyer(tippy_action_1 = tippy.call(null, span1, {
3730
3719
  content: ctx[4],
3731
3720
  placement: ctx[5],
@@ -3738,7 +3727,14 @@ function create_if_block_1(ctx) {
3738
3727
  p(ctx2, dirty) {
3739
3728
  if (default_slot) {
3740
3729
  if (default_slot.p && (!current || dirty & 256)) {
3741
- 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);
3730
+ update_slot_base(
3731
+ default_slot,
3732
+ default_slot_template,
3733
+ ctx2,
3734
+ ctx2[8],
3735
+ !current ? get_all_dirty_from_scope(ctx2[8]) : get_slot_changes(default_slot_template, ctx2[8], dirty, null),
3736
+ null
3737
+ );
3742
3738
  }
3743
3739
  }
3744
3740
  if (!current || dirty & 7 && button_class_value !== (button_class_value = ctx2[1] + "-btn " + ctx2[0] + " " + ctx2[2])) {
@@ -3748,14 +3744,14 @@ function create_if_block_1(ctx) {
3748
3744
  button.disabled = ctx2[3];
3749
3745
  }
3750
3746
  if (tippy_action && is_function(tippy_action.update) && dirty & 196)
3751
- tippy_action.update.call(null, __spreadProps(__spreadValues({
3752
- content: ctx2[6]
3753
- }, tippy_menu), {
3747
+ tippy_action.update.call(null, {
3748
+ content: ctx2[6],
3749
+ ...tippy_menu,
3754
3750
  placement: ctx2[7],
3755
3751
  appendTo: document.body,
3756
3752
  theme: ctx2[2],
3757
3753
  className: "fastboard-panel"
3758
- }));
3754
+ });
3759
3755
  if (!current || dirty & 2 && span0_class_value !== (span0_class_value = ctx2[1] + "-triangle")) {
3760
3756
  attr(span0, "class", span0_class_value);
3761
3757
  }
@@ -3959,12 +3955,11 @@ function create_default_slot_3(ctx) {
3959
3955
  };
3960
3956
  }
3961
3957
  function create_default_slot_2(ctx) {
3962
- var _a;
3963
3958
  let icon;
3964
3959
  let current;
3965
3960
  icon = new Icon_default({
3966
3961
  props: {
3967
- src: (_a = ctx[1]) == null ? void 0 : _a.undo[ctx[2]],
3962
+ src: ctx[1]?.undo[ctx[2]],
3968
3963
  alt: "[undo]",
3969
3964
  $$slots: { default: [create_default_slot_3] },
3970
3965
  $$scope: { ctx }
@@ -3979,10 +3974,9 @@ function create_default_slot_2(ctx) {
3979
3974
  current = true;
3980
3975
  },
3981
3976
  p(ctx2, dirty) {
3982
- var _a2;
3983
3977
  const icon_changes = {};
3984
3978
  if (dirty & 6)
3985
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.undo[ctx2[2]];
3979
+ icon_changes.src = ctx2[1]?.undo[ctx2[2]];
3986
3980
  if (dirty & 131073) {
3987
3981
  icon_changes.$$scope = { dirty, ctx: ctx2 };
3988
3982
  }
@@ -4037,12 +4031,11 @@ function create_default_slot_1(ctx) {
4037
4031
  };
4038
4032
  }
4039
4033
  function create_default_slot(ctx) {
4040
- var _a;
4041
4034
  let icon;
4042
4035
  let current;
4043
4036
  icon = new Icon_default({
4044
4037
  props: {
4045
- src: (_a = ctx[1]) == null ? void 0 : _a.redo[ctx[2]],
4038
+ src: ctx[1]?.redo[ctx[2]],
4046
4039
  alt: "[redo]",
4047
4040
  $$slots: { default: [create_default_slot_1] },
4048
4041
  $$scope: { ctx }
@@ -4057,10 +4050,9 @@ function create_default_slot(ctx) {
4057
4050
  current = true;
4058
4051
  },
4059
4052
  p(ctx2, dirty) {
4060
- var _a2;
4061
4053
  const icon_changes = {};
4062
4054
  if (dirty & 6)
4063
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.redo[ctx2[2]];
4055
+ icon_changes.src = ctx2[1]?.redo[ctx2[2]];
4064
4056
  if (dirty & 131073) {
4065
4057
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4066
4058
  }
@@ -4202,10 +4194,10 @@ function instance46($$self, $$props, $$invalidate) {
4202
4194
  let { icons = void 0 } = $$props;
4203
4195
  let type;
4204
4196
  function undo() {
4205
- app == null ? void 0 : app.undo();
4197
+ app?.undo();
4206
4198
  }
4207
4199
  function redo() {
4208
- app == null ? void 0 : app.redo();
4200
+ app?.redo();
4209
4201
  }
4210
4202
  $$self.$$set = ($$props2) => {
4211
4203
  if ("app" in $$props2)
@@ -4219,7 +4211,7 @@ function instance46($$self, $$props, $$invalidate) {
4219
4211
  };
4220
4212
  $$self.$$.update = () => {
4221
4213
  if ($$self.$$.dirty & 2048) {
4222
- $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
4214
+ $$subscribe_writable($$invalidate(8, writable2 = app?.writable));
4223
4215
  }
4224
4216
  if ($$self.$$.dirty & 65536) {
4225
4217
  $$invalidate(13, disabled = !$writable);
@@ -4231,10 +4223,10 @@ function instance46($$self, $$props, $$invalidate) {
4231
4223
  $$invalidate(2, type = disabled ? "disable" : "normal");
4232
4224
  }
4233
4225
  if ($$self.$$.dirty & 2048) {
4234
- $$subscribe_undoSteps($$invalidate(6, undoSteps = app == null ? void 0 : app.canUndoSteps));
4226
+ $$subscribe_undoSteps($$invalidate(6, undoSteps = app?.canUndoSteps));
4235
4227
  }
4236
4228
  if ($$self.$$.dirty & 2048) {
4237
- $$subscribe_redoSteps($$invalidate(5, redoSteps = app == null ? void 0 : app.canRedoSteps));
4229
+ $$subscribe_redoSteps($$invalidate(5, redoSteps = app?.canRedoSteps));
4238
4230
  }
4239
4231
  if ($$self.$$.dirty & 40960) {
4240
4232
  $$invalidate(4, undo_disabled = disabled || !$undoSteps);
@@ -4311,12 +4303,11 @@ function create_default_slot_5(ctx) {
4311
4303
  };
4312
4304
  }
4313
4305
  function create_default_slot_4(ctx) {
4314
- var _a;
4315
4306
  let icon;
4316
4307
  let current;
4317
4308
  icon = new Icon_default({
4318
4309
  props: {
4319
- src: (_a = ctx[1]) == null ? void 0 : _a.prev[ctx[5]],
4310
+ src: ctx[1]?.prev[ctx[5]],
4320
4311
  alt: "[prev]",
4321
4312
  $$slots: { default: [create_default_slot_5] },
4322
4313
  $$scope: { ctx }
@@ -4331,10 +4322,9 @@ function create_default_slot_4(ctx) {
4331
4322
  current = true;
4332
4323
  },
4333
4324
  p(ctx2, dirty) {
4334
- var _a2;
4335
4325
  const icon_changes = {};
4336
4326
  if (dirty & 34)
4337
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.prev[ctx2[5]];
4327
+ icon_changes.src = ctx2[1]?.prev[ctx2[5]];
4338
4328
  if (dirty & 262145) {
4339
4329
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4340
4330
  }
@@ -4437,12 +4427,11 @@ function create_default_slot_32(ctx) {
4437
4427
  };
4438
4428
  }
4439
4429
  function create_default_slot_22(ctx) {
4440
- var _a;
4441
4430
  let icon;
4442
4431
  let current;
4443
4432
  icon = new Icon_default({
4444
4433
  props: {
4445
- src: (_a = ctx[1]) == null ? void 0 : _a.next[ctx[5]],
4434
+ src: ctx[1]?.next[ctx[5]],
4446
4435
  alt: "[next]",
4447
4436
  $$slots: { default: [create_default_slot_32] },
4448
4437
  $$scope: { ctx }
@@ -4457,10 +4446,9 @@ function create_default_slot_22(ctx) {
4457
4446
  current = true;
4458
4447
  },
4459
4448
  p(ctx2, dirty) {
4460
- var _a2;
4461
4449
  const icon_changes = {};
4462
4450
  if (dirty & 34)
4463
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.next[ctx2[5]];
4451
+ icon_changes.src = ctx2[1]?.next[ctx2[5]];
4464
4452
  if (dirty & 262145) {
4465
4453
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4466
4454
  }
@@ -4515,12 +4503,11 @@ function create_default_slot_12(ctx) {
4515
4503
  };
4516
4504
  }
4517
4505
  function create_default_slot2(ctx) {
4518
- var _a;
4519
4506
  let icon;
4520
4507
  let current;
4521
4508
  icon = new Icon_default({
4522
4509
  props: {
4523
- src: (_a = ctx[1]) == null ? void 0 : _a.add[ctx[5]],
4510
+ src: ctx[1]?.add[ctx[5]],
4524
4511
  alt: "[add]",
4525
4512
  $$slots: { default: [create_default_slot_12] },
4526
4513
  $$scope: { ctx }
@@ -4535,10 +4522,9 @@ function create_default_slot2(ctx) {
4535
4522
  current = true;
4536
4523
  },
4537
4524
  p(ctx2, dirty) {
4538
- var _a2;
4539
4525
  const icon_changes = {};
4540
4526
  if (dirty & 34)
4541
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.add[ctx2[5]];
4527
+ icon_changes.src = ctx2[1]?.add[ctx2[5]];
4542
4528
  if (dirty & 262145) {
4543
4529
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4544
4530
  }
@@ -4748,14 +4734,14 @@ function instance47($$self, $$props, $$invalidate) {
4748
4734
  let { icons = void 0 } = $$props;
4749
4735
  let type;
4750
4736
  function prevPage() {
4751
- app == null ? void 0 : app.prevPage();
4737
+ app?.prevPage();
4752
4738
  }
4753
4739
  function nextPage() {
4754
- app == null ? void 0 : app.nextPage();
4740
+ app?.nextPage();
4755
4741
  }
4756
4742
  function addPage() {
4757
- app == null ? void 0 : app.addPage({ after: true });
4758
- app == null ? void 0 : app.nextPage();
4743
+ app?.addPage({ after: true });
4744
+ app?.nextPage();
4759
4745
  }
4760
4746
  $$self.$$set = ($$props2) => {
4761
4747
  if ("app" in $$props2)
@@ -4769,7 +4755,7 @@ function instance47($$self, $$props, $$invalidate) {
4769
4755
  };
4770
4756
  $$self.$$.update = () => {
4771
4757
  if ($$self.$$.dirty & 32768) {
4772
- $$subscribe_writable($$invalidate(11, writable2 = app == null ? void 0 : app.writable));
4758
+ $$subscribe_writable($$invalidate(11, writable2 = app?.writable));
4773
4759
  }
4774
4760
  if ($$self.$$.dirty & 131072) {
4775
4761
  $$invalidate(2, disabled = !$writable);
@@ -4781,10 +4767,10 @@ function instance47($$self, $$props, $$invalidate) {
4781
4767
  $$invalidate(5, type = disabled ? "disable" : "normal");
4782
4768
  }
4783
4769
  if ($$self.$$.dirty & 32768) {
4784
- $$subscribe_index($$invalidate(9, index = app == null ? void 0 : app.sceneIndex));
4770
+ $$subscribe_index($$invalidate(9, index = app?.pageIndex));
4785
4771
  }
4786
4772
  if ($$self.$$.dirty & 32768) {
4787
- $$subscribe_length($$invalidate(8, length = app == null ? void 0 : app.sceneLength));
4773
+ $$subscribe_length($$invalidate(8, length = app?.pageLength));
4788
4774
  }
4789
4775
  if ($$self.$$.dirty & 20) {
4790
4776
  $$invalidate(7, prev_disabled = disabled || !$index);
@@ -4867,12 +4853,11 @@ function create_default_slot_52(ctx) {
4867
4853
  };
4868
4854
  }
4869
4855
  function create_default_slot_42(ctx) {
4870
- var _a;
4871
4856
  let icon;
4872
4857
  let current;
4873
4858
  icon = new Icon_default({
4874
4859
  props: {
4875
- src: (_a = ctx[1]) == null ? void 0 : _a.plus[ctx[5]],
4860
+ src: ctx[1]?.plus[ctx[4]],
4876
4861
  alt: "[plus]",
4877
4862
  $$slots: { default: [create_default_slot_52] },
4878
4863
  $$scope: { ctx }
@@ -4887,11 +4872,10 @@ function create_default_slot_42(ctx) {
4887
4872
  current = true;
4888
4873
  },
4889
4874
  p(ctx2, dirty) {
4890
- var _a2;
4891
4875
  const icon_changes = {};
4892
- if (dirty & 34)
4893
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.plus[ctx2[5]];
4894
- if (dirty & 131073) {
4876
+ if (dirty & 18)
4877
+ icon_changes.src = ctx2[1]?.plus[ctx2[4]];
4878
+ if (dirty & 262145) {
4895
4879
  icon_changes.$$scope = { dirty, ctx: ctx2 };
4896
4880
  }
4897
4881
  icon.$set(icon_changes);
@@ -4912,12 +4896,11 @@ function create_default_slot_42(ctx) {
4912
4896
  };
4913
4897
  }
4914
4898
  function create_else_block4(ctx) {
4915
- let t0_value = Math.ceil(ctx[2] * 100) + "";
4916
4899
  let t0;
4917
4900
  let t1;
4918
4901
  return {
4919
4902
  c() {
4920
- t0 = text(t0_value);
4903
+ t0 = text(ctx[5]);
4921
4904
  t1 = text("%");
4922
4905
  },
4923
4906
  m(target, anchor) {
@@ -4925,8 +4908,8 @@ function create_else_block4(ctx) {
4925
4908
  insert(target, t1, anchor);
4926
4909
  },
4927
4910
  p(ctx2, dirty) {
4928
- if (dirty & 4 && t0_value !== (t0_value = Math.ceil(ctx2[2] * 100) + ""))
4929
- set_data(t0, t0_value);
4911
+ if (dirty & 32)
4912
+ set_data(t0, ctx2[5]);
4930
4913
  },
4931
4914
  d(detaching) {
4932
4915
  if (detaching)
@@ -4986,12 +4969,11 @@ function create_default_slot_33(ctx) {
4986
4969
  };
4987
4970
  }
4988
4971
  function create_default_slot_23(ctx) {
4989
- var _a;
4990
4972
  let icon;
4991
4973
  let current;
4992
4974
  icon = new Icon_default({
4993
4975
  props: {
4994
- src: (_a = ctx[1]) == null ? void 0 : _a.minus[ctx[5]],
4976
+ src: ctx[1]?.minus[ctx[4]],
4995
4977
  alt: "[minus]",
4996
4978
  $$slots: { default: [create_default_slot_33] },
4997
4979
  $$scope: { ctx }
@@ -5006,11 +4988,10 @@ function create_default_slot_23(ctx) {
5006
4988
  current = true;
5007
4989
  },
5008
4990
  p(ctx2, dirty) {
5009
- var _a2;
5010
4991
  const icon_changes = {};
5011
- if (dirty & 34)
5012
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.minus[ctx2[5]];
5013
- if (dirty & 131073) {
4992
+ if (dirty & 18)
4993
+ icon_changes.src = ctx2[1]?.minus[ctx2[4]];
4994
+ if (dirty & 262145) {
5014
4995
  icon_changes.$$scope = { dirty, ctx: ctx2 };
5015
4996
  }
5016
4997
  icon.$set(icon_changes);
@@ -5064,12 +5045,11 @@ function create_default_slot_13(ctx) {
5064
5045
  };
5065
5046
  }
5066
5047
  function create_default_slot3(ctx) {
5067
- var _a;
5068
5048
  let icon;
5069
5049
  let current;
5070
5050
  icon = new Icon_default({
5071
5051
  props: {
5072
- src: (_a = ctx[1]) == null ? void 0 : _a.reset[ctx[5]],
5052
+ src: ctx[1]?.reset[ctx[4]],
5073
5053
  alt: "[reset]",
5074
5054
  $$slots: { default: [create_default_slot_13] },
5075
5055
  $$scope: { ctx }
@@ -5084,11 +5064,10 @@ function create_default_slot3(ctx) {
5084
5064
  current = true;
5085
5065
  },
5086
5066
  p(ctx2, dirty) {
5087
- var _a2;
5088
5067
  const icon_changes = {};
5089
- if (dirty & 34)
5090
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.reset[ctx2[5]];
5091
- if (dirty & 131073) {
5068
+ if (dirty & 18)
5069
+ icon_changes.src = ctx2[1]?.reset[ctx2[4]];
5070
+ if (dirty & 262145) {
5092
5071
  icon_changes.$$scope = { dirty, ctx: ctx2 };
5093
5072
  }
5094
5073
  icon.$set(icon_changes);
@@ -5133,7 +5112,7 @@ function create_fragment48(ctx) {
5133
5112
  });
5134
5113
  button0.$on("click", ctx[11]);
5135
5114
  function select_block_type(ctx2, dirty) {
5136
- if (ctx2[4] == null)
5115
+ if (ctx2[3] == null)
5137
5116
  return create_if_block4;
5138
5117
  return create_else_block4;
5139
5118
  }
@@ -5156,7 +5135,7 @@ function create_fragment48(ctx) {
5156
5135
  class: "reset",
5157
5136
  name: name3,
5158
5137
  theme: ctx[0],
5159
- disabled: ctx[3],
5138
+ disabled: ctx[2],
5160
5139
  content: ctx[9].reset,
5161
5140
  $$slots: { default: [create_default_slot3] },
5162
5141
  $$scope: { ctx }
@@ -5197,7 +5176,7 @@ function create_fragment48(ctx) {
5197
5176
  button0_changes.disabled = ctx2[7];
5198
5177
  if (dirty & 512)
5199
5178
  button0_changes.content = ctx2[9].plus;
5200
- if (dirty & 131107) {
5179
+ if (dirty & 262163) {
5201
5180
  button0_changes.$$scope = { dirty, ctx: ctx2 };
5202
5181
  }
5203
5182
  button0.$set(button0_changes);
@@ -5221,18 +5200,18 @@ function create_fragment48(ctx) {
5221
5200
  button1_changes.disabled = ctx2[6];
5222
5201
  if (dirty & 512)
5223
5202
  button1_changes.content = ctx2[9].minus;
5224
- if (dirty & 131107) {
5203
+ if (dirty & 262163) {
5225
5204
  button1_changes.$$scope = { dirty, ctx: ctx2 };
5226
5205
  }
5227
5206
  button1.$set(button1_changes);
5228
5207
  const button2_changes = {};
5229
5208
  if (dirty & 1)
5230
5209
  button2_changes.theme = ctx2[0];
5231
- if (dirty & 8)
5232
- button2_changes.disabled = ctx2[3];
5210
+ if (dirty & 4)
5211
+ button2_changes.disabled = ctx2[2];
5233
5212
  if (dirty & 512)
5234
5213
  button2_changes.content = ctx2[9].reset;
5235
- if (dirty & 131107) {
5214
+ if (dirty & 262163) {
5236
5215
  button2_changes.$$scope = { dirty, ctx: ctx2 };
5237
5216
  }
5238
5217
  button2.$set(button2_changes);
@@ -5314,8 +5293,9 @@ function instance48($$self, $$props, $$invalidate) {
5314
5293
  let scale;
5315
5294
  let plus_disabled;
5316
5295
  let minus_disabled;
5317
- let $camera, $$unsubscribe_camera = noop, $$subscribe_camera = () => ($$unsubscribe_camera(), $$unsubscribe_camera = subscribe(camera, ($$value) => $$invalidate(4, $camera = $$value)), camera);
5318
- let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(16, $writable = $$value)), writable2);
5296
+ let display_scale;
5297
+ let $camera, $$unsubscribe_camera = noop, $$subscribe_camera = () => ($$unsubscribe_camera(), $$unsubscribe_camera = subscribe(camera, ($$value) => $$invalidate(3, $camera = $$value)), camera);
5298
+ let $writable, $$unsubscribe_writable = noop, $$subscribe_writable = () => ($$unsubscribe_writable(), $$unsubscribe_writable = subscribe(writable2, ($$value) => $$invalidate(17, $writable = $$value)), writable2);
5319
5299
  $$self.$$.on_destroy.push(() => $$unsubscribe_camera());
5320
5300
  $$self.$$.on_destroy.push(() => $$unsubscribe_writable());
5321
5301
  let { app = null } = $$props;
@@ -5324,21 +5304,21 @@ function instance48($$self, $$props, $$invalidate) {
5324
5304
  let { icons = void 0 } = $$props;
5325
5305
  let type;
5326
5306
  function plus() {
5327
- app == null ? void 0 : app.moveCamera({
5307
+ app?.moveCamera({
5328
5308
  scale: next_scale(scale, 1),
5329
5309
  centerX: 0,
5330
5310
  centerY: 0
5331
5311
  });
5332
5312
  }
5333
5313
  function minus() {
5334
- app == null ? void 0 : app.moveCamera({
5314
+ app?.moveCamera({
5335
5315
  scale: next_scale(scale, -1),
5336
5316
  centerX: 0,
5337
5317
  centerY: 0
5338
5318
  });
5339
5319
  }
5340
5320
  function reset() {
5341
- app == null ? void 0 : app.moveCamera({ scale: 1, centerX: 0, centerY: 0 });
5321
+ app?.moveCamera({ scale: 1, centerX: 0, centerY: 0 });
5342
5322
  }
5343
5323
  $$self.$$set = ($$props2) => {
5344
5324
  if ("app" in $$props2)
@@ -5351,39 +5331,41 @@ function instance48($$self, $$props, $$invalidate) {
5351
5331
  $$invalidate(1, icons = $$props2.icons);
5352
5332
  };
5353
5333
  $$self.$$.update = () => {
5354
- var _a;
5355
5334
  if ($$self.$$.dirty & 16384) {
5356
- $$subscribe_writable($$invalidate(10, writable2 = app == null ? void 0 : app.writable));
5335
+ $$subscribe_writable($$invalidate(10, writable2 = app?.writable));
5357
5336
  }
5358
- if ($$self.$$.dirty & 65536) {
5359
- $$invalidate(3, disabled = !$writable);
5337
+ if ($$self.$$.dirty & 131072) {
5338
+ $$invalidate(2, disabled = !$writable);
5360
5339
  }
5361
5340
  if ($$self.$$.dirty & 32768) {
5362
5341
  $$invalidate(9, t = i18n3[language]);
5363
5342
  }
5364
- if ($$self.$$.dirty & 8) {
5365
- $$invalidate(5, type = disabled ? "disable" : "normal");
5343
+ if ($$self.$$.dirty & 4) {
5344
+ $$invalidate(4, type = disabled ? "disable" : "normal");
5366
5345
  }
5367
5346
  if ($$self.$$.dirty & 16384) {
5368
- $$subscribe_camera($$invalidate(8, camera = app == null ? void 0 : app.camera));
5347
+ $$subscribe_camera($$invalidate(8, camera = app?.baseCamera));
5369
5348
  }
5370
- if ($$self.$$.dirty & 16) {
5371
- $$invalidate(2, scale = (_a = $camera == null ? void 0 : $camera.scale) != null ? _a : 1);
5349
+ if ($$self.$$.dirty & 8) {
5350
+ $$invalidate(16, scale = $camera?.scale ?? 1);
5372
5351
  }
5373
- if ($$self.$$.dirty & 12) {
5374
- $$invalidate(7, plus_disabled = disabled || next_scale(scale, 1) === scale);
5352
+ if ($$self.$$.dirty & 65540) {
5353
+ $$invalidate(7, plus_disabled = disabled || next_scale(scale, 1) <= scale);
5375
5354
  }
5376
- if ($$self.$$.dirty & 12) {
5377
- $$invalidate(6, minus_disabled = disabled || next_scale(scale, -1) === scale);
5355
+ if ($$self.$$.dirty & 65540) {
5356
+ $$invalidate(6, minus_disabled = disabled || next_scale(scale, -1) >= scale);
5357
+ }
5358
+ if ($$self.$$.dirty & 65536) {
5359
+ $$invalidate(5, display_scale = clamp(Math.round(scale * 100), 30, 300));
5378
5360
  }
5379
5361
  };
5380
5362
  return [
5381
5363
  theme,
5382
5364
  icons,
5383
- scale,
5384
5365
  disabled,
5385
5366
  $camera,
5386
5367
  type,
5368
+ display_scale,
5387
5369
  minus_disabled,
5388
5370
  plus_disabled,
5389
5371
  camera,
@@ -5394,6 +5376,7 @@ function instance48($$self, $$props, $$invalidate) {
5394
5376
  reset,
5395
5377
  app,
5396
5378
  language,
5379
+ scale,
5397
5380
  $writable
5398
5381
  ];
5399
5382
  }
@@ -5577,21 +5560,12 @@ var scrollTop = function(node, value) {
5577
5560
  };
5578
5561
  };
5579
5562
 
5580
- // src/behaviors/icons/visual-studio-code.svg
5581
- var visual_studio_code_default = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMS4wMWVtIiBoZWlnaHQ9IjFlbSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDI1NiAyNTQiIHN0eWxlPSItbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0MzkiIHgxPSI1MCUiIHgyPSI1MCUiIHkxPSIwJSIgeTI9IjEwMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNGRkYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNGRkYiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggaWQ9Ikljb25pZnlJZC0xN2Y4NzIxNTViZS1jYzc2NmUtNTQ0MCIgZD0iTTE4MC44MjggMjUyLjYwNWExNS44NzIgMTUuODcyIDAgMCAwIDEyLjY1LS40ODZsNTIuNTAxLTI1LjI2MmExNS45NCAxNS45NCAwIDAgMCA5LjAyNS0xNC4zNjRWNDEuMTk3YTE1LjkzOSAxNS45MzkgMCAwIDAtOS4wMjUtMTQuMzYzbC01Mi41LTI1LjI2M2ExNS44NzcgMTUuODc3IDAgMCAwLTE4LjExNSAzLjA4NEw3NC44NTcgOTYuMzVsLTQzLjc4LTMzLjIzMmExMC42MTQgMTAuNjE0IDAgMCAwLTEzLjU2LjYwM0wzLjQ3NiA3Ni40OTRjLTQuNjMgNC4yMTEtNC42MzUgMTEuNDk1LS4wMTIgMTUuNzEzbDM3Ljk2NyAzNC42MzhsLTM3Ljk2NyAzNC42MzdjLTQuNjIzIDQuMjE5LTQuNjE4IDExLjUwMi4wMTIgMTUuNzE0bDE0LjA0MSAxMi43NzJhMTAuNjE0IDEwLjYxNCAwIDAgMCAxMy41Ni42MDRsNDMuNzgtMzMuMjMzbDEwMC41MDcgOTEuNjk1YTE1Ljg1MyAxNS44NTMgMCAwIDAgNS40NjQgMy41NzFabTEwLjQ2NC0xODMuNjQ5bC03Ni4yNjIgNTcuODg5bDc2LjI2MiA1Ny44ODhWNjguOTU2WiIvPjwvZGVmcz48bWFzayBpZD0iSWNvbmlmeUlkLTE3Zjg3MjE1NWJlLWNjNzY2ZS01NDQxIiBmaWxsPSIjZmZmIj48dXNlIGhyZWY9IiNJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0NDAiLz48L21hc2s+PHBhdGggZmlsbD0iIzAwNjVBOSIgZD0iTTI0Ni4xMzUgMjYuODczTDE5My41OTMgMS41NzVhMTUuODg1IDE1Ljg4NSAwIDAgMC0xOC4xMjMgMy4wOEwzLjQ2NiAxNjEuNDgyYy00LjYyNiA0LjIxOS00LjYyIDExLjUwMi4wMTIgMTUuNzE0bDE0LjA1IDEyLjc3MmExMC42MjUgMTAuNjI1IDAgMCAwIDEzLjU2OS42MDRMMjM4LjIyOSAzMy40MzZjNi45NDktNS4yNzEgMTYuOTMtLjMxNSAxNi45MyA4LjQwN3YtLjYxYTE1LjkzOCAxNS45MzggMCAwIDAtOS4wMjQtMTQuMzZaIiBtYXNrPSJ1cmwoI0ljb25pZnlJZC0xN2Y4NzIxNTViZS1jYzc2NmUtNTQ0MSkiLz48cGF0aCBmaWxsPSIjMDA3QUNDIiBkPSJtMjQ2LjEzNSAyMjYuODE2bC01Mi41NDIgMjUuMjk4YTE1Ljg4NyAxNS44ODcgMCAwIDEtMTguMTIzLTMuMDhMMy40NjYgOTIuMjA3Yy00LjYyNi00LjIxOC00LjYyLTExLjUwMi4wMTItMTUuNzEzbDE0LjA1LTEyLjc3M2ExMC42MjUgMTAuNjI1IDAgMCAxIDEzLjU2OS0uNjAzbDIwNy4xMzIgMTU3LjEzNWM2Ljk0OSA1LjI3MSAxNi45My4zMTUgMTYuOTMtOC40MDh2LjYxMWExNS45MzkgMTUuOTM5IDAgMCAxLTkuMDI0IDE0LjM2WiIgbWFzaz0idXJsKCNJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0NDEpIi8+PHBhdGggZmlsbD0iIzFGOUNGMCIgZD0iTTE5My40MjggMjUyLjEzNGExNS44OTIgMTUuODkyIDAgMCAxLTE4LjEyNS0zLjA4M2M1Ljg4MSA1Ljg4IDE1LjkzOCAxLjcxNSAxNS45MzgtNi42MDNWMTEuMjczYzAtOC4zMTgtMTAuMDU3LTEyLjQ4My0xNS45MzgtNi42MDJhMTUuODkyIDE1Ljg5MiAwIDAgMSAxOC4xMjUtMy4wODRsNTIuNTMzIDI1LjI2M2ExNS45MzcgMTUuOTM3IDAgMCAxIDkuMDMgMTQuMzYzVjIxMi41MWMwIDYuMTI1LTMuNTEgMTEuNzA5LTkuMDMgMTQuMzYzbC01Mi41MzMgMjUuMjYyWiIgbWFzaz0idXJsKCNJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0NDEpIi8+PHBhdGggZmlsbD0idXJsKCNJY29uaWZ5SWQtMTdmODcyMTU1YmUtY2M3NjZlLTU0MzkpIiBmaWxsLW9wYWNpdHk9Ii4yNSIgZD0iTTE4MC44MjggMjUyLjYwNWExNS44NzQgMTUuODc0IDAgMCAwIDEyLjY1LS40ODZsNTIuNS0yNS4yNjNhMTUuOTM4IDE1LjkzOCAwIDAgMCA5LjAyNi0xNC4zNjNWNDEuMTk3YTE1LjkzOSAxNS45MzkgMCAwIDAtOS4wMjUtMTQuMzYzTDE5My40NzcgMS41N2ExNS44NzcgMTUuODc3IDAgMCAwLTE4LjExNCAzLjA4NEw3NC44NTcgOTYuMzVsLTQzLjc4LTMzLjIzMmExMC42MTQgMTAuNjE0IDAgMCAwLTEzLjU2LjYwM0wzLjQ3NiA3Ni40OTRjLTQuNjMgNC4yMTEtNC42MzUgMTEuNDk1LS4wMTIgMTUuNzEzbDM3Ljk2NyAzNC42MzhsLTM3Ljk2NyAzNC42MzdjLTQuNjIzIDQuMjE5LTQuNjE4IDExLjUwMi4wMTIgMTUuNzE0bDE0LjA0MSAxMi43NzJhMTAuNjE0IDEwLjYxNCAwIDAgMCAxMy41Ni42MDRsNDMuNzgtMzMuMjMzbDEwMC41MDYgOTEuNjk1YTE1Ljg1NyAxNS44NTcgMCAwIDAgNS40NjUgMy41NzFabTEwLjQ2NC0xODMuNjVsLTc2LjI2MiA1Ny44OWw3Ni4yNjIgNTcuODg4VjY4Ljk1NloiIG1hc2s9InVybCgjSWNvbmlmeUlkLTE3Zjg3MjE1NWJlLWNjNzY2ZS01NDQxKSIvPjwvc3ZnPg==";
5582
-
5583
- // src/behaviors/icons/geogebra.svg
5584
- var geogebra_default = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1hcmN0aWNvbnMiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDQ4IDQ4Ij48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiM2NTU3ZDIiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNMjQgM2E0Ljc3IDQuNzcgMCAxIDAgNC43NyA0Ljc3QTQuNzggNC43OCAwIDAgMCAyNCAzWk03LjY5IDE0Ljg2YTQuNzcgNC43NyAwIDEgMCA0Ljc2IDQuNzdhNC43NiA0Ljc2IDAgMCAwLTQuNzYtNC43N1ptMzIuNjQgMGE0Ljc3IDQuNzcgMCAxIDAgNC43NyA0Ljc3YTQuNzcgNC43NyAwIDAgMC00Ljc3LTQuNzdaTTEzLjkyIDM0LjA1YTQuNzcgNC43NyAwIDEgMCA0Ljc3IDQuNzdhNC43NiA0Ljc2IDAgMCAwLTQuNzctNC43N1ptMjAuMTggMGE0Ljc3IDQuNzcgMCAxIDAgNC43NiA0Ljc3YTQuNzYgNC43NiAwIDAgMC00Ljc2LTQuNzdaIj48L3BhdGg+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjNjU1N2QyIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTE5LjI3IDguMzVhMTcuMjQgMTcuMjQgMCAwIDAtOS43MyA2Ljg3bTI4LjUxLjIyYTE3LjI4IDE3LjI4IDAgMCAwLTkuMzQtNi45NG04LjcgMjYuODlBMTcuMDkgMTcuMDkgMCAwIDAgNDAuOTMgMjV2LS42MU0xOCA0MS4yMmExNy4yMyAxNy4yMyAwIDAgMCA1LjY4IDFhMTcgMTcgMCAwIDAgNi4yLTEuMjJNNi41MyAyNC4yNXYuNzJhMTcuMTYgMTcuMTYgMCAwIDAgMy43NyAxMC43NiI+PC9wYXRoPjwvc3ZnPg==";
5585
-
5586
- // src/behaviors/icons/countdown.svg
5587
- var countdown_default = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0iaW1nIiBjbGFzcz0iaWNvbmlmeSBpY29uaWZ5LS1yYWRpeC1pY29ucyIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IiB2aWV3Qm94PSIwIDAgMTUgMTUiPjxwYXRoIGZpbGw9ImdyZXkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTEzLjE1IDcuNWMwLTIuODM1LTIuMjEtNS42NS01LjY1LTUuNjVjLTIuNzc4IDAtNC4xNTEgMi4wNTYtNC43MzcgMy4xNUg0LjVhLjUuNSAwIDAgMSAwIDFoLTNhLjUuNSAwIDAgMS0uNS0uNXYtM2EuNS41IDAgMCAxIDEgMHYxLjgxM0MyLjcwNSAzLjA3MSA0LjMzNC44NSA3LjUuODVjNC4wNjMgMCA2LjY1IDMuMzM1IDYuNjUgNi42NWMwIDMuMzE1LTIuNTg3IDYuNjUtNi42NSA2LjY1Yy0xLjk0NCAwLTMuNTYyLS43Ny00LjcxNS0xLjk0MmE2Ljc3MiA2Ljc3MiAwIDAgMS0xLjQyNy0yLjE2N2EuNS41IDAgMSAxIC45MjUtLjM4Yy4yOC42ODEuNjkyIDEuMzE0IDEuMjE2IDEuODQ2Yy45NzIuOTkgMi4zMzYgMS42NDMgNC4wMDEgMS42NDNjMy40NCAwIDUuNjUtMi44MTUgNS42NS01LjY1Wk03IDEwVjVoMXY1SDdaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiPjwvcGF0aD48L3N2Zz4=";
5588
-
5589
5563
  // src/behaviors/apps.ts
5590
5564
  var AppsInToolbar = class {
5591
5565
  constructor(_data) {
5592
5566
  this._data = _data;
5593
- this._listeners = [];
5594
5567
  }
5568
+ _listeners = [];
5595
5569
  get data() {
5596
5570
  return this._data;
5597
5571
  }
@@ -5622,41 +5596,7 @@ var AppsInToolbar = class {
5622
5596
  this._listeners.forEach((fn) => fn(this._data));
5623
5597
  }
5624
5598
  };
5625
- var apps = new AppsInToolbar([
5626
- {
5627
- kind: "Monaco",
5628
- icon: visual_studio_code_default,
5629
- label: "Code Editor",
5630
- onClick(app) {
5631
- app.manager.addApp({
5632
- kind: "Monaco",
5633
- options: { title: "Code Editor" }
5634
- });
5635
- }
5636
- },
5637
- {
5638
- kind: "GeoGebra",
5639
- icon: geogebra_default,
5640
- label: "GeoGebra",
5641
- onClick(app) {
5642
- app.manager.addApp({
5643
- kind: "GeoGebra",
5644
- options: { title: "GeoGebra" }
5645
- });
5646
- }
5647
- },
5648
- {
5649
- kind: "Countdown",
5650
- icon: countdown_default,
5651
- label: "Countdown",
5652
- onClick(app) {
5653
- app.manager.addApp({
5654
- kind: "Countdown",
5655
- options: { title: "Countdown" }
5656
- });
5657
- }
5658
- }
5659
- ]);
5599
+ var apps = new AppsInToolbar([]);
5660
5600
 
5661
5601
  // src/components/Toolbar/components/helper.ts
5662
5602
  function tooltip(text2, hotkey) {
@@ -5903,7 +5843,7 @@ function instance50($$self, $$props, $$invalidate) {
5903
5843
  let { theme = "light" } = $$props;
5904
5844
  let { disabled = false } = $$props;
5905
5845
  function set_stroke_width({ detail: value2 }) {
5906
- app == null ? void 0 : app.setStrokeWidth(value2);
5846
+ app?.setStrokeWidth(value2);
5907
5847
  }
5908
5848
  $$self.$$set = ($$props2) => {
5909
5849
  if ("app" in $$props2)
@@ -5914,12 +5854,11 @@ function instance50($$self, $$props, $$invalidate) {
5914
5854
  $$invalidate(5, disabled = $$props2.disabled);
5915
5855
  };
5916
5856
  $$self.$$.update = () => {
5917
- var _a;
5918
5857
  if ($$self.$$.dirty & 8) {
5919
- $$subscribe_memberState($$invalidate(1, memberState = app == null ? void 0 : app.memberState));
5858
+ $$subscribe_memberState($$invalidate(1, memberState = app?.memberState));
5920
5859
  }
5921
5860
  if ($$self.$$.dirty & 128) {
5922
- $$invalidate(6, value = (_a = $memberState == null ? void 0 : $memberState.strokeWidth) != null ? _a : 1);
5861
+ $$invalidate(6, value = $memberState?.strokeWidth ?? 1);
5923
5862
  }
5924
5863
  if ($$self.$$.dirty & 112) {
5925
5864
  $$invalidate(0, props = { value, theme, disabled });
@@ -6077,10 +6016,10 @@ function instance51($$self, $$props, $$invalidate) {
6077
6016
  };
6078
6017
  $$self.$$.update = () => {
6079
6018
  if ($$self.$$.dirty & 32) {
6080
- $$subscribe_memberState($$invalidate(3, memberState = app == null ? void 0 : app.memberState));
6019
+ $$subscribe_memberState($$invalidate(3, memberState = app?.memberState));
6081
6020
  }
6082
6021
  if ($$self.$$.dirty & 64) {
6083
- $$invalidate(2, strokeColor = $memberState == null ? void 0 : $memberState.strokeColor);
6022
+ $$invalidate(2, strokeColor = $memberState?.strokeColor);
6084
6023
  }
6085
6024
  };
6086
6025
  return [theme, disabled, strokeColor, memberState, set_stroke_color, app, $memberState];
@@ -6226,10 +6165,10 @@ function instance52($$self, $$props, $$invalidate) {
6226
6165
  };
6227
6166
  $$self.$$.update = () => {
6228
6167
  if ($$self.$$.dirty & 32) {
6229
- $$subscribe_memberState($$invalidate(3, memberState = app == null ? void 0 : app.memberState));
6168
+ $$subscribe_memberState($$invalidate(3, memberState = app?.memberState));
6230
6169
  }
6231
6170
  if ($$self.$$.dirty & 64) {
6232
- $$invalidate(2, textColor = $memberState == null ? void 0 : $memberState.textColor);
6171
+ $$invalidate(2, textColor = $memberState?.textColor);
6233
6172
  }
6234
6173
  };
6235
6174
  return [theme, disabled, textColor, memberState, set_stroke_color, app, $memberState];
@@ -6624,23 +6563,23 @@ function instance53($$self, $$props, $$invalidate) {
6624
6563
  $$invalidate(6, t = i18n5[language]);
6625
6564
  }
6626
6565
  if ($$self.$$.dirty & 256) {
6627
- $$subscribe_memberState($$invalidate(5, memberState = app == null ? void 0 : app.memberState));
6566
+ $$subscribe_memberState($$invalidate(5, memberState = app?.memberState));
6628
6567
  }
6629
6568
  if ($$self.$$.dirty & 2048) {
6630
- $$invalidate(4, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
6569
+ $$invalidate(4, appliance = $memberState?.currentApplianceName);
6631
6570
  }
6632
6571
  if ($$self.$$.dirty & 2048) {
6633
- $$invalidate(3, shape = $memberState == null ? void 0 : $memberState.shapeType);
6572
+ $$invalidate(3, shape = $memberState?.shapeType);
6634
6573
  }
6635
6574
  if ($$self.$$.dirty & 256) {
6636
- $$invalidate(10, hotkeys = app == null ? void 0 : app.hotKeys);
6575
+ $$invalidate(10, hotkeys = app?.hotKeys);
6637
6576
  }
6638
6577
  if ($$self.$$.dirty & 1024) {
6639
6578
  $$invalidate(2, c = {
6640
- rectangle: hotkeys == null ? void 0 : hotkeys.changeToRectangle,
6641
- ellipse: hotkeys == null ? void 0 : hotkeys.changeToEllipse,
6642
- straight: hotkeys == null ? void 0 : hotkeys.changeToStraight,
6643
- arrow: hotkeys == null ? void 0 : hotkeys.changeToArrow
6579
+ rectangle: hotkeys?.changeToRectangle,
6580
+ ellipse: hotkeys?.changeToEllipse,
6581
+ straight: hotkeys?.changeToStraight,
6582
+ arrow: hotkeys?.changeToArrow
6644
6583
  });
6645
6584
  }
6646
6585
  };
@@ -8569,29 +8508,29 @@ function instance54($$self, $$props, $$invalidate) {
8569
8508
  set_store_value(top, $top = clamp($top + 32 + 4, 0, max_scroll), $top);
8570
8509
  }
8571
8510
  function clicker() {
8572
- app == null ? void 0 : app.setAppliance("clicker");
8511
+ app?.setAppliance("clicker");
8573
8512
  }
8574
8513
  function selector() {
8575
- app == null ? void 0 : app.setAppliance("selector");
8514
+ app?.setAppliance("selector");
8576
8515
  }
8577
8516
  function pencil() {
8578
- app == null ? void 0 : app.setAppliance("pencil");
8517
+ app?.setAppliance("pencil");
8579
8518
  }
8580
8519
  function text2() {
8581
- app == null ? void 0 : app.setAppliance("text");
8520
+ app?.setAppliance("text");
8582
8521
  }
8583
8522
  function select_last_shape() {
8584
8523
  if (applianceShapes.includes(last_shape)) {
8585
- app == null ? void 0 : app.setAppliance(last_shape);
8524
+ app?.setAppliance(last_shape);
8586
8525
  } else {
8587
- app == null ? void 0 : app.setAppliance("shape", last_shape);
8526
+ app?.setAppliance("shape", last_shape);
8588
8527
  }
8589
8528
  }
8590
8529
  function eraser() {
8591
- app == null ? void 0 : app.setAppliance("eraser");
8530
+ app?.setAppliance("eraser");
8592
8531
  }
8593
8532
  function clear() {
8594
- app == null ? void 0 : app.cleanCurrentScene();
8533
+ app?.cleanCurrentScene();
8595
8534
  }
8596
8535
  function div2_binding($$value) {
8597
8536
  binding_callbacks[$$value ? "unshift" : "push"](() => {
@@ -8648,28 +8587,28 @@ function instance54($$self, $$props, $$invalidate) {
8648
8587
  $$invalidate(9, t = i18n4[language]);
8649
8588
  }
8650
8589
  if ($$self.$$.dirty[0] & 1) {
8651
- $$invalidate(32, hotkeys = app == null ? void 0 : app.hotKeys);
8590
+ $$invalidate(32, hotkeys = app?.hotKeys);
8652
8591
  }
8653
8592
  if ($$self.$$.dirty[0] & 512 | $$self.$$.dirty[1] & 2) {
8654
8593
  $$invalidate(18, c = {
8655
- clicker: tooltip(t.clicker, hotkeys == null ? void 0 : hotkeys.changeToClick),
8656
- selector: tooltip(t.selector, hotkeys == null ? void 0 : hotkeys.changeToSelector),
8657
- pencil: tooltip(t.pencil, hotkeys == null ? void 0 : hotkeys.changeToPencil),
8658
- eraser: tooltip(t.eraser, hotkeys == null ? void 0 : hotkeys.changeToEraser),
8659
- text: tooltip(t.text, hotkeys == null ? void 0 : hotkeys.changeToText)
8594
+ clicker: tooltip(t.clicker, hotkeys?.changeToClick),
8595
+ selector: tooltip(t.selector, hotkeys?.changeToSelector),
8596
+ pencil: tooltip(t.pencil, hotkeys?.changeToPencil),
8597
+ eraser: tooltip(t.eraser, hotkeys?.changeToEraser),
8598
+ text: tooltip(t.text, hotkeys?.changeToText)
8660
8599
  });
8661
8600
  }
8662
8601
  if ($$self.$$.dirty[0] & 1) {
8663
- $$subscribe_memberState($$invalidate(17, memberState = app == null ? void 0 : app.memberState));
8602
+ $$subscribe_memberState($$invalidate(17, memberState = app?.memberState));
8664
8603
  }
8665
8604
  if ($$self.$$.dirty[1] & 8) {
8666
- $$invalidate(8, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
8605
+ $$invalidate(8, appliance = $memberState?.currentApplianceName);
8667
8606
  }
8668
8607
  if ($$self.$$.dirty[1] & 8) {
8669
- $$invalidate(7, shape = $memberState == null ? void 0 : $memberState.shapeType);
8608
+ $$invalidate(7, shape = $memberState?.shapeType);
8670
8609
  }
8671
8610
  if ($$self.$$.dirty[0] & 1) {
8672
- $$subscribe_status($$invalidate(16, status = app == null ? void 0 : app.appsStatus));
8611
+ $$subscribe_status($$invalidate(16, status = app?.appsStatus));
8673
8612
  }
8674
8613
  if ($$self.$$.dirty[0] & 384) {
8675
8614
  if (applianceShapes.includes(appliance)) {
@@ -8727,16 +8666,25 @@ function instance54($$self, $$props, $$invalidate) {
8727
8666
  var Contents = class extends SvelteComponent {
8728
8667
  constructor(options) {
8729
8668
  super();
8730
- init(this, options, instance54, create_fragment54, safe_not_equal, {
8731
- app: 0,
8732
- theme: 1,
8733
- language: 2,
8734
- disabled: 3,
8735
- scroll_height: 4,
8736
- computed_height: 31,
8737
- scrollable: 5,
8738
- hide_apps: 6
8739
- }, null, [-1, -1]);
8669
+ init(
8670
+ this,
8671
+ options,
8672
+ instance54,
8673
+ create_fragment54,
8674
+ safe_not_equal,
8675
+ {
8676
+ app: 0,
8677
+ theme: 1,
8678
+ language: 2,
8679
+ disabled: 3,
8680
+ scroll_height: 4,
8681
+ computed_height: 31,
8682
+ scrollable: 5,
8683
+ hide_apps: 6
8684
+ },
8685
+ null,
8686
+ [-1, -1]
8687
+ );
8740
8688
  }
8741
8689
  };
8742
8690
  var Contents_default = Contents;
@@ -8848,7 +8796,12 @@ function create_fragment55(ctx) {
8848
8796
  path1 = svg_element("path");
8849
8797
  if_block.c();
8850
8798
  attr(div0, "class", div0_class_value = name6 + "-contents " + ctx[1]);
8851
- set_style(div0, "height", ctx[5] ? ctx[6] + "px" : "auto", false);
8799
+ set_style(
8800
+ div0,
8801
+ "height",
8802
+ ctx[5] ? ctx[6] + "px" : "auto",
8803
+ false
8804
+ );
8852
8805
  attr(input, "type", "checkbox");
8853
8806
  attr(path0, "fill", "#fff");
8854
8807
  attr(path0, "stroke", "none");
@@ -8907,7 +8860,12 @@ function create_fragment55(ctx) {
8907
8860
  attr(div0, "class", div0_class_value);
8908
8861
  }
8909
8862
  if (dirty & 96) {
8910
- set_style(div0, "height", ctx2[5] ? ctx2[6] + "px" : "auto", false);
8863
+ set_style(
8864
+ div0,
8865
+ "height",
8866
+ ctx2[5] ? ctx2[6] + "px" : "auto",
8867
+ false
8868
+ );
8911
8869
  }
8912
8870
  if (dirty & 8) {
8913
8871
  input.checked = ctx2[3];
@@ -8988,9 +8946,8 @@ function instance55($$self, $$props, $$invalidate) {
8988
8946
  $$invalidate(11, config = $$props2.config);
8989
8947
  };
8990
8948
  $$self.$$.update = () => {
8991
- var _a;
8992
8949
  if ($$self.$$.dirty & 1) {
8993
- $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
8950
+ $$subscribe_writable($$invalidate(8, writable2 = app?.writable));
8994
8951
  }
8995
8952
  if ($$self.$$.dirty & 16384) {
8996
8953
  $$invalidate(7, disabled = !$writable);
@@ -9002,7 +8959,7 @@ function instance55($$self, $$props, $$invalidate) {
9002
8959
  $$invalidate(5, scrollable = $scroll_height + extra_height > $container_height);
9003
8960
  }
9004
8961
  if ($$self.$$.dirty & 2048) {
9005
- $$invalidate(4, hide_apps = ((_a = config.apps) == null ? void 0 : _a.enable) === false);
8962
+ $$invalidate(4, hide_apps = config.apps?.enable === false);
9006
8963
  }
9007
8964
  };
9008
8965
  return [
@@ -9044,12 +9001,11 @@ function get_each_context5(ctx, list, i) {
9044
9001
  return child_ctx;
9045
9002
  }
9046
9003
  function create_else_block_13(ctx) {
9047
- var _a;
9048
9004
  let icon;
9049
9005
  let current;
9050
9006
  icon = new Icon_default({
9051
9007
  props: {
9052
- src: (_a = ctx[1]) == null ? void 0 : _a.play[ctx[5]],
9008
+ src: ctx[1]?.play[ctx[5]],
9053
9009
  alt: "[play]",
9054
9010
  $$slots: { default: [create_default_slot_54] },
9055
9011
  $$scope: { ctx }
@@ -9064,10 +9020,9 @@ function create_else_block_13(ctx) {
9064
9020
  current = true;
9065
9021
  },
9066
9022
  p(ctx2, dirty) {
9067
- var _a2;
9068
9023
  const icon_changes = {};
9069
9024
  if (dirty & 34)
9070
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.play[ctx2[5]];
9025
+ icon_changes.src = ctx2[1]?.play[ctx2[5]];
9071
9026
  if (dirty & 268435457) {
9072
9027
  icon_changes.$$scope = { dirty, ctx: ctx2 };
9073
9028
  }
@@ -9089,12 +9044,11 @@ function create_else_block_13(ctx) {
9089
9044
  };
9090
9045
  }
9091
9046
  function create_if_block_22(ctx) {
9092
- var _a;
9093
9047
  let icon;
9094
9048
  let current;
9095
9049
  icon = new Icon_default({
9096
9050
  props: {
9097
- src: (_a = ctx[1]) == null ? void 0 : _a.pause[ctx[5]],
9051
+ src: ctx[1]?.pause[ctx[5]],
9098
9052
  alt: "[pause]",
9099
9053
  $$slots: { default: [create_default_slot_44] },
9100
9054
  $$scope: { ctx }
@@ -9109,10 +9063,9 @@ function create_if_block_22(ctx) {
9109
9063
  current = true;
9110
9064
  },
9111
9065
  p(ctx2, dirty) {
9112
- var _a2;
9113
9066
  const icon_changes = {};
9114
9067
  if (dirty & 34)
9115
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.pause[ctx2[5]];
9068
+ icon_changes.src = ctx2[1]?.pause[ctx2[5]];
9116
9069
  if (dirty & 268435457) {
9117
9070
  icon_changes.$$scope = { dirty, ctx: ctx2 };
9118
9071
  }
@@ -9134,12 +9087,11 @@ function create_if_block_22(ctx) {
9134
9087
  };
9135
9088
  }
9136
9089
  function create_if_block_13(ctx) {
9137
- var _a;
9138
9090
  let icon;
9139
9091
  let current;
9140
9092
  icon = new Icon_default({
9141
9093
  props: {
9142
- src: (_a = ctx[1]) == null ? void 0 : _a.loading[ctx[5]],
9094
+ src: ctx[1]?.loading[ctx[5]],
9143
9095
  alt: "[loading]",
9144
9096
  $$slots: { default: [create_default_slot_35] },
9145
9097
  $$scope: { ctx }
@@ -9154,10 +9106,9 @@ function create_if_block_13(ctx) {
9154
9106
  current = true;
9155
9107
  },
9156
9108
  p(ctx2, dirty) {
9157
- var _a2;
9158
9109
  const icon_changes = {};
9159
9110
  if (dirty & 34)
9160
- icon_changes.src = (_a2 = ctx2[1]) == null ? void 0 : _a2.loading[ctx2[5]];
9111
+ icon_changes.src = ctx2[1]?.loading[ctx2[5]];
9161
9112
  if (dirty & 268435457) {
9162
9113
  icon_changes.$$scope = { dirty, ctx: ctx2 };
9163
9114
  }
@@ -9866,7 +9817,7 @@ function instance56($$self, $$props, $$invalidate) {
9866
9817
  $$invalidate(12, t = i18n6[language]);
9867
9818
  }
9868
9819
  if ($$self.$$.dirty & 524288) {
9869
- $$invalidate(21, canPlay = player == null ? void 0 : player.canplay);
9820
+ $$invalidate(21, canPlay = player?.canplay);
9870
9821
  }
9871
9822
  if ($$self.$$.dirty & 2097152) {
9872
9823
  $$invalidate(4, disabled = !canPlay);
@@ -9875,16 +9826,16 @@ function instance56($$self, $$props, $$invalidate) {
9875
9826
  $$invalidate(5, type = disabled ? "disable" : "normal");
9876
9827
  }
9877
9828
  if ($$self.$$.dirty & 524288) {
9878
- $$subscribe_duration($$invalidate(11, duration = player == null ? void 0 : player.duration));
9829
+ $$subscribe_duration($$invalidate(11, duration = player?.duration));
9879
9830
  }
9880
9831
  if ($$self.$$.dirty & 524288) {
9881
- $$subscribe_current($$invalidate(10, current = player == null ? void 0 : player.currentTime));
9832
+ $$subscribe_current($$invalidate(10, current = player?.currentTime));
9882
9833
  }
9883
9834
  if ($$self.$$.dirty & 524288) {
9884
- $$subscribe_playbackRate($$invalidate(9, playbackRate = player == null ? void 0 : player.playbackRate));
9835
+ $$subscribe_playbackRate($$invalidate(9, playbackRate = player?.playbackRate));
9885
9836
  }
9886
9837
  if ($$self.$$.dirty & 524288) {
9887
- $$subscribe_phase($$invalidate(8, phase = player == null ? void 0 : player.phase));
9838
+ $$subscribe_phase($$invalidate(8, phase = player?.phase));
9888
9839
  }
9889
9840
  if ($$self.$$.dirty & 4194304) {
9890
9841
  $$invalidate(3, loading = $phase === "waitingFirstFrame" || $phase === "buffering");
@@ -9938,29 +9889,69 @@ var PlayerControl = class extends SvelteComponent {
9938
9889
  var PlayerControl_default = PlayerControl;
9939
9890
 
9940
9891
  // src/components/Fastboard/ReplayFastboard.svelte
9941
- function create_fragment57(ctx) {
9942
- let div2;
9943
- let div0;
9944
- let t;
9945
- let div1;
9892
+ function create_if_block9(ctx) {
9946
9893
  let playercontrol;
9947
9894
  let current;
9948
- let mounted;
9949
- let dispose;
9950
9895
  playercontrol = new PlayerControl_default({
9951
9896
  props: {
9952
9897
  player: ctx[0],
9953
9898
  theme: ctx[1],
9954
- language: ctx[2]
9899
+ language: ctx[2],
9900
+ icons: ctx[3].player_control?.icons
9955
9901
  }
9956
9902
  });
9903
+ return {
9904
+ c() {
9905
+ create_component(playercontrol.$$.fragment);
9906
+ },
9907
+ m(target, anchor) {
9908
+ mount_component(playercontrol, target, anchor);
9909
+ current = true;
9910
+ },
9911
+ p(ctx2, dirty) {
9912
+ const playercontrol_changes = {};
9913
+ if (dirty & 1)
9914
+ playercontrol_changes.player = ctx2[0];
9915
+ if (dirty & 2)
9916
+ playercontrol_changes.theme = ctx2[1];
9917
+ if (dirty & 4)
9918
+ playercontrol_changes.language = ctx2[2];
9919
+ if (dirty & 8)
9920
+ playercontrol_changes.icons = ctx2[3].player_control?.icons;
9921
+ playercontrol.$set(playercontrol_changes);
9922
+ },
9923
+ i(local) {
9924
+ if (current)
9925
+ return;
9926
+ transition_in(playercontrol.$$.fragment, local);
9927
+ current = true;
9928
+ },
9929
+ o(local) {
9930
+ transition_out(playercontrol.$$.fragment, local);
9931
+ current = false;
9932
+ },
9933
+ d(detaching) {
9934
+ destroy_component(playercontrol, detaching);
9935
+ }
9936
+ };
9937
+ }
9938
+ function create_fragment57(ctx) {
9939
+ let div2;
9940
+ let div0;
9941
+ let t;
9942
+ let div1;
9943
+ let current;
9944
+ let mounted;
9945
+ let dispose;
9946
+ let if_block = ctx[3].player_control?.enable !== false && create_if_block9(ctx);
9957
9947
  return {
9958
9948
  c() {
9959
9949
  div2 = element("div");
9960
9950
  div0 = element("div");
9961
9951
  t = space();
9962
9952
  div1 = element("div");
9963
- create_component(playercontrol.$$.fragment);
9953
+ if (if_block)
9954
+ if_block.c();
9964
9955
  attr(div0, "class", name8 + "-view");
9965
9956
  attr(div1, "class", name8 + "-bottom");
9966
9957
  attr(div2, "class", name8 + "-root");
@@ -9969,25 +9960,37 @@ function create_fragment57(ctx) {
9969
9960
  m(target, anchor) {
9970
9961
  insert(target, div2, anchor);
9971
9962
  append(div2, div0);
9972
- ctx[7](div0);
9963
+ ctx[8](div0);
9973
9964
  append(div2, t);
9974
9965
  append(div2, div1);
9975
- mount_component(playercontrol, div1, null);
9966
+ if (if_block)
9967
+ if_block.m(div1, null);
9976
9968
  current = true;
9977
9969
  if (!mounted) {
9978
- dispose = listen(div0, "touchstart", ctx[4], { passive: true, capture: true });
9970
+ dispose = listen(div0, "touchstart", ctx[5], { passive: true, capture: true });
9979
9971
  mounted = true;
9980
9972
  }
9981
9973
  },
9982
9974
  p(ctx2, [dirty]) {
9983
- const playercontrol_changes = {};
9984
- if (dirty & 1)
9985
- playercontrol_changes.player = ctx2[0];
9986
- if (dirty & 2)
9987
- playercontrol_changes.theme = ctx2[1];
9988
- if (dirty & 4)
9989
- playercontrol_changes.language = ctx2[2];
9990
- playercontrol.$set(playercontrol_changes);
9975
+ if (ctx2[3].player_control?.enable !== false) {
9976
+ if (if_block) {
9977
+ if_block.p(ctx2, dirty);
9978
+ if (dirty & 8) {
9979
+ transition_in(if_block, 1);
9980
+ }
9981
+ } else {
9982
+ if_block = create_if_block9(ctx2);
9983
+ if_block.c();
9984
+ transition_in(if_block, 1);
9985
+ if_block.m(div1, null);
9986
+ }
9987
+ } else if (if_block) {
9988
+ group_outros();
9989
+ transition_out(if_block, 1, 1, () => {
9990
+ if_block = null;
9991
+ });
9992
+ check_outros();
9993
+ }
9991
9994
  if (dirty & 1) {
9992
9995
  toggle_class(div2, "loading", !ctx2[0]);
9993
9996
  }
@@ -9995,18 +9998,19 @@ function create_fragment57(ctx) {
9995
9998
  i(local) {
9996
9999
  if (current)
9997
10000
  return;
9998
- transition_in(playercontrol.$$.fragment, local);
10001
+ transition_in(if_block);
9999
10002
  current = true;
10000
10003
  },
10001
10004
  o(local) {
10002
- transition_out(playercontrol.$$.fragment, local);
10005
+ transition_out(if_block);
10003
10006
  current = false;
10004
10007
  },
10005
10008
  d(detaching) {
10006
10009
  if (detaching)
10007
10010
  detach(div2);
10008
- ctx[7](null);
10009
- destroy_component(playercontrol);
10011
+ ctx[8](null);
10012
+ if (if_block)
10013
+ if_block.d();
10010
10014
  mounted = false;
10011
10015
  dispose();
10012
10016
  }
@@ -10017,6 +10021,7 @@ function instance57($$self, $$props, $$invalidate) {
10017
10021
  let { player = null } = $$props;
10018
10022
  let { theme = "light" } = $$props;
10019
10023
  let { language = "en" } = $$props;
10024
+ let { config = {} } = $$props;
10020
10025
  let { containerRef = void 0 } = $$props;
10021
10026
  let container;
10022
10027
  let mounted = false;
@@ -10037,7 +10042,7 @@ function instance57($$self, $$props, $$invalidate) {
10037
10042
  function div0_binding($$value) {
10038
10043
  binding_callbacks[$$value ? "unshift" : "push"](() => {
10039
10044
  container = $$value;
10040
- $$invalidate(3, container);
10045
+ $$invalidate(4, container);
10041
10046
  });
10042
10047
  }
10043
10048
  $$self.$$set = ($$props2) => {
@@ -10047,22 +10052,24 @@ function instance57($$self, $$props, $$invalidate) {
10047
10052
  $$invalidate(1, theme = $$props2.theme);
10048
10053
  if ("language" in $$props2)
10049
10054
  $$invalidate(2, language = $$props2.language);
10055
+ if ("config" in $$props2)
10056
+ $$invalidate(3, config = $$props2.config);
10050
10057
  if ("containerRef" in $$props2)
10051
- $$invalidate(5, containerRef = $$props2.containerRef);
10058
+ $$invalidate(6, containerRef = $$props2.containerRef);
10052
10059
  };
10053
10060
  $$self.$$.update = () => {
10054
- if ($$self.$$.dirty & 9) {
10061
+ if ($$self.$$.dirty & 17) {
10055
10062
  try {
10056
10063
  if (player && container) {
10057
10064
  player.bindContainer(container);
10058
- $$invalidate(6, mounted = true);
10065
+ $$invalidate(7, mounted = true);
10059
10066
  }
10060
10067
  } catch (err) {
10061
10068
  console.error("[fastboard] An error occurred while binding container");
10062
10069
  console.error(err);
10063
10070
  }
10064
10071
  }
10065
- if ($$self.$$.dirty & 67) {
10072
+ if ($$self.$$.dirty & 131) {
10066
10073
  if (player && theme && mounted) {
10067
10074
  player.manager.setPrefersColorScheme(theme);
10068
10075
  }
@@ -10072,6 +10079,7 @@ function instance57($$self, $$props, $$invalidate) {
10072
10079
  player,
10073
10080
  theme,
10074
10081
  language,
10082
+ config,
10075
10083
  container,
10076
10084
  focus_me,
10077
10085
  containerRef,
@@ -10086,7 +10094,8 @@ var ReplayFastboard = class extends SvelteComponent {
10086
10094
  player: 0,
10087
10095
  theme: 1,
10088
10096
  language: 2,
10089
- containerRef: 5
10097
+ config: 3,
10098
+ containerRef: 6
10090
10099
  });
10091
10100
  }
10092
10101
  };
@@ -10146,7 +10155,8 @@ function create_if_block_23(ctx) {
10146
10155
  props: {
10147
10156
  app: ctx[0],
10148
10157
  theme: ctx[1],
10149
- language: ctx[2]
10158
+ language: ctx[2],
10159
+ icons: ctx[3].redo_undo?.icons
10150
10160
  }
10151
10161
  });
10152
10162
  return {
@@ -10165,6 +10175,8 @@ function create_if_block_23(ctx) {
10165
10175
  redoundo_changes.theme = ctx2[1];
10166
10176
  if (dirty & 4)
10167
10177
  redoundo_changes.language = ctx2[2];
10178
+ if (dirty & 8)
10179
+ redoundo_changes.icons = ctx2[3].redo_undo?.icons;
10168
10180
  redoundo.$set(redoundo_changes);
10169
10181
  },
10170
10182
  i(local) {
@@ -10189,7 +10201,8 @@ function create_if_block_14(ctx) {
10189
10201
  props: {
10190
10202
  app: ctx[0],
10191
10203
  theme: ctx[1],
10192
- language: ctx[2]
10204
+ language: ctx[2],
10205
+ icons: ctx[3].zoom_control?.icons
10193
10206
  }
10194
10207
  });
10195
10208
  return {
@@ -10208,6 +10221,8 @@ function create_if_block_14(ctx) {
10208
10221
  zoomcontrol_changes.theme = ctx2[1];
10209
10222
  if (dirty & 4)
10210
10223
  zoomcontrol_changes.language = ctx2[2];
10224
+ if (dirty & 8)
10225
+ zoomcontrol_changes.icons = ctx2[3].zoom_control?.icons;
10211
10226
  zoomcontrol.$set(zoomcontrol_changes);
10212
10227
  },
10213
10228
  i(local) {
@@ -10225,14 +10240,15 @@ function create_if_block_14(ctx) {
10225
10240
  }
10226
10241
  };
10227
10242
  }
10228
- function create_if_block9(ctx) {
10243
+ function create_if_block10(ctx) {
10229
10244
  let pagecontrol;
10230
10245
  let current;
10231
10246
  pagecontrol = new PageControl_default({
10232
10247
  props: {
10233
10248
  app: ctx[0],
10234
10249
  theme: ctx[1],
10235
- language: ctx[2]
10250
+ language: ctx[2],
10251
+ icons: ctx[3].page_control?.icons
10236
10252
  }
10237
10253
  });
10238
10254
  return {
@@ -10251,6 +10267,8 @@ function create_if_block9(ctx) {
10251
10267
  pagecontrol_changes.theme = ctx2[1];
10252
10268
  if (dirty & 4)
10253
10269
  pagecontrol_changes.language = ctx2[2];
10270
+ if (dirty & 8)
10271
+ pagecontrol_changes.icons = ctx2[3].page_control?.icons;
10254
10272
  pagecontrol.$set(pagecontrol_changes);
10255
10273
  },
10256
10274
  i(local) {
@@ -10269,7 +10287,6 @@ function create_if_block9(ctx) {
10269
10287
  };
10270
10288
  }
10271
10289
  function create_fragment58(ctx) {
10272
- var _a, _b, _c, _d;
10273
10290
  let div4;
10274
10291
  let div0;
10275
10292
  let t0;
@@ -10282,10 +10299,10 @@ function create_fragment58(ctx) {
10282
10299
  let current;
10283
10300
  let mounted;
10284
10301
  let dispose;
10285
- let if_block0 = ((_a = ctx[3].toolbar) == null ? void 0 : _a.enable) !== false && create_if_block_32(ctx);
10286
- let if_block1 = ((_b = ctx[3].redo_undo) == null ? void 0 : _b.enable) !== false && create_if_block_23(ctx);
10287
- let if_block2 = ((_c = ctx[3].zoom_control) == null ? void 0 : _c.enable) !== false && create_if_block_14(ctx);
10288
- let if_block3 = ((_d = ctx[3].page_control) == null ? void 0 : _d.enable) !== false && create_if_block9(ctx);
10302
+ let if_block0 = ctx[3].toolbar?.enable !== false && create_if_block_32(ctx);
10303
+ let if_block1 = ctx[3].redo_undo?.enable !== false && create_if_block_23(ctx);
10304
+ let if_block2 = ctx[3].zoom_control?.enable !== false && create_if_block_14(ctx);
10305
+ let if_block3 = ctx[3].page_control?.enable !== false && create_if_block10(ctx);
10289
10306
  return {
10290
10307
  c() {
10291
10308
  div4 = element("div");
@@ -10341,8 +10358,7 @@ function create_fragment58(ctx) {
10341
10358
  }
10342
10359
  },
10343
10360
  p(ctx2, [dirty]) {
10344
- var _a2, _b2, _c2, _d2;
10345
- if (((_a2 = ctx2[3].toolbar) == null ? void 0 : _a2.enable) !== false) {
10361
+ if (ctx2[3].toolbar?.enable !== false) {
10346
10362
  if (if_block0) {
10347
10363
  if_block0.p(ctx2, dirty);
10348
10364
  if (dirty & 8) {
@@ -10364,7 +10380,7 @@ function create_fragment58(ctx) {
10364
10380
  if (dirty & 32) {
10365
10381
  toggle_class(div1, "hidden", !(ctx2[5] === "visible" || ctx2[5] === "toolbar-only"));
10366
10382
  }
10367
- if (((_b2 = ctx2[3].redo_undo) == null ? void 0 : _b2.enable) !== false) {
10383
+ if (ctx2[3].redo_undo?.enable !== false) {
10368
10384
  if (if_block1) {
10369
10385
  if_block1.p(ctx2, dirty);
10370
10386
  if (dirty & 8) {
@@ -10383,7 +10399,7 @@ function create_fragment58(ctx) {
10383
10399
  });
10384
10400
  check_outros();
10385
10401
  }
10386
- if (((_c2 = ctx2[3].zoom_control) == null ? void 0 : _c2.enable) !== false) {
10402
+ if (ctx2[3].zoom_control?.enable !== false) {
10387
10403
  if (if_block2) {
10388
10404
  if_block2.p(ctx2, dirty);
10389
10405
  if (dirty & 8) {
@@ -10405,14 +10421,14 @@ function create_fragment58(ctx) {
10405
10421
  if (dirty & 32) {
10406
10422
  toggle_class(div2, "hidden", ctx2[5] !== "visible");
10407
10423
  }
10408
- if (((_d2 = ctx2[3].page_control) == null ? void 0 : _d2.enable) !== false) {
10424
+ if (ctx2[3].page_control?.enable !== false) {
10409
10425
  if (if_block3) {
10410
10426
  if_block3.p(ctx2, dirty);
10411
10427
  if (dirty & 8) {
10412
10428
  transition_in(if_block3, 1);
10413
10429
  }
10414
10430
  } else {
10415
- if_block3 = create_if_block9(ctx2);
10431
+ if_block3 = create_if_block10(ctx2);
10416
10432
  if_block3.c();
10417
10433
  transition_in(if_block3, 1);
10418
10434
  if_block3.m(div3, null);
@@ -10518,13 +10534,13 @@ function instance58($$self, $$props, $$invalidate) {
10518
10534
  };
10519
10535
  $$self.$$.update = () => {
10520
10536
  if ($$self.$$.dirty & 1) {
10521
- $$subscribe_writable($$invalidate(8, writable2 = app == null ? void 0 : app.writable));
10537
+ $$subscribe_writable($$invalidate(8, writable2 = app?.writable));
10522
10538
  }
10523
10539
  if ($$self.$$.dirty & 1) {
10524
- $$subscribe_boxState($$invalidate(7, boxState = app == null ? void 0 : app.boxState));
10540
+ $$subscribe_boxState($$invalidate(7, boxState = app?.boxState));
10525
10541
  }
10526
10542
  if ($$self.$$.dirty & 1) {
10527
- $$subscribe_focusedApp($$invalidate(6, focusedApp = app == null ? void 0 : app.focusedApp));
10543
+ $$subscribe_focusedApp($$invalidate(6, focusedApp = app?.focusedApp));
10528
10544
  }
10529
10545
  if ($$self.$$.dirty & 28672) {
10530
10546
  if (!$writable) {
@@ -10592,72 +10608,79 @@ var Fastboard_default = Fastboard;
10592
10608
  // src/helpers/index.ts
10593
10609
  function createUI(app, div) {
10594
10610
  let fastboard;
10595
- const ui = {
10596
- mount(div2, props) {
10597
- if (fastboard) {
10598
- fastboard.$destroy();
10599
- }
10600
- fastboard = new Fastboard_default({ target: div2, props: __spreadValues({ app }, props) });
10601
- return ui;
10602
- },
10603
- update(props) {
10604
- if (fastboard) {
10605
- fastboard.$set(props);
10606
- }
10607
- },
10608
- destroy() {
10609
- if (fastboard) {
10610
- fastboard.$destroy();
10611
- }
10612
- fastboard = void 0;
10611
+ function mount(div2, props) {
10612
+ if (fastboard) {
10613
+ fastboard.$destroy();
10613
10614
  }
10614
- };
10615
+ fastboard = new Fastboard_default({ target: div2, props: { app, ...props } });
10616
+ return ui;
10617
+ }
10618
+ function update2(props) {
10619
+ if (fastboard) {
10620
+ fastboard.$set(props);
10621
+ }
10622
+ }
10623
+ function destroy() {
10624
+ if (fastboard) {
10625
+ fastboard.$destroy();
10626
+ }
10627
+ fastboard = void 0;
10628
+ }
10629
+ function setElement(div2) {
10630
+ if (div2) {
10631
+ mount(div2);
10632
+ } else {
10633
+ destroy();
10634
+ }
10635
+ }
10636
+ const ui = { mount, update: update2, destroy, setElement };
10615
10637
  if (div) {
10616
- ui.mount(div, { app });
10638
+ mount(div, { app });
10617
10639
  }
10618
10640
  return ui;
10619
10641
  }
10620
10642
  function createReplayUI(player, div) {
10621
10643
  let fastboard;
10622
- const ui = {
10623
- mount(div2, props) {
10624
- if (fastboard) {
10625
- fastboard.$destroy();
10626
- }
10627
- fastboard = new ReplayFastboard_default({ target: div2, props: __spreadValues({ player }, props) });
10628
- return ui;
10629
- },
10630
- update(props) {
10631
- if (fastboard) {
10632
- fastboard.$set(props);
10633
- }
10634
- },
10635
- destroy() {
10636
- if (fastboard) {
10637
- fastboard.$destroy();
10638
- }
10639
- fastboard = void 0;
10644
+ function mount(div2, props) {
10645
+ if (fastboard) {
10646
+ fastboard.$destroy();
10640
10647
  }
10641
- };
10648
+ fastboard = new ReplayFastboard_default({ target: div2, props: { player, ...props } });
10649
+ return ui;
10650
+ }
10651
+ function update2(props) {
10652
+ if (fastboard) {
10653
+ fastboard.$set(props);
10654
+ }
10655
+ }
10656
+ function destroy() {
10657
+ if (fastboard) {
10658
+ fastboard.$destroy();
10659
+ }
10660
+ fastboard = void 0;
10661
+ }
10662
+ function setElement(div2) {
10663
+ if (div2) {
10664
+ mount(div2);
10665
+ } else {
10666
+ destroy();
10667
+ }
10668
+ }
10669
+ const ui = { mount, update: update2, destroy, setElement };
10642
10670
  if (div) {
10643
- ui.mount(div, { player });
10671
+ mount(div, { player });
10644
10672
  }
10645
10673
  return ui;
10646
10674
  }
10647
10675
 
10648
- // inline-sass-helper:inline-sass-style-helper.js
10649
- function injectStyle(text2) {
10650
- if (typeof document !== "undefined") {
10651
- var style = document.createElement("style");
10652
- var node = document.createTextNode(text2);
10653
- style.appendChild(node);
10654
- document.head.appendChild(style);
10655
- }
10656
- }
10657
-
10658
- // inline-sass-content:./src/style.scss
10659
- 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}';
10660
-
10661
- // inline-sass-stub:./src/style.scss
10662
- injectStyle(style_default);
10676
+ exports.Fastboard = Fastboard_default;
10677
+ exports.PageControl = PageControl_default;
10678
+ exports.PlayerControl = PlayerControl_default;
10679
+ exports.RedoUndo = RedoUndo_default;
10680
+ exports.ReplayFastboard = ReplayFastboard_default;
10681
+ exports.Toolbar = Toolbar_default;
10682
+ exports.ZoomControl = ZoomControl_default;
10683
+ exports.apps = apps;
10684
+ exports.createReplayUI = createReplayUI;
10685
+ exports.createUI = createUI;
10663
10686
  //# sourceMappingURL=index.js.map