@netless/fastboard-ui 0.3.23-beta.0 → 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.
package/dist/index.js CHANGED
@@ -41,7 +41,7 @@ function injectStyle(text2) {
41
41
  }
42
42
 
43
43
  // inline-sass-content:./src/style.scss
44
- 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}';
44
+ 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}';
45
45
 
46
46
  // inline-sass-stub:./src/style.scss
47
47
  injectStyle(style_default);
@@ -510,7 +510,7 @@ function make_dirty(component, i) {
510
510
  }
511
511
  component.$$.dirty[i / 31 | 0] |= 1 << i % 31;
512
512
  }
513
- function init(component, options, instance72, create_fragment72, not_equal2, props, append_styles, dirty = [-1]) {
513
+ function init(component, options, instance74, create_fragment74, not_equal2, props, append_styles, dirty = [-1]) {
514
514
  const parent_component = current_component;
515
515
  set_current_component(component);
516
516
  const $$ = component.$$ = {
@@ -536,7 +536,7 @@ function init(component, options, instance72, create_fragment72, not_equal2, pro
536
536
  };
537
537
  append_styles && append_styles($$.root);
538
538
  let ready = false;
539
- $$.ctx = instance72 ? instance72(component, options.props || {}, (i, ret, ...rest) => {
539
+ $$.ctx = instance74 ? instance74(component, options.props || {}, (i, ret, ...rest) => {
540
540
  const value = rest.length ? rest[0] : ret;
541
541
  if ($$.ctx && not_equal2($$.ctx[i], $$.ctx[i] = value)) {
542
542
  if (!$$.skip_bound && $$.bound[i])
@@ -549,7 +549,7 @@ function init(component, options, instance72, create_fragment72, not_equal2, pro
549
549
  $$.update();
550
550
  ready = true;
551
551
  run_all($$.before_update);
552
- $$.fragment = create_fragment72 ? create_fragment72($$.ctx) : false;
552
+ $$.fragment = create_fragment74 ? create_fragment74($$.ctx) : false;
553
553
  if (options.target) {
554
554
  if (options.hydrate) {
555
555
  const nodes = children(options.target);
@@ -4352,6 +4352,170 @@ var Loading = class extends SvelteComponent {
4352
4352
  };
4353
4353
  var Loading_default = Loading;
4354
4354
 
4355
+ // src/components/Icons/LaserPen.svelte
4356
+ function create_fragment49(ctx) {
4357
+ let svg;
4358
+ let g;
4359
+ let path0;
4360
+ let path1;
4361
+ let svg_class_value;
4362
+ return {
4363
+ c() {
4364
+ svg = svg_element("svg");
4365
+ g = svg_element("g");
4366
+ path0 = svg_element("path");
4367
+ path1 = svg_element("path");
4368
+ attr(path0, "class", "fastboard-icon-stroke-color");
4369
+ attr(path0, "clip-rule", "evenodd");
4370
+ 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");
4371
+ attr(path1, "class", "fastboard-icon-stroke-color");
4372
+ 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");
4373
+ attr(g, "stroke-width", "1.25");
4374
+ attr(g, "stroke-linecap", "round");
4375
+ attr(g, "stroke-linejoin", "round");
4376
+ attr(g, "transform", "rotate(0 10 10)");
4377
+ attr(svg, "fill", "none");
4378
+ attr(svg, "viewBox", "0 0 24 24");
4379
+ attr(svg, "class", svg_class_value = "fastboard-icon " + /*theme*/
4380
+ ctx[0]);
4381
+ toggle_class(
4382
+ svg,
4383
+ "is-active",
4384
+ /*active*/
4385
+ ctx[1]
4386
+ );
4387
+ },
4388
+ m(target, anchor) {
4389
+ insert(target, svg, anchor);
4390
+ append(svg, g);
4391
+ append(g, path0);
4392
+ append(g, path1);
4393
+ },
4394
+ p(ctx2, [dirty]) {
4395
+ if (dirty & /*theme*/
4396
+ 1 && svg_class_value !== (svg_class_value = "fastboard-icon " + /*theme*/
4397
+ ctx2[0])) {
4398
+ attr(svg, "class", svg_class_value);
4399
+ }
4400
+ if (dirty & /*theme, active*/
4401
+ 3) {
4402
+ toggle_class(
4403
+ svg,
4404
+ "is-active",
4405
+ /*active*/
4406
+ ctx2[1]
4407
+ );
4408
+ }
4409
+ },
4410
+ i: noop,
4411
+ o: noop,
4412
+ d(detaching) {
4413
+ if (detaching)
4414
+ detach(svg);
4415
+ }
4416
+ };
4417
+ }
4418
+ function instance49($$self, $$props, $$invalidate) {
4419
+ let { theme = "light" } = $$props;
4420
+ let { active = false } = $$props;
4421
+ $$self.$$set = ($$props2) => {
4422
+ if ("theme" in $$props2)
4423
+ $$invalidate(0, theme = $$props2.theme);
4424
+ if ("active" in $$props2)
4425
+ $$invalidate(1, active = $$props2.active);
4426
+ };
4427
+ return [theme, active];
4428
+ }
4429
+ var LaserPen = class extends SvelteComponent {
4430
+ constructor(options) {
4431
+ super();
4432
+ init(this, options, instance49, create_fragment49, safe_not_equal, { theme: 0, active: 1 });
4433
+ }
4434
+ };
4435
+ var LaserPen_default = LaserPen;
4436
+
4437
+ // src/components/Icons/LaserPenFilled.svelte
4438
+ function create_fragment50(ctx) {
4439
+ let svg;
4440
+ let g;
4441
+ let path0;
4442
+ let path1;
4443
+ let svg_class_value;
4444
+ return {
4445
+ c() {
4446
+ svg = svg_element("svg");
4447
+ g = svg_element("g");
4448
+ path0 = svg_element("path");
4449
+ path1 = svg_element("path");
4450
+ attr(path0, "class", "fastboard-icon-fill-color");
4451
+ attr(path0, "clip-rule", "evenodd");
4452
+ 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");
4453
+ attr(path1, "class", "fastboard-icon-stroke-color");
4454
+ 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");
4455
+ attr(g, "stroke-width", "1.25");
4456
+ attr(g, "stroke-linecap", "round");
4457
+ attr(g, "stroke-linejoin", "round");
4458
+ attr(g, "transform", "rotate(0 10 10)");
4459
+ attr(svg, "fill", "none");
4460
+ attr(svg, "viewBox", "0 0 24 24");
4461
+ attr(svg, "class", svg_class_value = "fastboard-icon " + /*theme*/
4462
+ ctx[0]);
4463
+ toggle_class(
4464
+ svg,
4465
+ "is-active",
4466
+ /*active*/
4467
+ ctx[1]
4468
+ );
4469
+ },
4470
+ m(target, anchor) {
4471
+ insert(target, svg, anchor);
4472
+ append(svg, g);
4473
+ append(g, path0);
4474
+ append(g, path1);
4475
+ },
4476
+ p(ctx2, [dirty]) {
4477
+ if (dirty & /*theme*/
4478
+ 1 && svg_class_value !== (svg_class_value = "fastboard-icon " + /*theme*/
4479
+ ctx2[0])) {
4480
+ attr(svg, "class", svg_class_value);
4481
+ }
4482
+ if (dirty & /*theme, active*/
4483
+ 3) {
4484
+ toggle_class(
4485
+ svg,
4486
+ "is-active",
4487
+ /*active*/
4488
+ ctx2[1]
4489
+ );
4490
+ }
4491
+ },
4492
+ i: noop,
4493
+ o: noop,
4494
+ d(detaching) {
4495
+ if (detaching)
4496
+ detach(svg);
4497
+ }
4498
+ };
4499
+ }
4500
+ function instance50($$self, $$props, $$invalidate) {
4501
+ let { theme = "light" } = $$props;
4502
+ let { active = false } = $$props;
4503
+ $$self.$$set = ($$props2) => {
4504
+ if ("theme" in $$props2)
4505
+ $$invalidate(0, theme = $$props2.theme);
4506
+ if ("active" in $$props2)
4507
+ $$invalidate(1, active = $$props2.active);
4508
+ };
4509
+ return [theme, active];
4510
+ }
4511
+ var LaserPenFilled = class extends SvelteComponent {
4512
+ constructor(options) {
4513
+ super();
4514
+ init(this, options, instance50, create_fragment50, safe_not_equal, { theme: 0, active: 1 });
4515
+ }
4516
+ };
4517
+ var LaserPenFilled_default = LaserPenFilled;
4518
+
4355
4519
  // src/components/Icons/index.ts
4356
4520
  var Icons = {
4357
4521
  Apps: Apps_default,
@@ -4400,7 +4564,9 @@ var Icons = {
4400
4564
  WhiteboardAdd: WhiteboardAdd_default,
4401
4565
  Play: Play_default,
4402
4566
  Pause: Pause_default,
4403
- Loading: Loading_default
4567
+ Loading: Loading_default,
4568
+ LaserPen: LaserPen_default,
4569
+ LaserPenFilled: LaserPenFilled_default
4404
4570
  };
4405
4571
  var Icons_default = Icons;
4406
4572
  if (typeof window !== "undefined") {
@@ -4413,12 +4579,12 @@ if (typeof window !== "undefined") {
4413
4579
  {
4414
4580
  name: "className",
4415
4581
  defaultValue: "",
4416
- fn(instance72) {
4582
+ fn(instance74) {
4417
4583
  function add() {
4418
- const el = instance72.popper.firstElementChild;
4584
+ const el = instance74.popper.firstElementChild;
4419
4585
  if (el) {
4420
4586
  el.classList.add("fastboard-tip");
4421
- const extra = (instance72.props.className || "").trim();
4587
+ const extra = (instance74.props.className || "").trim();
4422
4588
  if (extra) {
4423
4589
  el.classList.add(extra);
4424
4590
  }
@@ -4426,7 +4592,7 @@ if (typeof window !== "undefined") {
4426
4592
  }
4427
4593
  function remove() {
4428
4594
  var _a;
4429
- (_a = instance72.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
4595
+ (_a = instance74.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
4430
4596
  }
4431
4597
  return {
4432
4598
  onCreate: add,
@@ -4439,21 +4605,21 @@ if (typeof window !== "undefined") {
4439
4605
  });
4440
4606
  }
4441
4607
  var tippy = function(node, props) {
4442
- const instance72 = Tippy__default.default(node, props);
4608
+ const instance74 = Tippy__default.default(node, props);
4443
4609
  return {
4444
4610
  update(props2) {
4445
- instance72.setProps(props2);
4611
+ instance74.setProps(props2);
4446
4612
  },
4447
4613
  destroy() {
4448
- instance72.destroy();
4614
+ instance74.destroy();
4449
4615
  }
4450
4616
  };
4451
4617
  };
4452
4618
  function tippy_hide_all() {
4453
4619
  document.querySelectorAll("[data-tippy-root]").forEach((el) => {
4454
- const instance72 = el._tippy;
4455
- if (instance72)
4456
- instance72.hide();
4620
+ const instance74 = el._tippy;
4621
+ if (instance74)
4622
+ instance74.hide();
4457
4623
  });
4458
4624
  }
4459
4625
  var tippy_menu = {
@@ -4967,7 +5133,7 @@ function create_if_block_1(ctx) {
4967
5133
  }
4968
5134
  };
4969
5135
  }
4970
- function create_fragment49(ctx) {
5136
+ function create_fragment51(ctx) {
4971
5137
  let current_block_type_index;
4972
5138
  let if_block;
4973
5139
  let if_block_anchor;
@@ -5033,7 +5199,7 @@ function create_fragment49(ctx) {
5033
5199
  }
5034
5200
  };
5035
5201
  }
5036
- function instance49($$self, $$props, $$invalidate) {
5202
+ function instance51($$self, $$props, $$invalidate) {
5037
5203
  let { $$slots: slots = {}, $$scope } = $$props;
5038
5204
  let { class: className = "" } = $$props;
5039
5205
  let { name: name10 = "fastboard-ui" } = $$props;
@@ -5091,7 +5257,7 @@ function instance49($$self, $$props, $$invalidate) {
5091
5257
  var Button = class extends SvelteComponent {
5092
5258
  constructor(options) {
5093
5259
  super();
5094
- init(this, options, instance49, create_fragment49, safe_not_equal, {
5260
+ init(this, options, instance51, create_fragment51, safe_not_equal, {
5095
5261
  class: 0,
5096
5262
  name: 1,
5097
5263
  theme: 2,
@@ -5296,7 +5462,7 @@ function create_default_slot(ctx) {
5296
5462
  }
5297
5463
  };
5298
5464
  }
5299
- function create_fragment50(ctx) {
5465
+ function create_fragment52(ctx) {
5300
5466
  let div;
5301
5467
  let button0;
5302
5468
  let t_1;
@@ -5437,7 +5603,7 @@ var i18n = {
5437
5603
  "zh-CN": { redo: "\u91CD\u505A", undo: "\u64A4\u9500" }
5438
5604
  };
5439
5605
  var name = "fastboard-redo-undo";
5440
- function instance50($$self, $$props, $$invalidate) {
5606
+ function instance52($$self, $$props, $$invalidate) {
5441
5607
  let writable2;
5442
5608
  let phase;
5443
5609
  let disabled;
@@ -5538,7 +5704,7 @@ function instance50($$self, $$props, $$invalidate) {
5538
5704
  var RedoUndo = class extends SvelteComponent {
5539
5705
  constructor(options) {
5540
5706
  super();
5541
- init(this, options, instance50, create_fragment50, safe_not_equal, {
5707
+ init(this, options, instance52, create_fragment52, safe_not_equal, {
5542
5708
  app: 12,
5543
5709
  theme: 0,
5544
5710
  language: 13,
@@ -5895,7 +6061,7 @@ function create_default_slot2(ctx) {
5895
6061
  }
5896
6062
  };
5897
6063
  }
5898
- function create_fragment51(ctx) {
6064
+ function create_fragment53(ctx) {
5899
6065
  let div;
5900
6066
  let button0;
5901
6067
  let t0;
@@ -6130,7 +6296,7 @@ var i18n2 = {
6130
6296
  "zh-CN": { prev: "\u4E0A\u4E00\u9875", next: "\u4E0B\u4E00\u9875", add: "\u6DFB\u52A0\u9875\u9762" }
6131
6297
  };
6132
6298
  var name2 = "fastboard-page-control";
6133
- function instance51($$self, $$props, $$invalidate) {
6299
+ function instance53($$self, $$props, $$invalidate) {
6134
6300
  let writable2;
6135
6301
  let phase;
6136
6302
  let disabled;
@@ -6236,7 +6402,7 @@ function instance51($$self, $$props, $$invalidate) {
6236
6402
  var PageControl = class extends SvelteComponent {
6237
6403
  constructor(options) {
6238
6404
  super();
6239
- init(this, options, instance51, create_fragment51, safe_not_equal, {
6405
+ init(this, options, instance53, create_fragment53, safe_not_equal, {
6240
6406
  app: 16,
6241
6407
  theme: 0,
6242
6408
  language: 17,
@@ -6585,7 +6751,7 @@ function create_default_slot3(ctx) {
6585
6751
  }
6586
6752
  };
6587
6753
  }
6588
- function create_fragment52(ctx) {
6754
+ function create_fragment54(ctx) {
6589
6755
  let div;
6590
6756
  let button0;
6591
6757
  let t0;
@@ -6848,7 +7014,7 @@ function next_scale(scale, delta) {
6848
7014
  return 1;
6849
7015
  }
6850
7016
  var name3 = "fastboard-zoom-control";
6851
- function instance52($$self, $$props, $$invalidate) {
7017
+ function instance54($$self, $$props, $$invalidate) {
6852
7018
  let writable2;
6853
7019
  let phase;
6854
7020
  let disabled;
@@ -6959,7 +7125,7 @@ function instance52($$self, $$props, $$invalidate) {
6959
7125
  var ZoomControl = class extends SvelteComponent {
6960
7126
  constructor(options) {
6961
7127
  super();
6962
- init(this, options, instance52, create_fragment52, safe_not_equal, {
7128
+ init(this, options, instance54, create_fragment54, safe_not_equal, {
6963
7129
  app: 15,
6964
7130
  theme: 0,
6965
7131
  language: 16,
@@ -7261,7 +7427,7 @@ function hexToRgb(hex) {
7261
7427
  }
7262
7428
 
7263
7429
  // src/components/Toolbar/components/Slider.svelte
7264
- function create_fragment53(ctx) {
7430
+ function create_fragment55(ctx) {
7265
7431
  let div;
7266
7432
  let input;
7267
7433
  let input_class_value;
@@ -7476,7 +7642,7 @@ function create_fragment53(ctx) {
7476
7642
  };
7477
7643
  }
7478
7644
  var name4 = "fastboard-slider";
7479
- function instance53($$self, $$props, $$invalidate) {
7645
+ function instance55($$self, $$props, $$invalidate) {
7480
7646
  let percent;
7481
7647
  const dispatch = createEventDispatcher();
7482
7648
  let { class: className = "" } = $$props;
@@ -7547,7 +7713,7 @@ function instance53($$self, $$props, $$invalidate) {
7547
7713
  var Slider = class extends SvelteComponent {
7548
7714
  constructor(options) {
7549
7715
  super();
7550
- init(this, options, instance53, create_fragment53, safe_not_equal, {
7716
+ init(this, options, instance55, create_fragment55, safe_not_equal, {
7551
7717
  class: 1,
7552
7718
  theme: 2,
7553
7719
  min: 3,
@@ -7561,7 +7727,7 @@ var Slider = class extends SvelteComponent {
7561
7727
  var Slider_default = Slider;
7562
7728
 
7563
7729
  // src/components/Toolbar/components/StrokeWidth.svelte
7564
- function create_fragment54(ctx) {
7730
+ function create_fragment56(ctx) {
7565
7731
  let slider;
7566
7732
  let current;
7567
7733
  const slider_spread_levels = [
@@ -7617,7 +7783,7 @@ function create_fragment54(ctx) {
7617
7783
  }
7618
7784
  };
7619
7785
  }
7620
- function instance54($$self, $$props, $$invalidate) {
7786
+ function instance56($$self, $$props, $$invalidate) {
7621
7787
  let memberState;
7622
7788
  let value;
7623
7789
  let props;
@@ -7666,7 +7832,7 @@ function instance54($$self, $$props, $$invalidate) {
7666
7832
  var StrokeWidth = class extends SvelteComponent {
7667
7833
  constructor(options) {
7668
7834
  super();
7669
- init(this, options, instance54, create_fragment54, safe_not_equal, { app: 3, theme: 4, disabled: 5 });
7835
+ init(this, options, instance56, create_fragment56, safe_not_equal, { app: 3, theme: 4, disabled: 5 });
7670
7836
  }
7671
7837
  };
7672
7838
  var StrokeWidth_default = StrokeWidth;
@@ -7770,7 +7936,7 @@ function create_each_block(ctx) {
7770
7936
  }
7771
7937
  };
7772
7938
  }
7773
- function create_fragment55(ctx) {
7939
+ function create_fragment57(ctx) {
7774
7940
  let div;
7775
7941
  let div_class_value;
7776
7942
  let mounted;
@@ -7850,7 +8016,7 @@ function create_fragment55(ctx) {
7850
8016
  function is_equal_color(a, b) {
7851
8017
  return a && b && a.every((v, i) => v === b[i]);
7852
8018
  }
7853
- function instance55($$self, $$props, $$invalidate) {
8019
+ function instance57($$self, $$props, $$invalidate) {
7854
8020
  let memberState;
7855
8021
  let strokeColor;
7856
8022
  let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(7, $memberState = $$value)), memberState);
@@ -7902,7 +8068,7 @@ function instance55($$self, $$props, $$invalidate) {
7902
8068
  var StrokeColor = class extends SvelteComponent {
7903
8069
  constructor(options) {
7904
8070
  super();
7905
- init(this, options, instance55, create_fragment55, safe_not_equal, { app: 6, theme: 0, disabled: 1, colors: 2 });
8071
+ init(this, options, instance57, create_fragment57, safe_not_equal, { app: 6, theme: 0, disabled: 1, colors: 2 });
7906
8072
  }
7907
8073
  };
7908
8074
  var StrokeColor_default = StrokeColor;
@@ -8006,7 +8172,7 @@ function create_each_block2(ctx) {
8006
8172
  }
8007
8173
  };
8008
8174
  }
8009
- function create_fragment56(ctx) {
8175
+ function create_fragment58(ctx) {
8010
8176
  let div;
8011
8177
  let div_class_value;
8012
8178
  let mounted;
@@ -8086,7 +8252,7 @@ function create_fragment56(ctx) {
8086
8252
  function is_equal_color2(a, b) {
8087
8253
  return a && b && a.every((v, i) => v === b[i]);
8088
8254
  }
8089
- function instance56($$self, $$props, $$invalidate) {
8255
+ function instance58($$self, $$props, $$invalidate) {
8090
8256
  let memberState;
8091
8257
  let textColor;
8092
8258
  let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(7, $memberState = $$value)), memberState);
@@ -8138,7 +8304,7 @@ function instance56($$self, $$props, $$invalidate) {
8138
8304
  var TextColor = class extends SvelteComponent {
8139
8305
  constructor(options) {
8140
8306
  super();
8141
- init(this, options, instance56, create_fragment56, safe_not_equal, { app: 6, theme: 0, disabled: 1, colors: 2 });
8307
+ init(this, options, instance58, create_fragment58, safe_not_equal, { app: 6, theme: 0, disabled: 1, colors: 2 });
8142
8308
  }
8143
8309
  };
8144
8310
  var TextColor_default = TextColor;
@@ -8469,7 +8635,7 @@ function create_each_block3(key_1, ctx) {
8469
8635
  }
8470
8636
  };
8471
8637
  }
8472
- function create_fragment57(ctx) {
8638
+ function create_fragment59(ctx) {
8473
8639
  let div;
8474
8640
  let each_blocks = [];
8475
8641
  let each_1_lookup = /* @__PURE__ */ new Map();
@@ -8575,7 +8741,7 @@ var i18n5 = {
8575
8741
  speechBalloon: "\u6C14\u6CE1"
8576
8742
  }
8577
8743
  };
8578
- function instance57($$self, $$props, $$invalidate) {
8744
+ function instance59($$self, $$props, $$invalidate) {
8579
8745
  let t;
8580
8746
  let memberState;
8581
8747
  let appliance;
@@ -8660,7 +8826,7 @@ function instance57($$self, $$props, $$invalidate) {
8660
8826
  var SelectShapes = class extends SvelteComponent {
8661
8827
  constructor(options) {
8662
8828
  super();
8663
- init(this, options, instance57, create_fragment57, safe_not_equal, {
8829
+ init(this, options, instance59, create_fragment59, safe_not_equal, {
8664
8830
  app: 8,
8665
8831
  theme: 0,
8666
8832
  language: 9,
@@ -8815,7 +8981,7 @@ function create_default_slot4(ctx) {
8815
8981
  }
8816
8982
  };
8817
8983
  }
8818
- function create_fragment58(ctx) {
8984
+ function create_fragment60(ctx) {
8819
8985
  let button;
8820
8986
  let current;
8821
8987
  const button_spread_levels = [
@@ -8884,7 +9050,7 @@ function create_fragment58(ctx) {
8884
9050
  }
8885
9051
  };
8886
9052
  }
8887
- function instance58($$self, $$props, $$invalidate) {
9053
+ function instance60($$self, $$props, $$invalidate) {
8888
9054
  let { btn_props = {} } = $$props;
8889
9055
  let { content } = $$props;
8890
9056
  let { appliance } = $$props;
@@ -8907,7 +9073,7 @@ function instance58($$self, $$props, $$invalidate) {
8907
9073
  var Clicker = class extends SvelteComponent {
8908
9074
  constructor(options) {
8909
9075
  super();
8910
- init(this, options, instance58, create_fragment58, safe_not_equal, {
9076
+ init(this, options, instance60, create_fragment60, safe_not_equal, {
8911
9077
  btn_props: 0,
8912
9078
  content: 1,
8913
9079
  appliance: 2,
@@ -9062,7 +9228,7 @@ function create_default_slot5(ctx) {
9062
9228
  }
9063
9229
  };
9064
9230
  }
9065
- function create_fragment59(ctx) {
9231
+ function create_fragment61(ctx) {
9066
9232
  let button;
9067
9233
  let current;
9068
9234
  const button_spread_levels = [
@@ -9131,7 +9297,7 @@ function create_fragment59(ctx) {
9131
9297
  }
9132
9298
  };
9133
9299
  }
9134
- function instance59($$self, $$props, $$invalidate) {
9300
+ function instance61($$self, $$props, $$invalidate) {
9135
9301
  let { btn_props = {} } = $$props;
9136
9302
  let { content } = $$props;
9137
9303
  let { appliance } = $$props;
@@ -9154,7 +9320,7 @@ function instance59($$self, $$props, $$invalidate) {
9154
9320
  var Selector2 = class extends SvelteComponent {
9155
9321
  constructor(options) {
9156
9322
  super();
9157
- init(this, options, instance59, create_fragment59, safe_not_equal, {
9323
+ init(this, options, instance61, create_fragment61, safe_not_equal, {
9158
9324
  btn_props: 0,
9159
9325
  content: 1,
9160
9326
  appliance: 2,
@@ -9203,7 +9369,7 @@ function create_else_block8(ctx) {
9203
9369
  }
9204
9370
  };
9205
9371
  }
9206
- function create_if_block8(ctx) {
9372
+ function create_if_block_12(ctx) {
9207
9373
  let icons_pencilfilled;
9208
9374
  let current;
9209
9375
  icons_pencilfilled = new Icons_default.PencilFilled({
@@ -9243,20 +9409,66 @@ function create_if_block8(ctx) {
9243
9409
  }
9244
9410
  };
9245
9411
  }
9412
+ function create_if_block8(ctx) {
9413
+ let icons_laserpenfilled;
9414
+ let current;
9415
+ icons_laserpenfilled = new Icons_default.LaserPenFilled({
9416
+ props: { theme: (
9417
+ /*theme*/
9418
+ ctx[4]
9419
+ ), active: true }
9420
+ });
9421
+ return {
9422
+ c() {
9423
+ create_component(icons_laserpenfilled.$$.fragment);
9424
+ },
9425
+ m(target, anchor) {
9426
+ mount_component(icons_laserpenfilled, target, anchor);
9427
+ current = true;
9428
+ },
9429
+ p(ctx2, dirty) {
9430
+ const icons_laserpenfilled_changes = {};
9431
+ if (dirty & /*theme*/
9432
+ 16)
9433
+ icons_laserpenfilled_changes.theme = /*theme*/
9434
+ ctx2[4];
9435
+ icons_laserpenfilled.$set(icons_laserpenfilled_changes);
9436
+ },
9437
+ i(local) {
9438
+ if (current)
9439
+ return;
9440
+ transition_in(icons_laserpenfilled.$$.fragment, local);
9441
+ current = true;
9442
+ },
9443
+ o(local) {
9444
+ transition_out(icons_laserpenfilled.$$.fragment, local);
9445
+ current = false;
9446
+ },
9447
+ d(detaching) {
9448
+ destroy_component(icons_laserpenfilled, detaching);
9449
+ }
9450
+ };
9451
+ }
9246
9452
  function create_default_slot6(ctx) {
9247
9453
  let current_block_type_index;
9248
9454
  let if_block;
9249
9455
  let if_block_anchor;
9250
9456
  let current;
9251
- const if_block_creators = [create_if_block8, create_else_block8];
9457
+ const if_block_creators = [create_if_block8, create_if_block_12, create_else_block8];
9252
9458
  const if_blocks = [];
9253
9459
  function select_block_type(ctx2, dirty) {
9254
9460
  if (
9255
9461
  /*appliance*/
9256
- ctx2[3] === "pencil"
9462
+ ctx2[3] === "pencil" && /*hasUseLaserPen*/
9463
+ ctx2[5]
9257
9464
  )
9258
9465
  return 0;
9259
- return 1;
9466
+ if (
9467
+ /*appliance*/
9468
+ ctx2[3] === "pencil"
9469
+ )
9470
+ return 1;
9471
+ return 2;
9260
9472
  }
9261
9473
  current_block_type_index = select_block_type(ctx);
9262
9474
  if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
@@ -9309,7 +9521,7 @@ function create_default_slot6(ctx) {
9309
9521
  }
9310
9522
  };
9311
9523
  }
9312
- function create_fragment60(ctx) {
9524
+ function create_fragment62(ctx) {
9313
9525
  let button;
9314
9526
  let current;
9315
9527
  const button_spread_levels = [
@@ -9336,7 +9548,7 @@ function create_fragment60(ctx) {
9336
9548
  button.$on(
9337
9549
  "click",
9338
9550
  /*click_handler*/
9339
- ctx[5]
9551
+ ctx[6]
9340
9552
  );
9341
9553
  return {
9342
9554
  c() {
@@ -9366,8 +9578,8 @@ function create_fragment60(ctx) {
9366
9578
  ctx2[2]
9367
9579
  ) }
9368
9580
  ]) : {};
9369
- if (dirty & /*$$scope, theme, appliance*/
9370
- 88) {
9581
+ if (dirty & /*$$scope, theme, appliance, hasUseLaserPen*/
9582
+ 184) {
9371
9583
  button_changes.$$scope = { dirty, ctx: ctx2 };
9372
9584
  }
9373
9585
  button.$set(button_changes);
@@ -9387,12 +9599,13 @@ function create_fragment60(ctx) {
9387
9599
  }
9388
9600
  };
9389
9601
  }
9390
- function instance60($$self, $$props, $$invalidate) {
9602
+ function instance62($$self, $$props, $$invalidate) {
9391
9603
  let { btn_props = {} } = $$props;
9392
9604
  let { content } = $$props;
9393
9605
  let { menu } = $$props;
9394
9606
  let { appliance } = $$props;
9395
9607
  let { theme = "light" } = $$props;
9608
+ let { hasUseLaserPen = false } = $$props;
9396
9609
  function click_handler(event) {
9397
9610
  bubble.call(this, $$self, event);
9398
9611
  }
@@ -9407,18 +9620,21 @@ function instance60($$self, $$props, $$invalidate) {
9407
9620
  $$invalidate(3, appliance = $$props2.appliance);
9408
9621
  if ("theme" in $$props2)
9409
9622
  $$invalidate(4, theme = $$props2.theme);
9623
+ if ("hasUseLaserPen" in $$props2)
9624
+ $$invalidate(5, hasUseLaserPen = $$props2.hasUseLaserPen);
9410
9625
  };
9411
- return [btn_props, content, menu, appliance, theme, click_handler];
9626
+ return [btn_props, content, menu, appliance, theme, hasUseLaserPen, click_handler];
9412
9627
  }
9413
9628
  var Pencil2 = class extends SvelteComponent {
9414
9629
  constructor(options) {
9415
9630
  super();
9416
- init(this, options, instance60, create_fragment60, safe_not_equal, {
9631
+ init(this, options, instance62, create_fragment62, safe_not_equal, {
9417
9632
  btn_props: 0,
9418
9633
  content: 1,
9419
9634
  menu: 2,
9420
9635
  appliance: 3,
9421
- theme: 4
9636
+ theme: 4,
9637
+ hasUseLaserPen: 5
9422
9638
  });
9423
9639
  }
9424
9640
  };
@@ -9569,7 +9785,7 @@ function create_default_slot7(ctx) {
9569
9785
  }
9570
9786
  };
9571
9787
  }
9572
- function create_fragment61(ctx) {
9788
+ function create_fragment63(ctx) {
9573
9789
  let button;
9574
9790
  let current;
9575
9791
  const button_spread_levels = [
@@ -9647,7 +9863,7 @@ function create_fragment61(ctx) {
9647
9863
  }
9648
9864
  };
9649
9865
  }
9650
- function instance61($$self, $$props, $$invalidate) {
9866
+ function instance63($$self, $$props, $$invalidate) {
9651
9867
  let { btn_props = {} } = $$props;
9652
9868
  let { content } = $$props;
9653
9869
  let { menu } = $$props;
@@ -9673,7 +9889,7 @@ function instance61($$self, $$props, $$invalidate) {
9673
9889
  var Text2 = class extends SvelteComponent {
9674
9890
  constructor(options) {
9675
9891
  super();
9676
- init(this, options, instance61, create_fragment61, safe_not_equal, {
9892
+ init(this, options, instance63, create_fragment63, safe_not_equal, {
9677
9893
  btn_props: 0,
9678
9894
  content: 1,
9679
9895
  menu: 2,
@@ -9917,7 +10133,7 @@ function create_default_slot8(ctx) {
9917
10133
  }
9918
10134
  };
9919
10135
  }
9920
- function create_fragment62(ctx) {
10136
+ function create_fragment64(ctx) {
9921
10137
  let button;
9922
10138
  let current;
9923
10139
  const button_spread_levels = [
@@ -9995,7 +10211,7 @@ function create_fragment62(ctx) {
9995
10211
  }
9996
10212
  };
9997
10213
  }
9998
- function instance62($$self, $$props, $$invalidate) {
10214
+ function instance64($$self, $$props, $$invalidate) {
9999
10215
  let memberState;
10000
10216
  let shape;
10001
10217
  let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(10, $memberState = $$value)), memberState);
@@ -10067,7 +10283,7 @@ function instance62($$self, $$props, $$invalidate) {
10067
10283
  var Shapes = class extends SvelteComponent {
10068
10284
  constructor(options) {
10069
10285
  super();
10070
- init(this, options, instance62, create_fragment62, safe_not_equal, {
10286
+ init(this, options, instance64, create_fragment64, safe_not_equal, {
10071
10287
  app: 9,
10072
10288
  btn_props: 1,
10073
10289
  content: 2,
@@ -10224,7 +10440,7 @@ function create_default_slot9(ctx) {
10224
10440
  }
10225
10441
  };
10226
10442
  }
10227
- function create_fragment63(ctx) {
10443
+ function create_fragment65(ctx) {
10228
10444
  let button;
10229
10445
  let current;
10230
10446
  const button_spread_levels = [
@@ -10293,7 +10509,7 @@ function create_fragment63(ctx) {
10293
10509
  }
10294
10510
  };
10295
10511
  }
10296
- function instance63($$self, $$props, $$invalidate) {
10512
+ function instance65($$self, $$props, $$invalidate) {
10297
10513
  let { btn_props = {} } = $$props;
10298
10514
  let { content } = $$props;
10299
10515
  let { appliance } = $$props;
@@ -10316,7 +10532,7 @@ function instance63($$self, $$props, $$invalidate) {
10316
10532
  var Eraser2 = class extends SvelteComponent {
10317
10533
  constructor(options) {
10318
10534
  super();
10319
- init(this, options, instance63, create_fragment63, safe_not_equal, {
10535
+ init(this, options, instance65, create_fragment65, safe_not_equal, {
10320
10536
  btn_props: 0,
10321
10537
  content: 1,
10322
10538
  appliance: 2,
@@ -10365,7 +10581,7 @@ function create_default_slot10(ctx) {
10365
10581
  }
10366
10582
  };
10367
10583
  }
10368
- function create_fragment64(ctx) {
10584
+ function create_fragment66(ctx) {
10369
10585
  let button;
10370
10586
  let current;
10371
10587
  const button_spread_levels = [
@@ -10434,7 +10650,7 @@ function create_fragment64(ctx) {
10434
10650
  }
10435
10651
  };
10436
10652
  }
10437
- function instance64($$self, $$props, $$invalidate) {
10653
+ function instance66($$self, $$props, $$invalidate) {
10438
10654
  let { btn_props = {} } = $$props;
10439
10655
  let { content } = $$props;
10440
10656
  let { theme = "light" } = $$props;
@@ -10454,7 +10670,7 @@ function instance64($$self, $$props, $$invalidate) {
10454
10670
  var Clear2 = class extends SvelteComponent {
10455
10671
  constructor(options) {
10456
10672
  super();
10457
- init(this, options, instance64, create_fragment64, safe_not_equal, { btn_props: 0, content: 1, theme: 2 });
10673
+ init(this, options, instance66, create_fragment66, safe_not_equal, { btn_props: 0, content: 1, theme: 2 });
10458
10674
  }
10459
10675
  };
10460
10676
  var Clear_default2 = Clear2;
@@ -10604,7 +10820,7 @@ function create_default_slot11(ctx) {
10604
10820
  }
10605
10821
  };
10606
10822
  }
10607
- function create_fragment65(ctx) {
10823
+ function create_fragment67(ctx) {
10608
10824
  let button;
10609
10825
  let current;
10610
10826
  const button_spread_levels = [
@@ -10673,7 +10889,7 @@ function create_fragment65(ctx) {
10673
10889
  }
10674
10890
  };
10675
10891
  }
10676
- function instance65($$self, $$props, $$invalidate) {
10892
+ function instance67($$self, $$props, $$invalidate) {
10677
10893
  let { btn_props = {} } = $$props;
10678
10894
  let { content } = $$props;
10679
10895
  let { appliance } = $$props;
@@ -10696,7 +10912,7 @@ function instance65($$self, $$props, $$invalidate) {
10696
10912
  var Hand = class extends SvelteComponent {
10697
10913
  constructor(options) {
10698
10914
  super();
10699
- init(this, options, instance65, create_fragment65, safe_not_equal, {
10915
+ init(this, options, instance67, create_fragment67, safe_not_equal, {
10700
10916
  btn_props: 0,
10701
10917
  content: 1,
10702
10918
  appliance: 2,
@@ -10851,7 +11067,7 @@ function create_default_slot12(ctx) {
10851
11067
  }
10852
11068
  };
10853
11069
  }
10854
- function create_fragment66(ctx) {
11070
+ function create_fragment68(ctx) {
10855
11071
  let button;
10856
11072
  let current;
10857
11073
  const button_spread_levels = [
@@ -10920,7 +11136,7 @@ function create_fragment66(ctx) {
10920
11136
  }
10921
11137
  };
10922
11138
  }
10923
- function instance66($$self, $$props, $$invalidate) {
11139
+ function instance68($$self, $$props, $$invalidate) {
10924
11140
  let { btn_props = {} } = $$props;
10925
11141
  let { content } = $$props;
10926
11142
  let { appliance } = $$props;
@@ -10943,7 +11159,7 @@ function instance66($$self, $$props, $$invalidate) {
10943
11159
  var Laser2 = class extends SvelteComponent {
10944
11160
  constructor(options) {
10945
11161
  super();
10946
- init(this, options, instance66, create_fragment66, safe_not_equal, {
11162
+ init(this, options, instance68, create_fragment68, safe_not_equal, {
10947
11163
  btn_props: 0,
10948
11164
  content: 1,
10949
11165
  appliance: 2,
@@ -10956,42 +11172,42 @@ var Laser_default2 = Laser2;
10956
11172
  // src/components/Toolbar/components/Contents.svelte
10957
11173
  function get_each_context4(ctx, list, i) {
10958
11174
  const child_ctx = ctx.slice();
10959
- child_ctx[44] = list[i];
11175
+ child_ctx[47] = list[i];
10960
11176
  const constants_0 = (
10961
11177
  /*netless_app*/
10962
- child_ctx[44]
11178
+ child_ctx[47]
10963
11179
  );
10964
- child_ctx[45] = constants_0.icon;
10965
- child_ctx[46] = constants_0.label;
10966
- child_ctx[47] = constants_0.kind;
10967
- child_ctx[48] = constants_0.onClick;
11180
+ child_ctx[48] = constants_0.icon;
11181
+ child_ctx[49] = constants_0.label;
11182
+ child_ctx[50] = constants_0.kind;
11183
+ child_ctx[51] = constants_0.onClick;
10968
11184
  const constants_1 = (
10969
11185
  /*$status*/
10970
- child_ctx[21] && /*$status*/
10971
- child_ctx[21][
11186
+ child_ctx[22] && /*$status*/
11187
+ child_ctx[22][
10972
11188
  /*kind*/
10973
- child_ctx[47]
11189
+ child_ctx[50]
10974
11190
  ]
10975
11191
  );
10976
- child_ctx[49] = constants_1;
11192
+ child_ctx[52] = constants_1;
10977
11193
  const constants_2 = function func() {
10978
11194
  return (
10979
11195
  /*func*/
10980
- ctx[40](
11196
+ ctx[43](
10981
11197
  /*onClick*/
10982
- child_ctx[48]
11198
+ child_ctx[51]
10983
11199
  )
10984
11200
  );
10985
11201
  };
10986
- child_ctx[50] = constants_2;
11202
+ child_ctx[53] = constants_2;
10987
11203
  return child_ctx;
10988
11204
  }
10989
11205
  function get_each_context_1(ctx, list, i) {
10990
11206
  const child_ctx = ctx.slice();
10991
- child_ctx[53] = list[i];
11207
+ child_ctx[56] = list[i];
10992
11208
  return child_ctx;
10993
11209
  }
10994
- function create_if_block_11(ctx) {
11210
+ function create_if_block_13(ctx) {
10995
11211
  let button;
10996
11212
  let current;
10997
11213
  const button_spread_levels = [
@@ -11000,7 +11216,7 @@ function create_if_block_11(ctx) {
11000
11216
  ctx[15]
11001
11217
  ];
11002
11218
  let button_props = {
11003
- $$slots: { default: [create_default_slot_24] },
11219
+ $$slots: { default: [create_default_slot_6] },
11004
11220
  $$scope: { ctx }
11005
11221
  };
11006
11222
  for (let i = 0; i < button_spread_levels.length; i += 1) {
@@ -11010,7 +11226,7 @@ function create_if_block_11(ctx) {
11010
11226
  button.$on(
11011
11227
  "click",
11012
11228
  /*scroll_up*/
11013
- ctx[23]
11229
+ ctx[24]
11014
11230
  );
11015
11231
  return {
11016
11232
  c() {
@@ -11028,7 +11244,7 @@ function create_if_block_11(ctx) {
11028
11244
  )]) : {};
11029
11245
  if (dirty[0] & /*theme*/
11030
11246
  2 | dirty[1] & /*$$scope*/
11031
- 33554432) {
11247
+ 268435456) {
11032
11248
  button_changes.$$scope = { dirty, ctx: ctx2 };
11033
11249
  }
11034
11250
  button.$set(button_changes);
@@ -11048,7 +11264,7 @@ function create_if_block_11(ctx) {
11048
11264
  }
11049
11265
  };
11050
11266
  }
11051
- function create_default_slot_24(ctx) {
11267
+ function create_default_slot_6(ctx) {
11052
11268
  let icons_up;
11053
11269
  let current;
11054
11270
  icons_up = new Icons_default.Up({ props: { theme: (
@@ -11086,14 +11302,14 @@ function create_default_slot_24(ctx) {
11086
11302
  }
11087
11303
  };
11088
11304
  }
11089
- function create_if_block_10(ctx) {
11305
+ function create_if_block_122(ctx) {
11090
11306
  let laser;
11091
11307
  let current;
11092
11308
  laser = new Laser_default2({
11093
11309
  props: {
11094
11310
  appliance: (
11095
11311
  /*appliance*/
11096
- ctx[17]
11312
+ ctx[18]
11097
11313
  ),
11098
11314
  theme: (
11099
11315
  /*theme*/
@@ -11105,14 +11321,14 @@ function create_if_block_10(ctx) {
11105
11321
  ),
11106
11322
  content: (
11107
11323
  /*c*/
11108
- ctx[19].laserPointer
11324
+ ctx[20].laserPointer
11109
11325
  )
11110
11326
  }
11111
11327
  });
11112
11328
  laser.$on(
11113
11329
  "click",
11114
11330
  /*laserPointer*/
11115
- ctx[31]
11331
+ ctx[32]
11116
11332
  );
11117
11333
  return {
11118
11334
  c() {
@@ -11125,9 +11341,9 @@ function create_if_block_10(ctx) {
11125
11341
  p(ctx2, dirty) {
11126
11342
  const laser_changes = {};
11127
11343
  if (dirty[0] & /*appliance*/
11128
- 131072)
11344
+ 262144)
11129
11345
  laser_changes.appliance = /*appliance*/
11130
- ctx2[17];
11346
+ ctx2[18];
11131
11347
  if (dirty[0] & /*theme*/
11132
11348
  2)
11133
11349
  laser_changes.theme = /*theme*/
@@ -11137,9 +11353,9 @@ function create_if_block_10(ctx) {
11137
11353
  laser_changes.btn_props = /*btn_props*/
11138
11354
  ctx2[15];
11139
11355
  if (dirty[0] & /*c*/
11140
- 524288)
11356
+ 1048576)
11141
11357
  laser_changes.content = /*c*/
11142
- ctx2[19].laserPointer;
11358
+ ctx2[20].laserPointer;
11143
11359
  laser.$set(laser_changes);
11144
11360
  },
11145
11361
  i(local) {
@@ -11157,14 +11373,14 @@ function create_if_block_10(ctx) {
11157
11373
  }
11158
11374
  };
11159
11375
  }
11160
- function create_if_block_9(ctx) {
11376
+ function create_if_block_11(ctx) {
11161
11377
  let hand_1;
11162
11378
  let current;
11163
11379
  hand_1 = new Hand_default({
11164
11380
  props: {
11165
11381
  appliance: (
11166
11382
  /*appliance*/
11167
- ctx[17]
11383
+ ctx[18]
11168
11384
  ),
11169
11385
  theme: (
11170
11386
  /*theme*/
@@ -11176,14 +11392,14 @@ function create_if_block_9(ctx) {
11176
11392
  ),
11177
11393
  content: (
11178
11394
  /*c*/
11179
- ctx[19].hand
11395
+ ctx[20].hand
11180
11396
  )
11181
11397
  }
11182
11398
  });
11183
11399
  hand_1.$on(
11184
11400
  "click",
11185
11401
  /*hand*/
11186
- ctx[30]
11402
+ ctx[31]
11187
11403
  );
11188
11404
  return {
11189
11405
  c() {
@@ -11196,9 +11412,9 @@ function create_if_block_9(ctx) {
11196
11412
  p(ctx2, dirty) {
11197
11413
  const hand_1_changes = {};
11198
11414
  if (dirty[0] & /*appliance*/
11199
- 131072)
11415
+ 262144)
11200
11416
  hand_1_changes.appliance = /*appliance*/
11201
- ctx2[17];
11417
+ ctx2[18];
11202
11418
  if (dirty[0] & /*theme*/
11203
11419
  2)
11204
11420
  hand_1_changes.theme = /*theme*/
@@ -11208,9 +11424,9 @@ function create_if_block_9(ctx) {
11208
11424
  hand_1_changes.btn_props = /*btn_props*/
11209
11425
  ctx2[15];
11210
11426
  if (dirty[0] & /*c*/
11211
- 524288)
11427
+ 1048576)
11212
11428
  hand_1_changes.content = /*c*/
11213
- ctx2[19].hand;
11429
+ ctx2[20].hand;
11214
11430
  hand_1.$set(hand_1_changes);
11215
11431
  },
11216
11432
  i(local) {
@@ -11228,7 +11444,7 @@ function create_if_block_9(ctx) {
11228
11444
  }
11229
11445
  };
11230
11446
  }
11231
- function create_if_block_8(ctx) {
11447
+ function create_if_block_10(ctx) {
11232
11448
  let clear_1;
11233
11449
  let current;
11234
11450
  clear_1 = new Clear_default2({
@@ -11250,7 +11466,7 @@ function create_if_block_8(ctx) {
11250
11466
  clear_1.$on(
11251
11467
  "click",
11252
11468
  /*clear*/
11253
- ctx[32]
11469
+ ctx[33]
11254
11470
  );
11255
11471
  return {
11256
11472
  c() {
@@ -11291,14 +11507,14 @@ function create_if_block_8(ctx) {
11291
11507
  }
11292
11508
  };
11293
11509
  }
11294
- function create_if_block_7(ctx) {
11510
+ function create_if_block_9(ctx) {
11295
11511
  let eraser_1;
11296
11512
  let current;
11297
11513
  eraser_1 = new Eraser_default2({
11298
11514
  props: {
11299
11515
  appliance: (
11300
11516
  /*appliance*/
11301
- ctx[17]
11517
+ ctx[18]
11302
11518
  ),
11303
11519
  theme: (
11304
11520
  /*theme*/
@@ -11310,14 +11526,14 @@ function create_if_block_7(ctx) {
11310
11526
  ),
11311
11527
  content: (
11312
11528
  /*c*/
11313
- ctx[19].eraser
11529
+ ctx[20].eraser
11314
11530
  )
11315
11531
  }
11316
11532
  });
11317
11533
  eraser_1.$on(
11318
11534
  "click",
11319
11535
  /*eraser*/
11320
- ctx[29]
11536
+ ctx[30]
11321
11537
  );
11322
11538
  return {
11323
11539
  c() {
@@ -11330,9 +11546,9 @@ function create_if_block_7(ctx) {
11330
11546
  p(ctx2, dirty) {
11331
11547
  const eraser_1_changes = {};
11332
11548
  if (dirty[0] & /*appliance*/
11333
- 131072)
11549
+ 262144)
11334
11550
  eraser_1_changes.appliance = /*appliance*/
11335
- ctx2[17];
11551
+ ctx2[18];
11336
11552
  if (dirty[0] & /*theme*/
11337
11553
  2)
11338
11554
  eraser_1_changes.theme = /*theme*/
@@ -11342,9 +11558,9 @@ function create_if_block_7(ctx) {
11342
11558
  eraser_1_changes.btn_props = /*btn_props*/
11343
11559
  ctx2[15];
11344
11560
  if (dirty[0] & /*c*/
11345
- 524288)
11561
+ 1048576)
11346
11562
  eraser_1_changes.content = /*c*/
11347
- ctx2[19].eraser;
11563
+ ctx2[20].eraser;
11348
11564
  eraser_1.$set(eraser_1_changes);
11349
11565
  },
11350
11566
  i(local) {
@@ -11362,7 +11578,7 @@ function create_if_block_7(ctx) {
11362
11578
  }
11363
11579
  };
11364
11580
  }
11365
- function create_if_block_6(ctx) {
11581
+ function create_if_block_8(ctx) {
11366
11582
  let shapes2;
11367
11583
  let current;
11368
11584
  shapes2 = new Shapes_default({
@@ -11373,7 +11589,7 @@ function create_if_block_6(ctx) {
11373
11589
  ),
11374
11590
  appliance: (
11375
11591
  /*appliance*/
11376
- ctx[17]
11592
+ ctx[18]
11377
11593
  ),
11378
11594
  theme: (
11379
11595
  /*theme*/
@@ -11408,9 +11624,9 @@ function create_if_block_6(ctx) {
11408
11624
  shapes_changes.app = /*app*/
11409
11625
  ctx2[0];
11410
11626
  if (dirty[0] & /*appliance*/
11411
- 131072)
11627
+ 262144)
11412
11628
  shapes_changes.appliance = /*appliance*/
11413
- ctx2[17];
11629
+ ctx2[18];
11414
11630
  if (dirty[0] & /*theme*/
11415
11631
  2)
11416
11632
  shapes_changes.theme = /*theme*/
@@ -11444,14 +11660,14 @@ function create_if_block_6(ctx) {
11444
11660
  }
11445
11661
  };
11446
11662
  }
11447
- function create_if_block_5(ctx) {
11663
+ function create_if_block_7(ctx) {
11448
11664
  let text_1;
11449
11665
  let current;
11450
11666
  text_1 = new Text_default2({
11451
11667
  props: {
11452
11668
  appliance: (
11453
11669
  /*appliance*/
11454
- ctx[17]
11670
+ ctx[18]
11455
11671
  ),
11456
11672
  theme: (
11457
11673
  /*theme*/
@@ -11463,7 +11679,7 @@ function create_if_block_5(ctx) {
11463
11679
  ),
11464
11680
  content: (
11465
11681
  /*c*/
11466
- ctx[19].text
11682
+ ctx[20].text
11467
11683
  ),
11468
11684
  menu: (
11469
11685
  /*text_panel*/
@@ -11474,7 +11690,7 @@ function create_if_block_5(ctx) {
11474
11690
  text_1.$on(
11475
11691
  "click",
11476
11692
  /*text*/
11477
- ctx[28]
11693
+ ctx[29]
11478
11694
  );
11479
11695
  return {
11480
11696
  c() {
@@ -11487,9 +11703,9 @@ function create_if_block_5(ctx) {
11487
11703
  p(ctx2, dirty) {
11488
11704
  const text_1_changes = {};
11489
11705
  if (dirty[0] & /*appliance*/
11490
- 131072)
11706
+ 262144)
11491
11707
  text_1_changes.appliance = /*appliance*/
11492
- ctx2[17];
11708
+ ctx2[18];
11493
11709
  if (dirty[0] & /*theme*/
11494
11710
  2)
11495
11711
  text_1_changes.theme = /*theme*/
@@ -11499,9 +11715,9 @@ function create_if_block_5(ctx) {
11499
11715
  text_1_changes.btn_props = /*btn_props*/
11500
11716
  ctx2[15];
11501
11717
  if (dirty[0] & /*c*/
11502
- 524288)
11718
+ 1048576)
11503
11719
  text_1_changes.content = /*c*/
11504
- ctx2[19].text;
11720
+ ctx2[20].text;
11505
11721
  if (dirty[0] & /*text_panel*/
11506
11722
  4096)
11507
11723
  text_1_changes.menu = /*text_panel*/
@@ -11523,14 +11739,18 @@ function create_if_block_5(ctx) {
11523
11739
  }
11524
11740
  };
11525
11741
  }
11526
- function create_if_block_4(ctx) {
11742
+ function create_if_block_6(ctx) {
11527
11743
  let pencil_1;
11528
11744
  let current;
11529
11745
  pencil_1 = new Pencil_default2({
11530
11746
  props: {
11747
+ hasUseLaserPen: (
11748
+ /*hasUseLaserPen*/
11749
+ ctx[16]
11750
+ ),
11531
11751
  appliance: (
11532
11752
  /*appliance*/
11533
- ctx[17]
11753
+ ctx[18]
11534
11754
  ),
11535
11755
  theme: (
11536
11756
  /*theme*/
@@ -11542,7 +11762,7 @@ function create_if_block_4(ctx) {
11542
11762
  ),
11543
11763
  content: (
11544
11764
  /*c*/
11545
- ctx[19].pencil
11765
+ ctx[20].pencil
11546
11766
  ),
11547
11767
  menu: (
11548
11768
  /*pencil_panel*/
@@ -11553,7 +11773,7 @@ function create_if_block_4(ctx) {
11553
11773
  pencil_1.$on(
11554
11774
  "click",
11555
11775
  /*pencil*/
11556
- ctx[27]
11776
+ ctx[28]
11557
11777
  );
11558
11778
  return {
11559
11779
  c() {
@@ -11565,10 +11785,14 @@ function create_if_block_4(ctx) {
11565
11785
  },
11566
11786
  p(ctx2, dirty) {
11567
11787
  const pencil_1_changes = {};
11788
+ if (dirty[0] & /*hasUseLaserPen*/
11789
+ 65536)
11790
+ pencil_1_changes.hasUseLaserPen = /*hasUseLaserPen*/
11791
+ ctx2[16];
11568
11792
  if (dirty[0] & /*appliance*/
11569
- 131072)
11793
+ 262144)
11570
11794
  pencil_1_changes.appliance = /*appliance*/
11571
- ctx2[17];
11795
+ ctx2[18];
11572
11796
  if (dirty[0] & /*theme*/
11573
11797
  2)
11574
11798
  pencil_1_changes.theme = /*theme*/
@@ -11578,9 +11802,9 @@ function create_if_block_4(ctx) {
11578
11802
  pencil_1_changes.btn_props = /*btn_props*/
11579
11803
  ctx2[15];
11580
11804
  if (dirty[0] & /*c*/
11581
- 524288)
11805
+ 1048576)
11582
11806
  pencil_1_changes.content = /*c*/
11583
- ctx2[19].pencil;
11807
+ ctx2[20].pencil;
11584
11808
  if (dirty[0] & /*pencil_panel*/
11585
11809
  2048)
11586
11810
  pencil_1_changes.menu = /*pencil_panel*/
@@ -11602,14 +11826,14 @@ function create_if_block_4(ctx) {
11602
11826
  }
11603
11827
  };
11604
11828
  }
11605
- function create_if_block_3(ctx) {
11829
+ function create_if_block_5(ctx) {
11606
11830
  let selector_1;
11607
11831
  let current;
11608
11832
  selector_1 = new Selector_default2({
11609
11833
  props: {
11610
11834
  appliance: (
11611
11835
  /*appliance*/
11612
- ctx[17]
11836
+ ctx[18]
11613
11837
  ),
11614
11838
  theme: (
11615
11839
  /*theme*/
@@ -11621,14 +11845,14 @@ function create_if_block_3(ctx) {
11621
11845
  ),
11622
11846
  content: (
11623
11847
  /*c*/
11624
- ctx[19].selector
11848
+ ctx[20].selector
11625
11849
  )
11626
11850
  }
11627
11851
  });
11628
11852
  selector_1.$on(
11629
11853
  "click",
11630
11854
  /*selector*/
11631
- ctx[26]
11855
+ ctx[27]
11632
11856
  );
11633
11857
  return {
11634
11858
  c() {
@@ -11641,9 +11865,9 @@ function create_if_block_3(ctx) {
11641
11865
  p(ctx2, dirty) {
11642
11866
  const selector_1_changes = {};
11643
11867
  if (dirty[0] & /*appliance*/
11644
- 131072)
11868
+ 262144)
11645
11869
  selector_1_changes.appliance = /*appliance*/
11646
- ctx2[17];
11870
+ ctx2[18];
11647
11871
  if (dirty[0] & /*theme*/
11648
11872
  2)
11649
11873
  selector_1_changes.theme = /*theme*/
@@ -11653,9 +11877,9 @@ function create_if_block_3(ctx) {
11653
11877
  selector_1_changes.btn_props = /*btn_props*/
11654
11878
  ctx2[15];
11655
11879
  if (dirty[0] & /*c*/
11656
- 524288)
11880
+ 1048576)
11657
11881
  selector_1_changes.content = /*c*/
11658
- ctx2[19].selector;
11882
+ ctx2[20].selector;
11659
11883
  selector_1.$set(selector_1_changes);
11660
11884
  },
11661
11885
  i(local) {
@@ -11673,14 +11897,14 @@ function create_if_block_3(ctx) {
11673
11897
  }
11674
11898
  };
11675
11899
  }
11676
- function create_if_block_2(ctx) {
11900
+ function create_if_block_4(ctx) {
11677
11901
  let clicker_1;
11678
11902
  let current;
11679
11903
  clicker_1 = new Clicker_default({
11680
11904
  props: {
11681
11905
  appliance: (
11682
11906
  /*appliance*/
11683
- ctx[17]
11907
+ ctx[18]
11684
11908
  ),
11685
11909
  theme: (
11686
11910
  /*theme*/
@@ -11692,14 +11916,14 @@ function create_if_block_2(ctx) {
11692
11916
  ),
11693
11917
  content: (
11694
11918
  /*c*/
11695
- ctx[19].clicker
11919
+ ctx[20].clicker
11696
11920
  )
11697
11921
  }
11698
11922
  });
11699
11923
  clicker_1.$on(
11700
11924
  "click",
11701
11925
  /*clicker*/
11702
- ctx[25]
11926
+ ctx[26]
11703
11927
  );
11704
11928
  return {
11705
11929
  c() {
@@ -11712,9 +11936,9 @@ function create_if_block_2(ctx) {
11712
11936
  p(ctx2, dirty) {
11713
11937
  const clicker_1_changes = {};
11714
11938
  if (dirty[0] & /*appliance*/
11715
- 131072)
11939
+ 262144)
11716
11940
  clicker_1_changes.appliance = /*appliance*/
11717
- ctx2[17];
11941
+ ctx2[18];
11718
11942
  if (dirty[0] & /*theme*/
11719
11943
  2)
11720
11944
  clicker_1_changes.theme = /*theme*/
@@ -11724,9 +11948,9 @@ function create_if_block_2(ctx) {
11724
11948
  clicker_1_changes.btn_props = /*btn_props*/
11725
11949
  ctx2[15];
11726
11950
  if (dirty[0] & /*c*/
11727
- 524288)
11951
+ 1048576)
11728
11952
  clicker_1_changes.content = /*c*/
11729
- ctx2[19].clicker;
11953
+ ctx2[20].clicker;
11730
11954
  clicker_1.$set(clicker_1_changes);
11731
11955
  },
11732
11956
  i(local) {
@@ -11750,61 +11974,61 @@ function create_each_block_1(ctx) {
11750
11974
  let if_block_anchor;
11751
11975
  let current;
11752
11976
  const if_block_creators = [
11753
- create_if_block_2,
11754
- create_if_block_3,
11755
11977
  create_if_block_4,
11756
11978
  create_if_block_5,
11757
11979
  create_if_block_6,
11758
11980
  create_if_block_7,
11759
11981
  create_if_block_8,
11760
11982
  create_if_block_9,
11761
- create_if_block_10
11983
+ create_if_block_10,
11984
+ create_if_block_11,
11985
+ create_if_block_122
11762
11986
  ];
11763
11987
  const if_blocks = [];
11764
11988
  function select_block_type(ctx2, dirty) {
11765
11989
  if (
11766
11990
  /*item*/
11767
- ctx2[53] === "clicker"
11991
+ ctx2[56] === "clicker"
11768
11992
  )
11769
11993
  return 0;
11770
11994
  if (
11771
11995
  /*item*/
11772
- ctx2[53] === "selector"
11996
+ ctx2[56] === "selector"
11773
11997
  )
11774
11998
  return 1;
11775
11999
  if (
11776
12000
  /*item*/
11777
- ctx2[53] === "pencil"
12001
+ ctx2[56] === "pencil"
11778
12002
  )
11779
12003
  return 2;
11780
12004
  if (
11781
12005
  /*item*/
11782
- ctx2[53] === "text"
12006
+ ctx2[56] === "text"
11783
12007
  )
11784
12008
  return 3;
11785
12009
  if (
11786
12010
  /*item*/
11787
- ctx2[53] === "shapes"
12011
+ ctx2[56] === "shapes"
11788
12012
  )
11789
12013
  return 4;
11790
12014
  if (
11791
12015
  /*item*/
11792
- ctx2[53] === "eraser"
12016
+ ctx2[56] === "eraser"
11793
12017
  )
11794
12018
  return 5;
11795
12019
  if (
11796
12020
  /*item*/
11797
- ctx2[53] === "clear"
12021
+ ctx2[56] === "clear"
11798
12022
  )
11799
12023
  return 6;
11800
12024
  if (
11801
12025
  /*item*/
11802
- ctx2[53] === "hand"
12026
+ ctx2[56] === "hand"
11803
12027
  )
11804
12028
  return 7;
11805
12029
  if (
11806
12030
  /*item*/
11807
- ctx2[53] === "laserPointer"
12031
+ ctx2[56] === "laserPointer"
11808
12032
  )
11809
12033
  return 8;
11810
12034
  return -1;
@@ -11874,7 +12098,7 @@ function create_each_block_1(ctx) {
11874
12098
  }
11875
12099
  };
11876
12100
  }
11877
- function create_if_block_12(ctx) {
12101
+ function create_if_block_3(ctx) {
11878
12102
  let button;
11879
12103
  let current;
11880
12104
  const button_spread_levels = [
@@ -11897,7 +12121,7 @@ function create_if_block_12(ctx) {
11897
12121
  }
11898
12122
  ];
11899
12123
  let button_props = {
11900
- $$slots: { default: [create_default_slot_14] },
12124
+ $$slots: { default: [create_default_slot_53] },
11901
12125
  $$scope: { ctx }
11902
12126
  };
11903
12127
  for (let i = 0; i < button_spread_levels.length; i += 1) {
@@ -11941,7 +12165,7 @@ function create_if_block_12(ctx) {
11941
12165
  ]) : {};
11942
12166
  if (dirty[0] & /*theme*/
11943
12167
  2 | dirty[1] & /*$$scope*/
11944
- 33554432) {
12168
+ 268435456) {
11945
12169
  button_changes.$$scope = { dirty, ctx: ctx2 };
11946
12170
  }
11947
12171
  button.$set(button_changes);
@@ -11961,7 +12185,7 @@ function create_if_block_12(ctx) {
11961
12185
  }
11962
12186
  };
11963
12187
  }
11964
- function create_default_slot_14(ctx) {
12188
+ function create_default_slot_53(ctx) {
11965
12189
  let icons_apps;
11966
12190
  let current;
11967
12191
  icons_apps = new Icons_default.Apps({ props: { theme: (
@@ -11999,7 +12223,7 @@ function create_default_slot_14(ctx) {
11999
12223
  }
12000
12224
  };
12001
12225
  }
12002
- function create_if_block14(ctx) {
12226
+ function create_if_block_2(ctx) {
12003
12227
  let button;
12004
12228
  let current;
12005
12229
  button = new Button_default({
@@ -12014,14 +12238,14 @@ function create_if_block14(ctx) {
12014
12238
  /*disabled*/
12015
12239
  ctx[3]
12016
12240
  ),
12017
- $$slots: { default: [create_default_slot13] },
12241
+ $$slots: { default: [create_default_slot_43] },
12018
12242
  $$scope: { ctx }
12019
12243
  }
12020
12244
  });
12021
12245
  button.$on(
12022
12246
  "click",
12023
12247
  /*scroll_down*/
12024
- ctx[24]
12248
+ ctx[25]
12025
12249
  );
12026
12250
  return {
12027
12251
  c() {
@@ -12043,7 +12267,7 @@ function create_if_block14(ctx) {
12043
12267
  ctx2[3];
12044
12268
  if (dirty[0] & /*theme*/
12045
12269
  2 | dirty[1] & /*$$scope*/
12046
- 33554432) {
12270
+ 268435456) {
12047
12271
  button_changes.$$scope = { dirty, ctx: ctx2 };
12048
12272
  }
12049
12273
  button.$set(button_changes);
@@ -12063,7 +12287,7 @@ function create_if_block14(ctx) {
12063
12287
  }
12064
12288
  };
12065
12289
  }
12066
- function create_default_slot13(ctx) {
12290
+ function create_default_slot_43(ctx) {
12067
12291
  let icons_down;
12068
12292
  let current;
12069
12293
  icons_down = new Icons_default.Down({ props: { theme: (
@@ -12101,6 +12325,366 @@ function create_default_slot13(ctx) {
12101
12325
  }
12102
12326
  };
12103
12327
  }
12328
+ function create_if_block_14(ctx) {
12329
+ let button0;
12330
+ let t_1;
12331
+ let button1;
12332
+ let current;
12333
+ const button0_spread_levels = [
12334
+ { class: name5 + "-panel-switch-btn" },
12335
+ /*btn_props*/
12336
+ ctx[15]
12337
+ ];
12338
+ let button0_props = {
12339
+ $$slots: { default: [create_default_slot_34] },
12340
+ $$scope: { ctx }
12341
+ };
12342
+ for (let i = 0; i < button0_spread_levels.length; i += 1) {
12343
+ button0_props = assign(button0_props, button0_spread_levels[i]);
12344
+ }
12345
+ button0 = new Button_default({ props: button0_props });
12346
+ const button1_spread_levels = [
12347
+ { class: name5 + "-panel-switch-btn" },
12348
+ /*btn_props*/
12349
+ ctx[15]
12350
+ ];
12351
+ let button1_props = {
12352
+ $$slots: { default: [create_default_slot_24] },
12353
+ $$scope: { ctx }
12354
+ };
12355
+ for (let i = 0; i < button1_spread_levels.length; i += 1) {
12356
+ button1_props = assign(button1_props, button1_spread_levels[i]);
12357
+ }
12358
+ button1 = new Button_default({ props: button1_props });
12359
+ button1.$on(
12360
+ "click",
12361
+ /*useLaserPen*/
12362
+ ctx[34]
12363
+ );
12364
+ return {
12365
+ c() {
12366
+ create_component(button0.$$.fragment);
12367
+ t_1 = space();
12368
+ create_component(button1.$$.fragment);
12369
+ },
12370
+ m(target, anchor) {
12371
+ mount_component(button0, target, anchor);
12372
+ insert(target, t_1, anchor);
12373
+ mount_component(button1, target, anchor);
12374
+ current = true;
12375
+ },
12376
+ p(ctx2, dirty) {
12377
+ const button0_changes = dirty[0] & /*btn_props*/
12378
+ 32768 ? get_spread_update(button0_spread_levels, [
12379
+ dirty & /*name*/
12380
+ 0 && { class: name5 + "-panel-switch-btn" },
12381
+ dirty[0] & /*btn_props*/
12382
+ 32768 && get_spread_object(
12383
+ /*btn_props*/
12384
+ ctx2[15]
12385
+ )
12386
+ ]) : {};
12387
+ if (dirty[0] & /*theme*/
12388
+ 2 | dirty[1] & /*$$scope*/
12389
+ 268435456) {
12390
+ button0_changes.$$scope = { dirty, ctx: ctx2 };
12391
+ }
12392
+ button0.$set(button0_changes);
12393
+ const button1_changes = dirty[0] & /*btn_props*/
12394
+ 32768 ? get_spread_update(button1_spread_levels, [
12395
+ dirty & /*name*/
12396
+ 0 && { class: name5 + "-panel-switch-btn" },
12397
+ dirty[0] & /*btn_props*/
12398
+ 32768 && get_spread_object(
12399
+ /*btn_props*/
12400
+ ctx2[15]
12401
+ )
12402
+ ]) : {};
12403
+ if (dirty[0] & /*theme*/
12404
+ 2 | dirty[1] & /*$$scope*/
12405
+ 268435456) {
12406
+ button1_changes.$$scope = { dirty, ctx: ctx2 };
12407
+ }
12408
+ button1.$set(button1_changes);
12409
+ },
12410
+ i(local) {
12411
+ if (current)
12412
+ return;
12413
+ transition_in(button0.$$.fragment, local);
12414
+ transition_in(button1.$$.fragment, local);
12415
+ current = true;
12416
+ },
12417
+ o(local) {
12418
+ transition_out(button0.$$.fragment, local);
12419
+ transition_out(button1.$$.fragment, local);
12420
+ current = false;
12421
+ },
12422
+ d(detaching) {
12423
+ destroy_component(button0, detaching);
12424
+ if (detaching)
12425
+ detach(t_1);
12426
+ destroy_component(button1, detaching);
12427
+ }
12428
+ };
12429
+ }
12430
+ function create_if_block14(ctx) {
12431
+ let button0;
12432
+ let t_1;
12433
+ let button1;
12434
+ let current;
12435
+ const button0_spread_levels = [
12436
+ { class: name5 + "-panel-switch-btn" },
12437
+ /*btn_props*/
12438
+ ctx[15]
12439
+ ];
12440
+ let button0_props = {
12441
+ $$slots: { default: [create_default_slot_14] },
12442
+ $$scope: { ctx }
12443
+ };
12444
+ for (let i = 0; i < button0_spread_levels.length; i += 1) {
12445
+ button0_props = assign(button0_props, button0_spread_levels[i]);
12446
+ }
12447
+ button0 = new Button_default({ props: button0_props });
12448
+ button0.$on(
12449
+ "click",
12450
+ /*pencil*/
12451
+ ctx[28]
12452
+ );
12453
+ const button1_spread_levels = [
12454
+ { class: name5 + "-panel-switch-btn" },
12455
+ /*btn_props*/
12456
+ ctx[15]
12457
+ ];
12458
+ let button1_props = {
12459
+ $$slots: { default: [create_default_slot13] },
12460
+ $$scope: { ctx }
12461
+ };
12462
+ for (let i = 0; i < button1_spread_levels.length; i += 1) {
12463
+ button1_props = assign(button1_props, button1_spread_levels[i]);
12464
+ }
12465
+ button1 = new Button_default({ props: button1_props });
12466
+ return {
12467
+ c() {
12468
+ create_component(button0.$$.fragment);
12469
+ t_1 = space();
12470
+ create_component(button1.$$.fragment);
12471
+ },
12472
+ m(target, anchor) {
12473
+ mount_component(button0, target, anchor);
12474
+ insert(target, t_1, anchor);
12475
+ mount_component(button1, target, anchor);
12476
+ current = true;
12477
+ },
12478
+ p(ctx2, dirty) {
12479
+ const button0_changes = dirty[0] & /*btn_props*/
12480
+ 32768 ? get_spread_update(button0_spread_levels, [
12481
+ dirty & /*name*/
12482
+ 0 && { class: name5 + "-panel-switch-btn" },
12483
+ dirty[0] & /*btn_props*/
12484
+ 32768 && get_spread_object(
12485
+ /*btn_props*/
12486
+ ctx2[15]
12487
+ )
12488
+ ]) : {};
12489
+ if (dirty[0] & /*theme*/
12490
+ 2 | dirty[1] & /*$$scope*/
12491
+ 268435456) {
12492
+ button0_changes.$$scope = { dirty, ctx: ctx2 };
12493
+ }
12494
+ button0.$set(button0_changes);
12495
+ const button1_changes = dirty[0] & /*btn_props*/
12496
+ 32768 ? get_spread_update(button1_spread_levels, [
12497
+ dirty & /*name*/
12498
+ 0 && { class: name5 + "-panel-switch-btn" },
12499
+ dirty[0] & /*btn_props*/
12500
+ 32768 && get_spread_object(
12501
+ /*btn_props*/
12502
+ ctx2[15]
12503
+ )
12504
+ ]) : {};
12505
+ if (dirty[0] & /*theme*/
12506
+ 2 | dirty[1] & /*$$scope*/
12507
+ 268435456) {
12508
+ button1_changes.$$scope = { dirty, ctx: ctx2 };
12509
+ }
12510
+ button1.$set(button1_changes);
12511
+ },
12512
+ i(local) {
12513
+ if (current)
12514
+ return;
12515
+ transition_in(button0.$$.fragment, local);
12516
+ transition_in(button1.$$.fragment, local);
12517
+ current = true;
12518
+ },
12519
+ o(local) {
12520
+ transition_out(button0.$$.fragment, local);
12521
+ transition_out(button1.$$.fragment, local);
12522
+ current = false;
12523
+ },
12524
+ d(detaching) {
12525
+ destroy_component(button0, detaching);
12526
+ if (detaching)
12527
+ detach(t_1);
12528
+ destroy_component(button1, detaching);
12529
+ }
12530
+ };
12531
+ }
12532
+ function create_default_slot_34(ctx) {
12533
+ let icons_pencilfilled;
12534
+ let current;
12535
+ icons_pencilfilled = new Icons_default.PencilFilled({
12536
+ props: { theme: (
12537
+ /*theme*/
12538
+ ctx[1]
12539
+ ), active: true }
12540
+ });
12541
+ return {
12542
+ c() {
12543
+ create_component(icons_pencilfilled.$$.fragment);
12544
+ },
12545
+ m(target, anchor) {
12546
+ mount_component(icons_pencilfilled, target, anchor);
12547
+ current = true;
12548
+ },
12549
+ p(ctx2, dirty) {
12550
+ const icons_pencilfilled_changes = {};
12551
+ if (dirty[0] & /*theme*/
12552
+ 2)
12553
+ icons_pencilfilled_changes.theme = /*theme*/
12554
+ ctx2[1];
12555
+ icons_pencilfilled.$set(icons_pencilfilled_changes);
12556
+ },
12557
+ i(local) {
12558
+ if (current)
12559
+ return;
12560
+ transition_in(icons_pencilfilled.$$.fragment, local);
12561
+ current = true;
12562
+ },
12563
+ o(local) {
12564
+ transition_out(icons_pencilfilled.$$.fragment, local);
12565
+ current = false;
12566
+ },
12567
+ d(detaching) {
12568
+ destroy_component(icons_pencilfilled, detaching);
12569
+ }
12570
+ };
12571
+ }
12572
+ function create_default_slot_24(ctx) {
12573
+ let icons_laserpen;
12574
+ let current;
12575
+ icons_laserpen = new Icons_default.LaserPen({ props: { theme: (
12576
+ /*theme*/
12577
+ ctx[1]
12578
+ ) } });
12579
+ return {
12580
+ c() {
12581
+ create_component(icons_laserpen.$$.fragment);
12582
+ },
12583
+ m(target, anchor) {
12584
+ mount_component(icons_laserpen, target, anchor);
12585
+ current = true;
12586
+ },
12587
+ p(ctx2, dirty) {
12588
+ const icons_laserpen_changes = {};
12589
+ if (dirty[0] & /*theme*/
12590
+ 2)
12591
+ icons_laserpen_changes.theme = /*theme*/
12592
+ ctx2[1];
12593
+ icons_laserpen.$set(icons_laserpen_changes);
12594
+ },
12595
+ i(local) {
12596
+ if (current)
12597
+ return;
12598
+ transition_in(icons_laserpen.$$.fragment, local);
12599
+ current = true;
12600
+ },
12601
+ o(local) {
12602
+ transition_out(icons_laserpen.$$.fragment, local);
12603
+ current = false;
12604
+ },
12605
+ d(detaching) {
12606
+ destroy_component(icons_laserpen, detaching);
12607
+ }
12608
+ };
12609
+ }
12610
+ function create_default_slot_14(ctx) {
12611
+ let icons_pencil;
12612
+ let current;
12613
+ icons_pencil = new Icons_default.Pencil({ props: { theme: (
12614
+ /*theme*/
12615
+ ctx[1]
12616
+ ) } });
12617
+ return {
12618
+ c() {
12619
+ create_component(icons_pencil.$$.fragment);
12620
+ },
12621
+ m(target, anchor) {
12622
+ mount_component(icons_pencil, target, anchor);
12623
+ current = true;
12624
+ },
12625
+ p(ctx2, dirty) {
12626
+ const icons_pencil_changes = {};
12627
+ if (dirty[0] & /*theme*/
12628
+ 2)
12629
+ icons_pencil_changes.theme = /*theme*/
12630
+ ctx2[1];
12631
+ icons_pencil.$set(icons_pencil_changes);
12632
+ },
12633
+ i(local) {
12634
+ if (current)
12635
+ return;
12636
+ transition_in(icons_pencil.$$.fragment, local);
12637
+ current = true;
12638
+ },
12639
+ o(local) {
12640
+ transition_out(icons_pencil.$$.fragment, local);
12641
+ current = false;
12642
+ },
12643
+ d(detaching) {
12644
+ destroy_component(icons_pencil, detaching);
12645
+ }
12646
+ };
12647
+ }
12648
+ function create_default_slot13(ctx) {
12649
+ let icons_laserpenfilled;
12650
+ let current;
12651
+ icons_laserpenfilled = new Icons_default.LaserPenFilled({
12652
+ props: { theme: (
12653
+ /*theme*/
12654
+ ctx[1]
12655
+ ), active: true }
12656
+ });
12657
+ return {
12658
+ c() {
12659
+ create_component(icons_laserpenfilled.$$.fragment);
12660
+ },
12661
+ m(target, anchor) {
12662
+ mount_component(icons_laserpenfilled, target, anchor);
12663
+ current = true;
12664
+ },
12665
+ p(ctx2, dirty) {
12666
+ const icons_laserpenfilled_changes = {};
12667
+ if (dirty[0] & /*theme*/
12668
+ 2)
12669
+ icons_laserpenfilled_changes.theme = /*theme*/
12670
+ ctx2[1];
12671
+ icons_laserpenfilled.$set(icons_laserpenfilled_changes);
12672
+ },
12673
+ i(local) {
12674
+ if (current)
12675
+ return;
12676
+ transition_in(icons_laserpenfilled.$$.fragment, local);
12677
+ current = true;
12678
+ },
12679
+ o(local) {
12680
+ transition_out(icons_laserpenfilled.$$.fragment, local);
12681
+ current = false;
12682
+ },
12683
+ d(detaching) {
12684
+ destroy_component(icons_laserpenfilled, detaching);
12685
+ }
12686
+ };
12687
+ }
12104
12688
  function create_each_block4(ctx) {
12105
12689
  let button;
12106
12690
  let img;
@@ -12112,7 +12696,7 @@ function create_each_block4(ctx) {
12112
12696
  let span;
12113
12697
  let t1_value = (
12114
12698
  /*label*/
12115
- ctx[46] + ""
12699
+ ctx[49] + ""
12116
12700
  );
12117
12701
  let t1;
12118
12702
  let span_class_value;
@@ -12134,40 +12718,40 @@ function create_each_block4(ctx) {
12134
12718
  attr(img, "class", img_class_value = name5 + "-app-btn-icon " + /*theme*/
12135
12719
  ctx[1]);
12136
12720
  if (!src_url_equal(img.src, img_src_value = /*icon*/
12137
- ctx[45]))
12721
+ ctx[48]))
12138
12722
  attr(img, "src", img_src_value);
12139
12723
  attr(img, "alt", img_alt_value = /*kind*/
12140
- ctx[47]);
12724
+ ctx[50]);
12141
12725
  attr(img, "title", img_title_value = /*label*/
12142
- ctx[46]);
12726
+ ctx[49]);
12143
12727
  attr(span, "class", span_class_value = name5 + "-app-btn-text " + /*theme*/
12144
12728
  ctx[1]);
12145
12729
  attr(button, "class", button_class_value = name5 + "-app-btn " + /*kind*/
12146
- ctx[47] + " " + /*theme*/
12730
+ ctx[50] + " " + /*theme*/
12147
12731
  ctx[1]);
12148
12732
  attr(button, "title", button_title_value = /*label*/
12149
- ctx[46] + /*state*/
12150
- (ctx[49] && /*state*/
12151
- ctx[49].reason ? ": " + /*state*/
12152
- ctx[49].reason : ""));
12733
+ ctx[49] + /*state*/
12734
+ (ctx[52] && /*state*/
12735
+ ctx[52].reason ? ": " + /*state*/
12736
+ ctx[52].reason : ""));
12153
12737
  attr(button, "data-app-kind", button_data_app_kind_value = /*netless_app*/
12154
- ctx[44].kind);
12738
+ ctx[47].kind);
12155
12739
  button.disabled = button_disabled_value = /*state*/
12156
- ctx[49] && /*state*/
12157
- ctx[49].status !== "idle";
12740
+ ctx[52] && /*state*/
12741
+ ctx[52].status !== "idle";
12158
12742
  toggle_class(
12159
12743
  button,
12160
12744
  "is-loading",
12161
12745
  /*state*/
12162
- ctx[49] && /*state*/
12163
- ctx[49].status === "loading"
12746
+ ctx[52] && /*state*/
12747
+ ctx[52].status === "loading"
12164
12748
  );
12165
12749
  toggle_class(
12166
12750
  button,
12167
12751
  "is-failed",
12168
12752
  /*state*/
12169
- ctx[49] && /*state*/
12170
- ctx[49].status === "failed"
12753
+ ctx[52] && /*state*/
12754
+ ctx[52].status === "failed"
12171
12755
  );
12172
12756
  },
12173
12757
  m(target, anchor) {
@@ -12181,9 +12765,9 @@ function create_each_block4(ctx) {
12181
12765
  dispose = listen(button, "click", function() {
12182
12766
  if (is_function(
12183
12767
  /*on_click*/
12184
- ctx[50]
12768
+ ctx[53]
12185
12769
  ))
12186
- ctx[50].apply(this, arguments);
12770
+ ctx[53].apply(this, arguments);
12187
12771
  });
12188
12772
  mounted = true;
12189
12773
  }
@@ -12196,23 +12780,23 @@ function create_each_block4(ctx) {
12196
12780
  attr(img, "class", img_class_value);
12197
12781
  }
12198
12782
  if (dirty[0] & /*$apps*/
12199
- 1048576 && !src_url_equal(img.src, img_src_value = /*icon*/
12200
- ctx[45])) {
12783
+ 2097152 && !src_url_equal(img.src, img_src_value = /*icon*/
12784
+ ctx[48])) {
12201
12785
  attr(img, "src", img_src_value);
12202
12786
  }
12203
12787
  if (dirty[0] & /*$apps*/
12204
- 1048576 && img_alt_value !== (img_alt_value = /*kind*/
12205
- ctx[47])) {
12788
+ 2097152 && img_alt_value !== (img_alt_value = /*kind*/
12789
+ ctx[50])) {
12206
12790
  attr(img, "alt", img_alt_value);
12207
12791
  }
12208
12792
  if (dirty[0] & /*$apps*/
12209
- 1048576 && img_title_value !== (img_title_value = /*label*/
12210
- ctx[46])) {
12793
+ 2097152 && img_title_value !== (img_title_value = /*label*/
12794
+ ctx[49])) {
12211
12795
  attr(img, "title", img_title_value);
12212
12796
  }
12213
12797
  if (dirty[0] & /*$apps*/
12214
- 1048576 && t1_value !== (t1_value = /*label*/
12215
- ctx[46] + ""))
12798
+ 2097152 && t1_value !== (t1_value = /*label*/
12799
+ ctx[49] + ""))
12216
12800
  set_data(t1, t1_value);
12217
12801
  if (dirty[0] & /*theme*/
12218
12802
  2 && span_class_value !== (span_class_value = name5 + "-app-btn-text " + /*theme*/
@@ -12220,48 +12804,48 @@ function create_each_block4(ctx) {
12220
12804
  attr(span, "class", span_class_value);
12221
12805
  }
12222
12806
  if (dirty[0] & /*$apps, theme*/
12223
- 1048578 && button_class_value !== (button_class_value = name5 + "-app-btn " + /*kind*/
12224
- ctx[47] + " " + /*theme*/
12807
+ 2097154 && button_class_value !== (button_class_value = name5 + "-app-btn " + /*kind*/
12808
+ ctx[50] + " " + /*theme*/
12225
12809
  ctx[1])) {
12226
12810
  attr(button, "class", button_class_value);
12227
12811
  }
12228
12812
  if (dirty[0] & /*$apps, $status*/
12229
- 3145728 && button_title_value !== (button_title_value = /*label*/
12230
- ctx[46] + /*state*/
12231
- (ctx[49] && /*state*/
12232
- ctx[49].reason ? ": " + /*state*/
12233
- ctx[49].reason : ""))) {
12813
+ 6291456 && button_title_value !== (button_title_value = /*label*/
12814
+ ctx[49] + /*state*/
12815
+ (ctx[52] && /*state*/
12816
+ ctx[52].reason ? ": " + /*state*/
12817
+ ctx[52].reason : ""))) {
12234
12818
  attr(button, "title", button_title_value);
12235
12819
  }
12236
12820
  if (dirty[0] & /*$apps*/
12237
- 1048576 && button_data_app_kind_value !== (button_data_app_kind_value = /*netless_app*/
12238
- ctx[44].kind)) {
12821
+ 2097152 && button_data_app_kind_value !== (button_data_app_kind_value = /*netless_app*/
12822
+ ctx[47].kind)) {
12239
12823
  attr(button, "data-app-kind", button_data_app_kind_value);
12240
12824
  }
12241
12825
  if (dirty[0] & /*$status, $apps*/
12242
- 3145728 && button_disabled_value !== (button_disabled_value = /*state*/
12243
- ctx[49] && /*state*/
12244
- ctx[49].status !== "idle")) {
12826
+ 6291456 && button_disabled_value !== (button_disabled_value = /*state*/
12827
+ ctx[52] && /*state*/
12828
+ ctx[52].status !== "idle")) {
12245
12829
  button.disabled = button_disabled_value;
12246
12830
  }
12247
12831
  if (dirty[0] & /*$apps, theme, $status, $apps*/
12248
- 3145730) {
12832
+ 6291458) {
12249
12833
  toggle_class(
12250
12834
  button,
12251
12835
  "is-loading",
12252
12836
  /*state*/
12253
- ctx[49] && /*state*/
12254
- ctx[49].status === "loading"
12837
+ ctx[52] && /*state*/
12838
+ ctx[52].status === "loading"
12255
12839
  );
12256
12840
  }
12257
12841
  if (dirty[0] & /*$apps, theme, $status, $apps*/
12258
- 3145730) {
12842
+ 6291458) {
12259
12843
  toggle_class(
12260
12844
  button,
12261
12845
  "is-failed",
12262
12846
  /*state*/
12263
- ctx[49] && /*state*/
12264
- ctx[49].status === "failed"
12847
+ ctx[52] && /*state*/
12848
+ ctx[52].status === "failed"
12265
12849
  );
12266
12850
  }
12267
12851
  },
@@ -12273,42 +12857,46 @@ function create_each_block4(ctx) {
12273
12857
  }
12274
12858
  };
12275
12859
  }
12276
- function create_fragment67(ctx) {
12860
+ function create_fragment69(ctx) {
12277
12861
  let t0;
12278
12862
  let div0;
12279
12863
  let t1;
12280
12864
  let scrollHeight_action;
12281
12865
  let t2;
12282
12866
  let t3;
12283
- let div8;
12284
- let div2;
12285
- let strokewidth0;
12286
- let t4;
12867
+ let div9;
12868
+ let div3;
12287
12869
  let div1;
12870
+ let current_block_type_index;
12871
+ let if_block3;
12872
+ let t4;
12873
+ let strokewidth0;
12288
12874
  let t5;
12289
- let strokecolor0;
12875
+ let div2;
12290
12876
  let t6;
12291
- let div3;
12292
- let textcolor;
12877
+ let strokecolor0;
12293
12878
  let t7;
12294
- let div6;
12295
- let selectshapes;
12296
- let t8;
12297
12879
  let div4;
12880
+ let textcolor;
12881
+ let t8;
12882
+ let div7;
12883
+ let selectshapes;
12298
12884
  let t9;
12299
- let strokewidth1;
12300
- let t10;
12301
12885
  let div5;
12886
+ let t10;
12887
+ let strokewidth1;
12302
12888
  let t11;
12303
- let strokecolor1;
12889
+ let div6;
12304
12890
  let t12;
12305
- let div7;
12891
+ let strokecolor1;
12892
+ let t13;
12893
+ let div8;
12306
12894
  let current;
12307
12895
  let mounted;
12308
12896
  let dispose;
12309
12897
  let if_block0 = (
12310
12898
  /*scrollable*/
12311
- ctx[5] && create_if_block_11(ctx)
12899
+ ctx[5] && create_if_block_13(ctx)
12312
12900
  );
12313
12901
  let each_value_1 = (
12314
12902
  /*items*/
@@ -12322,11 +12910,27 @@ function create_fragment67(ctx) {
12322
12910
  each_blocks_1[i] = null;
12323
12911
  });
12324
12912
  let if_block1 = !/*hide_apps*/
12325
- ctx[8] && create_if_block_12(ctx);
12913
+ ctx[8] && create_if_block_3(ctx);
12326
12914
  let if_block2 = (
12327
12915
  /*scrollable*/
12328
- ctx[5] && create_if_block14(ctx)
12916
+ ctx[5] && create_if_block_2(ctx)
12329
12917
  );
12918
+ const if_block_creators = [create_if_block14, create_if_block_14];
12919
+ const if_blocks = [];
12920
+ function select_block_type_1(ctx2, dirty) {
12921
+ var _a, _b;
12922
+ if (!!/*app*/
12923
+ ((_a = ctx2[0]) == null ? void 0 : _a.appliancePlugin) && /*hasUseLaserPen*/
12924
+ ctx2[16])
12925
+ return 0;
12926
+ if (!!/*app*/
12927
+ ((_b = ctx2[0]) == null ? void 0 : _b.appliancePlugin))
12928
+ return 1;
12929
+ return -1;
12930
+ }
12931
+ if (~(current_block_type_index = select_block_type_1(ctx))) {
12932
+ if_block3 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
12933
+ }
12330
12934
  strokewidth0 = new StrokeWidth_default({
12331
12935
  props: {
12332
12936
  app: (
@@ -12441,7 +13045,7 @@ function create_fragment67(ctx) {
12441
13045
  });
12442
13046
  let each_value = (
12443
13047
  /*$apps*/
12444
- ctx[20]
13048
+ ctx[21]
12445
13049
  );
12446
13050
  let each_blocks = [];
12447
13051
  for (let i = 0; i < each_value.length; i += 1) {
@@ -12463,29 +13067,33 @@ function create_fragment67(ctx) {
12463
13067
  if (if_block2)
12464
13068
  if_block2.c();
12465
13069
  t3 = space();
12466
- div8 = element("div");
12467
- div2 = element("div");
12468
- create_component(strokewidth0.$$.fragment);
12469
- t4 = space();
13070
+ div9 = element("div");
13071
+ div3 = element("div");
12470
13072
  div1 = element("div");
13073
+ if (if_block3)
13074
+ if_block3.c();
13075
+ t4 = space();
13076
+ create_component(strokewidth0.$$.fragment);
12471
13077
  t5 = space();
12472
- create_component(strokecolor0.$$.fragment);
13078
+ div2 = element("div");
12473
13079
  t6 = space();
12474
- div3 = element("div");
12475
- create_component(textcolor.$$.fragment);
13080
+ create_component(strokecolor0.$$.fragment);
12476
13081
  t7 = space();
12477
- div6 = element("div");
12478
- create_component(selectshapes.$$.fragment);
12479
- t8 = space();
12480
13082
  div4 = element("div");
13083
+ create_component(textcolor.$$.fragment);
13084
+ t8 = space();
13085
+ div7 = element("div");
13086
+ create_component(selectshapes.$$.fragment);
12481
13087
  t9 = space();
12482
- create_component(strokewidth1.$$.fragment);
12483
- t10 = space();
12484
13088
  div5 = element("div");
13089
+ t10 = space();
13090
+ create_component(strokewidth1.$$.fragment);
12485
13091
  t11 = space();
12486
- create_component(strokecolor1.$$.fragment);
13092
+ div6 = element("div");
12487
13093
  t12 = space();
12488
- div7 = element("div");
13094
+ create_component(strokecolor1.$$.fragment);
13095
+ t13 = space();
13096
+ div8 = element("div");
12489
13097
  for (let i = 0; i < each_blocks.length; i += 1) {
12490
13098
  each_blocks[i].c();
12491
13099
  }
@@ -12496,21 +13104,22 @@ function create_fragment67(ctx) {
12496
13104
  /*scrollable*/
12497
13105
  ctx[5]
12498
13106
  );
12499
- attr(div1, "class", name5 + "-panel-divider");
12500
- attr(div2, "class", name5 + "-panel pencil");
12501
- attr(div3, "class", name5 + "-panel text");
12502
- attr(div4, "class", name5 + "-panel-divider");
13107
+ attr(div1, "class", name5 + "-panel-switch-pencil");
13108
+ attr(div2, "class", name5 + "-panel-divider");
13109
+ attr(div3, "class", name5 + "-panel pencil");
13110
+ attr(div4, "class", name5 + "-panel text");
12503
13111
  attr(div5, "class", name5 + "-panel-divider");
12504
- attr(div6, "class", name5 + "-panel shapes");
12505
- attr(div7, "class", name5 + "-panel apps");
13112
+ attr(div6, "class", name5 + "-panel-divider");
13113
+ attr(div7, "class", name5 + "-panel shapes");
13114
+ attr(div8, "class", name5 + "-panel apps");
12506
13115
  set_style(
12507
- div7,
13116
+ div8,
12508
13117
  "--n",
12509
13118
  /*$apps*/
12510
- ctx[20].length
13119
+ ctx[21].length
12511
13120
  );
12512
- attr(div8, "class", name5 + "-panel-wrapper");
12513
- set_style(div8, "display", "none");
13121
+ attr(div9, "class", name5 + "-panel-wrapper");
13122
+ set_style(div9, "display", "none");
12514
13123
  },
12515
13124
  m(target, anchor) {
12516
13125
  if (if_block0)
@@ -12529,38 +13138,43 @@ function create_fragment67(ctx) {
12529
13138
  if (if_block2)
12530
13139
  if_block2.m(target, anchor);
12531
13140
  insert(target, t3, anchor);
12532
- insert(target, div8, anchor);
12533
- append(div8, div2);
12534
- mount_component(strokewidth0, div2, null);
12535
- append(div2, t4);
12536
- append(div2, div1);
12537
- append(div2, t5);
12538
- mount_component(strokecolor0, div2, null);
12539
- ctx[37](div2);
12540
- append(div8, t6);
12541
- append(div8, div3);
12542
- mount_component(textcolor, div3, null);
12543
- ctx[38](div3);
12544
- append(div8, t7);
12545
- append(div8, div6);
12546
- mount_component(selectshapes, div6, null);
12547
- append(div6, t8);
12548
- append(div6, div4);
12549
- append(div6, t9);
12550
- mount_component(strokewidth1, div6, null);
12551
- append(div6, t10);
12552
- append(div6, div5);
12553
- append(div6, t11);
12554
- mount_component(strokecolor1, div6, null);
12555
- ctx[39](div6);
12556
- append(div8, t12);
12557
- append(div8, div7);
13141
+ insert(target, div9, anchor);
13142
+ append(div9, div3);
13143
+ append(div3, div1);
13144
+ if (~current_block_type_index) {
13145
+ if_blocks[current_block_type_index].m(div1, null);
13146
+ }
13147
+ append(div3, t4);
13148
+ mount_component(strokewidth0, div3, null);
13149
+ append(div3, t5);
13150
+ append(div3, div2);
13151
+ append(div3, t6);
13152
+ mount_component(strokecolor0, div3, null);
13153
+ ctx[40](div3);
13154
+ append(div9, t7);
13155
+ append(div9, div4);
13156
+ mount_component(textcolor, div4, null);
13157
+ ctx[41](div4);
13158
+ append(div9, t8);
13159
+ append(div9, div7);
13160
+ mount_component(selectshapes, div7, null);
13161
+ append(div7, t9);
13162
+ append(div7, div5);
13163
+ append(div7, t10);
13164
+ mount_component(strokewidth1, div7, null);
13165
+ append(div7, t11);
13166
+ append(div7, div6);
13167
+ append(div7, t12);
13168
+ mount_component(strokecolor1, div7, null);
13169
+ ctx[42](div7);
13170
+ append(div9, t13);
13171
+ append(div9, div8);
12558
13172
  for (let i = 0; i < each_blocks.length; i += 1) {
12559
13173
  if (each_blocks[i]) {
12560
- each_blocks[i].m(div7, null);
13174
+ each_blocks[i].m(div8, null);
12561
13175
  }
12562
13176
  }
12563
- ctx[41](div7);
13177
+ ctx[44](div8);
12564
13178
  current = true;
12565
13179
  if (!mounted) {
12566
13180
  dispose = [
@@ -12574,7 +13188,7 @@ function create_fragment67(ctx) {
12574
13188
  null,
12575
13189
  div0,
12576
13190
  /*top*/
12577
- ctx[22]
13191
+ ctx[23]
12578
13192
  ))
12579
13193
  ];
12580
13194
  mounted = true;
@@ -12592,7 +13206,7 @@ function create_fragment67(ctx) {
12592
13206
  transition_in(if_block0, 1);
12593
13207
  }
12594
13208
  } else {
12595
- if_block0 = create_if_block_11(ctx2);
13209
+ if_block0 = create_if_block_13(ctx2);
12596
13210
  if_block0.c();
12597
13211
  transition_in(if_block0, 1);
12598
13212
  if_block0.m(t0.parentNode, t0);
@@ -12604,9 +13218,9 @@ function create_fragment67(ctx) {
12604
13218
  });
12605
13219
  check_outros();
12606
13220
  }
12607
- if (dirty[0] & /*appliance, theme, btn_props, c, clicker, items, selector, pencil_panel, pencil, text_panel, text, app, t, shapes_panel, eraser, hand*/
12608
- 2114632835 | dirty[1] & /*clear, laserPointer*/
12609
- 3) {
13221
+ if (dirty[0] & /*appliance, theme, btn_props, c, clicker, items, selector, hasUseLaserPen, pencil_panel, pencil, text_panel, text, app, t, shapes_panel, eraser*/
13222
+ 2081799299 | dirty[1] & /*clear, hand, laserPointer*/
13223
+ 7) {
12610
13224
  each_value_1 = /*items*/
12611
13225
  ctx2[7];
12612
13226
  let i;
@@ -12637,7 +13251,7 @@ function create_fragment67(ctx) {
12637
13251
  transition_in(if_block1, 1);
12638
13252
  }
12639
13253
  } else {
12640
- if_block1 = create_if_block_12(ctx2);
13254
+ if_block1 = create_if_block_3(ctx2);
12641
13255
  if_block1.c();
12642
13256
  transition_in(if_block1, 1);
12643
13257
  if_block1.m(div0, null);
@@ -12676,7 +13290,7 @@ function create_fragment67(ctx) {
12676
13290
  transition_in(if_block2, 1);
12677
13291
  }
12678
13292
  } else {
12679
- if_block2 = create_if_block14(ctx2);
13293
+ if_block2 = create_if_block_2(ctx2);
12680
13294
  if_block2.c();
12681
13295
  transition_in(if_block2, 1);
12682
13296
  if_block2.m(t3.parentNode, t3);
@@ -12688,6 +13302,34 @@ function create_fragment67(ctx) {
12688
13302
  });
12689
13303
  check_outros();
12690
13304
  }
13305
+ let previous_block_index = current_block_type_index;
13306
+ current_block_type_index = select_block_type_1(ctx2);
13307
+ if (current_block_type_index === previous_block_index) {
13308
+ if (~current_block_type_index) {
13309
+ if_blocks[current_block_type_index].p(ctx2, dirty);
13310
+ }
13311
+ } else {
13312
+ if (if_block3) {
13313
+ group_outros();
13314
+ transition_out(if_blocks[previous_block_index], 1, 1, () => {
13315
+ if_blocks[previous_block_index] = null;
13316
+ });
13317
+ check_outros();
13318
+ }
13319
+ if (~current_block_type_index) {
13320
+ if_block3 = if_blocks[current_block_type_index];
13321
+ if (!if_block3) {
13322
+ if_block3 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
13323
+ if_block3.c();
13324
+ } else {
13325
+ if_block3.p(ctx2, dirty);
13326
+ }
13327
+ transition_in(if_block3, 1);
13328
+ if_block3.m(div1, null);
13329
+ } else {
13330
+ if_block3 = null;
13331
+ }
13332
+ }
12691
13333
  const strokewidth0_changes = {};
12692
13334
  if (dirty[0] & /*app*/
12693
13335
  1)
@@ -12789,9 +13431,9 @@ function create_fragment67(ctx) {
12789
13431
  ctx2[9];
12790
13432
  strokecolor1.$set(strokecolor1_changes);
12791
13433
  if (dirty[0] & /*$apps, theme, $status, app*/
12792
- 3145731) {
13434
+ 6291459) {
12793
13435
  each_value = /*$apps*/
12794
- ctx2[20];
13436
+ ctx2[21];
12795
13437
  let i;
12796
13438
  for (i = 0; i < each_value.length; i += 1) {
12797
13439
  const child_ctx = get_each_context4(ctx2, each_value, i);
@@ -12800,7 +13442,7 @@ function create_fragment67(ctx) {
12800
13442
  } else {
12801
13443
  each_blocks[i] = create_each_block4(child_ctx);
12802
13444
  each_blocks[i].c();
12803
- each_blocks[i].m(div7, null);
13445
+ each_blocks[i].m(div8, null);
12804
13446
  }
12805
13447
  }
12806
13448
  for (; i < each_blocks.length; i += 1) {
@@ -12809,12 +13451,12 @@ function create_fragment67(ctx) {
12809
13451
  each_blocks.length = each_value.length;
12810
13452
  }
12811
13453
  if (!current || dirty[0] & /*$apps*/
12812
- 1048576) {
13454
+ 2097152) {
12813
13455
  set_style(
12814
- div7,
13456
+ div8,
12815
13457
  "--n",
12816
13458
  /*$apps*/
12817
- ctx2[20].length
13459
+ ctx2[21].length
12818
13460
  );
12819
13461
  }
12820
13462
  },
@@ -12827,6 +13469,7 @@ function create_fragment67(ctx) {
12827
13469
  }
12828
13470
  transition_in(if_block1);
12829
13471
  transition_in(if_block2);
13472
+ transition_in(if_block3);
12830
13473
  transition_in(strokewidth0.$$.fragment, local);
12831
13474
  transition_in(strokecolor0.$$.fragment, local);
12832
13475
  transition_in(textcolor.$$.fragment, local);
@@ -12843,6 +13486,7 @@ function create_fragment67(ctx) {
12843
13486
  }
12844
13487
  transition_out(if_block1);
12845
13488
  transition_out(if_block2);
13489
+ transition_out(if_block3);
12846
13490
  transition_out(strokewidth0.$$.fragment, local);
12847
13491
  transition_out(strokecolor0.$$.fragment, local);
12848
13492
  transition_out(textcolor.$$.fragment, local);
@@ -12868,25 +13512,28 @@ function create_fragment67(ctx) {
12868
13512
  if (detaching)
12869
13513
  detach(t3);
12870
13514
  if (detaching)
12871
- detach(div8);
13515
+ detach(div9);
13516
+ if (~current_block_type_index) {
13517
+ if_blocks[current_block_type_index].d();
13518
+ }
12872
13519
  destroy_component(strokewidth0);
12873
13520
  destroy_component(strokecolor0);
12874
- ctx[37](null);
13521
+ ctx[40](null);
12875
13522
  destroy_component(textcolor);
12876
- ctx[38](null);
13523
+ ctx[41](null);
12877
13524
  destroy_component(selectshapes);
12878
13525
  destroy_component(strokewidth1);
12879
13526
  destroy_component(strokecolor1);
12880
- ctx[39](null);
13527
+ ctx[42](null);
12881
13528
  destroy_each(each_blocks, detaching);
12882
- ctx[41](null);
13529
+ ctx[44](null);
12883
13530
  mounted = false;
12884
13531
  run_all(dispose);
12885
13532
  }
12886
13533
  };
12887
13534
  }
12888
13535
  var name5 = "fastboard-toolbar";
12889
- function instance67($$self, $$props, $$invalidate) {
13536
+ function instance69($$self, $$props, $$invalidate) {
12890
13537
  let t;
12891
13538
  let hotkeys;
12892
13539
  let c;
@@ -12894,14 +13541,16 @@ function instance67($$self, $$props, $$invalidate) {
12894
13541
  let appliance;
12895
13542
  let status;
12896
13543
  let max_scroll;
13544
+ let hasAppliancePlugin;
13545
+ let hasUseLaserPen;
12897
13546
  let $top;
12898
- 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);
12899
- let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(36, $memberState = $$value)), memberState);
13547
+ let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(38, $memberState = $$value)), memberState);
13548
+ 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);
12900
13549
  let $apps;
12901
- let $status, $$unsubscribe_status = noop, $$subscribe_status = () => ($$unsubscribe_status(), $$unsubscribe_status = subscribe(status, ($$value) => $$invalidate(21, $status = $$value)), status);
12902
- component_subscribe($$self, apps, ($$value) => $$invalidate(20, $apps = $$value));
12903
- $$self.$$.on_destroy.push(() => $$unsubscribe_scroll_height());
13550
+ let $status, $$unsubscribe_status = noop, $$subscribe_status = () => ($$unsubscribe_status(), $$unsubscribe_status = subscribe(status, ($$value) => $$invalidate(22, $status = $$value)), status);
13551
+ component_subscribe($$self, apps, ($$value) => $$invalidate(21, $apps = $$value));
12904
13552
  $$self.$$.on_destroy.push(() => $$unsubscribe_memberState());
13553
+ $$self.$$.on_destroy.push(() => $$unsubscribe_scroll_height());
12905
13554
  $$self.$$.on_destroy.push(() => $$unsubscribe_status());
12906
13555
  let { app = null } = $$props;
12907
13556
  let { theme = "light" } = $$props;
@@ -12921,7 +13570,7 @@ function instance67($$self, $$props, $$invalidate) {
12921
13570
  let apps_panel;
12922
13571
  let btn_props;
12923
13572
  let top = writable(0);
12924
- component_subscribe($$self, top, (value) => $$invalidate(43, $top = value));
13573
+ component_subscribe($$self, top, (value) => $$invalidate(46, $top = value));
12925
13574
  function scroll_up() {
12926
13575
  set_store_value(top, $top = clamp($top - 32 - 4, 0, max_scroll), $top);
12927
13576
  }
@@ -12952,19 +13601,22 @@ function instance67($$self, $$props, $$invalidate) {
12952
13601
  function clear() {
12953
13602
  app == null ? void 0 : app.cleanCurrentScene();
12954
13603
  }
12955
- function div2_binding($$value) {
13604
+ function useLaserPen() {
13605
+ app == null ? void 0 : app.setAppliance("laserPen");
13606
+ }
13607
+ function div3_binding($$value) {
12956
13608
  binding_callbacks[$$value ? "unshift" : "push"](() => {
12957
13609
  pencil_panel = $$value;
12958
13610
  $$invalidate(11, pencil_panel);
12959
13611
  });
12960
13612
  }
12961
- function div3_binding($$value) {
13613
+ function div4_binding($$value) {
12962
13614
  binding_callbacks[$$value ? "unshift" : "push"](() => {
12963
13615
  text_panel = $$value;
12964
13616
  $$invalidate(12, text_panel);
12965
13617
  });
12966
13618
  }
12967
- function div6_binding($$value) {
13619
+ function div7_binding($$value) {
12968
13620
  binding_callbacks[$$value ? "unshift" : "push"](() => {
12969
13621
  shapes_panel = $$value;
12970
13622
  $$invalidate(13, shapes_panel);
@@ -12974,7 +13626,7 @@ function instance67($$self, $$props, $$invalidate) {
12974
13626
  app && onClick(app);
12975
13627
  tippy_hide_all();
12976
13628
  };
12977
- function div7_binding($$value) {
13629
+ function div8_binding($$value) {
12978
13630
  binding_callbacks[$$value ? "unshift" : "push"](() => {
12979
13631
  apps_panel = $$value;
12980
13632
  $$invalidate(14, apps_panel);
@@ -12992,7 +13644,7 @@ function instance67($$self, $$props, $$invalidate) {
12992
13644
  if ("scroll_height" in $$props2)
12993
13645
  $$subscribe_scroll_height($$invalidate(4, scroll_height = $$props2.scroll_height));
12994
13646
  if ("computed_height" in $$props2)
12995
- $$invalidate(33, computed_height = $$props2.computed_height);
13647
+ $$invalidate(35, computed_height = $$props2.computed_height);
12996
13648
  if ("scrollable" in $$props2)
12997
13649
  $$invalidate(5, scrollable = $$props2.scrollable);
12998
13650
  if ("placement" in $$props2)
@@ -13021,12 +13673,12 @@ function instance67($$self, $$props, $$invalidate) {
13021
13673
  }
13022
13674
  if ($$self.$$.dirty[0] & /*app*/
13023
13675
  1) {
13024
- $$invalidate(34, hotkeys = app == null ? void 0 : app.hotKeys);
13676
+ $$invalidate(37, hotkeys = app == null ? void 0 : app.hotKeys);
13025
13677
  }
13026
13678
  if ($$self.$$.dirty[0] & /*t*/
13027
13679
  1024 | $$self.$$.dirty[1] & /*hotkeys*/
13028
- 8) {
13029
- $$invalidate(19, c = {
13680
+ 64) {
13681
+ $$invalidate(20, c = {
13030
13682
  clicker: tooltip(t.clicker, hotkeys == null ? void 0 : hotkeys.changeToClick),
13031
13683
  selector: tooltip(t.selector, hotkeys == null ? void 0 : hotkeys.changeToSelector),
13032
13684
  pencil: tooltip(t.pencil, hotkeys == null ? void 0 : hotkeys.changeToPencil),
@@ -13038,21 +13690,29 @@ function instance67($$self, $$props, $$invalidate) {
13038
13690
  }
13039
13691
  if ($$self.$$.dirty[0] & /*app*/
13040
13692
  1) {
13041
- $$subscribe_memberState($$invalidate(18, memberState = app == null ? void 0 : app.memberState));
13693
+ $$subscribe_memberState($$invalidate(19, memberState = app == null ? void 0 : app.memberState));
13042
13694
  }
13043
13695
  if ($$self.$$.dirty[1] & /*$memberState*/
13044
- 32) {
13045
- $$invalidate(17, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
13696
+ 128) {
13697
+ $$invalidate(18, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
13046
13698
  }
13047
13699
  if ($$self.$$.dirty[0] & /*app*/
13048
13700
  1) {
13049
- $$subscribe_status($$invalidate(16, status = app == null ? void 0 : app.appsStatus));
13701
+ $$subscribe_status($$invalidate(17, status = app == null ? void 0 : app.appsStatus));
13050
13702
  }
13051
13703
  if ($$self.$$.dirty[0] & /*scrollable*/
13052
13704
  32 | $$self.$$.dirty[1] & /*$scroll_height, computed_height*/
13053
- 20) {
13705
+ 272) {
13054
13706
  max_scroll = scrollable ? $scroll_height + (32 + 8) * 2 - computed_height : 0;
13055
13707
  }
13708
+ if ($$self.$$.dirty[0] & /*app*/
13709
+ 1) {
13710
+ $$invalidate(36, hasAppliancePlugin = !!(app == null ? void 0 : app.appliancePlugin));
13711
+ }
13712
+ if ($$self.$$.dirty[1] & /*hasAppliancePlugin, $memberState*/
13713
+ 160) {
13714
+ $$invalidate(16, hasUseLaserPen = hasAppliancePlugin && ($memberState == null ? void 0 : $memberState.useLaserPen) || false);
13715
+ }
13056
13716
  };
13057
13717
  return [
13058
13718
  app,
@@ -13071,6 +13731,7 @@ function instance67($$self, $$props, $$invalidate) {
13071
13731
  shapes_panel,
13072
13732
  apps_panel,
13073
13733
  btn_props,
13734
+ hasUseLaserPen,
13074
13735
  status,
13075
13736
  appliance,
13076
13737
  memberState,
@@ -13088,15 +13749,17 @@ function instance67($$self, $$props, $$invalidate) {
13088
13749
  hand,
13089
13750
  laserPointer,
13090
13751
  clear,
13752
+ useLaserPen,
13091
13753
  computed_height,
13754
+ hasAppliancePlugin,
13092
13755
  hotkeys,
13093
- $scroll_height,
13094
13756
  $memberState,
13095
- div2_binding,
13757
+ $scroll_height,
13096
13758
  div3_binding,
13097
- div6_binding,
13759
+ div4_binding,
13760
+ div7_binding,
13098
13761
  func,
13099
- div7_binding
13762
+ div8_binding
13100
13763
  ];
13101
13764
  }
13102
13765
  var Contents = class extends SvelteComponent {
@@ -13105,8 +13768,8 @@ var Contents = class extends SvelteComponent {
13105
13768
  init(
13106
13769
  this,
13107
13770
  options,
13108
- instance67,
13109
- create_fragment67,
13771
+ instance69,
13772
+ create_fragment69,
13110
13773
  safe_not_equal,
13111
13774
  {
13112
13775
  app: 0,
@@ -13114,7 +13777,7 @@ var Contents = class extends SvelteComponent {
13114
13777
  language: 2,
13115
13778
  disabled: 3,
13116
13779
  scroll_height: 4,
13117
- computed_height: 33,
13780
+ computed_height: 35,
13118
13781
  scrollable: 5,
13119
13782
  placement: 6,
13120
13783
  items: 7,
@@ -13185,7 +13848,7 @@ function create_if_block15(ctx) {
13185
13848
  }
13186
13849
  };
13187
13850
  }
13188
- function create_fragment68(ctx) {
13851
+ function create_fragment70(ctx) {
13189
13852
  let div1;
13190
13853
  let div0;
13191
13854
  let contents;
@@ -13455,7 +14118,7 @@ function create_fragment68(ctx) {
13455
14118
  };
13456
14119
  }
13457
14120
  var name6 = "fastboard-toolbar";
13458
- function instance68($$self, $$props, $$invalidate) {
14121
+ function instance70($$self, $$props, $$invalidate) {
13459
14122
  let writable2;
13460
14123
  let phase;
13461
14124
  let disabled;
@@ -13574,7 +14237,7 @@ function instance68($$self, $$props, $$invalidate) {
13574
14237
  var Toolbar = class extends SvelteComponent {
13575
14238
  constructor(options) {
13576
14239
  super();
13577
- init(this, options, instance68, create_fragment68, safe_not_equal, {
14240
+ init(this, options, instance70, create_fragment70, safe_not_equal, {
13578
14241
  app: 1,
13579
14242
  theme: 2,
13580
14243
  language: 3,
@@ -13605,7 +14268,7 @@ function create_else_block_12(ctx) {
13605
14268
  ]
13606
14269
  ),
13607
14270
  alt: "[play]",
13608
- $$slots: { default: [create_default_slot_53] },
14271
+ $$slots: { default: [create_default_slot_54] },
13609
14272
  $$scope: { ctx }
13610
14273
  }
13611
14274
  });
@@ -13662,7 +14325,7 @@ function create_if_block_22(ctx) {
13662
14325
  ]
13663
14326
  ),
13664
14327
  alt: "[pause]",
13665
- $$slots: { default: [create_default_slot_43] },
14328
+ $$slots: { default: [create_default_slot_44] },
13666
14329
  $$scope: { ctx }
13667
14330
  }
13668
14331
  });
@@ -13705,7 +14368,7 @@ function create_if_block_22(ctx) {
13705
14368
  }
13706
14369
  };
13707
14370
  }
13708
- function create_if_block_13(ctx) {
14371
+ function create_if_block_15(ctx) {
13709
14372
  var _a;
13710
14373
  let icon;
13711
14374
  let current;
@@ -13719,7 +14382,7 @@ function create_if_block_13(ctx) {
13719
14382
  ]
13720
14383
  ),
13721
14384
  alt: "[loading]",
13722
- $$slots: { default: [create_default_slot_34] },
14385
+ $$slots: { default: [create_default_slot_35] },
13723
14386
  $$scope: { ctx }
13724
14387
  }
13725
14388
  });
@@ -13762,7 +14425,7 @@ function create_if_block_13(ctx) {
13762
14425
  }
13763
14426
  };
13764
14427
  }
13765
- function create_default_slot_53(ctx) {
14428
+ function create_default_slot_54(ctx) {
13766
14429
  let icons_play;
13767
14430
  let current;
13768
14431
  icons_play = new Icons_default.Play({ props: { theme: (
@@ -13800,7 +14463,7 @@ function create_default_slot_53(ctx) {
13800
14463
  }
13801
14464
  };
13802
14465
  }
13803
- function create_default_slot_43(ctx) {
14466
+ function create_default_slot_44(ctx) {
13804
14467
  let icons_pause;
13805
14468
  let current;
13806
14469
  icons_pause = new Icons_default.Pause({ props: { theme: (
@@ -13838,7 +14501,7 @@ function create_default_slot_43(ctx) {
13838
14501
  }
13839
14502
  };
13840
14503
  }
13841
- function create_default_slot_34(ctx) {
14504
+ function create_default_slot_35(ctx) {
13842
14505
  let icons_loading;
13843
14506
  let current;
13844
14507
  icons_loading = new Icons_default.Loading({ props: { theme: (
@@ -13881,7 +14544,7 @@ function create_default_slot_25(ctx) {
13881
14544
  let if_block;
13882
14545
  let if_block_anchor;
13883
14546
  let current;
13884
- const if_block_creators = [create_if_block_13, create_if_block_22, create_else_block_12];
14547
+ const if_block_creators = [create_if_block_15, create_if_block_22, create_else_block_12];
13885
14548
  const if_blocks = [];
13886
14549
  function select_block_type(ctx2, dirty) {
13887
14550
  if (
@@ -14258,7 +14921,7 @@ function create_each_block5(key_1, ctx) {
14258
14921
  }
14259
14922
  };
14260
14923
  }
14261
- function create_fragment69(ctx) {
14924
+ function create_fragment71(ctx) {
14262
14925
  let div0;
14263
14926
  let button0;
14264
14927
  let t0;
@@ -14535,7 +15198,7 @@ function format(ms) {
14535
15198
  return String(m).padStart(2, "0") + ":" + String(s % 60).padStart(2, "0");
14536
15199
  }
14537
15200
  var name7 = "fastboard-player-control";
14538
- function instance69($$self, $$props, $$invalidate) {
15201
+ function instance71($$self, $$props, $$invalidate) {
14539
15202
  let t;
14540
15203
  let canPlay;
14541
15204
  let disabled;
@@ -14680,7 +15343,7 @@ function instance69($$self, $$props, $$invalidate) {
14680
15343
  var PlayerControl = class extends SvelteComponent {
14681
15344
  constructor(options) {
14682
15345
  super();
14683
- init(this, options, instance69, create_fragment69, safe_not_equal, {
15346
+ init(this, options, instance71, create_fragment71, safe_not_equal, {
14684
15347
  player: 19,
14685
15348
  theme: 0,
14686
15349
  language: 20,
@@ -14749,7 +15412,7 @@ function create_if_block17(ctx) {
14749
15412
  }
14750
15413
  };
14751
15414
  }
14752
- function create_fragment70(ctx) {
15415
+ function create_fragment72(ctx) {
14753
15416
  var _a;
14754
15417
  let div2;
14755
15418
  let div0;
@@ -14849,7 +15512,7 @@ function create_fragment70(ctx) {
14849
15512
  };
14850
15513
  }
14851
15514
  var name8 = "fastboard";
14852
- function instance70($$self, $$props, $$invalidate) {
15515
+ function instance72($$self, $$props, $$invalidate) {
14853
15516
  let { player = null } = $$props;
14854
15517
  let { theme = "light" } = $$props;
14855
15518
  let { language = "en" } = $$props;
@@ -14924,7 +15587,7 @@ function instance70($$self, $$props, $$invalidate) {
14924
15587
  var ReplayFastboard = class extends SvelteComponent {
14925
15588
  constructor(options) {
14926
15589
  super();
14927
- init(this, options, instance70, create_fragment70, not_equal, {
15590
+ init(this, options, instance72, create_fragment72, not_equal, {
14928
15591
  player: 0,
14929
15592
  theme: 1,
14930
15593
  language: 2,
@@ -15060,7 +15723,7 @@ function create_if_block_23(ctx) {
15060
15723
  }
15061
15724
  };
15062
15725
  }
15063
- function create_if_block_14(ctx) {
15726
+ function create_if_block_16(ctx) {
15064
15727
  let zoomcontrol;
15065
15728
  let current;
15066
15729
  zoomcontrol = new ZoomControl_default({
@@ -15176,7 +15839,7 @@ function create_if_block18(ctx) {
15176
15839
  }
15177
15840
  };
15178
15841
  }
15179
- function create_fragment71(ctx) {
15842
+ function create_fragment73(ctx) {
15180
15843
  var _a, _b, _c, _d;
15181
15844
  let div4;
15182
15845
  let div0;
@@ -15201,7 +15864,7 @@ function create_fragment71(ctx) {
15201
15864
  );
15202
15865
  let if_block2 = (
15203
15866
  /*config*/
15204
- ((_c = ctx[3].zoom_control) == null ? void 0 : _c.enable) !== false && create_if_block_14(ctx)
15867
+ ((_c = ctx[3].zoom_control) == null ? void 0 : _c.enable) !== false && create_if_block_16(ctx)
15205
15868
  );
15206
15869
  let if_block3 = (
15207
15870
  /*config*/
@@ -15354,7 +16017,7 @@ function create_fragment71(ctx) {
15354
16017
  transition_in(if_block2, 1);
15355
16018
  }
15356
16019
  } else {
15357
- if_block2 = create_if_block_14(ctx2);
16020
+ if_block2 = create_if_block_16(ctx2);
15358
16021
  if_block2.c();
15359
16022
  transition_in(if_block2, 1);
15360
16023
  if_block2.m(div2, null);
@@ -15447,7 +16110,7 @@ function create_fragment71(ctx) {
15447
16110
  };
15448
16111
  }
15449
16112
  var name9 = "fastboard";
15450
- function instance71($$self, $$props, $$invalidate) {
16113
+ function instance73($$self, $$props, $$invalidate) {
15451
16114
  let writable2;
15452
16115
  let boxState;
15453
16116
  let focusedApp;
@@ -15572,7 +16235,7 @@ function instance71($$self, $$props, $$invalidate) {
15572
16235
  var Fastboard = class extends SvelteComponent {
15573
16236
  constructor(options) {
15574
16237
  super();
15575
- init(this, options, instance71, create_fragment71, not_equal, {
16238
+ init(this, options, instance73, create_fragment73, not_equal, {
15576
16239
  app: 0,
15577
16240
  theme: 1,
15578
16241
  language: 2,