@netless/fastboard-ui 0.3.22 → 0.3.23-beta.1

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.
@@ -39,7 +39,7 @@ function injectStyle(text4) {
39
39
  }
40
40
 
41
41
  // inline-sass-content:./src/style.scss
42
- 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-right .fastboard-toolbar-triangle{right:auto;left:0;border-left:0;border-right:4px solid rgba(0,0,0,0)}.fastboard-right .fastboard-toolbar.collapsed{transform:translate(100%)}.fastboard-right .fastboard-toolbar-handler{left:auto;right:100%;transform:rotate(180deg)}.fastboard-root{position:relative;width:100%;height:100%;overflow:hidden}.fastboard-view{position:absolute;top:0;left:0;width:100%;height:100%}.fastboard-left,.fastboard-right{display:flex;align-items:center;position:absolute;bottom:62px;top:8px;left:0;z-index:200;pointer-events:none}.fastboard-left .fastboard-toolbar,.fastboard-right .fastboard-toolbar{padding-left:16px}.fastboard-right{left:auto;right:0}.fastboard-right .fastboard-toolbar{padding-left:0;padding-right: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 *,.hidden.fastboard-right *,.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}';
42
+ 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-switch-pencil{display:flex}.fastboard-toolbar-panel-switch-btn{width:24px;height:24px}.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-right .fastboard-toolbar-triangle{right:auto;left:0;border-left:0;border-right:4px solid rgba(0,0,0,0)}.fastboard-right .fastboard-toolbar.collapsed{transform:translate(100%)}.fastboard-right .fastboard-toolbar-handler{left:auto;right:100%;transform:rotate(180deg)}.fastboard-root{position:relative;width:100%;height:100%;overflow:hidden}.fastboard-view{position:absolute;top:0;left:0;width:100%;height:100%}.fastboard-left,.fastboard-right{display:flex;align-items:center;position:absolute;bottom:62px;top:8px;left:0;z-index:200;pointer-events:none}.fastboard-left .fastboard-toolbar,.fastboard-right .fastboard-toolbar{padding-left:16px}.fastboard-right{left:auto;right:0}.fastboard-right .fastboard-toolbar{padding-left:0;padding-right: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 *,.hidden.fastboard-right *,.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}';
43
43
 
44
44
  // inline-sass-stub:./src/style.scss
45
45
  injectStyle(style_default);
@@ -3685,6 +3685,166 @@ var Loading = class extends SvelteComponent {
3685
3685
  }
3686
3686
  };
3687
3687
  var Loading_default = Loading;
3688
+ function create_fragment49(ctx) {
3689
+ let svg;
3690
+ let g;
3691
+ let path0;
3692
+ let path1;
3693
+ let svg_class_value;
3694
+ return {
3695
+ c() {
3696
+ svg = svg_element("svg");
3697
+ g = svg_element("g");
3698
+ path0 = svg_element("path");
3699
+ path1 = svg_element("path");
3700
+ attr(path0, "class", "fastboard-icon-stroke-color");
3701
+ attr(path0, "clip-rule", "evenodd");
3702
+ attr(path0, "d", "m9.644 13.69 7.774-7.773a2.357 2.357 0 0 0-3.334-3.334l-7.773 7.774L8 12l1.643 1.69Z");
3703
+ attr(path1, "class", "fastboard-icon-stroke-color");
3704
+ attr(path1, "d", "m13.25 3.417 3.333 3.333M10 10l2-2M5 15l3-3M2.156 17.894l1-1M5.453 19.029l-.144-1.407M2.377 11.887l.866 1.118M8.354 17.273l-1.194-.758M.953 14.652l1.408.13");
3705
+ attr(g, "stroke-width", "1.25");
3706
+ attr(g, "stroke-linecap", "round");
3707
+ attr(g, "stroke-linejoin", "round");
3708
+ attr(g, "transform", "rotate(0 10 10)");
3709
+ attr(svg, "fill", "none");
3710
+ attr(svg, "viewBox", "0 0 24 24");
3711
+ attr(svg, "class", svg_class_value = "fastboard-icon " + /*theme*/
3712
+ ctx[0]);
3713
+ toggle_class(
3714
+ svg,
3715
+ "is-active",
3716
+ /*active*/
3717
+ ctx[1]
3718
+ );
3719
+ },
3720
+ m(target, anchor) {
3721
+ insert(target, svg, anchor);
3722
+ append(svg, g);
3723
+ append(g, path0);
3724
+ append(g, path1);
3725
+ },
3726
+ p(ctx2, [dirty]) {
3727
+ if (dirty & /*theme*/
3728
+ 1 && svg_class_value !== (svg_class_value = "fastboard-icon " + /*theme*/
3729
+ ctx2[0])) {
3730
+ attr(svg, "class", svg_class_value);
3731
+ }
3732
+ if (dirty & /*theme, active*/
3733
+ 3) {
3734
+ toggle_class(
3735
+ svg,
3736
+ "is-active",
3737
+ /*active*/
3738
+ ctx2[1]
3739
+ );
3740
+ }
3741
+ },
3742
+ i: noop,
3743
+ o: noop,
3744
+ d(detaching) {
3745
+ if (detaching)
3746
+ detach(svg);
3747
+ }
3748
+ };
3749
+ }
3750
+ function instance49($$self, $$props, $$invalidate) {
3751
+ let { theme = "light" } = $$props;
3752
+ let { active = false } = $$props;
3753
+ $$self.$$set = ($$props2) => {
3754
+ if ("theme" in $$props2)
3755
+ $$invalidate(0, theme = $$props2.theme);
3756
+ if ("active" in $$props2)
3757
+ $$invalidate(1, active = $$props2.active);
3758
+ };
3759
+ return [theme, active];
3760
+ }
3761
+ var LaserPen = class extends SvelteComponent {
3762
+ constructor(options) {
3763
+ super();
3764
+ init(this, options, instance49, create_fragment49, safe_not_equal, { theme: 0, active: 1 });
3765
+ }
3766
+ };
3767
+ var LaserPen_default = LaserPen;
3768
+ function create_fragment50(ctx) {
3769
+ let svg;
3770
+ let g;
3771
+ let path0;
3772
+ let path1;
3773
+ let svg_class_value;
3774
+ return {
3775
+ c() {
3776
+ svg = svg_element("svg");
3777
+ g = svg_element("g");
3778
+ path0 = svg_element("path");
3779
+ path1 = svg_element("path");
3780
+ attr(path0, "class", "fastboard-icon-fill-color");
3781
+ attr(path0, "clip-rule", "evenodd");
3782
+ attr(path0, "d", "m9.644 13.69 7.774-7.773a2.357 2.357 0 0 0-3.334-3.334l-7.773 7.774L8 12l1.643 1.69Z");
3783
+ attr(path1, "class", "fastboard-icon-stroke-color");
3784
+ attr(path1, "d", "m13.25 3.417 3.333 3.333M10 10l2-2M5 15l3-3M2.156 17.894l1-1M5.453 19.029l-.144-1.407M2.377 11.887l.866 1.118M8.354 17.273l-1.194-.758M.953 14.652l1.408.13");
3785
+ attr(g, "stroke-width", "1.25");
3786
+ attr(g, "stroke-linecap", "round");
3787
+ attr(g, "stroke-linejoin", "round");
3788
+ attr(g, "transform", "rotate(0 10 10)");
3789
+ attr(svg, "fill", "none");
3790
+ attr(svg, "viewBox", "0 0 24 24");
3791
+ attr(svg, "class", svg_class_value = "fastboard-icon " + /*theme*/
3792
+ ctx[0]);
3793
+ toggle_class(
3794
+ svg,
3795
+ "is-active",
3796
+ /*active*/
3797
+ ctx[1]
3798
+ );
3799
+ },
3800
+ m(target, anchor) {
3801
+ insert(target, svg, anchor);
3802
+ append(svg, g);
3803
+ append(g, path0);
3804
+ append(g, path1);
3805
+ },
3806
+ p(ctx2, [dirty]) {
3807
+ if (dirty & /*theme*/
3808
+ 1 && svg_class_value !== (svg_class_value = "fastboard-icon " + /*theme*/
3809
+ ctx2[0])) {
3810
+ attr(svg, "class", svg_class_value);
3811
+ }
3812
+ if (dirty & /*theme, active*/
3813
+ 3) {
3814
+ toggle_class(
3815
+ svg,
3816
+ "is-active",
3817
+ /*active*/
3818
+ ctx2[1]
3819
+ );
3820
+ }
3821
+ },
3822
+ i: noop,
3823
+ o: noop,
3824
+ d(detaching) {
3825
+ if (detaching)
3826
+ detach(svg);
3827
+ }
3828
+ };
3829
+ }
3830
+ function instance50($$self, $$props, $$invalidate) {
3831
+ let { theme = "light" } = $$props;
3832
+ let { active = false } = $$props;
3833
+ $$self.$$set = ($$props2) => {
3834
+ if ("theme" in $$props2)
3835
+ $$invalidate(0, theme = $$props2.theme);
3836
+ if ("active" in $$props2)
3837
+ $$invalidate(1, active = $$props2.active);
3838
+ };
3839
+ return [theme, active];
3840
+ }
3841
+ var LaserPenFilled = class extends SvelteComponent {
3842
+ constructor(options) {
3843
+ super();
3844
+ init(this, options, instance50, create_fragment50, safe_not_equal, { theme: 0, active: 1 });
3845
+ }
3846
+ };
3847
+ var LaserPenFilled_default = LaserPenFilled;
3688
3848
 
3689
3849
  // src/components/Icons/index.ts
3690
3850
  var Icons = {
@@ -3734,7 +3894,9 @@ var Icons = {
3734
3894
  WhiteboardAdd: WhiteboardAdd_default,
3735
3895
  Play: Play_default,
3736
3896
  Pause: Pause_default,
3737
- Loading: Loading_default
3897
+ Loading: Loading_default,
3898
+ LaserPen: LaserPen_default,
3899
+ LaserPenFilled: LaserPenFilled_default
3738
3900
  };
3739
3901
  var Icons_default = Icons;
3740
3902
  if (typeof window !== "undefined") {
@@ -3747,12 +3909,12 @@ if (typeof window !== "undefined") {
3747
3909
  {
3748
3910
  name: "className",
3749
3911
  defaultValue: "",
3750
- fn(instance72) {
3912
+ fn(instance74) {
3751
3913
  function add() {
3752
- const el = instance72.popper.firstElementChild;
3914
+ const el = instance74.popper.firstElementChild;
3753
3915
  if (el) {
3754
3916
  el.classList.add("fastboard-tip");
3755
- const extra = (instance72.props.className || "").trim();
3917
+ const extra = (instance74.props.className || "").trim();
3756
3918
  if (extra) {
3757
3919
  el.classList.add(extra);
3758
3920
  }
@@ -3760,7 +3922,7 @@ if (typeof window !== "undefined") {
3760
3922
  }
3761
3923
  function remove() {
3762
3924
  var _a;
3763
- (_a = instance72.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
3925
+ (_a = instance74.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
3764
3926
  }
3765
3927
  return {
3766
3928
  onCreate: add,
@@ -3773,21 +3935,21 @@ if (typeof window !== "undefined") {
3773
3935
  });
3774
3936
  }
3775
3937
  var tippy = function(node, props) {
3776
- const instance72 = Tippy(node, props);
3938
+ const instance74 = Tippy(node, props);
3777
3939
  return {
3778
3940
  update(props2) {
3779
- instance72.setProps(props2);
3941
+ instance74.setProps(props2);
3780
3942
  },
3781
3943
  destroy() {
3782
- instance72.destroy();
3944
+ instance74.destroy();
3783
3945
  }
3784
3946
  };
3785
3947
  };
3786
3948
  function tippy_hide_all() {
3787
3949
  document.querySelectorAll("[data-tippy-root]").forEach((el) => {
3788
- const instance72 = el._tippy;
3789
- if (instance72)
3790
- instance72.hide();
3950
+ const instance74 = el._tippy;
3951
+ if (instance74)
3952
+ instance74.hide();
3791
3953
  });
3792
3954
  }
3793
3955
  var tippy_menu = {
@@ -4301,7 +4463,7 @@ function create_if_block_1(ctx) {
4301
4463
  }
4302
4464
  };
4303
4465
  }
4304
- function create_fragment49(ctx) {
4466
+ function create_fragment51(ctx) {
4305
4467
  let current_block_type_index;
4306
4468
  let if_block;
4307
4469
  let if_block_anchor;
@@ -4367,7 +4529,7 @@ function create_fragment49(ctx) {
4367
4529
  }
4368
4530
  };
4369
4531
  }
4370
- function instance49($$self, $$props, $$invalidate) {
4532
+ function instance51($$self, $$props, $$invalidate) {
4371
4533
  let { $$slots: slots = {}, $$scope } = $$props;
4372
4534
  let { class: className = "" } = $$props;
4373
4535
  let { name: name10 = "fastboard-ui" } = $$props;
@@ -4425,7 +4587,7 @@ function instance49($$self, $$props, $$invalidate) {
4425
4587
  var Button = class extends SvelteComponent {
4426
4588
  constructor(options) {
4427
4589
  super();
4428
- init(this, options, instance49, create_fragment49, safe_not_equal, {
4590
+ init(this, options, instance51, create_fragment51, safe_not_equal, {
4429
4591
  class: 0,
4430
4592
  name: 1,
4431
4593
  theme: 2,
@@ -4630,7 +4792,7 @@ function create_default_slot(ctx) {
4630
4792
  }
4631
4793
  };
4632
4794
  }
4633
- function create_fragment50(ctx) {
4795
+ function create_fragment52(ctx) {
4634
4796
  let div;
4635
4797
  let button0;
4636
4798
  let t_1;
@@ -4771,7 +4933,7 @@ var i18n = {
4771
4933
  "zh-CN": { redo: "\u91CD\u505A", undo: "\u64A4\u9500" }
4772
4934
  };
4773
4935
  var name = "fastboard-redo-undo";
4774
- function instance50($$self, $$props, $$invalidate) {
4936
+ function instance52($$self, $$props, $$invalidate) {
4775
4937
  let writable2;
4776
4938
  let phase;
4777
4939
  let disabled;
@@ -4872,7 +5034,7 @@ function instance50($$self, $$props, $$invalidate) {
4872
5034
  var RedoUndo = class extends SvelteComponent {
4873
5035
  constructor(options) {
4874
5036
  super();
4875
- init(this, options, instance50, create_fragment50, safe_not_equal, {
5037
+ init(this, options, instance52, create_fragment52, safe_not_equal, {
4876
5038
  app: 12,
4877
5039
  theme: 0,
4878
5040
  language: 13,
@@ -5227,7 +5389,7 @@ function create_default_slot2(ctx) {
5227
5389
  }
5228
5390
  };
5229
5391
  }
5230
- function create_fragment51(ctx) {
5392
+ function create_fragment53(ctx) {
5231
5393
  let div;
5232
5394
  let button0;
5233
5395
  let t0;
@@ -5462,7 +5624,7 @@ var i18n2 = {
5462
5624
  "zh-CN": { prev: "\u4E0A\u4E00\u9875", next: "\u4E0B\u4E00\u9875", add: "\u6DFB\u52A0\u9875\u9762" }
5463
5625
  };
5464
5626
  var name2 = "fastboard-page-control";
5465
- function instance51($$self, $$props, $$invalidate) {
5627
+ function instance53($$self, $$props, $$invalidate) {
5466
5628
  let writable2;
5467
5629
  let phase;
5468
5630
  let disabled;
@@ -5568,7 +5730,7 @@ function instance51($$self, $$props, $$invalidate) {
5568
5730
  var PageControl = class extends SvelteComponent {
5569
5731
  constructor(options) {
5570
5732
  super();
5571
- init(this, options, instance51, create_fragment51, safe_not_equal, {
5733
+ init(this, options, instance53, create_fragment53, safe_not_equal, {
5572
5734
  app: 16,
5573
5735
  theme: 0,
5574
5736
  language: 17,
@@ -5917,7 +6079,7 @@ function create_default_slot3(ctx) {
5917
6079
  }
5918
6080
  };
5919
6081
  }
5920
- function create_fragment52(ctx) {
6082
+ function create_fragment54(ctx) {
5921
6083
  let div;
5922
6084
  let button0;
5923
6085
  let t0;
@@ -6180,7 +6342,7 @@ function next_scale(scale, delta) {
6180
6342
  return 1;
6181
6343
  }
6182
6344
  var name3 = "fastboard-zoom-control";
6183
- function instance52($$self, $$props, $$invalidate) {
6345
+ function instance54($$self, $$props, $$invalidate) {
6184
6346
  let writable2;
6185
6347
  let phase;
6186
6348
  let disabled;
@@ -6291,7 +6453,7 @@ function instance52($$self, $$props, $$invalidate) {
6291
6453
  var ZoomControl = class extends SvelteComponent {
6292
6454
  constructor(options) {
6293
6455
  super();
6294
- init(this, options, instance52, create_fragment52, safe_not_equal, {
6456
+ init(this, options, instance54, create_fragment54, safe_not_equal, {
6295
6457
  app: 15,
6296
6458
  theme: 0,
6297
6459
  language: 16,
@@ -6545,7 +6707,7 @@ function hexToRgb(hex) {
6545
6707
  const b = parseInt(hex.slice(4, 6), 16);
6546
6708
  return [r, g, b];
6547
6709
  }
6548
- function create_fragment53(ctx) {
6710
+ function create_fragment55(ctx) {
6549
6711
  let div;
6550
6712
  let input;
6551
6713
  let input_class_value;
@@ -6760,7 +6922,7 @@ function create_fragment53(ctx) {
6760
6922
  };
6761
6923
  }
6762
6924
  var name4 = "fastboard-slider";
6763
- function instance53($$self, $$props, $$invalidate) {
6925
+ function instance55($$self, $$props, $$invalidate) {
6764
6926
  let percent;
6765
6927
  const dispatch = createEventDispatcher();
6766
6928
  let { class: className = "" } = $$props;
@@ -6831,7 +6993,7 @@ function instance53($$self, $$props, $$invalidate) {
6831
6993
  var Slider = class extends SvelteComponent {
6832
6994
  constructor(options) {
6833
6995
  super();
6834
- init(this, options, instance53, create_fragment53, safe_not_equal, {
6996
+ init(this, options, instance55, create_fragment55, safe_not_equal, {
6835
6997
  class: 1,
6836
6998
  theme: 2,
6837
6999
  min: 3,
@@ -6845,7 +7007,7 @@ var Slider = class extends SvelteComponent {
6845
7007
  var Slider_default = Slider;
6846
7008
 
6847
7009
  // src/components/Toolbar/components/StrokeWidth.svelte
6848
- function create_fragment54(ctx) {
7010
+ function create_fragment56(ctx) {
6849
7011
  let slider;
6850
7012
  let current;
6851
7013
  const slider_spread_levels = [
@@ -6901,7 +7063,7 @@ function create_fragment54(ctx) {
6901
7063
  }
6902
7064
  };
6903
7065
  }
6904
- function instance54($$self, $$props, $$invalidate) {
7066
+ function instance56($$self, $$props, $$invalidate) {
6905
7067
  let memberState;
6906
7068
  let value;
6907
7069
  let props;
@@ -6950,7 +7112,7 @@ function instance54($$self, $$props, $$invalidate) {
6950
7112
  var StrokeWidth = class extends SvelteComponent {
6951
7113
  constructor(options) {
6952
7114
  super();
6953
- init(this, options, instance54, create_fragment54, safe_not_equal, { app: 3, theme: 4, disabled: 5 });
7115
+ init(this, options, instance56, create_fragment56, safe_not_equal, { app: 3, theme: 4, disabled: 5 });
6954
7116
  }
6955
7117
  };
6956
7118
  var StrokeWidth_default = StrokeWidth;
@@ -7052,7 +7214,7 @@ function create_each_block(ctx) {
7052
7214
  }
7053
7215
  };
7054
7216
  }
7055
- function create_fragment55(ctx) {
7217
+ function create_fragment57(ctx) {
7056
7218
  let div;
7057
7219
  let div_class_value;
7058
7220
  let mounted;
@@ -7132,7 +7294,7 @@ function create_fragment55(ctx) {
7132
7294
  function is_equal_color(a, b) {
7133
7295
  return a && b && a.every((v, i) => v === b[i]);
7134
7296
  }
7135
- function instance55($$self, $$props, $$invalidate) {
7297
+ function instance57($$self, $$props, $$invalidate) {
7136
7298
  let memberState;
7137
7299
  let strokeColor;
7138
7300
  let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(7, $memberState = $$value)), memberState);
@@ -7184,7 +7346,7 @@ function instance55($$self, $$props, $$invalidate) {
7184
7346
  var StrokeColor = class extends SvelteComponent {
7185
7347
  constructor(options) {
7186
7348
  super();
7187
- init(this, options, instance55, create_fragment55, safe_not_equal, { app: 6, theme: 0, disabled: 1, colors: 2 });
7349
+ init(this, options, instance57, create_fragment57, safe_not_equal, { app: 6, theme: 0, disabled: 1, colors: 2 });
7188
7350
  }
7189
7351
  };
7190
7352
  var StrokeColor_default = StrokeColor;
@@ -7286,7 +7448,7 @@ function create_each_block2(ctx) {
7286
7448
  }
7287
7449
  };
7288
7450
  }
7289
- function create_fragment56(ctx) {
7451
+ function create_fragment58(ctx) {
7290
7452
  let div;
7291
7453
  let div_class_value;
7292
7454
  let mounted;
@@ -7366,7 +7528,7 @@ function create_fragment56(ctx) {
7366
7528
  function is_equal_color2(a, b) {
7367
7529
  return a && b && a.every((v, i) => v === b[i]);
7368
7530
  }
7369
- function instance56($$self, $$props, $$invalidate) {
7531
+ function instance58($$self, $$props, $$invalidate) {
7370
7532
  let memberState;
7371
7533
  let textColor;
7372
7534
  let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(7, $memberState = $$value)), memberState);
@@ -7418,7 +7580,7 @@ function instance56($$self, $$props, $$invalidate) {
7418
7580
  var TextColor = class extends SvelteComponent {
7419
7581
  constructor(options) {
7420
7582
  super();
7421
- init(this, options, instance56, create_fragment56, safe_not_equal, { app: 6, theme: 0, disabled: 1, colors: 2 });
7583
+ init(this, options, instance58, create_fragment58, safe_not_equal, { app: 6, theme: 0, disabled: 1, colors: 2 });
7422
7584
  }
7423
7585
  };
7424
7586
  var TextColor_default = TextColor;
@@ -7747,7 +7909,7 @@ function create_each_block3(key_1, ctx) {
7747
7909
  }
7748
7910
  };
7749
7911
  }
7750
- function create_fragment57(ctx) {
7912
+ function create_fragment59(ctx) {
7751
7913
  let div;
7752
7914
  let each_blocks = [];
7753
7915
  let each_1_lookup = /* @__PURE__ */ new Map();
@@ -7853,7 +8015,7 @@ var i18n5 = {
7853
8015
  speechBalloon: "\u6C14\u6CE1"
7854
8016
  }
7855
8017
  };
7856
- function instance57($$self, $$props, $$invalidate) {
8018
+ function instance59($$self, $$props, $$invalidate) {
7857
8019
  let t;
7858
8020
  let memberState;
7859
8021
  let appliance;
@@ -7938,7 +8100,7 @@ function instance57($$self, $$props, $$invalidate) {
7938
8100
  var SelectShapes = class extends SvelteComponent {
7939
8101
  constructor(options) {
7940
8102
  super();
7941
- init(this, options, instance57, create_fragment57, safe_not_equal, {
8103
+ init(this, options, instance59, create_fragment59, safe_not_equal, {
7942
8104
  app: 8,
7943
8105
  theme: 0,
7944
8106
  language: 9,
@@ -8091,7 +8253,7 @@ function create_default_slot4(ctx) {
8091
8253
  }
8092
8254
  };
8093
8255
  }
8094
- function create_fragment58(ctx) {
8256
+ function create_fragment60(ctx) {
8095
8257
  let button;
8096
8258
  let current;
8097
8259
  const button_spread_levels = [
@@ -8160,7 +8322,7 @@ function create_fragment58(ctx) {
8160
8322
  }
8161
8323
  };
8162
8324
  }
8163
- function instance58($$self, $$props, $$invalidate) {
8325
+ function instance60($$self, $$props, $$invalidate) {
8164
8326
  let { btn_props = {} } = $$props;
8165
8327
  let { content } = $$props;
8166
8328
  let { appliance } = $$props;
@@ -8183,7 +8345,7 @@ function instance58($$self, $$props, $$invalidate) {
8183
8345
  var Clicker = class extends SvelteComponent {
8184
8346
  constructor(options) {
8185
8347
  super();
8186
- init(this, options, instance58, create_fragment58, safe_not_equal, {
8348
+ init(this, options, instance60, create_fragment60, safe_not_equal, {
8187
8349
  btn_props: 0,
8188
8350
  content: 1,
8189
8351
  appliance: 2,
@@ -8336,7 +8498,7 @@ function create_default_slot5(ctx) {
8336
8498
  }
8337
8499
  };
8338
8500
  }
8339
- function create_fragment59(ctx) {
8501
+ function create_fragment61(ctx) {
8340
8502
  let button;
8341
8503
  let current;
8342
8504
  const button_spread_levels = [
@@ -8405,7 +8567,7 @@ function create_fragment59(ctx) {
8405
8567
  }
8406
8568
  };
8407
8569
  }
8408
- function instance59($$self, $$props, $$invalidate) {
8570
+ function instance61($$self, $$props, $$invalidate) {
8409
8571
  let { btn_props = {} } = $$props;
8410
8572
  let { content } = $$props;
8411
8573
  let { appliance } = $$props;
@@ -8428,7 +8590,7 @@ function instance59($$self, $$props, $$invalidate) {
8428
8590
  var Selector2 = class extends SvelteComponent {
8429
8591
  constructor(options) {
8430
8592
  super();
8431
- init(this, options, instance59, create_fragment59, safe_not_equal, {
8593
+ init(this, options, instance61, create_fragment61, safe_not_equal, {
8432
8594
  btn_props: 0,
8433
8595
  content: 1,
8434
8596
  appliance: 2,
@@ -8475,7 +8637,7 @@ function create_else_block8(ctx) {
8475
8637
  }
8476
8638
  };
8477
8639
  }
8478
- function create_if_block8(ctx) {
8640
+ function create_if_block_12(ctx) {
8479
8641
  let icons_pencilfilled;
8480
8642
  let current;
8481
8643
  icons_pencilfilled = new Icons_default.PencilFilled({
@@ -8515,20 +8677,66 @@ function create_if_block8(ctx) {
8515
8677
  }
8516
8678
  };
8517
8679
  }
8680
+ function create_if_block8(ctx) {
8681
+ let icons_laserpenfilled;
8682
+ let current;
8683
+ icons_laserpenfilled = new Icons_default.LaserPenFilled({
8684
+ props: { theme: (
8685
+ /*theme*/
8686
+ ctx[4]
8687
+ ), active: true }
8688
+ });
8689
+ return {
8690
+ c() {
8691
+ create_component(icons_laserpenfilled.$$.fragment);
8692
+ },
8693
+ m(target, anchor) {
8694
+ mount_component(icons_laserpenfilled, target, anchor);
8695
+ current = true;
8696
+ },
8697
+ p(ctx2, dirty) {
8698
+ const icons_laserpenfilled_changes = {};
8699
+ if (dirty & /*theme*/
8700
+ 16)
8701
+ icons_laserpenfilled_changes.theme = /*theme*/
8702
+ ctx2[4];
8703
+ icons_laserpenfilled.$set(icons_laserpenfilled_changes);
8704
+ },
8705
+ i(local) {
8706
+ if (current)
8707
+ return;
8708
+ transition_in(icons_laserpenfilled.$$.fragment, local);
8709
+ current = true;
8710
+ },
8711
+ o(local) {
8712
+ transition_out(icons_laserpenfilled.$$.fragment, local);
8713
+ current = false;
8714
+ },
8715
+ d(detaching) {
8716
+ destroy_component(icons_laserpenfilled, detaching);
8717
+ }
8718
+ };
8719
+ }
8518
8720
  function create_default_slot6(ctx) {
8519
8721
  let current_block_type_index;
8520
8722
  let if_block;
8521
8723
  let if_block_anchor;
8522
8724
  let current;
8523
- const if_block_creators = [create_if_block8, create_else_block8];
8725
+ const if_block_creators = [create_if_block8, create_if_block_12, create_else_block8];
8524
8726
  const if_blocks = [];
8525
8727
  function select_block_type(ctx2, dirty) {
8526
8728
  if (
8527
8729
  /*appliance*/
8528
- ctx2[3] === "pencil"
8730
+ ctx2[3] === "pencil" && /*hasUseLaserPen*/
8731
+ ctx2[5]
8529
8732
  )
8530
8733
  return 0;
8531
- return 1;
8734
+ if (
8735
+ /*appliance*/
8736
+ ctx2[3] === "pencil"
8737
+ )
8738
+ return 1;
8739
+ return 2;
8532
8740
  }
8533
8741
  current_block_type_index = select_block_type(ctx);
8534
8742
  if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
@@ -8581,7 +8789,7 @@ function create_default_slot6(ctx) {
8581
8789
  }
8582
8790
  };
8583
8791
  }
8584
- function create_fragment60(ctx) {
8792
+ function create_fragment62(ctx) {
8585
8793
  let button;
8586
8794
  let current;
8587
8795
  const button_spread_levels = [
@@ -8608,7 +8816,7 @@ function create_fragment60(ctx) {
8608
8816
  button.$on(
8609
8817
  "click",
8610
8818
  /*click_handler*/
8611
- ctx[5]
8819
+ ctx[6]
8612
8820
  );
8613
8821
  return {
8614
8822
  c() {
@@ -8638,8 +8846,8 @@ function create_fragment60(ctx) {
8638
8846
  ctx2[2]
8639
8847
  ) }
8640
8848
  ]) : {};
8641
- if (dirty & /*$$scope, theme, appliance*/
8642
- 88) {
8849
+ if (dirty & /*$$scope, theme, appliance, hasUseLaserPen*/
8850
+ 184) {
8643
8851
  button_changes.$$scope = { dirty, ctx: ctx2 };
8644
8852
  }
8645
8853
  button.$set(button_changes);
@@ -8659,12 +8867,13 @@ function create_fragment60(ctx) {
8659
8867
  }
8660
8868
  };
8661
8869
  }
8662
- function instance60($$self, $$props, $$invalidate) {
8870
+ function instance62($$self, $$props, $$invalidate) {
8663
8871
  let { btn_props = {} } = $$props;
8664
8872
  let { content } = $$props;
8665
8873
  let { menu } = $$props;
8666
8874
  let { appliance } = $$props;
8667
8875
  let { theme = "light" } = $$props;
8876
+ let { hasUseLaserPen = false } = $$props;
8668
8877
  function click_handler(event) {
8669
8878
  bubble.call(this, $$self, event);
8670
8879
  }
@@ -8679,18 +8888,21 @@ function instance60($$self, $$props, $$invalidate) {
8679
8888
  $$invalidate(3, appliance = $$props2.appliance);
8680
8889
  if ("theme" in $$props2)
8681
8890
  $$invalidate(4, theme = $$props2.theme);
8891
+ if ("hasUseLaserPen" in $$props2)
8892
+ $$invalidate(5, hasUseLaserPen = $$props2.hasUseLaserPen);
8682
8893
  };
8683
- return [btn_props, content, menu, appliance, theme, click_handler];
8894
+ return [btn_props, content, menu, appliance, theme, hasUseLaserPen, click_handler];
8684
8895
  }
8685
8896
  var Pencil2 = class extends SvelteComponent {
8686
8897
  constructor(options) {
8687
8898
  super();
8688
- init(this, options, instance60, create_fragment60, safe_not_equal, {
8899
+ init(this, options, instance62, create_fragment62, safe_not_equal, {
8689
8900
  btn_props: 0,
8690
8901
  content: 1,
8691
8902
  menu: 2,
8692
8903
  appliance: 3,
8693
- theme: 4
8904
+ theme: 4,
8905
+ hasUseLaserPen: 5
8694
8906
  });
8695
8907
  }
8696
8908
  };
@@ -8839,7 +9051,7 @@ function create_default_slot7(ctx) {
8839
9051
  }
8840
9052
  };
8841
9053
  }
8842
- function create_fragment61(ctx) {
9054
+ function create_fragment63(ctx) {
8843
9055
  let button;
8844
9056
  let current;
8845
9057
  const button_spread_levels = [
@@ -8917,7 +9129,7 @@ function create_fragment61(ctx) {
8917
9129
  }
8918
9130
  };
8919
9131
  }
8920
- function instance61($$self, $$props, $$invalidate) {
9132
+ function instance63($$self, $$props, $$invalidate) {
8921
9133
  let { btn_props = {} } = $$props;
8922
9134
  let { content } = $$props;
8923
9135
  let { menu } = $$props;
@@ -8943,7 +9155,7 @@ function instance61($$self, $$props, $$invalidate) {
8943
9155
  var Text2 = class extends SvelteComponent {
8944
9156
  constructor(options) {
8945
9157
  super();
8946
- init(this, options, instance61, create_fragment61, safe_not_equal, {
9158
+ init(this, options, instance63, create_fragment63, safe_not_equal, {
8947
9159
  btn_props: 0,
8948
9160
  content: 1,
8949
9161
  menu: 2,
@@ -9185,7 +9397,7 @@ function create_default_slot8(ctx) {
9185
9397
  }
9186
9398
  };
9187
9399
  }
9188
- function create_fragment62(ctx) {
9400
+ function create_fragment64(ctx) {
9189
9401
  let button;
9190
9402
  let current;
9191
9403
  const button_spread_levels = [
@@ -9263,7 +9475,7 @@ function create_fragment62(ctx) {
9263
9475
  }
9264
9476
  };
9265
9477
  }
9266
- function instance62($$self, $$props, $$invalidate) {
9478
+ function instance64($$self, $$props, $$invalidate) {
9267
9479
  let memberState;
9268
9480
  let shape;
9269
9481
  let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(10, $memberState = $$value)), memberState);
@@ -9335,7 +9547,7 @@ function instance62($$self, $$props, $$invalidate) {
9335
9547
  var Shapes = class extends SvelteComponent {
9336
9548
  constructor(options) {
9337
9549
  super();
9338
- init(this, options, instance62, create_fragment62, safe_not_equal, {
9550
+ init(this, options, instance64, create_fragment64, safe_not_equal, {
9339
9551
  app: 9,
9340
9552
  btn_props: 1,
9341
9553
  content: 2,
@@ -9490,7 +9702,7 @@ function create_default_slot9(ctx) {
9490
9702
  }
9491
9703
  };
9492
9704
  }
9493
- function create_fragment63(ctx) {
9705
+ function create_fragment65(ctx) {
9494
9706
  let button;
9495
9707
  let current;
9496
9708
  const button_spread_levels = [
@@ -9559,7 +9771,7 @@ function create_fragment63(ctx) {
9559
9771
  }
9560
9772
  };
9561
9773
  }
9562
- function instance63($$self, $$props, $$invalidate) {
9774
+ function instance65($$self, $$props, $$invalidate) {
9563
9775
  let { btn_props = {} } = $$props;
9564
9776
  let { content } = $$props;
9565
9777
  let { appliance } = $$props;
@@ -9582,7 +9794,7 @@ function instance63($$self, $$props, $$invalidate) {
9582
9794
  var Eraser2 = class extends SvelteComponent {
9583
9795
  constructor(options) {
9584
9796
  super();
9585
- init(this, options, instance63, create_fragment63, safe_not_equal, {
9797
+ init(this, options, instance65, create_fragment65, safe_not_equal, {
9586
9798
  btn_props: 0,
9587
9799
  content: 1,
9588
9800
  appliance: 2,
@@ -9629,7 +9841,7 @@ function create_default_slot10(ctx) {
9629
9841
  }
9630
9842
  };
9631
9843
  }
9632
- function create_fragment64(ctx) {
9844
+ function create_fragment66(ctx) {
9633
9845
  let button;
9634
9846
  let current;
9635
9847
  const button_spread_levels = [
@@ -9698,7 +9910,7 @@ function create_fragment64(ctx) {
9698
9910
  }
9699
9911
  };
9700
9912
  }
9701
- function instance64($$self, $$props, $$invalidate) {
9913
+ function instance66($$self, $$props, $$invalidate) {
9702
9914
  let { btn_props = {} } = $$props;
9703
9915
  let { content } = $$props;
9704
9916
  let { theme = "light" } = $$props;
@@ -9718,7 +9930,7 @@ function instance64($$self, $$props, $$invalidate) {
9718
9930
  var Clear2 = class extends SvelteComponent {
9719
9931
  constructor(options) {
9720
9932
  super();
9721
- init(this, options, instance64, create_fragment64, safe_not_equal, { btn_props: 0, content: 1, theme: 2 });
9933
+ init(this, options, instance66, create_fragment66, safe_not_equal, { btn_props: 0, content: 1, theme: 2 });
9722
9934
  }
9723
9935
  };
9724
9936
  var Clear_default2 = Clear2;
@@ -9866,7 +10078,7 @@ function create_default_slot11(ctx) {
9866
10078
  }
9867
10079
  };
9868
10080
  }
9869
- function create_fragment65(ctx) {
10081
+ function create_fragment67(ctx) {
9870
10082
  let button;
9871
10083
  let current;
9872
10084
  const button_spread_levels = [
@@ -9935,7 +10147,7 @@ function create_fragment65(ctx) {
9935
10147
  }
9936
10148
  };
9937
10149
  }
9938
- function instance65($$self, $$props, $$invalidate) {
10150
+ function instance67($$self, $$props, $$invalidate) {
9939
10151
  let { btn_props = {} } = $$props;
9940
10152
  let { content } = $$props;
9941
10153
  let { appliance } = $$props;
@@ -9958,7 +10170,7 @@ function instance65($$self, $$props, $$invalidate) {
9958
10170
  var Hand = class extends SvelteComponent {
9959
10171
  constructor(options) {
9960
10172
  super();
9961
- init(this, options, instance65, create_fragment65, safe_not_equal, {
10173
+ init(this, options, instance67, create_fragment67, safe_not_equal, {
9962
10174
  btn_props: 0,
9963
10175
  content: 1,
9964
10176
  appliance: 2,
@@ -10111,7 +10323,7 @@ function create_default_slot12(ctx) {
10111
10323
  }
10112
10324
  };
10113
10325
  }
10114
- function create_fragment66(ctx) {
10326
+ function create_fragment68(ctx) {
10115
10327
  let button;
10116
10328
  let current;
10117
10329
  const button_spread_levels = [
@@ -10180,7 +10392,7 @@ function create_fragment66(ctx) {
10180
10392
  }
10181
10393
  };
10182
10394
  }
10183
- function instance66($$self, $$props, $$invalidate) {
10395
+ function instance68($$self, $$props, $$invalidate) {
10184
10396
  let { btn_props = {} } = $$props;
10185
10397
  let { content } = $$props;
10186
10398
  let { appliance } = $$props;
@@ -10203,7 +10415,7 @@ function instance66($$self, $$props, $$invalidate) {
10203
10415
  var Laser2 = class extends SvelteComponent {
10204
10416
  constructor(options) {
10205
10417
  super();
10206
- init(this, options, instance66, create_fragment66, safe_not_equal, {
10418
+ init(this, options, instance68, create_fragment68, safe_not_equal, {
10207
10419
  btn_props: 0,
10208
10420
  content: 1,
10209
10421
  appliance: 2,
@@ -10216,42 +10428,42 @@ var Laser_default2 = Laser2;
10216
10428
  // src/components/Toolbar/components/Contents.svelte
10217
10429
  function get_each_context4(ctx, list, i) {
10218
10430
  const child_ctx = ctx.slice();
10219
- child_ctx[44] = list[i];
10431
+ child_ctx[47] = list[i];
10220
10432
  const constants_0 = (
10221
10433
  /*netless_app*/
10222
- child_ctx[44]
10434
+ child_ctx[47]
10223
10435
  );
10224
- child_ctx[45] = constants_0.icon;
10225
- child_ctx[46] = constants_0.label;
10226
- child_ctx[47] = constants_0.kind;
10227
- child_ctx[48] = constants_0.onClick;
10436
+ child_ctx[48] = constants_0.icon;
10437
+ child_ctx[49] = constants_0.label;
10438
+ child_ctx[50] = constants_0.kind;
10439
+ child_ctx[51] = constants_0.onClick;
10228
10440
  const constants_1 = (
10229
10441
  /*$status*/
10230
- child_ctx[21] && /*$status*/
10231
- child_ctx[21][
10442
+ child_ctx[22] && /*$status*/
10443
+ child_ctx[22][
10232
10444
  /*kind*/
10233
- child_ctx[47]
10445
+ child_ctx[50]
10234
10446
  ]
10235
10447
  );
10236
- child_ctx[49] = constants_1;
10448
+ child_ctx[52] = constants_1;
10237
10449
  const constants_2 = function func() {
10238
10450
  return (
10239
10451
  /*func*/
10240
- ctx[40](
10452
+ ctx[43](
10241
10453
  /*onClick*/
10242
- child_ctx[48]
10454
+ child_ctx[51]
10243
10455
  )
10244
10456
  );
10245
10457
  };
10246
- child_ctx[50] = constants_2;
10458
+ child_ctx[53] = constants_2;
10247
10459
  return child_ctx;
10248
10460
  }
10249
10461
  function get_each_context_1(ctx, list, i) {
10250
10462
  const child_ctx = ctx.slice();
10251
- child_ctx[53] = list[i];
10463
+ child_ctx[56] = list[i];
10252
10464
  return child_ctx;
10253
10465
  }
10254
- function create_if_block_11(ctx) {
10466
+ function create_if_block_13(ctx) {
10255
10467
  let button;
10256
10468
  let current;
10257
10469
  const button_spread_levels = [
@@ -10260,7 +10472,7 @@ function create_if_block_11(ctx) {
10260
10472
  ctx[15]
10261
10473
  ];
10262
10474
  let button_props = {
10263
- $$slots: { default: [create_default_slot_24] },
10475
+ $$slots: { default: [create_default_slot_6] },
10264
10476
  $$scope: { ctx }
10265
10477
  };
10266
10478
  for (let i = 0; i < button_spread_levels.length; i += 1) {
@@ -10270,7 +10482,7 @@ function create_if_block_11(ctx) {
10270
10482
  button.$on(
10271
10483
  "click",
10272
10484
  /*scroll_up*/
10273
- ctx[23]
10485
+ ctx[24]
10274
10486
  );
10275
10487
  return {
10276
10488
  c() {
@@ -10288,7 +10500,7 @@ function create_if_block_11(ctx) {
10288
10500
  )]) : {};
10289
10501
  if (dirty[0] & /*theme*/
10290
10502
  2 | dirty[1] & /*$$scope*/
10291
- 33554432) {
10503
+ 268435456) {
10292
10504
  button_changes.$$scope = { dirty, ctx: ctx2 };
10293
10505
  }
10294
10506
  button.$set(button_changes);
@@ -10308,7 +10520,7 @@ function create_if_block_11(ctx) {
10308
10520
  }
10309
10521
  };
10310
10522
  }
10311
- function create_default_slot_24(ctx) {
10523
+ function create_default_slot_6(ctx) {
10312
10524
  let icons_up;
10313
10525
  let current;
10314
10526
  icons_up = new Icons_default.Up({ props: { theme: (
@@ -10346,14 +10558,14 @@ function create_default_slot_24(ctx) {
10346
10558
  }
10347
10559
  };
10348
10560
  }
10349
- function create_if_block_10(ctx) {
10561
+ function create_if_block_122(ctx) {
10350
10562
  let laser;
10351
10563
  let current;
10352
10564
  laser = new Laser_default2({
10353
10565
  props: {
10354
10566
  appliance: (
10355
10567
  /*appliance*/
10356
- ctx[17]
10568
+ ctx[18]
10357
10569
  ),
10358
10570
  theme: (
10359
10571
  /*theme*/
@@ -10365,14 +10577,14 @@ function create_if_block_10(ctx) {
10365
10577
  ),
10366
10578
  content: (
10367
10579
  /*c*/
10368
- ctx[19].laserPointer
10580
+ ctx[20].laserPointer
10369
10581
  )
10370
10582
  }
10371
10583
  });
10372
10584
  laser.$on(
10373
10585
  "click",
10374
10586
  /*laserPointer*/
10375
- ctx[31]
10587
+ ctx[32]
10376
10588
  );
10377
10589
  return {
10378
10590
  c() {
@@ -10385,9 +10597,9 @@ function create_if_block_10(ctx) {
10385
10597
  p(ctx2, dirty) {
10386
10598
  const laser_changes = {};
10387
10599
  if (dirty[0] & /*appliance*/
10388
- 131072)
10600
+ 262144)
10389
10601
  laser_changes.appliance = /*appliance*/
10390
- ctx2[17];
10602
+ ctx2[18];
10391
10603
  if (dirty[0] & /*theme*/
10392
10604
  2)
10393
10605
  laser_changes.theme = /*theme*/
@@ -10397,9 +10609,9 @@ function create_if_block_10(ctx) {
10397
10609
  laser_changes.btn_props = /*btn_props*/
10398
10610
  ctx2[15];
10399
10611
  if (dirty[0] & /*c*/
10400
- 524288)
10612
+ 1048576)
10401
10613
  laser_changes.content = /*c*/
10402
- ctx2[19].laserPointer;
10614
+ ctx2[20].laserPointer;
10403
10615
  laser.$set(laser_changes);
10404
10616
  },
10405
10617
  i(local) {
@@ -10417,14 +10629,14 @@ function create_if_block_10(ctx) {
10417
10629
  }
10418
10630
  };
10419
10631
  }
10420
- function create_if_block_9(ctx) {
10632
+ function create_if_block_11(ctx) {
10421
10633
  let hand_1;
10422
10634
  let current;
10423
10635
  hand_1 = new Hand_default({
10424
10636
  props: {
10425
10637
  appliance: (
10426
10638
  /*appliance*/
10427
- ctx[17]
10639
+ ctx[18]
10428
10640
  ),
10429
10641
  theme: (
10430
10642
  /*theme*/
@@ -10436,14 +10648,14 @@ function create_if_block_9(ctx) {
10436
10648
  ),
10437
10649
  content: (
10438
10650
  /*c*/
10439
- ctx[19].hand
10651
+ ctx[20].hand
10440
10652
  )
10441
10653
  }
10442
10654
  });
10443
10655
  hand_1.$on(
10444
10656
  "click",
10445
10657
  /*hand*/
10446
- ctx[30]
10658
+ ctx[31]
10447
10659
  );
10448
10660
  return {
10449
10661
  c() {
@@ -10456,9 +10668,9 @@ function create_if_block_9(ctx) {
10456
10668
  p(ctx2, dirty) {
10457
10669
  const hand_1_changes = {};
10458
10670
  if (dirty[0] & /*appliance*/
10459
- 131072)
10671
+ 262144)
10460
10672
  hand_1_changes.appliance = /*appliance*/
10461
- ctx2[17];
10673
+ ctx2[18];
10462
10674
  if (dirty[0] & /*theme*/
10463
10675
  2)
10464
10676
  hand_1_changes.theme = /*theme*/
@@ -10468,9 +10680,9 @@ function create_if_block_9(ctx) {
10468
10680
  hand_1_changes.btn_props = /*btn_props*/
10469
10681
  ctx2[15];
10470
10682
  if (dirty[0] & /*c*/
10471
- 524288)
10683
+ 1048576)
10472
10684
  hand_1_changes.content = /*c*/
10473
- ctx2[19].hand;
10685
+ ctx2[20].hand;
10474
10686
  hand_1.$set(hand_1_changes);
10475
10687
  },
10476
10688
  i(local) {
@@ -10488,7 +10700,7 @@ function create_if_block_9(ctx) {
10488
10700
  }
10489
10701
  };
10490
10702
  }
10491
- function create_if_block_8(ctx) {
10703
+ function create_if_block_10(ctx) {
10492
10704
  let clear_1;
10493
10705
  let current;
10494
10706
  clear_1 = new Clear_default2({
@@ -10510,7 +10722,7 @@ function create_if_block_8(ctx) {
10510
10722
  clear_1.$on(
10511
10723
  "click",
10512
10724
  /*clear*/
10513
- ctx[32]
10725
+ ctx[33]
10514
10726
  );
10515
10727
  return {
10516
10728
  c() {
@@ -10551,14 +10763,14 @@ function create_if_block_8(ctx) {
10551
10763
  }
10552
10764
  };
10553
10765
  }
10554
- function create_if_block_7(ctx) {
10766
+ function create_if_block_9(ctx) {
10555
10767
  let eraser_1;
10556
10768
  let current;
10557
10769
  eraser_1 = new Eraser_default2({
10558
10770
  props: {
10559
10771
  appliance: (
10560
10772
  /*appliance*/
10561
- ctx[17]
10773
+ ctx[18]
10562
10774
  ),
10563
10775
  theme: (
10564
10776
  /*theme*/
@@ -10570,14 +10782,14 @@ function create_if_block_7(ctx) {
10570
10782
  ),
10571
10783
  content: (
10572
10784
  /*c*/
10573
- ctx[19].eraser
10785
+ ctx[20].eraser
10574
10786
  )
10575
10787
  }
10576
10788
  });
10577
10789
  eraser_1.$on(
10578
10790
  "click",
10579
10791
  /*eraser*/
10580
- ctx[29]
10792
+ ctx[30]
10581
10793
  );
10582
10794
  return {
10583
10795
  c() {
@@ -10590,9 +10802,9 @@ function create_if_block_7(ctx) {
10590
10802
  p(ctx2, dirty) {
10591
10803
  const eraser_1_changes = {};
10592
10804
  if (dirty[0] & /*appliance*/
10593
- 131072)
10805
+ 262144)
10594
10806
  eraser_1_changes.appliance = /*appliance*/
10595
- ctx2[17];
10807
+ ctx2[18];
10596
10808
  if (dirty[0] & /*theme*/
10597
10809
  2)
10598
10810
  eraser_1_changes.theme = /*theme*/
@@ -10602,9 +10814,9 @@ function create_if_block_7(ctx) {
10602
10814
  eraser_1_changes.btn_props = /*btn_props*/
10603
10815
  ctx2[15];
10604
10816
  if (dirty[0] & /*c*/
10605
- 524288)
10817
+ 1048576)
10606
10818
  eraser_1_changes.content = /*c*/
10607
- ctx2[19].eraser;
10819
+ ctx2[20].eraser;
10608
10820
  eraser_1.$set(eraser_1_changes);
10609
10821
  },
10610
10822
  i(local) {
@@ -10622,7 +10834,7 @@ function create_if_block_7(ctx) {
10622
10834
  }
10623
10835
  };
10624
10836
  }
10625
- function create_if_block_6(ctx) {
10837
+ function create_if_block_8(ctx) {
10626
10838
  let shapes2;
10627
10839
  let current;
10628
10840
  shapes2 = new Shapes_default({
@@ -10633,7 +10845,7 @@ function create_if_block_6(ctx) {
10633
10845
  ),
10634
10846
  appliance: (
10635
10847
  /*appliance*/
10636
- ctx[17]
10848
+ ctx[18]
10637
10849
  ),
10638
10850
  theme: (
10639
10851
  /*theme*/
@@ -10668,9 +10880,9 @@ function create_if_block_6(ctx) {
10668
10880
  shapes_changes.app = /*app*/
10669
10881
  ctx2[0];
10670
10882
  if (dirty[0] & /*appliance*/
10671
- 131072)
10883
+ 262144)
10672
10884
  shapes_changes.appliance = /*appliance*/
10673
- ctx2[17];
10885
+ ctx2[18];
10674
10886
  if (dirty[0] & /*theme*/
10675
10887
  2)
10676
10888
  shapes_changes.theme = /*theme*/
@@ -10704,14 +10916,14 @@ function create_if_block_6(ctx) {
10704
10916
  }
10705
10917
  };
10706
10918
  }
10707
- function create_if_block_5(ctx) {
10919
+ function create_if_block_7(ctx) {
10708
10920
  let text_1;
10709
10921
  let current;
10710
10922
  text_1 = new Text_default2({
10711
10923
  props: {
10712
10924
  appliance: (
10713
10925
  /*appliance*/
10714
- ctx[17]
10926
+ ctx[18]
10715
10927
  ),
10716
10928
  theme: (
10717
10929
  /*theme*/
@@ -10723,7 +10935,7 @@ function create_if_block_5(ctx) {
10723
10935
  ),
10724
10936
  content: (
10725
10937
  /*c*/
10726
- ctx[19].text
10938
+ ctx[20].text
10727
10939
  ),
10728
10940
  menu: (
10729
10941
  /*text_panel*/
@@ -10734,7 +10946,7 @@ function create_if_block_5(ctx) {
10734
10946
  text_1.$on(
10735
10947
  "click",
10736
10948
  /*text*/
10737
- ctx[28]
10949
+ ctx[29]
10738
10950
  );
10739
10951
  return {
10740
10952
  c() {
@@ -10747,9 +10959,9 @@ function create_if_block_5(ctx) {
10747
10959
  p(ctx2, dirty) {
10748
10960
  const text_1_changes = {};
10749
10961
  if (dirty[0] & /*appliance*/
10750
- 131072)
10962
+ 262144)
10751
10963
  text_1_changes.appliance = /*appliance*/
10752
- ctx2[17];
10964
+ ctx2[18];
10753
10965
  if (dirty[0] & /*theme*/
10754
10966
  2)
10755
10967
  text_1_changes.theme = /*theme*/
@@ -10759,9 +10971,9 @@ function create_if_block_5(ctx) {
10759
10971
  text_1_changes.btn_props = /*btn_props*/
10760
10972
  ctx2[15];
10761
10973
  if (dirty[0] & /*c*/
10762
- 524288)
10974
+ 1048576)
10763
10975
  text_1_changes.content = /*c*/
10764
- ctx2[19].text;
10976
+ ctx2[20].text;
10765
10977
  if (dirty[0] & /*text_panel*/
10766
10978
  4096)
10767
10979
  text_1_changes.menu = /*text_panel*/
@@ -10783,14 +10995,18 @@ function create_if_block_5(ctx) {
10783
10995
  }
10784
10996
  };
10785
10997
  }
10786
- function create_if_block_4(ctx) {
10998
+ function create_if_block_6(ctx) {
10787
10999
  let pencil_1;
10788
11000
  let current;
10789
11001
  pencil_1 = new Pencil_default2({
10790
11002
  props: {
11003
+ hasUseLaserPen: (
11004
+ /*hasUseLaserPen*/
11005
+ ctx[16]
11006
+ ),
10791
11007
  appliance: (
10792
11008
  /*appliance*/
10793
- ctx[17]
11009
+ ctx[18]
10794
11010
  ),
10795
11011
  theme: (
10796
11012
  /*theme*/
@@ -10802,7 +11018,7 @@ function create_if_block_4(ctx) {
10802
11018
  ),
10803
11019
  content: (
10804
11020
  /*c*/
10805
- ctx[19].pencil
11021
+ ctx[20].pencil
10806
11022
  ),
10807
11023
  menu: (
10808
11024
  /*pencil_panel*/
@@ -10813,7 +11029,7 @@ function create_if_block_4(ctx) {
10813
11029
  pencil_1.$on(
10814
11030
  "click",
10815
11031
  /*pencil*/
10816
- ctx[27]
11032
+ ctx[28]
10817
11033
  );
10818
11034
  return {
10819
11035
  c() {
@@ -10825,10 +11041,14 @@ function create_if_block_4(ctx) {
10825
11041
  },
10826
11042
  p(ctx2, dirty) {
10827
11043
  const pencil_1_changes = {};
11044
+ if (dirty[0] & /*hasUseLaserPen*/
11045
+ 65536)
11046
+ pencil_1_changes.hasUseLaserPen = /*hasUseLaserPen*/
11047
+ ctx2[16];
10828
11048
  if (dirty[0] & /*appliance*/
10829
- 131072)
11049
+ 262144)
10830
11050
  pencil_1_changes.appliance = /*appliance*/
10831
- ctx2[17];
11051
+ ctx2[18];
10832
11052
  if (dirty[0] & /*theme*/
10833
11053
  2)
10834
11054
  pencil_1_changes.theme = /*theme*/
@@ -10838,9 +11058,9 @@ function create_if_block_4(ctx) {
10838
11058
  pencil_1_changes.btn_props = /*btn_props*/
10839
11059
  ctx2[15];
10840
11060
  if (dirty[0] & /*c*/
10841
- 524288)
11061
+ 1048576)
10842
11062
  pencil_1_changes.content = /*c*/
10843
- ctx2[19].pencil;
11063
+ ctx2[20].pencil;
10844
11064
  if (dirty[0] & /*pencil_panel*/
10845
11065
  2048)
10846
11066
  pencil_1_changes.menu = /*pencil_panel*/
@@ -10862,14 +11082,14 @@ function create_if_block_4(ctx) {
10862
11082
  }
10863
11083
  };
10864
11084
  }
10865
- function create_if_block_3(ctx) {
11085
+ function create_if_block_5(ctx) {
10866
11086
  let selector_1;
10867
11087
  let current;
10868
11088
  selector_1 = new Selector_default2({
10869
11089
  props: {
10870
11090
  appliance: (
10871
11091
  /*appliance*/
10872
- ctx[17]
11092
+ ctx[18]
10873
11093
  ),
10874
11094
  theme: (
10875
11095
  /*theme*/
@@ -10881,14 +11101,14 @@ function create_if_block_3(ctx) {
10881
11101
  ),
10882
11102
  content: (
10883
11103
  /*c*/
10884
- ctx[19].selector
11104
+ ctx[20].selector
10885
11105
  )
10886
11106
  }
10887
11107
  });
10888
11108
  selector_1.$on(
10889
11109
  "click",
10890
11110
  /*selector*/
10891
- ctx[26]
11111
+ ctx[27]
10892
11112
  );
10893
11113
  return {
10894
11114
  c() {
@@ -10901,9 +11121,9 @@ function create_if_block_3(ctx) {
10901
11121
  p(ctx2, dirty) {
10902
11122
  const selector_1_changes = {};
10903
11123
  if (dirty[0] & /*appliance*/
10904
- 131072)
11124
+ 262144)
10905
11125
  selector_1_changes.appliance = /*appliance*/
10906
- ctx2[17];
11126
+ ctx2[18];
10907
11127
  if (dirty[0] & /*theme*/
10908
11128
  2)
10909
11129
  selector_1_changes.theme = /*theme*/
@@ -10913,9 +11133,9 @@ function create_if_block_3(ctx) {
10913
11133
  selector_1_changes.btn_props = /*btn_props*/
10914
11134
  ctx2[15];
10915
11135
  if (dirty[0] & /*c*/
10916
- 524288)
11136
+ 1048576)
10917
11137
  selector_1_changes.content = /*c*/
10918
- ctx2[19].selector;
11138
+ ctx2[20].selector;
10919
11139
  selector_1.$set(selector_1_changes);
10920
11140
  },
10921
11141
  i(local) {
@@ -10933,14 +11153,14 @@ function create_if_block_3(ctx) {
10933
11153
  }
10934
11154
  };
10935
11155
  }
10936
- function create_if_block_2(ctx) {
11156
+ function create_if_block_4(ctx) {
10937
11157
  let clicker_1;
10938
11158
  let current;
10939
11159
  clicker_1 = new Clicker_default({
10940
11160
  props: {
10941
11161
  appliance: (
10942
11162
  /*appliance*/
10943
- ctx[17]
11163
+ ctx[18]
10944
11164
  ),
10945
11165
  theme: (
10946
11166
  /*theme*/
@@ -10952,14 +11172,14 @@ function create_if_block_2(ctx) {
10952
11172
  ),
10953
11173
  content: (
10954
11174
  /*c*/
10955
- ctx[19].clicker
11175
+ ctx[20].clicker
10956
11176
  )
10957
11177
  }
10958
11178
  });
10959
11179
  clicker_1.$on(
10960
11180
  "click",
10961
11181
  /*clicker*/
10962
- ctx[25]
11182
+ ctx[26]
10963
11183
  );
10964
11184
  return {
10965
11185
  c() {
@@ -10972,9 +11192,9 @@ function create_if_block_2(ctx) {
10972
11192
  p(ctx2, dirty) {
10973
11193
  const clicker_1_changes = {};
10974
11194
  if (dirty[0] & /*appliance*/
10975
- 131072)
11195
+ 262144)
10976
11196
  clicker_1_changes.appliance = /*appliance*/
10977
- ctx2[17];
11197
+ ctx2[18];
10978
11198
  if (dirty[0] & /*theme*/
10979
11199
  2)
10980
11200
  clicker_1_changes.theme = /*theme*/
@@ -10984,9 +11204,9 @@ function create_if_block_2(ctx) {
10984
11204
  clicker_1_changes.btn_props = /*btn_props*/
10985
11205
  ctx2[15];
10986
11206
  if (dirty[0] & /*c*/
10987
- 524288)
11207
+ 1048576)
10988
11208
  clicker_1_changes.content = /*c*/
10989
- ctx2[19].clicker;
11209
+ ctx2[20].clicker;
10990
11210
  clicker_1.$set(clicker_1_changes);
10991
11211
  },
10992
11212
  i(local) {
@@ -11010,61 +11230,61 @@ function create_each_block_1(ctx) {
11010
11230
  let if_block_anchor;
11011
11231
  let current;
11012
11232
  const if_block_creators = [
11013
- create_if_block_2,
11014
- create_if_block_3,
11015
11233
  create_if_block_4,
11016
11234
  create_if_block_5,
11017
11235
  create_if_block_6,
11018
11236
  create_if_block_7,
11019
11237
  create_if_block_8,
11020
11238
  create_if_block_9,
11021
- create_if_block_10
11239
+ create_if_block_10,
11240
+ create_if_block_11,
11241
+ create_if_block_122
11022
11242
  ];
11023
11243
  const if_blocks = [];
11024
11244
  function select_block_type(ctx2, dirty) {
11025
11245
  if (
11026
11246
  /*item*/
11027
- ctx2[53] === "clicker"
11247
+ ctx2[56] === "clicker"
11028
11248
  )
11029
11249
  return 0;
11030
11250
  if (
11031
11251
  /*item*/
11032
- ctx2[53] === "selector"
11252
+ ctx2[56] === "selector"
11033
11253
  )
11034
11254
  return 1;
11035
11255
  if (
11036
11256
  /*item*/
11037
- ctx2[53] === "pencil"
11257
+ ctx2[56] === "pencil"
11038
11258
  )
11039
11259
  return 2;
11040
11260
  if (
11041
11261
  /*item*/
11042
- ctx2[53] === "text"
11262
+ ctx2[56] === "text"
11043
11263
  )
11044
11264
  return 3;
11045
11265
  if (
11046
11266
  /*item*/
11047
- ctx2[53] === "shapes"
11267
+ ctx2[56] === "shapes"
11048
11268
  )
11049
11269
  return 4;
11050
11270
  if (
11051
11271
  /*item*/
11052
- ctx2[53] === "eraser"
11272
+ ctx2[56] === "eraser"
11053
11273
  )
11054
11274
  return 5;
11055
11275
  if (
11056
11276
  /*item*/
11057
- ctx2[53] === "clear"
11277
+ ctx2[56] === "clear"
11058
11278
  )
11059
11279
  return 6;
11060
11280
  if (
11061
11281
  /*item*/
11062
- ctx2[53] === "hand"
11282
+ ctx2[56] === "hand"
11063
11283
  )
11064
11284
  return 7;
11065
11285
  if (
11066
11286
  /*item*/
11067
- ctx2[53] === "laserPointer"
11287
+ ctx2[56] === "laserPointer"
11068
11288
  )
11069
11289
  return 8;
11070
11290
  return -1;
@@ -11134,7 +11354,7 @@ function create_each_block_1(ctx) {
11134
11354
  }
11135
11355
  };
11136
11356
  }
11137
- function create_if_block_12(ctx) {
11357
+ function create_if_block_3(ctx) {
11138
11358
  let button;
11139
11359
  let current;
11140
11360
  const button_spread_levels = [
@@ -11157,7 +11377,7 @@ function create_if_block_12(ctx) {
11157
11377
  }
11158
11378
  ];
11159
11379
  let button_props = {
11160
- $$slots: { default: [create_default_slot_14] },
11380
+ $$slots: { default: [create_default_slot_53] },
11161
11381
  $$scope: { ctx }
11162
11382
  };
11163
11383
  for (let i = 0; i < button_spread_levels.length; i += 1) {
@@ -11201,7 +11421,7 @@ function create_if_block_12(ctx) {
11201
11421
  ]) : {};
11202
11422
  if (dirty[0] & /*theme*/
11203
11423
  2 | dirty[1] & /*$$scope*/
11204
- 33554432) {
11424
+ 268435456) {
11205
11425
  button_changes.$$scope = { dirty, ctx: ctx2 };
11206
11426
  }
11207
11427
  button.$set(button_changes);
@@ -11221,7 +11441,7 @@ function create_if_block_12(ctx) {
11221
11441
  }
11222
11442
  };
11223
11443
  }
11224
- function create_default_slot_14(ctx) {
11444
+ function create_default_slot_53(ctx) {
11225
11445
  let icons_apps;
11226
11446
  let current;
11227
11447
  icons_apps = new Icons_default.Apps({ props: { theme: (
@@ -11259,7 +11479,7 @@ function create_default_slot_14(ctx) {
11259
11479
  }
11260
11480
  };
11261
11481
  }
11262
- function create_if_block14(ctx) {
11482
+ function create_if_block_2(ctx) {
11263
11483
  let button;
11264
11484
  let current;
11265
11485
  button = new Button_default({
@@ -11274,14 +11494,14 @@ function create_if_block14(ctx) {
11274
11494
  /*disabled*/
11275
11495
  ctx[3]
11276
11496
  ),
11277
- $$slots: { default: [create_default_slot13] },
11497
+ $$slots: { default: [create_default_slot_43] },
11278
11498
  $$scope: { ctx }
11279
11499
  }
11280
11500
  });
11281
11501
  button.$on(
11282
11502
  "click",
11283
11503
  /*scroll_down*/
11284
- ctx[24]
11504
+ ctx[25]
11285
11505
  );
11286
11506
  return {
11287
11507
  c() {
@@ -11303,7 +11523,7 @@ function create_if_block14(ctx) {
11303
11523
  ctx2[3];
11304
11524
  if (dirty[0] & /*theme*/
11305
11525
  2 | dirty[1] & /*$$scope*/
11306
- 33554432) {
11526
+ 268435456) {
11307
11527
  button_changes.$$scope = { dirty, ctx: ctx2 };
11308
11528
  }
11309
11529
  button.$set(button_changes);
@@ -11323,7 +11543,7 @@ function create_if_block14(ctx) {
11323
11543
  }
11324
11544
  };
11325
11545
  }
11326
- function create_default_slot13(ctx) {
11546
+ function create_default_slot_43(ctx) {
11327
11547
  let icons_down;
11328
11548
  let current;
11329
11549
  icons_down = new Icons_default.Down({ props: { theme: (
@@ -11361,6 +11581,366 @@ function create_default_slot13(ctx) {
11361
11581
  }
11362
11582
  };
11363
11583
  }
11584
+ function create_if_block_14(ctx) {
11585
+ let button0;
11586
+ let t_1;
11587
+ let button1;
11588
+ let current;
11589
+ const button0_spread_levels = [
11590
+ { class: name5 + "-panel-switch-btn" },
11591
+ /*btn_props*/
11592
+ ctx[15]
11593
+ ];
11594
+ let button0_props = {
11595
+ $$slots: { default: [create_default_slot_34] },
11596
+ $$scope: { ctx }
11597
+ };
11598
+ for (let i = 0; i < button0_spread_levels.length; i += 1) {
11599
+ button0_props = assign(button0_props, button0_spread_levels[i]);
11600
+ }
11601
+ button0 = new Button_default({ props: button0_props });
11602
+ const button1_spread_levels = [
11603
+ { class: name5 + "-panel-switch-btn" },
11604
+ /*btn_props*/
11605
+ ctx[15]
11606
+ ];
11607
+ let button1_props = {
11608
+ $$slots: { default: [create_default_slot_24] },
11609
+ $$scope: { ctx }
11610
+ };
11611
+ for (let i = 0; i < button1_spread_levels.length; i += 1) {
11612
+ button1_props = assign(button1_props, button1_spread_levels[i]);
11613
+ }
11614
+ button1 = new Button_default({ props: button1_props });
11615
+ button1.$on(
11616
+ "click",
11617
+ /*useLaserPen*/
11618
+ ctx[34]
11619
+ );
11620
+ return {
11621
+ c() {
11622
+ create_component(button0.$$.fragment);
11623
+ t_1 = space();
11624
+ create_component(button1.$$.fragment);
11625
+ },
11626
+ m(target, anchor) {
11627
+ mount_component(button0, target, anchor);
11628
+ insert(target, t_1, anchor);
11629
+ mount_component(button1, target, anchor);
11630
+ current = true;
11631
+ },
11632
+ p(ctx2, dirty) {
11633
+ const button0_changes = dirty[0] & /*btn_props*/
11634
+ 32768 ? get_spread_update(button0_spread_levels, [
11635
+ dirty & /*name*/
11636
+ 0 && { class: name5 + "-panel-switch-btn" },
11637
+ dirty[0] & /*btn_props*/
11638
+ 32768 && get_spread_object(
11639
+ /*btn_props*/
11640
+ ctx2[15]
11641
+ )
11642
+ ]) : {};
11643
+ if (dirty[0] & /*theme*/
11644
+ 2 | dirty[1] & /*$$scope*/
11645
+ 268435456) {
11646
+ button0_changes.$$scope = { dirty, ctx: ctx2 };
11647
+ }
11648
+ button0.$set(button0_changes);
11649
+ const button1_changes = dirty[0] & /*btn_props*/
11650
+ 32768 ? get_spread_update(button1_spread_levels, [
11651
+ dirty & /*name*/
11652
+ 0 && { class: name5 + "-panel-switch-btn" },
11653
+ dirty[0] & /*btn_props*/
11654
+ 32768 && get_spread_object(
11655
+ /*btn_props*/
11656
+ ctx2[15]
11657
+ )
11658
+ ]) : {};
11659
+ if (dirty[0] & /*theme*/
11660
+ 2 | dirty[1] & /*$$scope*/
11661
+ 268435456) {
11662
+ button1_changes.$$scope = { dirty, ctx: ctx2 };
11663
+ }
11664
+ button1.$set(button1_changes);
11665
+ },
11666
+ i(local) {
11667
+ if (current)
11668
+ return;
11669
+ transition_in(button0.$$.fragment, local);
11670
+ transition_in(button1.$$.fragment, local);
11671
+ current = true;
11672
+ },
11673
+ o(local) {
11674
+ transition_out(button0.$$.fragment, local);
11675
+ transition_out(button1.$$.fragment, local);
11676
+ current = false;
11677
+ },
11678
+ d(detaching) {
11679
+ destroy_component(button0, detaching);
11680
+ if (detaching)
11681
+ detach(t_1);
11682
+ destroy_component(button1, detaching);
11683
+ }
11684
+ };
11685
+ }
11686
+ function create_if_block14(ctx) {
11687
+ let button0;
11688
+ let t_1;
11689
+ let button1;
11690
+ let current;
11691
+ const button0_spread_levels = [
11692
+ { class: name5 + "-panel-switch-btn" },
11693
+ /*btn_props*/
11694
+ ctx[15]
11695
+ ];
11696
+ let button0_props = {
11697
+ $$slots: { default: [create_default_slot_14] },
11698
+ $$scope: { ctx }
11699
+ };
11700
+ for (let i = 0; i < button0_spread_levels.length; i += 1) {
11701
+ button0_props = assign(button0_props, button0_spread_levels[i]);
11702
+ }
11703
+ button0 = new Button_default({ props: button0_props });
11704
+ button0.$on(
11705
+ "click",
11706
+ /*pencil*/
11707
+ ctx[28]
11708
+ );
11709
+ const button1_spread_levels = [
11710
+ { class: name5 + "-panel-switch-btn" },
11711
+ /*btn_props*/
11712
+ ctx[15]
11713
+ ];
11714
+ let button1_props = {
11715
+ $$slots: { default: [create_default_slot13] },
11716
+ $$scope: { ctx }
11717
+ };
11718
+ for (let i = 0; i < button1_spread_levels.length; i += 1) {
11719
+ button1_props = assign(button1_props, button1_spread_levels[i]);
11720
+ }
11721
+ button1 = new Button_default({ props: button1_props });
11722
+ return {
11723
+ c() {
11724
+ create_component(button0.$$.fragment);
11725
+ t_1 = space();
11726
+ create_component(button1.$$.fragment);
11727
+ },
11728
+ m(target, anchor) {
11729
+ mount_component(button0, target, anchor);
11730
+ insert(target, t_1, anchor);
11731
+ mount_component(button1, target, anchor);
11732
+ current = true;
11733
+ },
11734
+ p(ctx2, dirty) {
11735
+ const button0_changes = dirty[0] & /*btn_props*/
11736
+ 32768 ? get_spread_update(button0_spread_levels, [
11737
+ dirty & /*name*/
11738
+ 0 && { class: name5 + "-panel-switch-btn" },
11739
+ dirty[0] & /*btn_props*/
11740
+ 32768 && get_spread_object(
11741
+ /*btn_props*/
11742
+ ctx2[15]
11743
+ )
11744
+ ]) : {};
11745
+ if (dirty[0] & /*theme*/
11746
+ 2 | dirty[1] & /*$$scope*/
11747
+ 268435456) {
11748
+ button0_changes.$$scope = { dirty, ctx: ctx2 };
11749
+ }
11750
+ button0.$set(button0_changes);
11751
+ const button1_changes = dirty[0] & /*btn_props*/
11752
+ 32768 ? get_spread_update(button1_spread_levels, [
11753
+ dirty & /*name*/
11754
+ 0 && { class: name5 + "-panel-switch-btn" },
11755
+ dirty[0] & /*btn_props*/
11756
+ 32768 && get_spread_object(
11757
+ /*btn_props*/
11758
+ ctx2[15]
11759
+ )
11760
+ ]) : {};
11761
+ if (dirty[0] & /*theme*/
11762
+ 2 | dirty[1] & /*$$scope*/
11763
+ 268435456) {
11764
+ button1_changes.$$scope = { dirty, ctx: ctx2 };
11765
+ }
11766
+ button1.$set(button1_changes);
11767
+ },
11768
+ i(local) {
11769
+ if (current)
11770
+ return;
11771
+ transition_in(button0.$$.fragment, local);
11772
+ transition_in(button1.$$.fragment, local);
11773
+ current = true;
11774
+ },
11775
+ o(local) {
11776
+ transition_out(button0.$$.fragment, local);
11777
+ transition_out(button1.$$.fragment, local);
11778
+ current = false;
11779
+ },
11780
+ d(detaching) {
11781
+ destroy_component(button0, detaching);
11782
+ if (detaching)
11783
+ detach(t_1);
11784
+ destroy_component(button1, detaching);
11785
+ }
11786
+ };
11787
+ }
11788
+ function create_default_slot_34(ctx) {
11789
+ let icons_pencilfilled;
11790
+ let current;
11791
+ icons_pencilfilled = new Icons_default.PencilFilled({
11792
+ props: { theme: (
11793
+ /*theme*/
11794
+ ctx[1]
11795
+ ), active: true }
11796
+ });
11797
+ return {
11798
+ c() {
11799
+ create_component(icons_pencilfilled.$$.fragment);
11800
+ },
11801
+ m(target, anchor) {
11802
+ mount_component(icons_pencilfilled, target, anchor);
11803
+ current = true;
11804
+ },
11805
+ p(ctx2, dirty) {
11806
+ const icons_pencilfilled_changes = {};
11807
+ if (dirty[0] & /*theme*/
11808
+ 2)
11809
+ icons_pencilfilled_changes.theme = /*theme*/
11810
+ ctx2[1];
11811
+ icons_pencilfilled.$set(icons_pencilfilled_changes);
11812
+ },
11813
+ i(local) {
11814
+ if (current)
11815
+ return;
11816
+ transition_in(icons_pencilfilled.$$.fragment, local);
11817
+ current = true;
11818
+ },
11819
+ o(local) {
11820
+ transition_out(icons_pencilfilled.$$.fragment, local);
11821
+ current = false;
11822
+ },
11823
+ d(detaching) {
11824
+ destroy_component(icons_pencilfilled, detaching);
11825
+ }
11826
+ };
11827
+ }
11828
+ function create_default_slot_24(ctx) {
11829
+ let icons_laserpen;
11830
+ let current;
11831
+ icons_laserpen = new Icons_default.LaserPen({ props: { theme: (
11832
+ /*theme*/
11833
+ ctx[1]
11834
+ ) } });
11835
+ return {
11836
+ c() {
11837
+ create_component(icons_laserpen.$$.fragment);
11838
+ },
11839
+ m(target, anchor) {
11840
+ mount_component(icons_laserpen, target, anchor);
11841
+ current = true;
11842
+ },
11843
+ p(ctx2, dirty) {
11844
+ const icons_laserpen_changes = {};
11845
+ if (dirty[0] & /*theme*/
11846
+ 2)
11847
+ icons_laserpen_changes.theme = /*theme*/
11848
+ ctx2[1];
11849
+ icons_laserpen.$set(icons_laserpen_changes);
11850
+ },
11851
+ i(local) {
11852
+ if (current)
11853
+ return;
11854
+ transition_in(icons_laserpen.$$.fragment, local);
11855
+ current = true;
11856
+ },
11857
+ o(local) {
11858
+ transition_out(icons_laserpen.$$.fragment, local);
11859
+ current = false;
11860
+ },
11861
+ d(detaching) {
11862
+ destroy_component(icons_laserpen, detaching);
11863
+ }
11864
+ };
11865
+ }
11866
+ function create_default_slot_14(ctx) {
11867
+ let icons_pencil;
11868
+ let current;
11869
+ icons_pencil = new Icons_default.Pencil({ props: { theme: (
11870
+ /*theme*/
11871
+ ctx[1]
11872
+ ) } });
11873
+ return {
11874
+ c() {
11875
+ create_component(icons_pencil.$$.fragment);
11876
+ },
11877
+ m(target, anchor) {
11878
+ mount_component(icons_pencil, target, anchor);
11879
+ current = true;
11880
+ },
11881
+ p(ctx2, dirty) {
11882
+ const icons_pencil_changes = {};
11883
+ if (dirty[0] & /*theme*/
11884
+ 2)
11885
+ icons_pencil_changes.theme = /*theme*/
11886
+ ctx2[1];
11887
+ icons_pencil.$set(icons_pencil_changes);
11888
+ },
11889
+ i(local) {
11890
+ if (current)
11891
+ return;
11892
+ transition_in(icons_pencil.$$.fragment, local);
11893
+ current = true;
11894
+ },
11895
+ o(local) {
11896
+ transition_out(icons_pencil.$$.fragment, local);
11897
+ current = false;
11898
+ },
11899
+ d(detaching) {
11900
+ destroy_component(icons_pencil, detaching);
11901
+ }
11902
+ };
11903
+ }
11904
+ function create_default_slot13(ctx) {
11905
+ let icons_laserpenfilled;
11906
+ let current;
11907
+ icons_laserpenfilled = new Icons_default.LaserPenFilled({
11908
+ props: { theme: (
11909
+ /*theme*/
11910
+ ctx[1]
11911
+ ), active: true }
11912
+ });
11913
+ return {
11914
+ c() {
11915
+ create_component(icons_laserpenfilled.$$.fragment);
11916
+ },
11917
+ m(target, anchor) {
11918
+ mount_component(icons_laserpenfilled, target, anchor);
11919
+ current = true;
11920
+ },
11921
+ p(ctx2, dirty) {
11922
+ const icons_laserpenfilled_changes = {};
11923
+ if (dirty[0] & /*theme*/
11924
+ 2)
11925
+ icons_laserpenfilled_changes.theme = /*theme*/
11926
+ ctx2[1];
11927
+ icons_laserpenfilled.$set(icons_laserpenfilled_changes);
11928
+ },
11929
+ i(local) {
11930
+ if (current)
11931
+ return;
11932
+ transition_in(icons_laserpenfilled.$$.fragment, local);
11933
+ current = true;
11934
+ },
11935
+ o(local) {
11936
+ transition_out(icons_laserpenfilled.$$.fragment, local);
11937
+ current = false;
11938
+ },
11939
+ d(detaching) {
11940
+ destroy_component(icons_laserpenfilled, detaching);
11941
+ }
11942
+ };
11943
+ }
11364
11944
  function create_each_block4(ctx) {
11365
11945
  let button;
11366
11946
  let img;
@@ -11372,7 +11952,7 @@ function create_each_block4(ctx) {
11372
11952
  let span;
11373
11953
  let t1_value = (
11374
11954
  /*label*/
11375
- ctx[46] + ""
11955
+ ctx[49] + ""
11376
11956
  );
11377
11957
  let t1;
11378
11958
  let span_class_value;
@@ -11394,40 +11974,40 @@ function create_each_block4(ctx) {
11394
11974
  attr(img, "class", img_class_value = name5 + "-app-btn-icon " + /*theme*/
11395
11975
  ctx[1]);
11396
11976
  if (!src_url_equal(img.src, img_src_value = /*icon*/
11397
- ctx[45]))
11977
+ ctx[48]))
11398
11978
  attr(img, "src", img_src_value);
11399
11979
  attr(img, "alt", img_alt_value = /*kind*/
11400
- ctx[47]);
11980
+ ctx[50]);
11401
11981
  attr(img, "title", img_title_value = /*label*/
11402
- ctx[46]);
11982
+ ctx[49]);
11403
11983
  attr(span, "class", span_class_value = name5 + "-app-btn-text " + /*theme*/
11404
11984
  ctx[1]);
11405
11985
  attr(button, "class", button_class_value = name5 + "-app-btn " + /*kind*/
11406
- ctx[47] + " " + /*theme*/
11986
+ ctx[50] + " " + /*theme*/
11407
11987
  ctx[1]);
11408
11988
  attr(button, "title", button_title_value = /*label*/
11409
- ctx[46] + /*state*/
11410
- (ctx[49] && /*state*/
11411
- ctx[49].reason ? ": " + /*state*/
11412
- ctx[49].reason : ""));
11989
+ ctx[49] + /*state*/
11990
+ (ctx[52] && /*state*/
11991
+ ctx[52].reason ? ": " + /*state*/
11992
+ ctx[52].reason : ""));
11413
11993
  attr(button, "data-app-kind", button_data_app_kind_value = /*netless_app*/
11414
- ctx[44].kind);
11994
+ ctx[47].kind);
11415
11995
  button.disabled = button_disabled_value = /*state*/
11416
- ctx[49] && /*state*/
11417
- ctx[49].status !== "idle";
11996
+ ctx[52] && /*state*/
11997
+ ctx[52].status !== "idle";
11418
11998
  toggle_class(
11419
11999
  button,
11420
12000
  "is-loading",
11421
12001
  /*state*/
11422
- ctx[49] && /*state*/
11423
- ctx[49].status === "loading"
12002
+ ctx[52] && /*state*/
12003
+ ctx[52].status === "loading"
11424
12004
  );
11425
12005
  toggle_class(
11426
12006
  button,
11427
12007
  "is-failed",
11428
12008
  /*state*/
11429
- ctx[49] && /*state*/
11430
- ctx[49].status === "failed"
12009
+ ctx[52] && /*state*/
12010
+ ctx[52].status === "failed"
11431
12011
  );
11432
12012
  },
11433
12013
  m(target, anchor) {
@@ -11441,9 +12021,9 @@ function create_each_block4(ctx) {
11441
12021
  dispose = listen(button, "click", function() {
11442
12022
  if (is_function(
11443
12023
  /*on_click*/
11444
- ctx[50]
12024
+ ctx[53]
11445
12025
  ))
11446
- ctx[50].apply(this, arguments);
12026
+ ctx[53].apply(this, arguments);
11447
12027
  });
11448
12028
  mounted = true;
11449
12029
  }
@@ -11456,23 +12036,23 @@ function create_each_block4(ctx) {
11456
12036
  attr(img, "class", img_class_value);
11457
12037
  }
11458
12038
  if (dirty[0] & /*$apps*/
11459
- 1048576 && !src_url_equal(img.src, img_src_value = /*icon*/
11460
- ctx[45])) {
12039
+ 2097152 && !src_url_equal(img.src, img_src_value = /*icon*/
12040
+ ctx[48])) {
11461
12041
  attr(img, "src", img_src_value);
11462
12042
  }
11463
12043
  if (dirty[0] & /*$apps*/
11464
- 1048576 && img_alt_value !== (img_alt_value = /*kind*/
11465
- ctx[47])) {
12044
+ 2097152 && img_alt_value !== (img_alt_value = /*kind*/
12045
+ ctx[50])) {
11466
12046
  attr(img, "alt", img_alt_value);
11467
12047
  }
11468
12048
  if (dirty[0] & /*$apps*/
11469
- 1048576 && img_title_value !== (img_title_value = /*label*/
11470
- ctx[46])) {
12049
+ 2097152 && img_title_value !== (img_title_value = /*label*/
12050
+ ctx[49])) {
11471
12051
  attr(img, "title", img_title_value);
11472
12052
  }
11473
12053
  if (dirty[0] & /*$apps*/
11474
- 1048576 && t1_value !== (t1_value = /*label*/
11475
- ctx[46] + ""))
12054
+ 2097152 && t1_value !== (t1_value = /*label*/
12055
+ ctx[49] + ""))
11476
12056
  set_data(t1, t1_value);
11477
12057
  if (dirty[0] & /*theme*/
11478
12058
  2 && span_class_value !== (span_class_value = name5 + "-app-btn-text " + /*theme*/
@@ -11480,48 +12060,48 @@ function create_each_block4(ctx) {
11480
12060
  attr(span, "class", span_class_value);
11481
12061
  }
11482
12062
  if (dirty[0] & /*$apps, theme*/
11483
- 1048578 && button_class_value !== (button_class_value = name5 + "-app-btn " + /*kind*/
11484
- ctx[47] + " " + /*theme*/
12063
+ 2097154 && button_class_value !== (button_class_value = name5 + "-app-btn " + /*kind*/
12064
+ ctx[50] + " " + /*theme*/
11485
12065
  ctx[1])) {
11486
12066
  attr(button, "class", button_class_value);
11487
12067
  }
11488
12068
  if (dirty[0] & /*$apps, $status*/
11489
- 3145728 && button_title_value !== (button_title_value = /*label*/
11490
- ctx[46] + /*state*/
11491
- (ctx[49] && /*state*/
11492
- ctx[49].reason ? ": " + /*state*/
11493
- ctx[49].reason : ""))) {
12069
+ 6291456 && button_title_value !== (button_title_value = /*label*/
12070
+ ctx[49] + /*state*/
12071
+ (ctx[52] && /*state*/
12072
+ ctx[52].reason ? ": " + /*state*/
12073
+ ctx[52].reason : ""))) {
11494
12074
  attr(button, "title", button_title_value);
11495
12075
  }
11496
12076
  if (dirty[0] & /*$apps*/
11497
- 1048576 && button_data_app_kind_value !== (button_data_app_kind_value = /*netless_app*/
11498
- ctx[44].kind)) {
12077
+ 2097152 && button_data_app_kind_value !== (button_data_app_kind_value = /*netless_app*/
12078
+ ctx[47].kind)) {
11499
12079
  attr(button, "data-app-kind", button_data_app_kind_value);
11500
12080
  }
11501
12081
  if (dirty[0] & /*$status, $apps*/
11502
- 3145728 && button_disabled_value !== (button_disabled_value = /*state*/
11503
- ctx[49] && /*state*/
11504
- ctx[49].status !== "idle")) {
12082
+ 6291456 && button_disabled_value !== (button_disabled_value = /*state*/
12083
+ ctx[52] && /*state*/
12084
+ ctx[52].status !== "idle")) {
11505
12085
  button.disabled = button_disabled_value;
11506
12086
  }
11507
12087
  if (dirty[0] & /*$apps, theme, $status, $apps*/
11508
- 3145730) {
12088
+ 6291458) {
11509
12089
  toggle_class(
11510
12090
  button,
11511
12091
  "is-loading",
11512
12092
  /*state*/
11513
- ctx[49] && /*state*/
11514
- ctx[49].status === "loading"
12093
+ ctx[52] && /*state*/
12094
+ ctx[52].status === "loading"
11515
12095
  );
11516
12096
  }
11517
12097
  if (dirty[0] & /*$apps, theme, $status, $apps*/
11518
- 3145730) {
12098
+ 6291458) {
11519
12099
  toggle_class(
11520
12100
  button,
11521
12101
  "is-failed",
11522
12102
  /*state*/
11523
- ctx[49] && /*state*/
11524
- ctx[49].status === "failed"
12103
+ ctx[52] && /*state*/
12104
+ ctx[52].status === "failed"
11525
12105
  );
11526
12106
  }
11527
12107
  },
@@ -11533,42 +12113,46 @@ function create_each_block4(ctx) {
11533
12113
  }
11534
12114
  };
11535
12115
  }
11536
- function create_fragment67(ctx) {
12116
+ function create_fragment69(ctx) {
11537
12117
  let t0;
11538
12118
  let div0;
11539
12119
  let t1;
11540
12120
  let scrollHeight_action;
11541
12121
  let t2;
11542
12122
  let t3;
11543
- let div8;
11544
- let div2;
11545
- let strokewidth0;
11546
- let t4;
12123
+ let div9;
12124
+ let div3;
11547
12125
  let div1;
12126
+ let current_block_type_index;
12127
+ let if_block3;
12128
+ let t4;
12129
+ let strokewidth0;
11548
12130
  let t5;
11549
- let strokecolor0;
12131
+ let div2;
11550
12132
  let t6;
11551
- let div3;
11552
- let textcolor;
12133
+ let strokecolor0;
11553
12134
  let t7;
11554
- let div6;
11555
- let selectshapes;
11556
- let t8;
11557
12135
  let div4;
12136
+ let textcolor;
12137
+ let t8;
12138
+ let div7;
12139
+ let selectshapes;
11558
12140
  let t9;
11559
- let strokewidth1;
11560
- let t10;
11561
12141
  let div5;
12142
+ let t10;
12143
+ let strokewidth1;
11562
12144
  let t11;
11563
- let strokecolor1;
12145
+ let div6;
11564
12146
  let t12;
11565
- let div7;
12147
+ let strokecolor1;
12148
+ let t13;
12149
+ let div8;
11566
12150
  let current;
11567
12151
  let mounted;
11568
12152
  let dispose;
11569
12153
  let if_block0 = (
11570
12154
  /*scrollable*/
11571
- ctx[5] && create_if_block_11(ctx)
12155
+ ctx[5] && create_if_block_13(ctx)
11572
12156
  );
11573
12157
  let each_value_1 = (
11574
12158
  /*items*/
@@ -11582,11 +12166,27 @@ function create_fragment67(ctx) {
11582
12166
  each_blocks_1[i] = null;
11583
12167
  });
11584
12168
  let if_block1 = !/*hide_apps*/
11585
- ctx[8] && create_if_block_12(ctx);
12169
+ ctx[8] && create_if_block_3(ctx);
11586
12170
  let if_block2 = (
11587
12171
  /*scrollable*/
11588
- ctx[5] && create_if_block14(ctx)
12172
+ ctx[5] && create_if_block_2(ctx)
11589
12173
  );
12174
+ const if_block_creators = [create_if_block14, create_if_block_14];
12175
+ const if_blocks = [];
12176
+ function select_block_type_1(ctx2, dirty) {
12177
+ var _a, _b;
12178
+ if (!!/*app*/
12179
+ ((_a = ctx2[0]) == null ? void 0 : _a.appliancePlugin) && /*hasUseLaserPen*/
12180
+ ctx2[16])
12181
+ return 0;
12182
+ if (!!/*app*/
12183
+ ((_b = ctx2[0]) == null ? void 0 : _b.appliancePlugin))
12184
+ return 1;
12185
+ return -1;
12186
+ }
12187
+ if (~(current_block_type_index = select_block_type_1(ctx))) {
12188
+ if_block3 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
12189
+ }
11590
12190
  strokewidth0 = new StrokeWidth_default({
11591
12191
  props: {
11592
12192
  app: (
@@ -11701,7 +12301,7 @@ function create_fragment67(ctx) {
11701
12301
  });
11702
12302
  let each_value = (
11703
12303
  /*$apps*/
11704
- ctx[20]
12304
+ ctx[21]
11705
12305
  );
11706
12306
  let each_blocks = [];
11707
12307
  for (let i = 0; i < each_value.length; i += 1) {
@@ -11723,29 +12323,33 @@ function create_fragment67(ctx) {
11723
12323
  if (if_block2)
11724
12324
  if_block2.c();
11725
12325
  t3 = space();
11726
- div8 = element("div");
11727
- div2 = element("div");
11728
- create_component(strokewidth0.$$.fragment);
11729
- t4 = space();
12326
+ div9 = element("div");
12327
+ div3 = element("div");
11730
12328
  div1 = element("div");
12329
+ if (if_block3)
12330
+ if_block3.c();
12331
+ t4 = space();
12332
+ create_component(strokewidth0.$$.fragment);
11731
12333
  t5 = space();
11732
- create_component(strokecolor0.$$.fragment);
12334
+ div2 = element("div");
11733
12335
  t6 = space();
11734
- div3 = element("div");
11735
- create_component(textcolor.$$.fragment);
12336
+ create_component(strokecolor0.$$.fragment);
11736
12337
  t7 = space();
11737
- div6 = element("div");
11738
- create_component(selectshapes.$$.fragment);
11739
- t8 = space();
11740
12338
  div4 = element("div");
12339
+ create_component(textcolor.$$.fragment);
12340
+ t8 = space();
12341
+ div7 = element("div");
12342
+ create_component(selectshapes.$$.fragment);
11741
12343
  t9 = space();
11742
- create_component(strokewidth1.$$.fragment);
11743
- t10 = space();
11744
12344
  div5 = element("div");
12345
+ t10 = space();
12346
+ create_component(strokewidth1.$$.fragment);
11745
12347
  t11 = space();
11746
- create_component(strokecolor1.$$.fragment);
12348
+ div6 = element("div");
11747
12349
  t12 = space();
11748
- div7 = element("div");
12350
+ create_component(strokecolor1.$$.fragment);
12351
+ t13 = space();
12352
+ div8 = element("div");
11749
12353
  for (let i = 0; i < each_blocks.length; i += 1) {
11750
12354
  each_blocks[i].c();
11751
12355
  }
@@ -11756,21 +12360,22 @@ function create_fragment67(ctx) {
11756
12360
  /*scrollable*/
11757
12361
  ctx[5]
11758
12362
  );
11759
- attr(div1, "class", name5 + "-panel-divider");
11760
- attr(div2, "class", name5 + "-panel pencil");
11761
- attr(div3, "class", name5 + "-panel text");
11762
- attr(div4, "class", name5 + "-panel-divider");
12363
+ attr(div1, "class", name5 + "-panel-switch-pencil");
12364
+ attr(div2, "class", name5 + "-panel-divider");
12365
+ attr(div3, "class", name5 + "-panel pencil");
12366
+ attr(div4, "class", name5 + "-panel text");
11763
12367
  attr(div5, "class", name5 + "-panel-divider");
11764
- attr(div6, "class", name5 + "-panel shapes");
11765
- attr(div7, "class", name5 + "-panel apps");
12368
+ attr(div6, "class", name5 + "-panel-divider");
12369
+ attr(div7, "class", name5 + "-panel shapes");
12370
+ attr(div8, "class", name5 + "-panel apps");
11766
12371
  set_style(
11767
- div7,
12372
+ div8,
11768
12373
  "--n",
11769
12374
  /*$apps*/
11770
- ctx[20].length
12375
+ ctx[21].length
11771
12376
  );
11772
- attr(div8, "class", name5 + "-panel-wrapper");
11773
- set_style(div8, "display", "none");
12377
+ attr(div9, "class", name5 + "-panel-wrapper");
12378
+ set_style(div9, "display", "none");
11774
12379
  },
11775
12380
  m(target, anchor) {
11776
12381
  if (if_block0)
@@ -11789,38 +12394,43 @@ function create_fragment67(ctx) {
11789
12394
  if (if_block2)
11790
12395
  if_block2.m(target, anchor);
11791
12396
  insert(target, t3, anchor);
11792
- insert(target, div8, anchor);
11793
- append(div8, div2);
11794
- mount_component(strokewidth0, div2, null);
11795
- append(div2, t4);
11796
- append(div2, div1);
11797
- append(div2, t5);
11798
- mount_component(strokecolor0, div2, null);
11799
- ctx[37](div2);
11800
- append(div8, t6);
11801
- append(div8, div3);
11802
- mount_component(textcolor, div3, null);
11803
- ctx[38](div3);
11804
- append(div8, t7);
11805
- append(div8, div6);
11806
- mount_component(selectshapes, div6, null);
11807
- append(div6, t8);
11808
- append(div6, div4);
11809
- append(div6, t9);
11810
- mount_component(strokewidth1, div6, null);
11811
- append(div6, t10);
11812
- append(div6, div5);
11813
- append(div6, t11);
11814
- mount_component(strokecolor1, div6, null);
11815
- ctx[39](div6);
11816
- append(div8, t12);
11817
- append(div8, div7);
12397
+ insert(target, div9, anchor);
12398
+ append(div9, div3);
12399
+ append(div3, div1);
12400
+ if (~current_block_type_index) {
12401
+ if_blocks[current_block_type_index].m(div1, null);
12402
+ }
12403
+ append(div3, t4);
12404
+ mount_component(strokewidth0, div3, null);
12405
+ append(div3, t5);
12406
+ append(div3, div2);
12407
+ append(div3, t6);
12408
+ mount_component(strokecolor0, div3, null);
12409
+ ctx[40](div3);
12410
+ append(div9, t7);
12411
+ append(div9, div4);
12412
+ mount_component(textcolor, div4, null);
12413
+ ctx[41](div4);
12414
+ append(div9, t8);
12415
+ append(div9, div7);
12416
+ mount_component(selectshapes, div7, null);
12417
+ append(div7, t9);
12418
+ append(div7, div5);
12419
+ append(div7, t10);
12420
+ mount_component(strokewidth1, div7, null);
12421
+ append(div7, t11);
12422
+ append(div7, div6);
12423
+ append(div7, t12);
12424
+ mount_component(strokecolor1, div7, null);
12425
+ ctx[42](div7);
12426
+ append(div9, t13);
12427
+ append(div9, div8);
11818
12428
  for (let i = 0; i < each_blocks.length; i += 1) {
11819
12429
  if (each_blocks[i]) {
11820
- each_blocks[i].m(div7, null);
12430
+ each_blocks[i].m(div8, null);
11821
12431
  }
11822
12432
  }
11823
- ctx[41](div7);
12433
+ ctx[44](div8);
11824
12434
  current = true;
11825
12435
  if (!mounted) {
11826
12436
  dispose = [
@@ -11834,7 +12444,7 @@ function create_fragment67(ctx) {
11834
12444
  null,
11835
12445
  div0,
11836
12446
  /*top*/
11837
- ctx[22]
12447
+ ctx[23]
11838
12448
  ))
11839
12449
  ];
11840
12450
  mounted = true;
@@ -11852,7 +12462,7 @@ function create_fragment67(ctx) {
11852
12462
  transition_in(if_block0, 1);
11853
12463
  }
11854
12464
  } else {
11855
- if_block0 = create_if_block_11(ctx2);
12465
+ if_block0 = create_if_block_13(ctx2);
11856
12466
  if_block0.c();
11857
12467
  transition_in(if_block0, 1);
11858
12468
  if_block0.m(t0.parentNode, t0);
@@ -11864,9 +12474,9 @@ function create_fragment67(ctx) {
11864
12474
  });
11865
12475
  check_outros();
11866
12476
  }
11867
- if (dirty[0] & /*appliance, theme, btn_props, c, clicker, items, selector, pencil_panel, pencil, text_panel, text, app, t, shapes_panel, eraser, hand*/
11868
- 2114632835 | dirty[1] & /*clear, laserPointer*/
11869
- 3) {
12477
+ if (dirty[0] & /*appliance, theme, btn_props, c, clicker, items, selector, hasUseLaserPen, pencil_panel, pencil, text_panel, text, app, t, shapes_panel, eraser*/
12478
+ 2081799299 | dirty[1] & /*clear, hand, laserPointer*/
12479
+ 7) {
11870
12480
  each_value_1 = /*items*/
11871
12481
  ctx2[7];
11872
12482
  let i;
@@ -11897,7 +12507,7 @@ function create_fragment67(ctx) {
11897
12507
  transition_in(if_block1, 1);
11898
12508
  }
11899
12509
  } else {
11900
- if_block1 = create_if_block_12(ctx2);
12510
+ if_block1 = create_if_block_3(ctx2);
11901
12511
  if_block1.c();
11902
12512
  transition_in(if_block1, 1);
11903
12513
  if_block1.m(div0, null);
@@ -11936,7 +12546,7 @@ function create_fragment67(ctx) {
11936
12546
  transition_in(if_block2, 1);
11937
12547
  }
11938
12548
  } else {
11939
- if_block2 = create_if_block14(ctx2);
12549
+ if_block2 = create_if_block_2(ctx2);
11940
12550
  if_block2.c();
11941
12551
  transition_in(if_block2, 1);
11942
12552
  if_block2.m(t3.parentNode, t3);
@@ -11948,6 +12558,34 @@ function create_fragment67(ctx) {
11948
12558
  });
11949
12559
  check_outros();
11950
12560
  }
12561
+ let previous_block_index = current_block_type_index;
12562
+ current_block_type_index = select_block_type_1(ctx2);
12563
+ if (current_block_type_index === previous_block_index) {
12564
+ if (~current_block_type_index) {
12565
+ if_blocks[current_block_type_index].p(ctx2, dirty);
12566
+ }
12567
+ } else {
12568
+ if (if_block3) {
12569
+ group_outros();
12570
+ transition_out(if_blocks[previous_block_index], 1, 1, () => {
12571
+ if_blocks[previous_block_index] = null;
12572
+ });
12573
+ check_outros();
12574
+ }
12575
+ if (~current_block_type_index) {
12576
+ if_block3 = if_blocks[current_block_type_index];
12577
+ if (!if_block3) {
12578
+ if_block3 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
12579
+ if_block3.c();
12580
+ } else {
12581
+ if_block3.p(ctx2, dirty);
12582
+ }
12583
+ transition_in(if_block3, 1);
12584
+ if_block3.m(div1, null);
12585
+ } else {
12586
+ if_block3 = null;
12587
+ }
12588
+ }
11951
12589
  const strokewidth0_changes = {};
11952
12590
  if (dirty[0] & /*app*/
11953
12591
  1)
@@ -12049,9 +12687,9 @@ function create_fragment67(ctx) {
12049
12687
  ctx2[9];
12050
12688
  strokecolor1.$set(strokecolor1_changes);
12051
12689
  if (dirty[0] & /*$apps, theme, $status, app*/
12052
- 3145731) {
12690
+ 6291459) {
12053
12691
  each_value = /*$apps*/
12054
- ctx2[20];
12692
+ ctx2[21];
12055
12693
  let i;
12056
12694
  for (i = 0; i < each_value.length; i += 1) {
12057
12695
  const child_ctx = get_each_context4(ctx2, each_value, i);
@@ -12060,7 +12698,7 @@ function create_fragment67(ctx) {
12060
12698
  } else {
12061
12699
  each_blocks[i] = create_each_block4(child_ctx);
12062
12700
  each_blocks[i].c();
12063
- each_blocks[i].m(div7, null);
12701
+ each_blocks[i].m(div8, null);
12064
12702
  }
12065
12703
  }
12066
12704
  for (; i < each_blocks.length; i += 1) {
@@ -12069,12 +12707,12 @@ function create_fragment67(ctx) {
12069
12707
  each_blocks.length = each_value.length;
12070
12708
  }
12071
12709
  if (!current || dirty[0] & /*$apps*/
12072
- 1048576) {
12710
+ 2097152) {
12073
12711
  set_style(
12074
- div7,
12712
+ div8,
12075
12713
  "--n",
12076
12714
  /*$apps*/
12077
- ctx2[20].length
12715
+ ctx2[21].length
12078
12716
  );
12079
12717
  }
12080
12718
  },
@@ -12087,6 +12725,7 @@ function create_fragment67(ctx) {
12087
12725
  }
12088
12726
  transition_in(if_block1);
12089
12727
  transition_in(if_block2);
12728
+ transition_in(if_block3);
12090
12729
  transition_in(strokewidth0.$$.fragment, local);
12091
12730
  transition_in(strokecolor0.$$.fragment, local);
12092
12731
  transition_in(textcolor.$$.fragment, local);
@@ -12103,6 +12742,7 @@ function create_fragment67(ctx) {
12103
12742
  }
12104
12743
  transition_out(if_block1);
12105
12744
  transition_out(if_block2);
12745
+ transition_out(if_block3);
12106
12746
  transition_out(strokewidth0.$$.fragment, local);
12107
12747
  transition_out(strokecolor0.$$.fragment, local);
12108
12748
  transition_out(textcolor.$$.fragment, local);
@@ -12128,25 +12768,28 @@ function create_fragment67(ctx) {
12128
12768
  if (detaching)
12129
12769
  detach(t3);
12130
12770
  if (detaching)
12131
- detach(div8);
12771
+ detach(div9);
12772
+ if (~current_block_type_index) {
12773
+ if_blocks[current_block_type_index].d();
12774
+ }
12132
12775
  destroy_component(strokewidth0);
12133
12776
  destroy_component(strokecolor0);
12134
- ctx[37](null);
12777
+ ctx[40](null);
12135
12778
  destroy_component(textcolor);
12136
- ctx[38](null);
12779
+ ctx[41](null);
12137
12780
  destroy_component(selectshapes);
12138
12781
  destroy_component(strokewidth1);
12139
12782
  destroy_component(strokecolor1);
12140
- ctx[39](null);
12783
+ ctx[42](null);
12141
12784
  destroy_each(each_blocks, detaching);
12142
- ctx[41](null);
12785
+ ctx[44](null);
12143
12786
  mounted = false;
12144
12787
  run_all(dispose);
12145
12788
  }
12146
12789
  };
12147
12790
  }
12148
12791
  var name5 = "fastboard-toolbar";
12149
- function instance67($$self, $$props, $$invalidate) {
12792
+ function instance69($$self, $$props, $$invalidate) {
12150
12793
  let t;
12151
12794
  let hotkeys;
12152
12795
  let c;
@@ -12154,14 +12797,16 @@ function instance67($$self, $$props, $$invalidate) {
12154
12797
  let appliance;
12155
12798
  let status;
12156
12799
  let max_scroll;
12800
+ let hasAppliancePlugin;
12801
+ let hasUseLaserPen;
12157
12802
  let $top;
12158
- let $scroll_height, $$unsubscribe_scroll_height = noop, $$subscribe_scroll_height = () => ($$unsubscribe_scroll_height(), $$unsubscribe_scroll_height = subscribe(scroll_height, ($$value) => $$invalidate(35, $scroll_height = $$value)), scroll_height);
12159
- let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(36, $memberState = $$value)), memberState);
12803
+ let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(38, $memberState = $$value)), memberState);
12804
+ let $scroll_height, $$unsubscribe_scroll_height = noop, $$subscribe_scroll_height = () => ($$unsubscribe_scroll_height(), $$unsubscribe_scroll_height = subscribe(scroll_height, ($$value) => $$invalidate(39, $scroll_height = $$value)), scroll_height);
12160
12805
  let $apps;
12161
- let $status, $$unsubscribe_status = noop, $$subscribe_status = () => ($$unsubscribe_status(), $$unsubscribe_status = subscribe(status, ($$value) => $$invalidate(21, $status = $$value)), status);
12162
- component_subscribe($$self, apps, ($$value) => $$invalidate(20, $apps = $$value));
12163
- $$self.$$.on_destroy.push(() => $$unsubscribe_scroll_height());
12806
+ let $status, $$unsubscribe_status = noop, $$subscribe_status = () => ($$unsubscribe_status(), $$unsubscribe_status = subscribe(status, ($$value) => $$invalidate(22, $status = $$value)), status);
12807
+ component_subscribe($$self, apps, ($$value) => $$invalidate(21, $apps = $$value));
12164
12808
  $$self.$$.on_destroy.push(() => $$unsubscribe_memberState());
12809
+ $$self.$$.on_destroy.push(() => $$unsubscribe_scroll_height());
12165
12810
  $$self.$$.on_destroy.push(() => $$unsubscribe_status());
12166
12811
  let { app = null } = $$props;
12167
12812
  let { theme = "light" } = $$props;
@@ -12181,7 +12826,7 @@ function instance67($$self, $$props, $$invalidate) {
12181
12826
  let apps_panel;
12182
12827
  let btn_props;
12183
12828
  let top = writable(0);
12184
- component_subscribe($$self, top, (value) => $$invalidate(43, $top = value));
12829
+ component_subscribe($$self, top, (value) => $$invalidate(46, $top = value));
12185
12830
  function scroll_up() {
12186
12831
  set_store_value(top, $top = clamp($top - 32 - 4, 0, max_scroll), $top);
12187
12832
  }
@@ -12212,19 +12857,22 @@ function instance67($$self, $$props, $$invalidate) {
12212
12857
  function clear() {
12213
12858
  app == null ? void 0 : app.cleanCurrentScene();
12214
12859
  }
12215
- function div2_binding($$value) {
12860
+ function useLaserPen() {
12861
+ app == null ? void 0 : app.setAppliance("laserPen");
12862
+ }
12863
+ function div3_binding($$value) {
12216
12864
  binding_callbacks[$$value ? "unshift" : "push"](() => {
12217
12865
  pencil_panel = $$value;
12218
12866
  $$invalidate(11, pencil_panel);
12219
12867
  });
12220
12868
  }
12221
- function div3_binding($$value) {
12869
+ function div4_binding($$value) {
12222
12870
  binding_callbacks[$$value ? "unshift" : "push"](() => {
12223
12871
  text_panel = $$value;
12224
12872
  $$invalidate(12, text_panel);
12225
12873
  });
12226
12874
  }
12227
- function div6_binding($$value) {
12875
+ function div7_binding($$value) {
12228
12876
  binding_callbacks[$$value ? "unshift" : "push"](() => {
12229
12877
  shapes_panel = $$value;
12230
12878
  $$invalidate(13, shapes_panel);
@@ -12234,7 +12882,7 @@ function instance67($$self, $$props, $$invalidate) {
12234
12882
  app && onClick(app);
12235
12883
  tippy_hide_all();
12236
12884
  };
12237
- function div7_binding($$value) {
12885
+ function div8_binding($$value) {
12238
12886
  binding_callbacks[$$value ? "unshift" : "push"](() => {
12239
12887
  apps_panel = $$value;
12240
12888
  $$invalidate(14, apps_panel);
@@ -12252,7 +12900,7 @@ function instance67($$self, $$props, $$invalidate) {
12252
12900
  if ("scroll_height" in $$props2)
12253
12901
  $$subscribe_scroll_height($$invalidate(4, scroll_height = $$props2.scroll_height));
12254
12902
  if ("computed_height" in $$props2)
12255
- $$invalidate(33, computed_height = $$props2.computed_height);
12903
+ $$invalidate(35, computed_height = $$props2.computed_height);
12256
12904
  if ("scrollable" in $$props2)
12257
12905
  $$invalidate(5, scrollable = $$props2.scrollable);
12258
12906
  if ("placement" in $$props2)
@@ -12281,12 +12929,12 @@ function instance67($$self, $$props, $$invalidate) {
12281
12929
  }
12282
12930
  if ($$self.$$.dirty[0] & /*app*/
12283
12931
  1) {
12284
- $$invalidate(34, hotkeys = app == null ? void 0 : app.hotKeys);
12932
+ $$invalidate(37, hotkeys = app == null ? void 0 : app.hotKeys);
12285
12933
  }
12286
12934
  if ($$self.$$.dirty[0] & /*t*/
12287
12935
  1024 | $$self.$$.dirty[1] & /*hotkeys*/
12288
- 8) {
12289
- $$invalidate(19, c = {
12936
+ 64) {
12937
+ $$invalidate(20, c = {
12290
12938
  clicker: tooltip(t.clicker, hotkeys == null ? void 0 : hotkeys.changeToClick),
12291
12939
  selector: tooltip(t.selector, hotkeys == null ? void 0 : hotkeys.changeToSelector),
12292
12940
  pencil: tooltip(t.pencil, hotkeys == null ? void 0 : hotkeys.changeToPencil),
@@ -12298,21 +12946,29 @@ function instance67($$self, $$props, $$invalidate) {
12298
12946
  }
12299
12947
  if ($$self.$$.dirty[0] & /*app*/
12300
12948
  1) {
12301
- $$subscribe_memberState($$invalidate(18, memberState = app == null ? void 0 : app.memberState));
12949
+ $$subscribe_memberState($$invalidate(19, memberState = app == null ? void 0 : app.memberState));
12302
12950
  }
12303
12951
  if ($$self.$$.dirty[1] & /*$memberState*/
12304
- 32) {
12305
- $$invalidate(17, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
12952
+ 128) {
12953
+ $$invalidate(18, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
12306
12954
  }
12307
12955
  if ($$self.$$.dirty[0] & /*app*/
12308
12956
  1) {
12309
- $$subscribe_status($$invalidate(16, status = app == null ? void 0 : app.appsStatus));
12957
+ $$subscribe_status($$invalidate(17, status = app == null ? void 0 : app.appsStatus));
12310
12958
  }
12311
12959
  if ($$self.$$.dirty[0] & /*scrollable*/
12312
12960
  32 | $$self.$$.dirty[1] & /*$scroll_height, computed_height*/
12313
- 20) {
12961
+ 272) {
12314
12962
  max_scroll = scrollable ? $scroll_height + (32 + 8) * 2 - computed_height : 0;
12315
12963
  }
12964
+ if ($$self.$$.dirty[0] & /*app*/
12965
+ 1) {
12966
+ $$invalidate(36, hasAppliancePlugin = !!(app == null ? void 0 : app.appliancePlugin));
12967
+ }
12968
+ if ($$self.$$.dirty[1] & /*hasAppliancePlugin, $memberState*/
12969
+ 160) {
12970
+ $$invalidate(16, hasUseLaserPen = hasAppliancePlugin && ($memberState == null ? void 0 : $memberState.useLaserPen) || false);
12971
+ }
12316
12972
  };
12317
12973
  return [
12318
12974
  app,
@@ -12331,6 +12987,7 @@ function instance67($$self, $$props, $$invalidate) {
12331
12987
  shapes_panel,
12332
12988
  apps_panel,
12333
12989
  btn_props,
12990
+ hasUseLaserPen,
12334
12991
  status,
12335
12992
  appliance,
12336
12993
  memberState,
@@ -12348,15 +13005,17 @@ function instance67($$self, $$props, $$invalidate) {
12348
13005
  hand,
12349
13006
  laserPointer,
12350
13007
  clear,
13008
+ useLaserPen,
12351
13009
  computed_height,
13010
+ hasAppliancePlugin,
12352
13011
  hotkeys,
12353
- $scroll_height,
12354
13012
  $memberState,
12355
- div2_binding,
13013
+ $scroll_height,
12356
13014
  div3_binding,
12357
- div6_binding,
13015
+ div4_binding,
13016
+ div7_binding,
12358
13017
  func,
12359
- div7_binding
13018
+ div8_binding
12360
13019
  ];
12361
13020
  }
12362
13021
  var Contents = class extends SvelteComponent {
@@ -12365,8 +13024,8 @@ var Contents = class extends SvelteComponent {
12365
13024
  init(
12366
13025
  this,
12367
13026
  options,
12368
- instance67,
12369
- create_fragment67,
13027
+ instance69,
13028
+ create_fragment69,
12370
13029
  safe_not_equal,
12371
13030
  {
12372
13031
  app: 0,
@@ -12374,7 +13033,7 @@ var Contents = class extends SvelteComponent {
12374
13033
  language: 2,
12375
13034
  disabled: 3,
12376
13035
  scroll_height: 4,
12377
- computed_height: 33,
13036
+ computed_height: 35,
12378
13037
  scrollable: 5,
12379
13038
  placement: 6,
12380
13039
  items: 7,
@@ -12445,7 +13104,7 @@ function create_if_block15(ctx) {
12445
13104
  }
12446
13105
  };
12447
13106
  }
12448
- function create_fragment68(ctx) {
13107
+ function create_fragment70(ctx) {
12449
13108
  let div1;
12450
13109
  let div0;
12451
13110
  let contents;
@@ -12715,7 +13374,7 @@ function create_fragment68(ctx) {
12715
13374
  };
12716
13375
  }
12717
13376
  var name6 = "fastboard-toolbar";
12718
- function instance68($$self, $$props, $$invalidate) {
13377
+ function instance70($$self, $$props, $$invalidate) {
12719
13378
  let writable2;
12720
13379
  let phase;
12721
13380
  let disabled;
@@ -12834,7 +13493,7 @@ function instance68($$self, $$props, $$invalidate) {
12834
13493
  var Toolbar = class extends SvelteComponent {
12835
13494
  constructor(options) {
12836
13495
  super();
12837
- init(this, options, instance68, create_fragment68, safe_not_equal, {
13496
+ init(this, options, instance70, create_fragment70, safe_not_equal, {
12838
13497
  app: 1,
12839
13498
  theme: 2,
12840
13499
  language: 3,
@@ -12863,7 +13522,7 @@ function create_else_block_12(ctx) {
12863
13522
  ]
12864
13523
  ),
12865
13524
  alt: "[play]",
12866
- $$slots: { default: [create_default_slot_53] },
13525
+ $$slots: { default: [create_default_slot_54] },
12867
13526
  $$scope: { ctx }
12868
13527
  }
12869
13528
  });
@@ -12920,7 +13579,7 @@ function create_if_block_22(ctx) {
12920
13579
  ]
12921
13580
  ),
12922
13581
  alt: "[pause]",
12923
- $$slots: { default: [create_default_slot_43] },
13582
+ $$slots: { default: [create_default_slot_44] },
12924
13583
  $$scope: { ctx }
12925
13584
  }
12926
13585
  });
@@ -12963,7 +13622,7 @@ function create_if_block_22(ctx) {
12963
13622
  }
12964
13623
  };
12965
13624
  }
12966
- function create_if_block_13(ctx) {
13625
+ function create_if_block_15(ctx) {
12967
13626
  var _a;
12968
13627
  let icon;
12969
13628
  let current;
@@ -12977,7 +13636,7 @@ function create_if_block_13(ctx) {
12977
13636
  ]
12978
13637
  ),
12979
13638
  alt: "[loading]",
12980
- $$slots: { default: [create_default_slot_34] },
13639
+ $$slots: { default: [create_default_slot_35] },
12981
13640
  $$scope: { ctx }
12982
13641
  }
12983
13642
  });
@@ -13020,7 +13679,7 @@ function create_if_block_13(ctx) {
13020
13679
  }
13021
13680
  };
13022
13681
  }
13023
- function create_default_slot_53(ctx) {
13682
+ function create_default_slot_54(ctx) {
13024
13683
  let icons_play;
13025
13684
  let current;
13026
13685
  icons_play = new Icons_default.Play({ props: { theme: (
@@ -13058,7 +13717,7 @@ function create_default_slot_53(ctx) {
13058
13717
  }
13059
13718
  };
13060
13719
  }
13061
- function create_default_slot_43(ctx) {
13720
+ function create_default_slot_44(ctx) {
13062
13721
  let icons_pause;
13063
13722
  let current;
13064
13723
  icons_pause = new Icons_default.Pause({ props: { theme: (
@@ -13096,7 +13755,7 @@ function create_default_slot_43(ctx) {
13096
13755
  }
13097
13756
  };
13098
13757
  }
13099
- function create_default_slot_34(ctx) {
13758
+ function create_default_slot_35(ctx) {
13100
13759
  let icons_loading;
13101
13760
  let current;
13102
13761
  icons_loading = new Icons_default.Loading({ props: { theme: (
@@ -13139,7 +13798,7 @@ function create_default_slot_25(ctx) {
13139
13798
  let if_block;
13140
13799
  let if_block_anchor;
13141
13800
  let current;
13142
- const if_block_creators = [create_if_block_13, create_if_block_22, create_else_block_12];
13801
+ const if_block_creators = [create_if_block_15, create_if_block_22, create_else_block_12];
13143
13802
  const if_blocks = [];
13144
13803
  function select_block_type(ctx2, dirty) {
13145
13804
  if (
@@ -13516,7 +14175,7 @@ function create_each_block5(key_1, ctx) {
13516
14175
  }
13517
14176
  };
13518
14177
  }
13519
- function create_fragment69(ctx) {
14178
+ function create_fragment71(ctx) {
13520
14179
  let div0;
13521
14180
  let button0;
13522
14181
  let t0;
@@ -13793,7 +14452,7 @@ function format(ms) {
13793
14452
  return String(m).padStart(2, "0") + ":" + String(s % 60).padStart(2, "0");
13794
14453
  }
13795
14454
  var name7 = "fastboard-player-control";
13796
- function instance69($$self, $$props, $$invalidate) {
14455
+ function instance71($$self, $$props, $$invalidate) {
13797
14456
  let t;
13798
14457
  let canPlay;
13799
14458
  let disabled;
@@ -13938,7 +14597,7 @@ function instance69($$self, $$props, $$invalidate) {
13938
14597
  var PlayerControl = class extends SvelteComponent {
13939
14598
  constructor(options) {
13940
14599
  super();
13941
- init(this, options, instance69, create_fragment69, safe_not_equal, {
14600
+ init(this, options, instance71, create_fragment71, safe_not_equal, {
13942
14601
  player: 19,
13943
14602
  theme: 0,
13944
14603
  language: 20,
@@ -14005,7 +14664,7 @@ function create_if_block17(ctx) {
14005
14664
  }
14006
14665
  };
14007
14666
  }
14008
- function create_fragment70(ctx) {
14667
+ function create_fragment72(ctx) {
14009
14668
  var _a;
14010
14669
  let div2;
14011
14670
  let div0;
@@ -14105,7 +14764,7 @@ function create_fragment70(ctx) {
14105
14764
  };
14106
14765
  }
14107
14766
  var name8 = "fastboard";
14108
- function instance70($$self, $$props, $$invalidate) {
14767
+ function instance72($$self, $$props, $$invalidate) {
14109
14768
  let { player = null } = $$props;
14110
14769
  let { theme = "light" } = $$props;
14111
14770
  let { language = "en" } = $$props;
@@ -14180,7 +14839,7 @@ function instance70($$self, $$props, $$invalidate) {
14180
14839
  var ReplayFastboard = class extends SvelteComponent {
14181
14840
  constructor(options) {
14182
14841
  super();
14183
- init(this, options, instance70, create_fragment70, not_equal, {
14842
+ init(this, options, instance72, create_fragment72, not_equal, {
14184
14843
  player: 0,
14185
14844
  theme: 1,
14186
14845
  language: 2,
@@ -14314,7 +14973,7 @@ function create_if_block_23(ctx) {
14314
14973
  }
14315
14974
  };
14316
14975
  }
14317
- function create_if_block_14(ctx) {
14976
+ function create_if_block_16(ctx) {
14318
14977
  let zoomcontrol;
14319
14978
  let current;
14320
14979
  zoomcontrol = new ZoomControl_default({
@@ -14430,7 +15089,7 @@ function create_if_block18(ctx) {
14430
15089
  }
14431
15090
  };
14432
15091
  }
14433
- function create_fragment71(ctx) {
15092
+ function create_fragment73(ctx) {
14434
15093
  var _a, _b, _c, _d;
14435
15094
  let div4;
14436
15095
  let div0;
@@ -14455,7 +15114,7 @@ function create_fragment71(ctx) {
14455
15114
  );
14456
15115
  let if_block2 = (
14457
15116
  /*config*/
14458
- ((_c = ctx[3].zoom_control) == null ? void 0 : _c.enable) !== false && create_if_block_14(ctx)
15117
+ ((_c = ctx[3].zoom_control) == null ? void 0 : _c.enable) !== false && create_if_block_16(ctx)
14459
15118
  );
14460
15119
  let if_block3 = (
14461
15120
  /*config*/
@@ -14608,7 +15267,7 @@ function create_fragment71(ctx) {
14608
15267
  transition_in(if_block2, 1);
14609
15268
  }
14610
15269
  } else {
14611
- if_block2 = create_if_block_14(ctx2);
15270
+ if_block2 = create_if_block_16(ctx2);
14612
15271
  if_block2.c();
14613
15272
  transition_in(if_block2, 1);
14614
15273
  if_block2.m(div2, null);
@@ -14701,7 +15360,7 @@ function create_fragment71(ctx) {
14701
15360
  };
14702
15361
  }
14703
15362
  var name9 = "fastboard";
14704
- function instance71($$self, $$props, $$invalidate) {
15363
+ function instance73($$self, $$props, $$invalidate) {
14705
15364
  let writable2;
14706
15365
  let boxState;
14707
15366
  let focusedApp;
@@ -14826,7 +15485,7 @@ function instance71($$self, $$props, $$invalidate) {
14826
15485
  var Fastboard = class extends SvelteComponent {
14827
15486
  constructor(options) {
14828
15487
  super();
14829
- init(this, options, instance71, create_fragment71, not_equal, {
15488
+ init(this, options, instance73, create_fragment73, not_equal, {
14830
15489
  app: 0,
14831
15490
  theme: 1,
14832
15491
  language: 2,