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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -35,7 +35,7 @@ function injectStyle(text2) {
35
35
  }
36
36
 
37
37
  // inline-sass-content:./src/style.scss
38
- 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}';
38
+ 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}';
39
39
 
40
40
  // inline-sass-stub:./src/style.scss
41
41
  injectStyle(style_default);
@@ -504,7 +504,7 @@ function make_dirty(component, i) {
504
504
  }
505
505
  component.$$.dirty[i / 31 | 0] |= 1 << i % 31;
506
506
  }
507
- function init(component, options, instance72, create_fragment72, not_equal2, props, append_styles, dirty = [-1]) {
507
+ function init(component, options, instance74, create_fragment74, not_equal2, props, append_styles, dirty = [-1]) {
508
508
  const parent_component = current_component;
509
509
  set_current_component(component);
510
510
  const $$ = component.$$ = {
@@ -530,7 +530,7 @@ function init(component, options, instance72, create_fragment72, not_equal2, pro
530
530
  };
531
531
  append_styles && append_styles($$.root);
532
532
  let ready = false;
533
- $$.ctx = instance72 ? instance72(component, options.props || {}, (i, ret, ...rest) => {
533
+ $$.ctx = instance74 ? instance74(component, options.props || {}, (i, ret, ...rest) => {
534
534
  const value = rest.length ? rest[0] : ret;
535
535
  if ($$.ctx && not_equal2($$.ctx[i], $$.ctx[i] = value)) {
536
536
  if (!$$.skip_bound && $$.bound[i])
@@ -543,7 +543,7 @@ function init(component, options, instance72, create_fragment72, not_equal2, pro
543
543
  $$.update();
544
544
  ready = true;
545
545
  run_all($$.before_update);
546
- $$.fragment = create_fragment72 ? create_fragment72($$.ctx) : false;
546
+ $$.fragment = create_fragment74 ? create_fragment74($$.ctx) : false;
547
547
  if (options.target) {
548
548
  if (options.hydrate) {
549
549
  const nodes = children(options.target);
@@ -4346,6 +4346,170 @@ var Loading = class extends SvelteComponent {
4346
4346
  };
4347
4347
  var Loading_default = Loading;
4348
4348
 
4349
+ // src/components/Icons/LaserPen.svelte
4350
+ function create_fragment49(ctx) {
4351
+ let svg;
4352
+ let g;
4353
+ let path0;
4354
+ let path1;
4355
+ let svg_class_value;
4356
+ return {
4357
+ c() {
4358
+ svg = svg_element("svg");
4359
+ g = svg_element("g");
4360
+ path0 = svg_element("path");
4361
+ path1 = svg_element("path");
4362
+ attr(path0, "class", "fastboard-icon-stroke-color");
4363
+ attr(path0, "clip-rule", "evenodd");
4364
+ 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");
4365
+ attr(path1, "class", "fastboard-icon-stroke-color");
4366
+ 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");
4367
+ attr(g, "stroke-width", "1.25");
4368
+ attr(g, "stroke-linecap", "round");
4369
+ attr(g, "stroke-linejoin", "round");
4370
+ attr(g, "transform", "rotate(0 10 10)");
4371
+ attr(svg, "fill", "none");
4372
+ attr(svg, "viewBox", "0 0 24 24");
4373
+ attr(svg, "class", svg_class_value = "fastboard-icon " + /*theme*/
4374
+ ctx[0]);
4375
+ toggle_class(
4376
+ svg,
4377
+ "is-active",
4378
+ /*active*/
4379
+ ctx[1]
4380
+ );
4381
+ },
4382
+ m(target, anchor) {
4383
+ insert(target, svg, anchor);
4384
+ append(svg, g);
4385
+ append(g, path0);
4386
+ append(g, path1);
4387
+ },
4388
+ p(ctx2, [dirty]) {
4389
+ if (dirty & /*theme*/
4390
+ 1 && svg_class_value !== (svg_class_value = "fastboard-icon " + /*theme*/
4391
+ ctx2[0])) {
4392
+ attr(svg, "class", svg_class_value);
4393
+ }
4394
+ if (dirty & /*theme, active*/
4395
+ 3) {
4396
+ toggle_class(
4397
+ svg,
4398
+ "is-active",
4399
+ /*active*/
4400
+ ctx2[1]
4401
+ );
4402
+ }
4403
+ },
4404
+ i: noop,
4405
+ o: noop,
4406
+ d(detaching) {
4407
+ if (detaching)
4408
+ detach(svg);
4409
+ }
4410
+ };
4411
+ }
4412
+ function instance49($$self, $$props, $$invalidate) {
4413
+ let { theme = "light" } = $$props;
4414
+ let { active = false } = $$props;
4415
+ $$self.$$set = ($$props2) => {
4416
+ if ("theme" in $$props2)
4417
+ $$invalidate(0, theme = $$props2.theme);
4418
+ if ("active" in $$props2)
4419
+ $$invalidate(1, active = $$props2.active);
4420
+ };
4421
+ return [theme, active];
4422
+ }
4423
+ var LaserPen = class extends SvelteComponent {
4424
+ constructor(options) {
4425
+ super();
4426
+ init(this, options, instance49, create_fragment49, safe_not_equal, { theme: 0, active: 1 });
4427
+ }
4428
+ };
4429
+ var LaserPen_default = LaserPen;
4430
+
4431
+ // src/components/Icons/LaserPenFilled.svelte
4432
+ function create_fragment50(ctx) {
4433
+ let svg;
4434
+ let g;
4435
+ let path0;
4436
+ let path1;
4437
+ let svg_class_value;
4438
+ return {
4439
+ c() {
4440
+ svg = svg_element("svg");
4441
+ g = svg_element("g");
4442
+ path0 = svg_element("path");
4443
+ path1 = svg_element("path");
4444
+ attr(path0, "class", "fastboard-icon-fill-color");
4445
+ attr(path0, "clip-rule", "evenodd");
4446
+ 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");
4447
+ attr(path1, "class", "fastboard-icon-stroke-color");
4448
+ 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");
4449
+ attr(g, "stroke-width", "1.25");
4450
+ attr(g, "stroke-linecap", "round");
4451
+ attr(g, "stroke-linejoin", "round");
4452
+ attr(g, "transform", "rotate(0 10 10)");
4453
+ attr(svg, "fill", "none");
4454
+ attr(svg, "viewBox", "0 0 24 24");
4455
+ attr(svg, "class", svg_class_value = "fastboard-icon " + /*theme*/
4456
+ ctx[0]);
4457
+ toggle_class(
4458
+ svg,
4459
+ "is-active",
4460
+ /*active*/
4461
+ ctx[1]
4462
+ );
4463
+ },
4464
+ m(target, anchor) {
4465
+ insert(target, svg, anchor);
4466
+ append(svg, g);
4467
+ append(g, path0);
4468
+ append(g, path1);
4469
+ },
4470
+ p(ctx2, [dirty]) {
4471
+ if (dirty & /*theme*/
4472
+ 1 && svg_class_value !== (svg_class_value = "fastboard-icon " + /*theme*/
4473
+ ctx2[0])) {
4474
+ attr(svg, "class", svg_class_value);
4475
+ }
4476
+ if (dirty & /*theme, active*/
4477
+ 3) {
4478
+ toggle_class(
4479
+ svg,
4480
+ "is-active",
4481
+ /*active*/
4482
+ ctx2[1]
4483
+ );
4484
+ }
4485
+ },
4486
+ i: noop,
4487
+ o: noop,
4488
+ d(detaching) {
4489
+ if (detaching)
4490
+ detach(svg);
4491
+ }
4492
+ };
4493
+ }
4494
+ function instance50($$self, $$props, $$invalidate) {
4495
+ let { theme = "light" } = $$props;
4496
+ let { active = false } = $$props;
4497
+ $$self.$$set = ($$props2) => {
4498
+ if ("theme" in $$props2)
4499
+ $$invalidate(0, theme = $$props2.theme);
4500
+ if ("active" in $$props2)
4501
+ $$invalidate(1, active = $$props2.active);
4502
+ };
4503
+ return [theme, active];
4504
+ }
4505
+ var LaserPenFilled = class extends SvelteComponent {
4506
+ constructor(options) {
4507
+ super();
4508
+ init(this, options, instance50, create_fragment50, safe_not_equal, { theme: 0, active: 1 });
4509
+ }
4510
+ };
4511
+ var LaserPenFilled_default = LaserPenFilled;
4512
+
4349
4513
  // src/components/Icons/index.ts
4350
4514
  var Icons = {
4351
4515
  Apps: Apps_default,
@@ -4394,7 +4558,9 @@ var Icons = {
4394
4558
  WhiteboardAdd: WhiteboardAdd_default,
4395
4559
  Play: Play_default,
4396
4560
  Pause: Pause_default,
4397
- Loading: Loading_default
4561
+ Loading: Loading_default,
4562
+ LaserPen: LaserPen_default,
4563
+ LaserPenFilled: LaserPenFilled_default
4398
4564
  };
4399
4565
  var Icons_default = Icons;
4400
4566
  if (typeof window !== "undefined") {
@@ -4407,12 +4573,12 @@ if (typeof window !== "undefined") {
4407
4573
  {
4408
4574
  name: "className",
4409
4575
  defaultValue: "",
4410
- fn(instance72) {
4576
+ fn(instance74) {
4411
4577
  function add() {
4412
- const el = instance72.popper.firstElementChild;
4578
+ const el = instance74.popper.firstElementChild;
4413
4579
  if (el) {
4414
4580
  el.classList.add("fastboard-tip");
4415
- const extra = (instance72.props.className || "").trim();
4581
+ const extra = (instance74.props.className || "").trim();
4416
4582
  if (extra) {
4417
4583
  el.classList.add(extra);
4418
4584
  }
@@ -4420,7 +4586,7 @@ if (typeof window !== "undefined") {
4420
4586
  }
4421
4587
  function remove() {
4422
4588
  var _a;
4423
- (_a = instance72.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
4589
+ (_a = instance74.popper.firstElementChild) == null ? void 0 : _a.classList.remove("fastboard-tip");
4424
4590
  }
4425
4591
  return {
4426
4592
  onCreate: add,
@@ -4433,21 +4599,21 @@ if (typeof window !== "undefined") {
4433
4599
  });
4434
4600
  }
4435
4601
  var tippy = function(node, props) {
4436
- const instance72 = Tippy(node, props);
4602
+ const instance74 = Tippy(node, props);
4437
4603
  return {
4438
4604
  update(props2) {
4439
- instance72.setProps(props2);
4605
+ instance74.setProps(props2);
4440
4606
  },
4441
4607
  destroy() {
4442
- instance72.destroy();
4608
+ instance74.destroy();
4443
4609
  }
4444
4610
  };
4445
4611
  };
4446
4612
  function tippy_hide_all() {
4447
4613
  document.querySelectorAll("[data-tippy-root]").forEach((el) => {
4448
- const instance72 = el._tippy;
4449
- if (instance72)
4450
- instance72.hide();
4614
+ const instance74 = el._tippy;
4615
+ if (instance74)
4616
+ instance74.hide();
4451
4617
  });
4452
4618
  }
4453
4619
  var tippy_menu = {
@@ -4961,7 +5127,7 @@ function create_if_block_1(ctx) {
4961
5127
  }
4962
5128
  };
4963
5129
  }
4964
- function create_fragment49(ctx) {
5130
+ function create_fragment51(ctx) {
4965
5131
  let current_block_type_index;
4966
5132
  let if_block;
4967
5133
  let if_block_anchor;
@@ -5027,7 +5193,7 @@ function create_fragment49(ctx) {
5027
5193
  }
5028
5194
  };
5029
5195
  }
5030
- function instance49($$self, $$props, $$invalidate) {
5196
+ function instance51($$self, $$props, $$invalidate) {
5031
5197
  let { $$slots: slots = {}, $$scope } = $$props;
5032
5198
  let { class: className = "" } = $$props;
5033
5199
  let { name: name10 = "fastboard-ui" } = $$props;
@@ -5085,7 +5251,7 @@ function instance49($$self, $$props, $$invalidate) {
5085
5251
  var Button = class extends SvelteComponent {
5086
5252
  constructor(options) {
5087
5253
  super();
5088
- init(this, options, instance49, create_fragment49, safe_not_equal, {
5254
+ init(this, options, instance51, create_fragment51, safe_not_equal, {
5089
5255
  class: 0,
5090
5256
  name: 1,
5091
5257
  theme: 2,
@@ -5290,7 +5456,7 @@ function create_default_slot(ctx) {
5290
5456
  }
5291
5457
  };
5292
5458
  }
5293
- function create_fragment50(ctx) {
5459
+ function create_fragment52(ctx) {
5294
5460
  let div;
5295
5461
  let button0;
5296
5462
  let t_1;
@@ -5431,7 +5597,7 @@ var i18n = {
5431
5597
  "zh-CN": { redo: "\u91CD\u505A", undo: "\u64A4\u9500" }
5432
5598
  };
5433
5599
  var name = "fastboard-redo-undo";
5434
- function instance50($$self, $$props, $$invalidate) {
5600
+ function instance52($$self, $$props, $$invalidate) {
5435
5601
  let writable2;
5436
5602
  let phase;
5437
5603
  let disabled;
@@ -5532,7 +5698,7 @@ function instance50($$self, $$props, $$invalidate) {
5532
5698
  var RedoUndo = class extends SvelteComponent {
5533
5699
  constructor(options) {
5534
5700
  super();
5535
- init(this, options, instance50, create_fragment50, safe_not_equal, {
5701
+ init(this, options, instance52, create_fragment52, safe_not_equal, {
5536
5702
  app: 12,
5537
5703
  theme: 0,
5538
5704
  language: 13,
@@ -5889,7 +6055,7 @@ function create_default_slot2(ctx) {
5889
6055
  }
5890
6056
  };
5891
6057
  }
5892
- function create_fragment51(ctx) {
6058
+ function create_fragment53(ctx) {
5893
6059
  let div;
5894
6060
  let button0;
5895
6061
  let t0;
@@ -6124,7 +6290,7 @@ var i18n2 = {
6124
6290
  "zh-CN": { prev: "\u4E0A\u4E00\u9875", next: "\u4E0B\u4E00\u9875", add: "\u6DFB\u52A0\u9875\u9762" }
6125
6291
  };
6126
6292
  var name2 = "fastboard-page-control";
6127
- function instance51($$self, $$props, $$invalidate) {
6293
+ function instance53($$self, $$props, $$invalidate) {
6128
6294
  let writable2;
6129
6295
  let phase;
6130
6296
  let disabled;
@@ -6230,7 +6396,7 @@ function instance51($$self, $$props, $$invalidate) {
6230
6396
  var PageControl = class extends SvelteComponent {
6231
6397
  constructor(options) {
6232
6398
  super();
6233
- init(this, options, instance51, create_fragment51, safe_not_equal, {
6399
+ init(this, options, instance53, create_fragment53, safe_not_equal, {
6234
6400
  app: 16,
6235
6401
  theme: 0,
6236
6402
  language: 17,
@@ -6579,7 +6745,7 @@ function create_default_slot3(ctx) {
6579
6745
  }
6580
6746
  };
6581
6747
  }
6582
- function create_fragment52(ctx) {
6748
+ function create_fragment54(ctx) {
6583
6749
  let div;
6584
6750
  let button0;
6585
6751
  let t0;
@@ -6842,7 +7008,7 @@ function next_scale(scale, delta) {
6842
7008
  return 1;
6843
7009
  }
6844
7010
  var name3 = "fastboard-zoom-control";
6845
- function instance52($$self, $$props, $$invalidate) {
7011
+ function instance54($$self, $$props, $$invalidate) {
6846
7012
  let writable2;
6847
7013
  let phase;
6848
7014
  let disabled;
@@ -6953,7 +7119,7 @@ function instance52($$self, $$props, $$invalidate) {
6953
7119
  var ZoomControl = class extends SvelteComponent {
6954
7120
  constructor(options) {
6955
7121
  super();
6956
- init(this, options, instance52, create_fragment52, safe_not_equal, {
7122
+ init(this, options, instance54, create_fragment54, safe_not_equal, {
6957
7123
  app: 15,
6958
7124
  theme: 0,
6959
7125
  language: 16,
@@ -7255,7 +7421,7 @@ function hexToRgb(hex) {
7255
7421
  }
7256
7422
 
7257
7423
  // src/components/Toolbar/components/Slider.svelte
7258
- function create_fragment53(ctx) {
7424
+ function create_fragment55(ctx) {
7259
7425
  let div;
7260
7426
  let input;
7261
7427
  let input_class_value;
@@ -7470,7 +7636,7 @@ function create_fragment53(ctx) {
7470
7636
  };
7471
7637
  }
7472
7638
  var name4 = "fastboard-slider";
7473
- function instance53($$self, $$props, $$invalidate) {
7639
+ function instance55($$self, $$props, $$invalidate) {
7474
7640
  let percent;
7475
7641
  const dispatch = createEventDispatcher();
7476
7642
  let { class: className = "" } = $$props;
@@ -7541,7 +7707,7 @@ function instance53($$self, $$props, $$invalidate) {
7541
7707
  var Slider = class extends SvelteComponent {
7542
7708
  constructor(options) {
7543
7709
  super();
7544
- init(this, options, instance53, create_fragment53, safe_not_equal, {
7710
+ init(this, options, instance55, create_fragment55, safe_not_equal, {
7545
7711
  class: 1,
7546
7712
  theme: 2,
7547
7713
  min: 3,
@@ -7555,7 +7721,7 @@ var Slider = class extends SvelteComponent {
7555
7721
  var Slider_default = Slider;
7556
7722
 
7557
7723
  // src/components/Toolbar/components/StrokeWidth.svelte
7558
- function create_fragment54(ctx) {
7724
+ function create_fragment56(ctx) {
7559
7725
  let slider;
7560
7726
  let current;
7561
7727
  const slider_spread_levels = [
@@ -7611,7 +7777,7 @@ function create_fragment54(ctx) {
7611
7777
  }
7612
7778
  };
7613
7779
  }
7614
- function instance54($$self, $$props, $$invalidate) {
7780
+ function instance56($$self, $$props, $$invalidate) {
7615
7781
  let memberState;
7616
7782
  let value;
7617
7783
  let props;
@@ -7660,7 +7826,7 @@ function instance54($$self, $$props, $$invalidate) {
7660
7826
  var StrokeWidth = class extends SvelteComponent {
7661
7827
  constructor(options) {
7662
7828
  super();
7663
- init(this, options, instance54, create_fragment54, safe_not_equal, { app: 3, theme: 4, disabled: 5 });
7829
+ init(this, options, instance56, create_fragment56, safe_not_equal, { app: 3, theme: 4, disabled: 5 });
7664
7830
  }
7665
7831
  };
7666
7832
  var StrokeWidth_default = StrokeWidth;
@@ -7764,7 +7930,7 @@ function create_each_block(ctx) {
7764
7930
  }
7765
7931
  };
7766
7932
  }
7767
- function create_fragment55(ctx) {
7933
+ function create_fragment57(ctx) {
7768
7934
  let div;
7769
7935
  let div_class_value;
7770
7936
  let mounted;
@@ -7844,7 +8010,7 @@ function create_fragment55(ctx) {
7844
8010
  function is_equal_color(a, b) {
7845
8011
  return a && b && a.every((v, i) => v === b[i]);
7846
8012
  }
7847
- function instance55($$self, $$props, $$invalidate) {
8013
+ function instance57($$self, $$props, $$invalidate) {
7848
8014
  let memberState;
7849
8015
  let strokeColor;
7850
8016
  let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(7, $memberState = $$value)), memberState);
@@ -7896,7 +8062,7 @@ function instance55($$self, $$props, $$invalidate) {
7896
8062
  var StrokeColor = class extends SvelteComponent {
7897
8063
  constructor(options) {
7898
8064
  super();
7899
- init(this, options, instance55, create_fragment55, safe_not_equal, { app: 6, theme: 0, disabled: 1, colors: 2 });
8065
+ init(this, options, instance57, create_fragment57, safe_not_equal, { app: 6, theme: 0, disabled: 1, colors: 2 });
7900
8066
  }
7901
8067
  };
7902
8068
  var StrokeColor_default = StrokeColor;
@@ -8000,7 +8166,7 @@ function create_each_block2(ctx) {
8000
8166
  }
8001
8167
  };
8002
8168
  }
8003
- function create_fragment56(ctx) {
8169
+ function create_fragment58(ctx) {
8004
8170
  let div;
8005
8171
  let div_class_value;
8006
8172
  let mounted;
@@ -8080,7 +8246,7 @@ function create_fragment56(ctx) {
8080
8246
  function is_equal_color2(a, b) {
8081
8247
  return a && b && a.every((v, i) => v === b[i]);
8082
8248
  }
8083
- function instance56($$self, $$props, $$invalidate) {
8249
+ function instance58($$self, $$props, $$invalidate) {
8084
8250
  let memberState;
8085
8251
  let textColor;
8086
8252
  let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(7, $memberState = $$value)), memberState);
@@ -8132,7 +8298,7 @@ function instance56($$self, $$props, $$invalidate) {
8132
8298
  var TextColor = class extends SvelteComponent {
8133
8299
  constructor(options) {
8134
8300
  super();
8135
- init(this, options, instance56, create_fragment56, safe_not_equal, { app: 6, theme: 0, disabled: 1, colors: 2 });
8301
+ init(this, options, instance58, create_fragment58, safe_not_equal, { app: 6, theme: 0, disabled: 1, colors: 2 });
8136
8302
  }
8137
8303
  };
8138
8304
  var TextColor_default = TextColor;
@@ -8463,7 +8629,7 @@ function create_each_block3(key_1, ctx) {
8463
8629
  }
8464
8630
  };
8465
8631
  }
8466
- function create_fragment57(ctx) {
8632
+ function create_fragment59(ctx) {
8467
8633
  let div;
8468
8634
  let each_blocks = [];
8469
8635
  let each_1_lookup = /* @__PURE__ */ new Map();
@@ -8569,7 +8735,7 @@ var i18n5 = {
8569
8735
  speechBalloon: "\u6C14\u6CE1"
8570
8736
  }
8571
8737
  };
8572
- function instance57($$self, $$props, $$invalidate) {
8738
+ function instance59($$self, $$props, $$invalidate) {
8573
8739
  let t;
8574
8740
  let memberState;
8575
8741
  let appliance;
@@ -8654,7 +8820,7 @@ function instance57($$self, $$props, $$invalidate) {
8654
8820
  var SelectShapes = class extends SvelteComponent {
8655
8821
  constructor(options) {
8656
8822
  super();
8657
- init(this, options, instance57, create_fragment57, safe_not_equal, {
8823
+ init(this, options, instance59, create_fragment59, safe_not_equal, {
8658
8824
  app: 8,
8659
8825
  theme: 0,
8660
8826
  language: 9,
@@ -8809,7 +8975,7 @@ function create_default_slot4(ctx) {
8809
8975
  }
8810
8976
  };
8811
8977
  }
8812
- function create_fragment58(ctx) {
8978
+ function create_fragment60(ctx) {
8813
8979
  let button;
8814
8980
  let current;
8815
8981
  const button_spread_levels = [
@@ -8878,7 +9044,7 @@ function create_fragment58(ctx) {
8878
9044
  }
8879
9045
  };
8880
9046
  }
8881
- function instance58($$self, $$props, $$invalidate) {
9047
+ function instance60($$self, $$props, $$invalidate) {
8882
9048
  let { btn_props = {} } = $$props;
8883
9049
  let { content } = $$props;
8884
9050
  let { appliance } = $$props;
@@ -8901,7 +9067,7 @@ function instance58($$self, $$props, $$invalidate) {
8901
9067
  var Clicker = class extends SvelteComponent {
8902
9068
  constructor(options) {
8903
9069
  super();
8904
- init(this, options, instance58, create_fragment58, safe_not_equal, {
9070
+ init(this, options, instance60, create_fragment60, safe_not_equal, {
8905
9071
  btn_props: 0,
8906
9072
  content: 1,
8907
9073
  appliance: 2,
@@ -9056,7 +9222,7 @@ function create_default_slot5(ctx) {
9056
9222
  }
9057
9223
  };
9058
9224
  }
9059
- function create_fragment59(ctx) {
9225
+ function create_fragment61(ctx) {
9060
9226
  let button;
9061
9227
  let current;
9062
9228
  const button_spread_levels = [
@@ -9125,7 +9291,7 @@ function create_fragment59(ctx) {
9125
9291
  }
9126
9292
  };
9127
9293
  }
9128
- function instance59($$self, $$props, $$invalidate) {
9294
+ function instance61($$self, $$props, $$invalidate) {
9129
9295
  let { btn_props = {} } = $$props;
9130
9296
  let { content } = $$props;
9131
9297
  let { appliance } = $$props;
@@ -9148,7 +9314,7 @@ function instance59($$self, $$props, $$invalidate) {
9148
9314
  var Selector2 = class extends SvelteComponent {
9149
9315
  constructor(options) {
9150
9316
  super();
9151
- init(this, options, instance59, create_fragment59, safe_not_equal, {
9317
+ init(this, options, instance61, create_fragment61, safe_not_equal, {
9152
9318
  btn_props: 0,
9153
9319
  content: 1,
9154
9320
  appliance: 2,
@@ -9197,7 +9363,7 @@ function create_else_block8(ctx) {
9197
9363
  }
9198
9364
  };
9199
9365
  }
9200
- function create_if_block8(ctx) {
9366
+ function create_if_block_12(ctx) {
9201
9367
  let icons_pencilfilled;
9202
9368
  let current;
9203
9369
  icons_pencilfilled = new Icons_default.PencilFilled({
@@ -9237,20 +9403,66 @@ function create_if_block8(ctx) {
9237
9403
  }
9238
9404
  };
9239
9405
  }
9406
+ function create_if_block8(ctx) {
9407
+ let icons_laserpenfilled;
9408
+ let current;
9409
+ icons_laserpenfilled = new Icons_default.LaserPenFilled({
9410
+ props: { theme: (
9411
+ /*theme*/
9412
+ ctx[4]
9413
+ ), active: true }
9414
+ });
9415
+ return {
9416
+ c() {
9417
+ create_component(icons_laserpenfilled.$$.fragment);
9418
+ },
9419
+ m(target, anchor) {
9420
+ mount_component(icons_laserpenfilled, target, anchor);
9421
+ current = true;
9422
+ },
9423
+ p(ctx2, dirty) {
9424
+ const icons_laserpenfilled_changes = {};
9425
+ if (dirty & /*theme*/
9426
+ 16)
9427
+ icons_laserpenfilled_changes.theme = /*theme*/
9428
+ ctx2[4];
9429
+ icons_laserpenfilled.$set(icons_laserpenfilled_changes);
9430
+ },
9431
+ i(local) {
9432
+ if (current)
9433
+ return;
9434
+ transition_in(icons_laserpenfilled.$$.fragment, local);
9435
+ current = true;
9436
+ },
9437
+ o(local) {
9438
+ transition_out(icons_laserpenfilled.$$.fragment, local);
9439
+ current = false;
9440
+ },
9441
+ d(detaching) {
9442
+ destroy_component(icons_laserpenfilled, detaching);
9443
+ }
9444
+ };
9445
+ }
9240
9446
  function create_default_slot6(ctx) {
9241
9447
  let current_block_type_index;
9242
9448
  let if_block;
9243
9449
  let if_block_anchor;
9244
9450
  let current;
9245
- const if_block_creators = [create_if_block8, create_else_block8];
9451
+ const if_block_creators = [create_if_block8, create_if_block_12, create_else_block8];
9246
9452
  const if_blocks = [];
9247
9453
  function select_block_type(ctx2, dirty) {
9248
9454
  if (
9249
9455
  /*appliance*/
9250
- ctx2[3] === "pencil"
9456
+ ctx2[3] === "pencil" && /*hasUseLaserPen*/
9457
+ ctx2[5]
9251
9458
  )
9252
9459
  return 0;
9253
- return 1;
9460
+ if (
9461
+ /*appliance*/
9462
+ ctx2[3] === "pencil"
9463
+ )
9464
+ return 1;
9465
+ return 2;
9254
9466
  }
9255
9467
  current_block_type_index = select_block_type(ctx);
9256
9468
  if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
@@ -9303,7 +9515,7 @@ function create_default_slot6(ctx) {
9303
9515
  }
9304
9516
  };
9305
9517
  }
9306
- function create_fragment60(ctx) {
9518
+ function create_fragment62(ctx) {
9307
9519
  let button;
9308
9520
  let current;
9309
9521
  const button_spread_levels = [
@@ -9330,7 +9542,7 @@ function create_fragment60(ctx) {
9330
9542
  button.$on(
9331
9543
  "click",
9332
9544
  /*click_handler*/
9333
- ctx[5]
9545
+ ctx[6]
9334
9546
  );
9335
9547
  return {
9336
9548
  c() {
@@ -9360,8 +9572,8 @@ function create_fragment60(ctx) {
9360
9572
  ctx2[2]
9361
9573
  ) }
9362
9574
  ]) : {};
9363
- if (dirty & /*$$scope, theme, appliance*/
9364
- 88) {
9575
+ if (dirty & /*$$scope, theme, appliance, hasUseLaserPen*/
9576
+ 184) {
9365
9577
  button_changes.$$scope = { dirty, ctx: ctx2 };
9366
9578
  }
9367
9579
  button.$set(button_changes);
@@ -9381,12 +9593,13 @@ function create_fragment60(ctx) {
9381
9593
  }
9382
9594
  };
9383
9595
  }
9384
- function instance60($$self, $$props, $$invalidate) {
9596
+ function instance62($$self, $$props, $$invalidate) {
9385
9597
  let { btn_props = {} } = $$props;
9386
9598
  let { content } = $$props;
9387
9599
  let { menu } = $$props;
9388
9600
  let { appliance } = $$props;
9389
9601
  let { theme = "light" } = $$props;
9602
+ let { hasUseLaserPen = false } = $$props;
9390
9603
  function click_handler(event) {
9391
9604
  bubble.call(this, $$self, event);
9392
9605
  }
@@ -9401,18 +9614,21 @@ function instance60($$self, $$props, $$invalidate) {
9401
9614
  $$invalidate(3, appliance = $$props2.appliance);
9402
9615
  if ("theme" in $$props2)
9403
9616
  $$invalidate(4, theme = $$props2.theme);
9617
+ if ("hasUseLaserPen" in $$props2)
9618
+ $$invalidate(5, hasUseLaserPen = $$props2.hasUseLaserPen);
9404
9619
  };
9405
- return [btn_props, content, menu, appliance, theme, click_handler];
9620
+ return [btn_props, content, menu, appliance, theme, hasUseLaserPen, click_handler];
9406
9621
  }
9407
9622
  var Pencil2 = class extends SvelteComponent {
9408
9623
  constructor(options) {
9409
9624
  super();
9410
- init(this, options, instance60, create_fragment60, safe_not_equal, {
9625
+ init(this, options, instance62, create_fragment62, safe_not_equal, {
9411
9626
  btn_props: 0,
9412
9627
  content: 1,
9413
9628
  menu: 2,
9414
9629
  appliance: 3,
9415
- theme: 4
9630
+ theme: 4,
9631
+ hasUseLaserPen: 5
9416
9632
  });
9417
9633
  }
9418
9634
  };
@@ -9563,7 +9779,7 @@ function create_default_slot7(ctx) {
9563
9779
  }
9564
9780
  };
9565
9781
  }
9566
- function create_fragment61(ctx) {
9782
+ function create_fragment63(ctx) {
9567
9783
  let button;
9568
9784
  let current;
9569
9785
  const button_spread_levels = [
@@ -9641,7 +9857,7 @@ function create_fragment61(ctx) {
9641
9857
  }
9642
9858
  };
9643
9859
  }
9644
- function instance61($$self, $$props, $$invalidate) {
9860
+ function instance63($$self, $$props, $$invalidate) {
9645
9861
  let { btn_props = {} } = $$props;
9646
9862
  let { content } = $$props;
9647
9863
  let { menu } = $$props;
@@ -9667,7 +9883,7 @@ function instance61($$self, $$props, $$invalidate) {
9667
9883
  var Text2 = class extends SvelteComponent {
9668
9884
  constructor(options) {
9669
9885
  super();
9670
- init(this, options, instance61, create_fragment61, safe_not_equal, {
9886
+ init(this, options, instance63, create_fragment63, safe_not_equal, {
9671
9887
  btn_props: 0,
9672
9888
  content: 1,
9673
9889
  menu: 2,
@@ -9911,7 +10127,7 @@ function create_default_slot8(ctx) {
9911
10127
  }
9912
10128
  };
9913
10129
  }
9914
- function create_fragment62(ctx) {
10130
+ function create_fragment64(ctx) {
9915
10131
  let button;
9916
10132
  let current;
9917
10133
  const button_spread_levels = [
@@ -9989,7 +10205,7 @@ function create_fragment62(ctx) {
9989
10205
  }
9990
10206
  };
9991
10207
  }
9992
- function instance62($$self, $$props, $$invalidate) {
10208
+ function instance64($$self, $$props, $$invalidate) {
9993
10209
  let memberState;
9994
10210
  let shape;
9995
10211
  let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(10, $memberState = $$value)), memberState);
@@ -10061,7 +10277,7 @@ function instance62($$self, $$props, $$invalidate) {
10061
10277
  var Shapes = class extends SvelteComponent {
10062
10278
  constructor(options) {
10063
10279
  super();
10064
- init(this, options, instance62, create_fragment62, safe_not_equal, {
10280
+ init(this, options, instance64, create_fragment64, safe_not_equal, {
10065
10281
  app: 9,
10066
10282
  btn_props: 1,
10067
10283
  content: 2,
@@ -10218,7 +10434,7 @@ function create_default_slot9(ctx) {
10218
10434
  }
10219
10435
  };
10220
10436
  }
10221
- function create_fragment63(ctx) {
10437
+ function create_fragment65(ctx) {
10222
10438
  let button;
10223
10439
  let current;
10224
10440
  const button_spread_levels = [
@@ -10287,7 +10503,7 @@ function create_fragment63(ctx) {
10287
10503
  }
10288
10504
  };
10289
10505
  }
10290
- function instance63($$self, $$props, $$invalidate) {
10506
+ function instance65($$self, $$props, $$invalidate) {
10291
10507
  let { btn_props = {} } = $$props;
10292
10508
  let { content } = $$props;
10293
10509
  let { appliance } = $$props;
@@ -10310,7 +10526,7 @@ function instance63($$self, $$props, $$invalidate) {
10310
10526
  var Eraser2 = class extends SvelteComponent {
10311
10527
  constructor(options) {
10312
10528
  super();
10313
- init(this, options, instance63, create_fragment63, safe_not_equal, {
10529
+ init(this, options, instance65, create_fragment65, safe_not_equal, {
10314
10530
  btn_props: 0,
10315
10531
  content: 1,
10316
10532
  appliance: 2,
@@ -10359,7 +10575,7 @@ function create_default_slot10(ctx) {
10359
10575
  }
10360
10576
  };
10361
10577
  }
10362
- function create_fragment64(ctx) {
10578
+ function create_fragment66(ctx) {
10363
10579
  let button;
10364
10580
  let current;
10365
10581
  const button_spread_levels = [
@@ -10428,7 +10644,7 @@ function create_fragment64(ctx) {
10428
10644
  }
10429
10645
  };
10430
10646
  }
10431
- function instance64($$self, $$props, $$invalidate) {
10647
+ function instance66($$self, $$props, $$invalidate) {
10432
10648
  let { btn_props = {} } = $$props;
10433
10649
  let { content } = $$props;
10434
10650
  let { theme = "light" } = $$props;
@@ -10448,7 +10664,7 @@ function instance64($$self, $$props, $$invalidate) {
10448
10664
  var Clear2 = class extends SvelteComponent {
10449
10665
  constructor(options) {
10450
10666
  super();
10451
- init(this, options, instance64, create_fragment64, safe_not_equal, { btn_props: 0, content: 1, theme: 2 });
10667
+ init(this, options, instance66, create_fragment66, safe_not_equal, { btn_props: 0, content: 1, theme: 2 });
10452
10668
  }
10453
10669
  };
10454
10670
  var Clear_default2 = Clear2;
@@ -10598,7 +10814,7 @@ function create_default_slot11(ctx) {
10598
10814
  }
10599
10815
  };
10600
10816
  }
10601
- function create_fragment65(ctx) {
10817
+ function create_fragment67(ctx) {
10602
10818
  let button;
10603
10819
  let current;
10604
10820
  const button_spread_levels = [
@@ -10667,7 +10883,7 @@ function create_fragment65(ctx) {
10667
10883
  }
10668
10884
  };
10669
10885
  }
10670
- function instance65($$self, $$props, $$invalidate) {
10886
+ function instance67($$self, $$props, $$invalidate) {
10671
10887
  let { btn_props = {} } = $$props;
10672
10888
  let { content } = $$props;
10673
10889
  let { appliance } = $$props;
@@ -10690,7 +10906,7 @@ function instance65($$self, $$props, $$invalidate) {
10690
10906
  var Hand = class extends SvelteComponent {
10691
10907
  constructor(options) {
10692
10908
  super();
10693
- init(this, options, instance65, create_fragment65, safe_not_equal, {
10909
+ init(this, options, instance67, create_fragment67, safe_not_equal, {
10694
10910
  btn_props: 0,
10695
10911
  content: 1,
10696
10912
  appliance: 2,
@@ -10845,7 +11061,7 @@ function create_default_slot12(ctx) {
10845
11061
  }
10846
11062
  };
10847
11063
  }
10848
- function create_fragment66(ctx) {
11064
+ function create_fragment68(ctx) {
10849
11065
  let button;
10850
11066
  let current;
10851
11067
  const button_spread_levels = [
@@ -10914,7 +11130,7 @@ function create_fragment66(ctx) {
10914
11130
  }
10915
11131
  };
10916
11132
  }
10917
- function instance66($$self, $$props, $$invalidate) {
11133
+ function instance68($$self, $$props, $$invalidate) {
10918
11134
  let { btn_props = {} } = $$props;
10919
11135
  let { content } = $$props;
10920
11136
  let { appliance } = $$props;
@@ -10937,7 +11153,7 @@ function instance66($$self, $$props, $$invalidate) {
10937
11153
  var Laser2 = class extends SvelteComponent {
10938
11154
  constructor(options) {
10939
11155
  super();
10940
- init(this, options, instance66, create_fragment66, safe_not_equal, {
11156
+ init(this, options, instance68, create_fragment68, safe_not_equal, {
10941
11157
  btn_props: 0,
10942
11158
  content: 1,
10943
11159
  appliance: 2,
@@ -10950,42 +11166,42 @@ var Laser_default2 = Laser2;
10950
11166
  // src/components/Toolbar/components/Contents.svelte
10951
11167
  function get_each_context4(ctx, list, i) {
10952
11168
  const child_ctx = ctx.slice();
10953
- child_ctx[44] = list[i];
11169
+ child_ctx[47] = list[i];
10954
11170
  const constants_0 = (
10955
11171
  /*netless_app*/
10956
- child_ctx[44]
11172
+ child_ctx[47]
10957
11173
  );
10958
- child_ctx[45] = constants_0.icon;
10959
- child_ctx[46] = constants_0.label;
10960
- child_ctx[47] = constants_0.kind;
10961
- child_ctx[48] = constants_0.onClick;
11174
+ child_ctx[48] = constants_0.icon;
11175
+ child_ctx[49] = constants_0.label;
11176
+ child_ctx[50] = constants_0.kind;
11177
+ child_ctx[51] = constants_0.onClick;
10962
11178
  const constants_1 = (
10963
11179
  /*$status*/
10964
- child_ctx[21] && /*$status*/
10965
- child_ctx[21][
11180
+ child_ctx[22] && /*$status*/
11181
+ child_ctx[22][
10966
11182
  /*kind*/
10967
- child_ctx[47]
11183
+ child_ctx[50]
10968
11184
  ]
10969
11185
  );
10970
- child_ctx[49] = constants_1;
11186
+ child_ctx[52] = constants_1;
10971
11187
  const constants_2 = function func() {
10972
11188
  return (
10973
11189
  /*func*/
10974
- ctx[40](
11190
+ ctx[43](
10975
11191
  /*onClick*/
10976
- child_ctx[48]
11192
+ child_ctx[51]
10977
11193
  )
10978
11194
  );
10979
11195
  };
10980
- child_ctx[50] = constants_2;
11196
+ child_ctx[53] = constants_2;
10981
11197
  return child_ctx;
10982
11198
  }
10983
11199
  function get_each_context_1(ctx, list, i) {
10984
11200
  const child_ctx = ctx.slice();
10985
- child_ctx[53] = list[i];
11201
+ child_ctx[56] = list[i];
10986
11202
  return child_ctx;
10987
11203
  }
10988
- function create_if_block_11(ctx) {
11204
+ function create_if_block_13(ctx) {
10989
11205
  let button;
10990
11206
  let current;
10991
11207
  const button_spread_levels = [
@@ -10994,7 +11210,7 @@ function create_if_block_11(ctx) {
10994
11210
  ctx[15]
10995
11211
  ];
10996
11212
  let button_props = {
10997
- $$slots: { default: [create_default_slot_24] },
11213
+ $$slots: { default: [create_default_slot_6] },
10998
11214
  $$scope: { ctx }
10999
11215
  };
11000
11216
  for (let i = 0; i < button_spread_levels.length; i += 1) {
@@ -11004,7 +11220,7 @@ function create_if_block_11(ctx) {
11004
11220
  button.$on(
11005
11221
  "click",
11006
11222
  /*scroll_up*/
11007
- ctx[23]
11223
+ ctx[24]
11008
11224
  );
11009
11225
  return {
11010
11226
  c() {
@@ -11022,7 +11238,7 @@ function create_if_block_11(ctx) {
11022
11238
  )]) : {};
11023
11239
  if (dirty[0] & /*theme*/
11024
11240
  2 | dirty[1] & /*$$scope*/
11025
- 33554432) {
11241
+ 268435456) {
11026
11242
  button_changes.$$scope = { dirty, ctx: ctx2 };
11027
11243
  }
11028
11244
  button.$set(button_changes);
@@ -11042,7 +11258,7 @@ function create_if_block_11(ctx) {
11042
11258
  }
11043
11259
  };
11044
11260
  }
11045
- function create_default_slot_24(ctx) {
11261
+ function create_default_slot_6(ctx) {
11046
11262
  let icons_up;
11047
11263
  let current;
11048
11264
  icons_up = new Icons_default.Up({ props: { theme: (
@@ -11080,14 +11296,14 @@ function create_default_slot_24(ctx) {
11080
11296
  }
11081
11297
  };
11082
11298
  }
11083
- function create_if_block_10(ctx) {
11299
+ function create_if_block_122(ctx) {
11084
11300
  let laser;
11085
11301
  let current;
11086
11302
  laser = new Laser_default2({
11087
11303
  props: {
11088
11304
  appliance: (
11089
11305
  /*appliance*/
11090
- ctx[17]
11306
+ ctx[18]
11091
11307
  ),
11092
11308
  theme: (
11093
11309
  /*theme*/
@@ -11099,14 +11315,14 @@ function create_if_block_10(ctx) {
11099
11315
  ),
11100
11316
  content: (
11101
11317
  /*c*/
11102
- ctx[19].laserPointer
11318
+ ctx[20].laserPointer
11103
11319
  )
11104
11320
  }
11105
11321
  });
11106
11322
  laser.$on(
11107
11323
  "click",
11108
11324
  /*laserPointer*/
11109
- ctx[31]
11325
+ ctx[32]
11110
11326
  );
11111
11327
  return {
11112
11328
  c() {
@@ -11119,9 +11335,9 @@ function create_if_block_10(ctx) {
11119
11335
  p(ctx2, dirty) {
11120
11336
  const laser_changes = {};
11121
11337
  if (dirty[0] & /*appliance*/
11122
- 131072)
11338
+ 262144)
11123
11339
  laser_changes.appliance = /*appliance*/
11124
- ctx2[17];
11340
+ ctx2[18];
11125
11341
  if (dirty[0] & /*theme*/
11126
11342
  2)
11127
11343
  laser_changes.theme = /*theme*/
@@ -11131,9 +11347,9 @@ function create_if_block_10(ctx) {
11131
11347
  laser_changes.btn_props = /*btn_props*/
11132
11348
  ctx2[15];
11133
11349
  if (dirty[0] & /*c*/
11134
- 524288)
11350
+ 1048576)
11135
11351
  laser_changes.content = /*c*/
11136
- ctx2[19].laserPointer;
11352
+ ctx2[20].laserPointer;
11137
11353
  laser.$set(laser_changes);
11138
11354
  },
11139
11355
  i(local) {
@@ -11151,14 +11367,14 @@ function create_if_block_10(ctx) {
11151
11367
  }
11152
11368
  };
11153
11369
  }
11154
- function create_if_block_9(ctx) {
11370
+ function create_if_block_11(ctx) {
11155
11371
  let hand_1;
11156
11372
  let current;
11157
11373
  hand_1 = new Hand_default({
11158
11374
  props: {
11159
11375
  appliance: (
11160
11376
  /*appliance*/
11161
- ctx[17]
11377
+ ctx[18]
11162
11378
  ),
11163
11379
  theme: (
11164
11380
  /*theme*/
@@ -11170,14 +11386,14 @@ function create_if_block_9(ctx) {
11170
11386
  ),
11171
11387
  content: (
11172
11388
  /*c*/
11173
- ctx[19].hand
11389
+ ctx[20].hand
11174
11390
  )
11175
11391
  }
11176
11392
  });
11177
11393
  hand_1.$on(
11178
11394
  "click",
11179
11395
  /*hand*/
11180
- ctx[30]
11396
+ ctx[31]
11181
11397
  );
11182
11398
  return {
11183
11399
  c() {
@@ -11190,9 +11406,9 @@ function create_if_block_9(ctx) {
11190
11406
  p(ctx2, dirty) {
11191
11407
  const hand_1_changes = {};
11192
11408
  if (dirty[0] & /*appliance*/
11193
- 131072)
11409
+ 262144)
11194
11410
  hand_1_changes.appliance = /*appliance*/
11195
- ctx2[17];
11411
+ ctx2[18];
11196
11412
  if (dirty[0] & /*theme*/
11197
11413
  2)
11198
11414
  hand_1_changes.theme = /*theme*/
@@ -11202,9 +11418,9 @@ function create_if_block_9(ctx) {
11202
11418
  hand_1_changes.btn_props = /*btn_props*/
11203
11419
  ctx2[15];
11204
11420
  if (dirty[0] & /*c*/
11205
- 524288)
11421
+ 1048576)
11206
11422
  hand_1_changes.content = /*c*/
11207
- ctx2[19].hand;
11423
+ ctx2[20].hand;
11208
11424
  hand_1.$set(hand_1_changes);
11209
11425
  },
11210
11426
  i(local) {
@@ -11222,7 +11438,7 @@ function create_if_block_9(ctx) {
11222
11438
  }
11223
11439
  };
11224
11440
  }
11225
- function create_if_block_8(ctx) {
11441
+ function create_if_block_10(ctx) {
11226
11442
  let clear_1;
11227
11443
  let current;
11228
11444
  clear_1 = new Clear_default2({
@@ -11244,7 +11460,7 @@ function create_if_block_8(ctx) {
11244
11460
  clear_1.$on(
11245
11461
  "click",
11246
11462
  /*clear*/
11247
- ctx[32]
11463
+ ctx[33]
11248
11464
  );
11249
11465
  return {
11250
11466
  c() {
@@ -11285,14 +11501,14 @@ function create_if_block_8(ctx) {
11285
11501
  }
11286
11502
  };
11287
11503
  }
11288
- function create_if_block_7(ctx) {
11504
+ function create_if_block_9(ctx) {
11289
11505
  let eraser_1;
11290
11506
  let current;
11291
11507
  eraser_1 = new Eraser_default2({
11292
11508
  props: {
11293
11509
  appliance: (
11294
11510
  /*appliance*/
11295
- ctx[17]
11511
+ ctx[18]
11296
11512
  ),
11297
11513
  theme: (
11298
11514
  /*theme*/
@@ -11304,14 +11520,14 @@ function create_if_block_7(ctx) {
11304
11520
  ),
11305
11521
  content: (
11306
11522
  /*c*/
11307
- ctx[19].eraser
11523
+ ctx[20].eraser
11308
11524
  )
11309
11525
  }
11310
11526
  });
11311
11527
  eraser_1.$on(
11312
11528
  "click",
11313
11529
  /*eraser*/
11314
- ctx[29]
11530
+ ctx[30]
11315
11531
  );
11316
11532
  return {
11317
11533
  c() {
@@ -11324,9 +11540,9 @@ function create_if_block_7(ctx) {
11324
11540
  p(ctx2, dirty) {
11325
11541
  const eraser_1_changes = {};
11326
11542
  if (dirty[0] & /*appliance*/
11327
- 131072)
11543
+ 262144)
11328
11544
  eraser_1_changes.appliance = /*appliance*/
11329
- ctx2[17];
11545
+ ctx2[18];
11330
11546
  if (dirty[0] & /*theme*/
11331
11547
  2)
11332
11548
  eraser_1_changes.theme = /*theme*/
@@ -11336,9 +11552,9 @@ function create_if_block_7(ctx) {
11336
11552
  eraser_1_changes.btn_props = /*btn_props*/
11337
11553
  ctx2[15];
11338
11554
  if (dirty[0] & /*c*/
11339
- 524288)
11555
+ 1048576)
11340
11556
  eraser_1_changes.content = /*c*/
11341
- ctx2[19].eraser;
11557
+ ctx2[20].eraser;
11342
11558
  eraser_1.$set(eraser_1_changes);
11343
11559
  },
11344
11560
  i(local) {
@@ -11356,7 +11572,7 @@ function create_if_block_7(ctx) {
11356
11572
  }
11357
11573
  };
11358
11574
  }
11359
- function create_if_block_6(ctx) {
11575
+ function create_if_block_8(ctx) {
11360
11576
  let shapes2;
11361
11577
  let current;
11362
11578
  shapes2 = new Shapes_default({
@@ -11367,7 +11583,7 @@ function create_if_block_6(ctx) {
11367
11583
  ),
11368
11584
  appliance: (
11369
11585
  /*appliance*/
11370
- ctx[17]
11586
+ ctx[18]
11371
11587
  ),
11372
11588
  theme: (
11373
11589
  /*theme*/
@@ -11402,9 +11618,9 @@ function create_if_block_6(ctx) {
11402
11618
  shapes_changes.app = /*app*/
11403
11619
  ctx2[0];
11404
11620
  if (dirty[0] & /*appliance*/
11405
- 131072)
11621
+ 262144)
11406
11622
  shapes_changes.appliance = /*appliance*/
11407
- ctx2[17];
11623
+ ctx2[18];
11408
11624
  if (dirty[0] & /*theme*/
11409
11625
  2)
11410
11626
  shapes_changes.theme = /*theme*/
@@ -11438,14 +11654,14 @@ function create_if_block_6(ctx) {
11438
11654
  }
11439
11655
  };
11440
11656
  }
11441
- function create_if_block_5(ctx) {
11657
+ function create_if_block_7(ctx) {
11442
11658
  let text_1;
11443
11659
  let current;
11444
11660
  text_1 = new Text_default2({
11445
11661
  props: {
11446
11662
  appliance: (
11447
11663
  /*appliance*/
11448
- ctx[17]
11664
+ ctx[18]
11449
11665
  ),
11450
11666
  theme: (
11451
11667
  /*theme*/
@@ -11457,7 +11673,7 @@ function create_if_block_5(ctx) {
11457
11673
  ),
11458
11674
  content: (
11459
11675
  /*c*/
11460
- ctx[19].text
11676
+ ctx[20].text
11461
11677
  ),
11462
11678
  menu: (
11463
11679
  /*text_panel*/
@@ -11468,7 +11684,7 @@ function create_if_block_5(ctx) {
11468
11684
  text_1.$on(
11469
11685
  "click",
11470
11686
  /*text*/
11471
- ctx[28]
11687
+ ctx[29]
11472
11688
  );
11473
11689
  return {
11474
11690
  c() {
@@ -11481,9 +11697,9 @@ function create_if_block_5(ctx) {
11481
11697
  p(ctx2, dirty) {
11482
11698
  const text_1_changes = {};
11483
11699
  if (dirty[0] & /*appliance*/
11484
- 131072)
11700
+ 262144)
11485
11701
  text_1_changes.appliance = /*appliance*/
11486
- ctx2[17];
11702
+ ctx2[18];
11487
11703
  if (dirty[0] & /*theme*/
11488
11704
  2)
11489
11705
  text_1_changes.theme = /*theme*/
@@ -11493,9 +11709,9 @@ function create_if_block_5(ctx) {
11493
11709
  text_1_changes.btn_props = /*btn_props*/
11494
11710
  ctx2[15];
11495
11711
  if (dirty[0] & /*c*/
11496
- 524288)
11712
+ 1048576)
11497
11713
  text_1_changes.content = /*c*/
11498
- ctx2[19].text;
11714
+ ctx2[20].text;
11499
11715
  if (dirty[0] & /*text_panel*/
11500
11716
  4096)
11501
11717
  text_1_changes.menu = /*text_panel*/
@@ -11517,14 +11733,18 @@ function create_if_block_5(ctx) {
11517
11733
  }
11518
11734
  };
11519
11735
  }
11520
- function create_if_block_4(ctx) {
11736
+ function create_if_block_6(ctx) {
11521
11737
  let pencil_1;
11522
11738
  let current;
11523
11739
  pencil_1 = new Pencil_default2({
11524
11740
  props: {
11741
+ hasUseLaserPen: (
11742
+ /*hasUseLaserPen*/
11743
+ ctx[16]
11744
+ ),
11525
11745
  appliance: (
11526
11746
  /*appliance*/
11527
- ctx[17]
11747
+ ctx[18]
11528
11748
  ),
11529
11749
  theme: (
11530
11750
  /*theme*/
@@ -11536,7 +11756,7 @@ function create_if_block_4(ctx) {
11536
11756
  ),
11537
11757
  content: (
11538
11758
  /*c*/
11539
- ctx[19].pencil
11759
+ ctx[20].pencil
11540
11760
  ),
11541
11761
  menu: (
11542
11762
  /*pencil_panel*/
@@ -11547,7 +11767,7 @@ function create_if_block_4(ctx) {
11547
11767
  pencil_1.$on(
11548
11768
  "click",
11549
11769
  /*pencil*/
11550
- ctx[27]
11770
+ ctx[28]
11551
11771
  );
11552
11772
  return {
11553
11773
  c() {
@@ -11559,10 +11779,14 @@ function create_if_block_4(ctx) {
11559
11779
  },
11560
11780
  p(ctx2, dirty) {
11561
11781
  const pencil_1_changes = {};
11782
+ if (dirty[0] & /*hasUseLaserPen*/
11783
+ 65536)
11784
+ pencil_1_changes.hasUseLaserPen = /*hasUseLaserPen*/
11785
+ ctx2[16];
11562
11786
  if (dirty[0] & /*appliance*/
11563
- 131072)
11787
+ 262144)
11564
11788
  pencil_1_changes.appliance = /*appliance*/
11565
- ctx2[17];
11789
+ ctx2[18];
11566
11790
  if (dirty[0] & /*theme*/
11567
11791
  2)
11568
11792
  pencil_1_changes.theme = /*theme*/
@@ -11572,9 +11796,9 @@ function create_if_block_4(ctx) {
11572
11796
  pencil_1_changes.btn_props = /*btn_props*/
11573
11797
  ctx2[15];
11574
11798
  if (dirty[0] & /*c*/
11575
- 524288)
11799
+ 1048576)
11576
11800
  pencil_1_changes.content = /*c*/
11577
- ctx2[19].pencil;
11801
+ ctx2[20].pencil;
11578
11802
  if (dirty[0] & /*pencil_panel*/
11579
11803
  2048)
11580
11804
  pencil_1_changes.menu = /*pencil_panel*/
@@ -11596,14 +11820,14 @@ function create_if_block_4(ctx) {
11596
11820
  }
11597
11821
  };
11598
11822
  }
11599
- function create_if_block_3(ctx) {
11823
+ function create_if_block_5(ctx) {
11600
11824
  let selector_1;
11601
11825
  let current;
11602
11826
  selector_1 = new Selector_default2({
11603
11827
  props: {
11604
11828
  appliance: (
11605
11829
  /*appliance*/
11606
- ctx[17]
11830
+ ctx[18]
11607
11831
  ),
11608
11832
  theme: (
11609
11833
  /*theme*/
@@ -11615,14 +11839,14 @@ function create_if_block_3(ctx) {
11615
11839
  ),
11616
11840
  content: (
11617
11841
  /*c*/
11618
- ctx[19].selector
11842
+ ctx[20].selector
11619
11843
  )
11620
11844
  }
11621
11845
  });
11622
11846
  selector_1.$on(
11623
11847
  "click",
11624
11848
  /*selector*/
11625
- ctx[26]
11849
+ ctx[27]
11626
11850
  );
11627
11851
  return {
11628
11852
  c() {
@@ -11635,9 +11859,9 @@ function create_if_block_3(ctx) {
11635
11859
  p(ctx2, dirty) {
11636
11860
  const selector_1_changes = {};
11637
11861
  if (dirty[0] & /*appliance*/
11638
- 131072)
11862
+ 262144)
11639
11863
  selector_1_changes.appliance = /*appliance*/
11640
- ctx2[17];
11864
+ ctx2[18];
11641
11865
  if (dirty[0] & /*theme*/
11642
11866
  2)
11643
11867
  selector_1_changes.theme = /*theme*/
@@ -11647,9 +11871,9 @@ function create_if_block_3(ctx) {
11647
11871
  selector_1_changes.btn_props = /*btn_props*/
11648
11872
  ctx2[15];
11649
11873
  if (dirty[0] & /*c*/
11650
- 524288)
11874
+ 1048576)
11651
11875
  selector_1_changes.content = /*c*/
11652
- ctx2[19].selector;
11876
+ ctx2[20].selector;
11653
11877
  selector_1.$set(selector_1_changes);
11654
11878
  },
11655
11879
  i(local) {
@@ -11667,14 +11891,14 @@ function create_if_block_3(ctx) {
11667
11891
  }
11668
11892
  };
11669
11893
  }
11670
- function create_if_block_2(ctx) {
11894
+ function create_if_block_4(ctx) {
11671
11895
  let clicker_1;
11672
11896
  let current;
11673
11897
  clicker_1 = new Clicker_default({
11674
11898
  props: {
11675
11899
  appliance: (
11676
11900
  /*appliance*/
11677
- ctx[17]
11901
+ ctx[18]
11678
11902
  ),
11679
11903
  theme: (
11680
11904
  /*theme*/
@@ -11686,14 +11910,14 @@ function create_if_block_2(ctx) {
11686
11910
  ),
11687
11911
  content: (
11688
11912
  /*c*/
11689
- ctx[19].clicker
11913
+ ctx[20].clicker
11690
11914
  )
11691
11915
  }
11692
11916
  });
11693
11917
  clicker_1.$on(
11694
11918
  "click",
11695
11919
  /*clicker*/
11696
- ctx[25]
11920
+ ctx[26]
11697
11921
  );
11698
11922
  return {
11699
11923
  c() {
@@ -11706,9 +11930,9 @@ function create_if_block_2(ctx) {
11706
11930
  p(ctx2, dirty) {
11707
11931
  const clicker_1_changes = {};
11708
11932
  if (dirty[0] & /*appliance*/
11709
- 131072)
11933
+ 262144)
11710
11934
  clicker_1_changes.appliance = /*appliance*/
11711
- ctx2[17];
11935
+ ctx2[18];
11712
11936
  if (dirty[0] & /*theme*/
11713
11937
  2)
11714
11938
  clicker_1_changes.theme = /*theme*/
@@ -11718,9 +11942,9 @@ function create_if_block_2(ctx) {
11718
11942
  clicker_1_changes.btn_props = /*btn_props*/
11719
11943
  ctx2[15];
11720
11944
  if (dirty[0] & /*c*/
11721
- 524288)
11945
+ 1048576)
11722
11946
  clicker_1_changes.content = /*c*/
11723
- ctx2[19].clicker;
11947
+ ctx2[20].clicker;
11724
11948
  clicker_1.$set(clicker_1_changes);
11725
11949
  },
11726
11950
  i(local) {
@@ -11744,61 +11968,61 @@ function create_each_block_1(ctx) {
11744
11968
  let if_block_anchor;
11745
11969
  let current;
11746
11970
  const if_block_creators = [
11747
- create_if_block_2,
11748
- create_if_block_3,
11749
11971
  create_if_block_4,
11750
11972
  create_if_block_5,
11751
11973
  create_if_block_6,
11752
11974
  create_if_block_7,
11753
11975
  create_if_block_8,
11754
11976
  create_if_block_9,
11755
- create_if_block_10
11977
+ create_if_block_10,
11978
+ create_if_block_11,
11979
+ create_if_block_122
11756
11980
  ];
11757
11981
  const if_blocks = [];
11758
11982
  function select_block_type(ctx2, dirty) {
11759
11983
  if (
11760
11984
  /*item*/
11761
- ctx2[53] === "clicker"
11985
+ ctx2[56] === "clicker"
11762
11986
  )
11763
11987
  return 0;
11764
11988
  if (
11765
11989
  /*item*/
11766
- ctx2[53] === "selector"
11990
+ ctx2[56] === "selector"
11767
11991
  )
11768
11992
  return 1;
11769
11993
  if (
11770
11994
  /*item*/
11771
- ctx2[53] === "pencil"
11995
+ ctx2[56] === "pencil"
11772
11996
  )
11773
11997
  return 2;
11774
11998
  if (
11775
11999
  /*item*/
11776
- ctx2[53] === "text"
12000
+ ctx2[56] === "text"
11777
12001
  )
11778
12002
  return 3;
11779
12003
  if (
11780
12004
  /*item*/
11781
- ctx2[53] === "shapes"
12005
+ ctx2[56] === "shapes"
11782
12006
  )
11783
12007
  return 4;
11784
12008
  if (
11785
12009
  /*item*/
11786
- ctx2[53] === "eraser"
12010
+ ctx2[56] === "eraser"
11787
12011
  )
11788
12012
  return 5;
11789
12013
  if (
11790
12014
  /*item*/
11791
- ctx2[53] === "clear"
12015
+ ctx2[56] === "clear"
11792
12016
  )
11793
12017
  return 6;
11794
12018
  if (
11795
12019
  /*item*/
11796
- ctx2[53] === "hand"
12020
+ ctx2[56] === "hand"
11797
12021
  )
11798
12022
  return 7;
11799
12023
  if (
11800
12024
  /*item*/
11801
- ctx2[53] === "laserPointer"
12025
+ ctx2[56] === "laserPointer"
11802
12026
  )
11803
12027
  return 8;
11804
12028
  return -1;
@@ -11868,7 +12092,7 @@ function create_each_block_1(ctx) {
11868
12092
  }
11869
12093
  };
11870
12094
  }
11871
- function create_if_block_12(ctx) {
12095
+ function create_if_block_3(ctx) {
11872
12096
  let button;
11873
12097
  let current;
11874
12098
  const button_spread_levels = [
@@ -11891,7 +12115,7 @@ function create_if_block_12(ctx) {
11891
12115
  }
11892
12116
  ];
11893
12117
  let button_props = {
11894
- $$slots: { default: [create_default_slot_14] },
12118
+ $$slots: { default: [create_default_slot_53] },
11895
12119
  $$scope: { ctx }
11896
12120
  };
11897
12121
  for (let i = 0; i < button_spread_levels.length; i += 1) {
@@ -11935,7 +12159,7 @@ function create_if_block_12(ctx) {
11935
12159
  ]) : {};
11936
12160
  if (dirty[0] & /*theme*/
11937
12161
  2 | dirty[1] & /*$$scope*/
11938
- 33554432) {
12162
+ 268435456) {
11939
12163
  button_changes.$$scope = { dirty, ctx: ctx2 };
11940
12164
  }
11941
12165
  button.$set(button_changes);
@@ -11955,7 +12179,7 @@ function create_if_block_12(ctx) {
11955
12179
  }
11956
12180
  };
11957
12181
  }
11958
- function create_default_slot_14(ctx) {
12182
+ function create_default_slot_53(ctx) {
11959
12183
  let icons_apps;
11960
12184
  let current;
11961
12185
  icons_apps = new Icons_default.Apps({ props: { theme: (
@@ -11993,7 +12217,7 @@ function create_default_slot_14(ctx) {
11993
12217
  }
11994
12218
  };
11995
12219
  }
11996
- function create_if_block14(ctx) {
12220
+ function create_if_block_2(ctx) {
11997
12221
  let button;
11998
12222
  let current;
11999
12223
  button = new Button_default({
@@ -12008,14 +12232,14 @@ function create_if_block14(ctx) {
12008
12232
  /*disabled*/
12009
12233
  ctx[3]
12010
12234
  ),
12011
- $$slots: { default: [create_default_slot13] },
12235
+ $$slots: { default: [create_default_slot_43] },
12012
12236
  $$scope: { ctx }
12013
12237
  }
12014
12238
  });
12015
12239
  button.$on(
12016
12240
  "click",
12017
12241
  /*scroll_down*/
12018
- ctx[24]
12242
+ ctx[25]
12019
12243
  );
12020
12244
  return {
12021
12245
  c() {
@@ -12037,7 +12261,7 @@ function create_if_block14(ctx) {
12037
12261
  ctx2[3];
12038
12262
  if (dirty[0] & /*theme*/
12039
12263
  2 | dirty[1] & /*$$scope*/
12040
- 33554432) {
12264
+ 268435456) {
12041
12265
  button_changes.$$scope = { dirty, ctx: ctx2 };
12042
12266
  }
12043
12267
  button.$set(button_changes);
@@ -12057,7 +12281,7 @@ function create_if_block14(ctx) {
12057
12281
  }
12058
12282
  };
12059
12283
  }
12060
- function create_default_slot13(ctx) {
12284
+ function create_default_slot_43(ctx) {
12061
12285
  let icons_down;
12062
12286
  let current;
12063
12287
  icons_down = new Icons_default.Down({ props: { theme: (
@@ -12095,6 +12319,366 @@ function create_default_slot13(ctx) {
12095
12319
  }
12096
12320
  };
12097
12321
  }
12322
+ function create_if_block_14(ctx) {
12323
+ let button0;
12324
+ let t_1;
12325
+ let button1;
12326
+ let current;
12327
+ const button0_spread_levels = [
12328
+ { class: name5 + "-panel-switch-btn" },
12329
+ /*btn_props*/
12330
+ ctx[15]
12331
+ ];
12332
+ let button0_props = {
12333
+ $$slots: { default: [create_default_slot_34] },
12334
+ $$scope: { ctx }
12335
+ };
12336
+ for (let i = 0; i < button0_spread_levels.length; i += 1) {
12337
+ button0_props = assign(button0_props, button0_spread_levels[i]);
12338
+ }
12339
+ button0 = new Button_default({ props: button0_props });
12340
+ const button1_spread_levels = [
12341
+ { class: name5 + "-panel-switch-btn" },
12342
+ /*btn_props*/
12343
+ ctx[15]
12344
+ ];
12345
+ let button1_props = {
12346
+ $$slots: { default: [create_default_slot_24] },
12347
+ $$scope: { ctx }
12348
+ };
12349
+ for (let i = 0; i < button1_spread_levels.length; i += 1) {
12350
+ button1_props = assign(button1_props, button1_spread_levels[i]);
12351
+ }
12352
+ button1 = new Button_default({ props: button1_props });
12353
+ button1.$on(
12354
+ "click",
12355
+ /*useLaserPen*/
12356
+ ctx[34]
12357
+ );
12358
+ return {
12359
+ c() {
12360
+ create_component(button0.$$.fragment);
12361
+ t_1 = space();
12362
+ create_component(button1.$$.fragment);
12363
+ },
12364
+ m(target, anchor) {
12365
+ mount_component(button0, target, anchor);
12366
+ insert(target, t_1, anchor);
12367
+ mount_component(button1, target, anchor);
12368
+ current = true;
12369
+ },
12370
+ p(ctx2, dirty) {
12371
+ const button0_changes = dirty[0] & /*btn_props*/
12372
+ 32768 ? get_spread_update(button0_spread_levels, [
12373
+ dirty & /*name*/
12374
+ 0 && { class: name5 + "-panel-switch-btn" },
12375
+ dirty[0] & /*btn_props*/
12376
+ 32768 && get_spread_object(
12377
+ /*btn_props*/
12378
+ ctx2[15]
12379
+ )
12380
+ ]) : {};
12381
+ if (dirty[0] & /*theme*/
12382
+ 2 | dirty[1] & /*$$scope*/
12383
+ 268435456) {
12384
+ button0_changes.$$scope = { dirty, ctx: ctx2 };
12385
+ }
12386
+ button0.$set(button0_changes);
12387
+ const button1_changes = dirty[0] & /*btn_props*/
12388
+ 32768 ? get_spread_update(button1_spread_levels, [
12389
+ dirty & /*name*/
12390
+ 0 && { class: name5 + "-panel-switch-btn" },
12391
+ dirty[0] & /*btn_props*/
12392
+ 32768 && get_spread_object(
12393
+ /*btn_props*/
12394
+ ctx2[15]
12395
+ )
12396
+ ]) : {};
12397
+ if (dirty[0] & /*theme*/
12398
+ 2 | dirty[1] & /*$$scope*/
12399
+ 268435456) {
12400
+ button1_changes.$$scope = { dirty, ctx: ctx2 };
12401
+ }
12402
+ button1.$set(button1_changes);
12403
+ },
12404
+ i(local) {
12405
+ if (current)
12406
+ return;
12407
+ transition_in(button0.$$.fragment, local);
12408
+ transition_in(button1.$$.fragment, local);
12409
+ current = true;
12410
+ },
12411
+ o(local) {
12412
+ transition_out(button0.$$.fragment, local);
12413
+ transition_out(button1.$$.fragment, local);
12414
+ current = false;
12415
+ },
12416
+ d(detaching) {
12417
+ destroy_component(button0, detaching);
12418
+ if (detaching)
12419
+ detach(t_1);
12420
+ destroy_component(button1, detaching);
12421
+ }
12422
+ };
12423
+ }
12424
+ function create_if_block14(ctx) {
12425
+ let button0;
12426
+ let t_1;
12427
+ let button1;
12428
+ let current;
12429
+ const button0_spread_levels = [
12430
+ { class: name5 + "-panel-switch-btn" },
12431
+ /*btn_props*/
12432
+ ctx[15]
12433
+ ];
12434
+ let button0_props = {
12435
+ $$slots: { default: [create_default_slot_14] },
12436
+ $$scope: { ctx }
12437
+ };
12438
+ for (let i = 0; i < button0_spread_levels.length; i += 1) {
12439
+ button0_props = assign(button0_props, button0_spread_levels[i]);
12440
+ }
12441
+ button0 = new Button_default({ props: button0_props });
12442
+ button0.$on(
12443
+ "click",
12444
+ /*pencil*/
12445
+ ctx[28]
12446
+ );
12447
+ const button1_spread_levels = [
12448
+ { class: name5 + "-panel-switch-btn" },
12449
+ /*btn_props*/
12450
+ ctx[15]
12451
+ ];
12452
+ let button1_props = {
12453
+ $$slots: { default: [create_default_slot13] },
12454
+ $$scope: { ctx }
12455
+ };
12456
+ for (let i = 0; i < button1_spread_levels.length; i += 1) {
12457
+ button1_props = assign(button1_props, button1_spread_levels[i]);
12458
+ }
12459
+ button1 = new Button_default({ props: button1_props });
12460
+ return {
12461
+ c() {
12462
+ create_component(button0.$$.fragment);
12463
+ t_1 = space();
12464
+ create_component(button1.$$.fragment);
12465
+ },
12466
+ m(target, anchor) {
12467
+ mount_component(button0, target, anchor);
12468
+ insert(target, t_1, anchor);
12469
+ mount_component(button1, target, anchor);
12470
+ current = true;
12471
+ },
12472
+ p(ctx2, dirty) {
12473
+ const button0_changes = dirty[0] & /*btn_props*/
12474
+ 32768 ? get_spread_update(button0_spread_levels, [
12475
+ dirty & /*name*/
12476
+ 0 && { class: name5 + "-panel-switch-btn" },
12477
+ dirty[0] & /*btn_props*/
12478
+ 32768 && get_spread_object(
12479
+ /*btn_props*/
12480
+ ctx2[15]
12481
+ )
12482
+ ]) : {};
12483
+ if (dirty[0] & /*theme*/
12484
+ 2 | dirty[1] & /*$$scope*/
12485
+ 268435456) {
12486
+ button0_changes.$$scope = { dirty, ctx: ctx2 };
12487
+ }
12488
+ button0.$set(button0_changes);
12489
+ const button1_changes = dirty[0] & /*btn_props*/
12490
+ 32768 ? get_spread_update(button1_spread_levels, [
12491
+ dirty & /*name*/
12492
+ 0 && { class: name5 + "-panel-switch-btn" },
12493
+ dirty[0] & /*btn_props*/
12494
+ 32768 && get_spread_object(
12495
+ /*btn_props*/
12496
+ ctx2[15]
12497
+ )
12498
+ ]) : {};
12499
+ if (dirty[0] & /*theme*/
12500
+ 2 | dirty[1] & /*$$scope*/
12501
+ 268435456) {
12502
+ button1_changes.$$scope = { dirty, ctx: ctx2 };
12503
+ }
12504
+ button1.$set(button1_changes);
12505
+ },
12506
+ i(local) {
12507
+ if (current)
12508
+ return;
12509
+ transition_in(button0.$$.fragment, local);
12510
+ transition_in(button1.$$.fragment, local);
12511
+ current = true;
12512
+ },
12513
+ o(local) {
12514
+ transition_out(button0.$$.fragment, local);
12515
+ transition_out(button1.$$.fragment, local);
12516
+ current = false;
12517
+ },
12518
+ d(detaching) {
12519
+ destroy_component(button0, detaching);
12520
+ if (detaching)
12521
+ detach(t_1);
12522
+ destroy_component(button1, detaching);
12523
+ }
12524
+ };
12525
+ }
12526
+ function create_default_slot_34(ctx) {
12527
+ let icons_pencilfilled;
12528
+ let current;
12529
+ icons_pencilfilled = new Icons_default.PencilFilled({
12530
+ props: { theme: (
12531
+ /*theme*/
12532
+ ctx[1]
12533
+ ), active: true }
12534
+ });
12535
+ return {
12536
+ c() {
12537
+ create_component(icons_pencilfilled.$$.fragment);
12538
+ },
12539
+ m(target, anchor) {
12540
+ mount_component(icons_pencilfilled, target, anchor);
12541
+ current = true;
12542
+ },
12543
+ p(ctx2, dirty) {
12544
+ const icons_pencilfilled_changes = {};
12545
+ if (dirty[0] & /*theme*/
12546
+ 2)
12547
+ icons_pencilfilled_changes.theme = /*theme*/
12548
+ ctx2[1];
12549
+ icons_pencilfilled.$set(icons_pencilfilled_changes);
12550
+ },
12551
+ i(local) {
12552
+ if (current)
12553
+ return;
12554
+ transition_in(icons_pencilfilled.$$.fragment, local);
12555
+ current = true;
12556
+ },
12557
+ o(local) {
12558
+ transition_out(icons_pencilfilled.$$.fragment, local);
12559
+ current = false;
12560
+ },
12561
+ d(detaching) {
12562
+ destroy_component(icons_pencilfilled, detaching);
12563
+ }
12564
+ };
12565
+ }
12566
+ function create_default_slot_24(ctx) {
12567
+ let icons_laserpen;
12568
+ let current;
12569
+ icons_laserpen = new Icons_default.LaserPen({ props: { theme: (
12570
+ /*theme*/
12571
+ ctx[1]
12572
+ ) } });
12573
+ return {
12574
+ c() {
12575
+ create_component(icons_laserpen.$$.fragment);
12576
+ },
12577
+ m(target, anchor) {
12578
+ mount_component(icons_laserpen, target, anchor);
12579
+ current = true;
12580
+ },
12581
+ p(ctx2, dirty) {
12582
+ const icons_laserpen_changes = {};
12583
+ if (dirty[0] & /*theme*/
12584
+ 2)
12585
+ icons_laserpen_changes.theme = /*theme*/
12586
+ ctx2[1];
12587
+ icons_laserpen.$set(icons_laserpen_changes);
12588
+ },
12589
+ i(local) {
12590
+ if (current)
12591
+ return;
12592
+ transition_in(icons_laserpen.$$.fragment, local);
12593
+ current = true;
12594
+ },
12595
+ o(local) {
12596
+ transition_out(icons_laserpen.$$.fragment, local);
12597
+ current = false;
12598
+ },
12599
+ d(detaching) {
12600
+ destroy_component(icons_laserpen, detaching);
12601
+ }
12602
+ };
12603
+ }
12604
+ function create_default_slot_14(ctx) {
12605
+ let icons_pencil;
12606
+ let current;
12607
+ icons_pencil = new Icons_default.Pencil({ props: { theme: (
12608
+ /*theme*/
12609
+ ctx[1]
12610
+ ) } });
12611
+ return {
12612
+ c() {
12613
+ create_component(icons_pencil.$$.fragment);
12614
+ },
12615
+ m(target, anchor) {
12616
+ mount_component(icons_pencil, target, anchor);
12617
+ current = true;
12618
+ },
12619
+ p(ctx2, dirty) {
12620
+ const icons_pencil_changes = {};
12621
+ if (dirty[0] & /*theme*/
12622
+ 2)
12623
+ icons_pencil_changes.theme = /*theme*/
12624
+ ctx2[1];
12625
+ icons_pencil.$set(icons_pencil_changes);
12626
+ },
12627
+ i(local) {
12628
+ if (current)
12629
+ return;
12630
+ transition_in(icons_pencil.$$.fragment, local);
12631
+ current = true;
12632
+ },
12633
+ o(local) {
12634
+ transition_out(icons_pencil.$$.fragment, local);
12635
+ current = false;
12636
+ },
12637
+ d(detaching) {
12638
+ destroy_component(icons_pencil, detaching);
12639
+ }
12640
+ };
12641
+ }
12642
+ function create_default_slot13(ctx) {
12643
+ let icons_laserpenfilled;
12644
+ let current;
12645
+ icons_laserpenfilled = new Icons_default.LaserPenFilled({
12646
+ props: { theme: (
12647
+ /*theme*/
12648
+ ctx[1]
12649
+ ), active: true }
12650
+ });
12651
+ return {
12652
+ c() {
12653
+ create_component(icons_laserpenfilled.$$.fragment);
12654
+ },
12655
+ m(target, anchor) {
12656
+ mount_component(icons_laserpenfilled, target, anchor);
12657
+ current = true;
12658
+ },
12659
+ p(ctx2, dirty) {
12660
+ const icons_laserpenfilled_changes = {};
12661
+ if (dirty[0] & /*theme*/
12662
+ 2)
12663
+ icons_laserpenfilled_changes.theme = /*theme*/
12664
+ ctx2[1];
12665
+ icons_laserpenfilled.$set(icons_laserpenfilled_changes);
12666
+ },
12667
+ i(local) {
12668
+ if (current)
12669
+ return;
12670
+ transition_in(icons_laserpenfilled.$$.fragment, local);
12671
+ current = true;
12672
+ },
12673
+ o(local) {
12674
+ transition_out(icons_laserpenfilled.$$.fragment, local);
12675
+ current = false;
12676
+ },
12677
+ d(detaching) {
12678
+ destroy_component(icons_laserpenfilled, detaching);
12679
+ }
12680
+ };
12681
+ }
12098
12682
  function create_each_block4(ctx) {
12099
12683
  let button;
12100
12684
  let img;
@@ -12106,7 +12690,7 @@ function create_each_block4(ctx) {
12106
12690
  let span;
12107
12691
  let t1_value = (
12108
12692
  /*label*/
12109
- ctx[46] + ""
12693
+ ctx[49] + ""
12110
12694
  );
12111
12695
  let t1;
12112
12696
  let span_class_value;
@@ -12128,40 +12712,40 @@ function create_each_block4(ctx) {
12128
12712
  attr(img, "class", img_class_value = name5 + "-app-btn-icon " + /*theme*/
12129
12713
  ctx[1]);
12130
12714
  if (!src_url_equal(img.src, img_src_value = /*icon*/
12131
- ctx[45]))
12715
+ ctx[48]))
12132
12716
  attr(img, "src", img_src_value);
12133
12717
  attr(img, "alt", img_alt_value = /*kind*/
12134
- ctx[47]);
12718
+ ctx[50]);
12135
12719
  attr(img, "title", img_title_value = /*label*/
12136
- ctx[46]);
12720
+ ctx[49]);
12137
12721
  attr(span, "class", span_class_value = name5 + "-app-btn-text " + /*theme*/
12138
12722
  ctx[1]);
12139
12723
  attr(button, "class", button_class_value = name5 + "-app-btn " + /*kind*/
12140
- ctx[47] + " " + /*theme*/
12724
+ ctx[50] + " " + /*theme*/
12141
12725
  ctx[1]);
12142
12726
  attr(button, "title", button_title_value = /*label*/
12143
- ctx[46] + /*state*/
12144
- (ctx[49] && /*state*/
12145
- ctx[49].reason ? ": " + /*state*/
12146
- ctx[49].reason : ""));
12727
+ ctx[49] + /*state*/
12728
+ (ctx[52] && /*state*/
12729
+ ctx[52].reason ? ": " + /*state*/
12730
+ ctx[52].reason : ""));
12147
12731
  attr(button, "data-app-kind", button_data_app_kind_value = /*netless_app*/
12148
- ctx[44].kind);
12732
+ ctx[47].kind);
12149
12733
  button.disabled = button_disabled_value = /*state*/
12150
- ctx[49] && /*state*/
12151
- ctx[49].status !== "idle";
12734
+ ctx[52] && /*state*/
12735
+ ctx[52].status !== "idle";
12152
12736
  toggle_class(
12153
12737
  button,
12154
12738
  "is-loading",
12155
12739
  /*state*/
12156
- ctx[49] && /*state*/
12157
- ctx[49].status === "loading"
12740
+ ctx[52] && /*state*/
12741
+ ctx[52].status === "loading"
12158
12742
  );
12159
12743
  toggle_class(
12160
12744
  button,
12161
12745
  "is-failed",
12162
12746
  /*state*/
12163
- ctx[49] && /*state*/
12164
- ctx[49].status === "failed"
12747
+ ctx[52] && /*state*/
12748
+ ctx[52].status === "failed"
12165
12749
  );
12166
12750
  },
12167
12751
  m(target, anchor) {
@@ -12175,9 +12759,9 @@ function create_each_block4(ctx) {
12175
12759
  dispose = listen(button, "click", function() {
12176
12760
  if (is_function(
12177
12761
  /*on_click*/
12178
- ctx[50]
12762
+ ctx[53]
12179
12763
  ))
12180
- ctx[50].apply(this, arguments);
12764
+ ctx[53].apply(this, arguments);
12181
12765
  });
12182
12766
  mounted = true;
12183
12767
  }
@@ -12190,23 +12774,23 @@ function create_each_block4(ctx) {
12190
12774
  attr(img, "class", img_class_value);
12191
12775
  }
12192
12776
  if (dirty[0] & /*$apps*/
12193
- 1048576 && !src_url_equal(img.src, img_src_value = /*icon*/
12194
- ctx[45])) {
12777
+ 2097152 && !src_url_equal(img.src, img_src_value = /*icon*/
12778
+ ctx[48])) {
12195
12779
  attr(img, "src", img_src_value);
12196
12780
  }
12197
12781
  if (dirty[0] & /*$apps*/
12198
- 1048576 && img_alt_value !== (img_alt_value = /*kind*/
12199
- ctx[47])) {
12782
+ 2097152 && img_alt_value !== (img_alt_value = /*kind*/
12783
+ ctx[50])) {
12200
12784
  attr(img, "alt", img_alt_value);
12201
12785
  }
12202
12786
  if (dirty[0] & /*$apps*/
12203
- 1048576 && img_title_value !== (img_title_value = /*label*/
12204
- ctx[46])) {
12787
+ 2097152 && img_title_value !== (img_title_value = /*label*/
12788
+ ctx[49])) {
12205
12789
  attr(img, "title", img_title_value);
12206
12790
  }
12207
12791
  if (dirty[0] & /*$apps*/
12208
- 1048576 && t1_value !== (t1_value = /*label*/
12209
- ctx[46] + ""))
12792
+ 2097152 && t1_value !== (t1_value = /*label*/
12793
+ ctx[49] + ""))
12210
12794
  set_data(t1, t1_value);
12211
12795
  if (dirty[0] & /*theme*/
12212
12796
  2 && span_class_value !== (span_class_value = name5 + "-app-btn-text " + /*theme*/
@@ -12214,48 +12798,48 @@ function create_each_block4(ctx) {
12214
12798
  attr(span, "class", span_class_value);
12215
12799
  }
12216
12800
  if (dirty[0] & /*$apps, theme*/
12217
- 1048578 && button_class_value !== (button_class_value = name5 + "-app-btn " + /*kind*/
12218
- ctx[47] + " " + /*theme*/
12801
+ 2097154 && button_class_value !== (button_class_value = name5 + "-app-btn " + /*kind*/
12802
+ ctx[50] + " " + /*theme*/
12219
12803
  ctx[1])) {
12220
12804
  attr(button, "class", button_class_value);
12221
12805
  }
12222
12806
  if (dirty[0] & /*$apps, $status*/
12223
- 3145728 && button_title_value !== (button_title_value = /*label*/
12224
- ctx[46] + /*state*/
12225
- (ctx[49] && /*state*/
12226
- ctx[49].reason ? ": " + /*state*/
12227
- ctx[49].reason : ""))) {
12807
+ 6291456 && button_title_value !== (button_title_value = /*label*/
12808
+ ctx[49] + /*state*/
12809
+ (ctx[52] && /*state*/
12810
+ ctx[52].reason ? ": " + /*state*/
12811
+ ctx[52].reason : ""))) {
12228
12812
  attr(button, "title", button_title_value);
12229
12813
  }
12230
12814
  if (dirty[0] & /*$apps*/
12231
- 1048576 && button_data_app_kind_value !== (button_data_app_kind_value = /*netless_app*/
12232
- ctx[44].kind)) {
12815
+ 2097152 && button_data_app_kind_value !== (button_data_app_kind_value = /*netless_app*/
12816
+ ctx[47].kind)) {
12233
12817
  attr(button, "data-app-kind", button_data_app_kind_value);
12234
12818
  }
12235
12819
  if (dirty[0] & /*$status, $apps*/
12236
- 3145728 && button_disabled_value !== (button_disabled_value = /*state*/
12237
- ctx[49] && /*state*/
12238
- ctx[49].status !== "idle")) {
12820
+ 6291456 && button_disabled_value !== (button_disabled_value = /*state*/
12821
+ ctx[52] && /*state*/
12822
+ ctx[52].status !== "idle")) {
12239
12823
  button.disabled = button_disabled_value;
12240
12824
  }
12241
12825
  if (dirty[0] & /*$apps, theme, $status, $apps*/
12242
- 3145730) {
12826
+ 6291458) {
12243
12827
  toggle_class(
12244
12828
  button,
12245
12829
  "is-loading",
12246
12830
  /*state*/
12247
- ctx[49] && /*state*/
12248
- ctx[49].status === "loading"
12831
+ ctx[52] && /*state*/
12832
+ ctx[52].status === "loading"
12249
12833
  );
12250
12834
  }
12251
12835
  if (dirty[0] & /*$apps, theme, $status, $apps*/
12252
- 3145730) {
12836
+ 6291458) {
12253
12837
  toggle_class(
12254
12838
  button,
12255
12839
  "is-failed",
12256
12840
  /*state*/
12257
- ctx[49] && /*state*/
12258
- ctx[49].status === "failed"
12841
+ ctx[52] && /*state*/
12842
+ ctx[52].status === "failed"
12259
12843
  );
12260
12844
  }
12261
12845
  },
@@ -12267,42 +12851,46 @@ function create_each_block4(ctx) {
12267
12851
  }
12268
12852
  };
12269
12853
  }
12270
- function create_fragment67(ctx) {
12854
+ function create_fragment69(ctx) {
12271
12855
  let t0;
12272
12856
  let div0;
12273
12857
  let t1;
12274
12858
  let scrollHeight_action;
12275
12859
  let t2;
12276
12860
  let t3;
12277
- let div8;
12278
- let div2;
12279
- let strokewidth0;
12280
- let t4;
12861
+ let div9;
12862
+ let div3;
12281
12863
  let div1;
12864
+ let current_block_type_index;
12865
+ let if_block3;
12866
+ let t4;
12867
+ let strokewidth0;
12282
12868
  let t5;
12283
- let strokecolor0;
12869
+ let div2;
12284
12870
  let t6;
12285
- let div3;
12286
- let textcolor;
12871
+ let strokecolor0;
12287
12872
  let t7;
12288
- let div6;
12289
- let selectshapes;
12290
- let t8;
12291
12873
  let div4;
12874
+ let textcolor;
12875
+ let t8;
12876
+ let div7;
12877
+ let selectshapes;
12292
12878
  let t9;
12293
- let strokewidth1;
12294
- let t10;
12295
12879
  let div5;
12880
+ let t10;
12881
+ let strokewidth1;
12296
12882
  let t11;
12297
- let strokecolor1;
12883
+ let div6;
12298
12884
  let t12;
12299
- let div7;
12885
+ let strokecolor1;
12886
+ let t13;
12887
+ let div8;
12300
12888
  let current;
12301
12889
  let mounted;
12302
12890
  let dispose;
12303
12891
  let if_block0 = (
12304
12892
  /*scrollable*/
12305
- ctx[5] && create_if_block_11(ctx)
12893
+ ctx[5] && create_if_block_13(ctx)
12306
12894
  );
12307
12895
  let each_value_1 = (
12308
12896
  /*items*/
@@ -12316,11 +12904,27 @@ function create_fragment67(ctx) {
12316
12904
  each_blocks_1[i] = null;
12317
12905
  });
12318
12906
  let if_block1 = !/*hide_apps*/
12319
- ctx[8] && create_if_block_12(ctx);
12907
+ ctx[8] && create_if_block_3(ctx);
12320
12908
  let if_block2 = (
12321
12909
  /*scrollable*/
12322
- ctx[5] && create_if_block14(ctx)
12910
+ ctx[5] && create_if_block_2(ctx)
12323
12911
  );
12912
+ const if_block_creators = [create_if_block14, create_if_block_14];
12913
+ const if_blocks = [];
12914
+ function select_block_type_1(ctx2, dirty) {
12915
+ var _a, _b;
12916
+ if (!!/*app*/
12917
+ ((_a = ctx2[0]) == null ? void 0 : _a.appliancePlugin) && /*hasUseLaserPen*/
12918
+ ctx2[16])
12919
+ return 0;
12920
+ if (!!/*app*/
12921
+ ((_b = ctx2[0]) == null ? void 0 : _b.appliancePlugin))
12922
+ return 1;
12923
+ return -1;
12924
+ }
12925
+ if (~(current_block_type_index = select_block_type_1(ctx))) {
12926
+ if_block3 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
12927
+ }
12324
12928
  strokewidth0 = new StrokeWidth_default({
12325
12929
  props: {
12326
12930
  app: (
@@ -12435,7 +13039,7 @@ function create_fragment67(ctx) {
12435
13039
  });
12436
13040
  let each_value = (
12437
13041
  /*$apps*/
12438
- ctx[20]
13042
+ ctx[21]
12439
13043
  );
12440
13044
  let each_blocks = [];
12441
13045
  for (let i = 0; i < each_value.length; i += 1) {
@@ -12457,29 +13061,33 @@ function create_fragment67(ctx) {
12457
13061
  if (if_block2)
12458
13062
  if_block2.c();
12459
13063
  t3 = space();
12460
- div8 = element("div");
12461
- div2 = element("div");
12462
- create_component(strokewidth0.$$.fragment);
12463
- t4 = space();
13064
+ div9 = element("div");
13065
+ div3 = element("div");
12464
13066
  div1 = element("div");
13067
+ if (if_block3)
13068
+ if_block3.c();
13069
+ t4 = space();
13070
+ create_component(strokewidth0.$$.fragment);
12465
13071
  t5 = space();
12466
- create_component(strokecolor0.$$.fragment);
13072
+ div2 = element("div");
12467
13073
  t6 = space();
12468
- div3 = element("div");
12469
- create_component(textcolor.$$.fragment);
13074
+ create_component(strokecolor0.$$.fragment);
12470
13075
  t7 = space();
12471
- div6 = element("div");
12472
- create_component(selectshapes.$$.fragment);
12473
- t8 = space();
12474
13076
  div4 = element("div");
13077
+ create_component(textcolor.$$.fragment);
13078
+ t8 = space();
13079
+ div7 = element("div");
13080
+ create_component(selectshapes.$$.fragment);
12475
13081
  t9 = space();
12476
- create_component(strokewidth1.$$.fragment);
12477
- t10 = space();
12478
13082
  div5 = element("div");
13083
+ t10 = space();
13084
+ create_component(strokewidth1.$$.fragment);
12479
13085
  t11 = space();
12480
- create_component(strokecolor1.$$.fragment);
13086
+ div6 = element("div");
12481
13087
  t12 = space();
12482
- div7 = element("div");
13088
+ create_component(strokecolor1.$$.fragment);
13089
+ t13 = space();
13090
+ div8 = element("div");
12483
13091
  for (let i = 0; i < each_blocks.length; i += 1) {
12484
13092
  each_blocks[i].c();
12485
13093
  }
@@ -12490,21 +13098,22 @@ function create_fragment67(ctx) {
12490
13098
  /*scrollable*/
12491
13099
  ctx[5]
12492
13100
  );
12493
- attr(div1, "class", name5 + "-panel-divider");
12494
- attr(div2, "class", name5 + "-panel pencil");
12495
- attr(div3, "class", name5 + "-panel text");
12496
- attr(div4, "class", name5 + "-panel-divider");
13101
+ attr(div1, "class", name5 + "-panel-switch-pencil");
13102
+ attr(div2, "class", name5 + "-panel-divider");
13103
+ attr(div3, "class", name5 + "-panel pencil");
13104
+ attr(div4, "class", name5 + "-panel text");
12497
13105
  attr(div5, "class", name5 + "-panel-divider");
12498
- attr(div6, "class", name5 + "-panel shapes");
12499
- attr(div7, "class", name5 + "-panel apps");
13106
+ attr(div6, "class", name5 + "-panel-divider");
13107
+ attr(div7, "class", name5 + "-panel shapes");
13108
+ attr(div8, "class", name5 + "-panel apps");
12500
13109
  set_style(
12501
- div7,
13110
+ div8,
12502
13111
  "--n",
12503
13112
  /*$apps*/
12504
- ctx[20].length
13113
+ ctx[21].length
12505
13114
  );
12506
- attr(div8, "class", name5 + "-panel-wrapper");
12507
- set_style(div8, "display", "none");
13115
+ attr(div9, "class", name5 + "-panel-wrapper");
13116
+ set_style(div9, "display", "none");
12508
13117
  },
12509
13118
  m(target, anchor) {
12510
13119
  if (if_block0)
@@ -12523,38 +13132,43 @@ function create_fragment67(ctx) {
12523
13132
  if (if_block2)
12524
13133
  if_block2.m(target, anchor);
12525
13134
  insert(target, t3, anchor);
12526
- insert(target, div8, anchor);
12527
- append(div8, div2);
12528
- mount_component(strokewidth0, div2, null);
12529
- append(div2, t4);
12530
- append(div2, div1);
12531
- append(div2, t5);
12532
- mount_component(strokecolor0, div2, null);
12533
- ctx[37](div2);
12534
- append(div8, t6);
12535
- append(div8, div3);
12536
- mount_component(textcolor, div3, null);
12537
- ctx[38](div3);
12538
- append(div8, t7);
12539
- append(div8, div6);
12540
- mount_component(selectshapes, div6, null);
12541
- append(div6, t8);
12542
- append(div6, div4);
12543
- append(div6, t9);
12544
- mount_component(strokewidth1, div6, null);
12545
- append(div6, t10);
12546
- append(div6, div5);
12547
- append(div6, t11);
12548
- mount_component(strokecolor1, div6, null);
12549
- ctx[39](div6);
12550
- append(div8, t12);
12551
- append(div8, div7);
13135
+ insert(target, div9, anchor);
13136
+ append(div9, div3);
13137
+ append(div3, div1);
13138
+ if (~current_block_type_index) {
13139
+ if_blocks[current_block_type_index].m(div1, null);
13140
+ }
13141
+ append(div3, t4);
13142
+ mount_component(strokewidth0, div3, null);
13143
+ append(div3, t5);
13144
+ append(div3, div2);
13145
+ append(div3, t6);
13146
+ mount_component(strokecolor0, div3, null);
13147
+ ctx[40](div3);
13148
+ append(div9, t7);
13149
+ append(div9, div4);
13150
+ mount_component(textcolor, div4, null);
13151
+ ctx[41](div4);
13152
+ append(div9, t8);
13153
+ append(div9, div7);
13154
+ mount_component(selectshapes, div7, null);
13155
+ append(div7, t9);
13156
+ append(div7, div5);
13157
+ append(div7, t10);
13158
+ mount_component(strokewidth1, div7, null);
13159
+ append(div7, t11);
13160
+ append(div7, div6);
13161
+ append(div7, t12);
13162
+ mount_component(strokecolor1, div7, null);
13163
+ ctx[42](div7);
13164
+ append(div9, t13);
13165
+ append(div9, div8);
12552
13166
  for (let i = 0; i < each_blocks.length; i += 1) {
12553
13167
  if (each_blocks[i]) {
12554
- each_blocks[i].m(div7, null);
13168
+ each_blocks[i].m(div8, null);
12555
13169
  }
12556
13170
  }
12557
- ctx[41](div7);
13171
+ ctx[44](div8);
12558
13172
  current = true;
12559
13173
  if (!mounted) {
12560
13174
  dispose = [
@@ -12568,7 +13182,7 @@ function create_fragment67(ctx) {
12568
13182
  null,
12569
13183
  div0,
12570
13184
  /*top*/
12571
- ctx[22]
13185
+ ctx[23]
12572
13186
  ))
12573
13187
  ];
12574
13188
  mounted = true;
@@ -12586,7 +13200,7 @@ function create_fragment67(ctx) {
12586
13200
  transition_in(if_block0, 1);
12587
13201
  }
12588
13202
  } else {
12589
- if_block0 = create_if_block_11(ctx2);
13203
+ if_block0 = create_if_block_13(ctx2);
12590
13204
  if_block0.c();
12591
13205
  transition_in(if_block0, 1);
12592
13206
  if_block0.m(t0.parentNode, t0);
@@ -12598,9 +13212,9 @@ function create_fragment67(ctx) {
12598
13212
  });
12599
13213
  check_outros();
12600
13214
  }
12601
- if (dirty[0] & /*appliance, theme, btn_props, c, clicker, items, selector, pencil_panel, pencil, text_panel, text, app, t, shapes_panel, eraser, hand*/
12602
- 2114632835 | dirty[1] & /*clear, laserPointer*/
12603
- 3) {
13215
+ if (dirty[0] & /*appliance, theme, btn_props, c, clicker, items, selector, hasUseLaserPen, pencil_panel, pencil, text_panel, text, app, t, shapes_panel, eraser*/
13216
+ 2081799299 | dirty[1] & /*clear, hand, laserPointer*/
13217
+ 7) {
12604
13218
  each_value_1 = /*items*/
12605
13219
  ctx2[7];
12606
13220
  let i;
@@ -12631,7 +13245,7 @@ function create_fragment67(ctx) {
12631
13245
  transition_in(if_block1, 1);
12632
13246
  }
12633
13247
  } else {
12634
- if_block1 = create_if_block_12(ctx2);
13248
+ if_block1 = create_if_block_3(ctx2);
12635
13249
  if_block1.c();
12636
13250
  transition_in(if_block1, 1);
12637
13251
  if_block1.m(div0, null);
@@ -12670,7 +13284,7 @@ function create_fragment67(ctx) {
12670
13284
  transition_in(if_block2, 1);
12671
13285
  }
12672
13286
  } else {
12673
- if_block2 = create_if_block14(ctx2);
13287
+ if_block2 = create_if_block_2(ctx2);
12674
13288
  if_block2.c();
12675
13289
  transition_in(if_block2, 1);
12676
13290
  if_block2.m(t3.parentNode, t3);
@@ -12682,6 +13296,34 @@ function create_fragment67(ctx) {
12682
13296
  });
12683
13297
  check_outros();
12684
13298
  }
13299
+ let previous_block_index = current_block_type_index;
13300
+ current_block_type_index = select_block_type_1(ctx2);
13301
+ if (current_block_type_index === previous_block_index) {
13302
+ if (~current_block_type_index) {
13303
+ if_blocks[current_block_type_index].p(ctx2, dirty);
13304
+ }
13305
+ } else {
13306
+ if (if_block3) {
13307
+ group_outros();
13308
+ transition_out(if_blocks[previous_block_index], 1, 1, () => {
13309
+ if_blocks[previous_block_index] = null;
13310
+ });
13311
+ check_outros();
13312
+ }
13313
+ if (~current_block_type_index) {
13314
+ if_block3 = if_blocks[current_block_type_index];
13315
+ if (!if_block3) {
13316
+ if_block3 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2);
13317
+ if_block3.c();
13318
+ } else {
13319
+ if_block3.p(ctx2, dirty);
13320
+ }
13321
+ transition_in(if_block3, 1);
13322
+ if_block3.m(div1, null);
13323
+ } else {
13324
+ if_block3 = null;
13325
+ }
13326
+ }
12685
13327
  const strokewidth0_changes = {};
12686
13328
  if (dirty[0] & /*app*/
12687
13329
  1)
@@ -12783,9 +13425,9 @@ function create_fragment67(ctx) {
12783
13425
  ctx2[9];
12784
13426
  strokecolor1.$set(strokecolor1_changes);
12785
13427
  if (dirty[0] & /*$apps, theme, $status, app*/
12786
- 3145731) {
13428
+ 6291459) {
12787
13429
  each_value = /*$apps*/
12788
- ctx2[20];
13430
+ ctx2[21];
12789
13431
  let i;
12790
13432
  for (i = 0; i < each_value.length; i += 1) {
12791
13433
  const child_ctx = get_each_context4(ctx2, each_value, i);
@@ -12794,7 +13436,7 @@ function create_fragment67(ctx) {
12794
13436
  } else {
12795
13437
  each_blocks[i] = create_each_block4(child_ctx);
12796
13438
  each_blocks[i].c();
12797
- each_blocks[i].m(div7, null);
13439
+ each_blocks[i].m(div8, null);
12798
13440
  }
12799
13441
  }
12800
13442
  for (; i < each_blocks.length; i += 1) {
@@ -12803,12 +13445,12 @@ function create_fragment67(ctx) {
12803
13445
  each_blocks.length = each_value.length;
12804
13446
  }
12805
13447
  if (!current || dirty[0] & /*$apps*/
12806
- 1048576) {
13448
+ 2097152) {
12807
13449
  set_style(
12808
- div7,
13450
+ div8,
12809
13451
  "--n",
12810
13452
  /*$apps*/
12811
- ctx2[20].length
13453
+ ctx2[21].length
12812
13454
  );
12813
13455
  }
12814
13456
  },
@@ -12821,6 +13463,7 @@ function create_fragment67(ctx) {
12821
13463
  }
12822
13464
  transition_in(if_block1);
12823
13465
  transition_in(if_block2);
13466
+ transition_in(if_block3);
12824
13467
  transition_in(strokewidth0.$$.fragment, local);
12825
13468
  transition_in(strokecolor0.$$.fragment, local);
12826
13469
  transition_in(textcolor.$$.fragment, local);
@@ -12837,6 +13480,7 @@ function create_fragment67(ctx) {
12837
13480
  }
12838
13481
  transition_out(if_block1);
12839
13482
  transition_out(if_block2);
13483
+ transition_out(if_block3);
12840
13484
  transition_out(strokewidth0.$$.fragment, local);
12841
13485
  transition_out(strokecolor0.$$.fragment, local);
12842
13486
  transition_out(textcolor.$$.fragment, local);
@@ -12862,25 +13506,28 @@ function create_fragment67(ctx) {
12862
13506
  if (detaching)
12863
13507
  detach(t3);
12864
13508
  if (detaching)
12865
- detach(div8);
13509
+ detach(div9);
13510
+ if (~current_block_type_index) {
13511
+ if_blocks[current_block_type_index].d();
13512
+ }
12866
13513
  destroy_component(strokewidth0);
12867
13514
  destroy_component(strokecolor0);
12868
- ctx[37](null);
13515
+ ctx[40](null);
12869
13516
  destroy_component(textcolor);
12870
- ctx[38](null);
13517
+ ctx[41](null);
12871
13518
  destroy_component(selectshapes);
12872
13519
  destroy_component(strokewidth1);
12873
13520
  destroy_component(strokecolor1);
12874
- ctx[39](null);
13521
+ ctx[42](null);
12875
13522
  destroy_each(each_blocks, detaching);
12876
- ctx[41](null);
13523
+ ctx[44](null);
12877
13524
  mounted = false;
12878
13525
  run_all(dispose);
12879
13526
  }
12880
13527
  };
12881
13528
  }
12882
13529
  var name5 = "fastboard-toolbar";
12883
- function instance67($$self, $$props, $$invalidate) {
13530
+ function instance69($$self, $$props, $$invalidate) {
12884
13531
  let t;
12885
13532
  let hotkeys;
12886
13533
  let c;
@@ -12888,14 +13535,16 @@ function instance67($$self, $$props, $$invalidate) {
12888
13535
  let appliance;
12889
13536
  let status;
12890
13537
  let max_scroll;
13538
+ let hasAppliancePlugin;
13539
+ let hasUseLaserPen;
12891
13540
  let $top;
12892
- 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);
12893
- let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(36, $memberState = $$value)), memberState);
13541
+ let $memberState, $$unsubscribe_memberState = noop, $$subscribe_memberState = () => ($$unsubscribe_memberState(), $$unsubscribe_memberState = subscribe(memberState, ($$value) => $$invalidate(38, $memberState = $$value)), memberState);
13542
+ 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);
12894
13543
  let $apps;
12895
- let $status, $$unsubscribe_status = noop, $$subscribe_status = () => ($$unsubscribe_status(), $$unsubscribe_status = subscribe(status, ($$value) => $$invalidate(21, $status = $$value)), status);
12896
- component_subscribe($$self, apps, ($$value) => $$invalidate(20, $apps = $$value));
12897
- $$self.$$.on_destroy.push(() => $$unsubscribe_scroll_height());
13544
+ let $status, $$unsubscribe_status = noop, $$subscribe_status = () => ($$unsubscribe_status(), $$unsubscribe_status = subscribe(status, ($$value) => $$invalidate(22, $status = $$value)), status);
13545
+ component_subscribe($$self, apps, ($$value) => $$invalidate(21, $apps = $$value));
12898
13546
  $$self.$$.on_destroy.push(() => $$unsubscribe_memberState());
13547
+ $$self.$$.on_destroy.push(() => $$unsubscribe_scroll_height());
12899
13548
  $$self.$$.on_destroy.push(() => $$unsubscribe_status());
12900
13549
  let { app = null } = $$props;
12901
13550
  let { theme = "light" } = $$props;
@@ -12915,7 +13564,7 @@ function instance67($$self, $$props, $$invalidate) {
12915
13564
  let apps_panel;
12916
13565
  let btn_props;
12917
13566
  let top = writable(0);
12918
- component_subscribe($$self, top, (value) => $$invalidate(43, $top = value));
13567
+ component_subscribe($$self, top, (value) => $$invalidate(46, $top = value));
12919
13568
  function scroll_up() {
12920
13569
  set_store_value(top, $top = clamp($top - 32 - 4, 0, max_scroll), $top);
12921
13570
  }
@@ -12946,19 +13595,22 @@ function instance67($$self, $$props, $$invalidate) {
12946
13595
  function clear() {
12947
13596
  app == null ? void 0 : app.cleanCurrentScene();
12948
13597
  }
12949
- function div2_binding($$value) {
13598
+ function useLaserPen() {
13599
+ app == null ? void 0 : app.setAppliance("laserPen");
13600
+ }
13601
+ function div3_binding($$value) {
12950
13602
  binding_callbacks[$$value ? "unshift" : "push"](() => {
12951
13603
  pencil_panel = $$value;
12952
13604
  $$invalidate(11, pencil_panel);
12953
13605
  });
12954
13606
  }
12955
- function div3_binding($$value) {
13607
+ function div4_binding($$value) {
12956
13608
  binding_callbacks[$$value ? "unshift" : "push"](() => {
12957
13609
  text_panel = $$value;
12958
13610
  $$invalidate(12, text_panel);
12959
13611
  });
12960
13612
  }
12961
- function div6_binding($$value) {
13613
+ function div7_binding($$value) {
12962
13614
  binding_callbacks[$$value ? "unshift" : "push"](() => {
12963
13615
  shapes_panel = $$value;
12964
13616
  $$invalidate(13, shapes_panel);
@@ -12968,7 +13620,7 @@ function instance67($$self, $$props, $$invalidate) {
12968
13620
  app && onClick(app);
12969
13621
  tippy_hide_all();
12970
13622
  };
12971
- function div7_binding($$value) {
13623
+ function div8_binding($$value) {
12972
13624
  binding_callbacks[$$value ? "unshift" : "push"](() => {
12973
13625
  apps_panel = $$value;
12974
13626
  $$invalidate(14, apps_panel);
@@ -12986,7 +13638,7 @@ function instance67($$self, $$props, $$invalidate) {
12986
13638
  if ("scroll_height" in $$props2)
12987
13639
  $$subscribe_scroll_height($$invalidate(4, scroll_height = $$props2.scroll_height));
12988
13640
  if ("computed_height" in $$props2)
12989
- $$invalidate(33, computed_height = $$props2.computed_height);
13641
+ $$invalidate(35, computed_height = $$props2.computed_height);
12990
13642
  if ("scrollable" in $$props2)
12991
13643
  $$invalidate(5, scrollable = $$props2.scrollable);
12992
13644
  if ("placement" in $$props2)
@@ -13015,12 +13667,12 @@ function instance67($$self, $$props, $$invalidate) {
13015
13667
  }
13016
13668
  if ($$self.$$.dirty[0] & /*app*/
13017
13669
  1) {
13018
- $$invalidate(34, hotkeys = app == null ? void 0 : app.hotKeys);
13670
+ $$invalidate(37, hotkeys = app == null ? void 0 : app.hotKeys);
13019
13671
  }
13020
13672
  if ($$self.$$.dirty[0] & /*t*/
13021
13673
  1024 | $$self.$$.dirty[1] & /*hotkeys*/
13022
- 8) {
13023
- $$invalidate(19, c = {
13674
+ 64) {
13675
+ $$invalidate(20, c = {
13024
13676
  clicker: tooltip(t.clicker, hotkeys == null ? void 0 : hotkeys.changeToClick),
13025
13677
  selector: tooltip(t.selector, hotkeys == null ? void 0 : hotkeys.changeToSelector),
13026
13678
  pencil: tooltip(t.pencil, hotkeys == null ? void 0 : hotkeys.changeToPencil),
@@ -13032,21 +13684,29 @@ function instance67($$self, $$props, $$invalidate) {
13032
13684
  }
13033
13685
  if ($$self.$$.dirty[0] & /*app*/
13034
13686
  1) {
13035
- $$subscribe_memberState($$invalidate(18, memberState = app == null ? void 0 : app.memberState));
13687
+ $$subscribe_memberState($$invalidate(19, memberState = app == null ? void 0 : app.memberState));
13036
13688
  }
13037
13689
  if ($$self.$$.dirty[1] & /*$memberState*/
13038
- 32) {
13039
- $$invalidate(17, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
13690
+ 128) {
13691
+ $$invalidate(18, appliance = $memberState == null ? void 0 : $memberState.currentApplianceName);
13040
13692
  }
13041
13693
  if ($$self.$$.dirty[0] & /*app*/
13042
13694
  1) {
13043
- $$subscribe_status($$invalidate(16, status = app == null ? void 0 : app.appsStatus));
13695
+ $$subscribe_status($$invalidate(17, status = app == null ? void 0 : app.appsStatus));
13044
13696
  }
13045
13697
  if ($$self.$$.dirty[0] & /*scrollable*/
13046
13698
  32 | $$self.$$.dirty[1] & /*$scroll_height, computed_height*/
13047
- 20) {
13699
+ 272) {
13048
13700
  max_scroll = scrollable ? $scroll_height + (32 + 8) * 2 - computed_height : 0;
13049
13701
  }
13702
+ if ($$self.$$.dirty[0] & /*app*/
13703
+ 1) {
13704
+ $$invalidate(36, hasAppliancePlugin = !!(app == null ? void 0 : app.appliancePlugin));
13705
+ }
13706
+ if ($$self.$$.dirty[1] & /*hasAppliancePlugin, $memberState*/
13707
+ 160) {
13708
+ $$invalidate(16, hasUseLaserPen = hasAppliancePlugin && ($memberState == null ? void 0 : $memberState.useLaserPen) || false);
13709
+ }
13050
13710
  };
13051
13711
  return [
13052
13712
  app,
@@ -13065,6 +13725,7 @@ function instance67($$self, $$props, $$invalidate) {
13065
13725
  shapes_panel,
13066
13726
  apps_panel,
13067
13727
  btn_props,
13728
+ hasUseLaserPen,
13068
13729
  status,
13069
13730
  appliance,
13070
13731
  memberState,
@@ -13082,15 +13743,17 @@ function instance67($$self, $$props, $$invalidate) {
13082
13743
  hand,
13083
13744
  laserPointer,
13084
13745
  clear,
13746
+ useLaserPen,
13085
13747
  computed_height,
13748
+ hasAppliancePlugin,
13086
13749
  hotkeys,
13087
- $scroll_height,
13088
13750
  $memberState,
13089
- div2_binding,
13751
+ $scroll_height,
13090
13752
  div3_binding,
13091
- div6_binding,
13753
+ div4_binding,
13754
+ div7_binding,
13092
13755
  func,
13093
- div7_binding
13756
+ div8_binding
13094
13757
  ];
13095
13758
  }
13096
13759
  var Contents = class extends SvelteComponent {
@@ -13099,8 +13762,8 @@ var Contents = class extends SvelteComponent {
13099
13762
  init(
13100
13763
  this,
13101
13764
  options,
13102
- instance67,
13103
- create_fragment67,
13765
+ instance69,
13766
+ create_fragment69,
13104
13767
  safe_not_equal,
13105
13768
  {
13106
13769
  app: 0,
@@ -13108,7 +13771,7 @@ var Contents = class extends SvelteComponent {
13108
13771
  language: 2,
13109
13772
  disabled: 3,
13110
13773
  scroll_height: 4,
13111
- computed_height: 33,
13774
+ computed_height: 35,
13112
13775
  scrollable: 5,
13113
13776
  placement: 6,
13114
13777
  items: 7,
@@ -13179,7 +13842,7 @@ function create_if_block15(ctx) {
13179
13842
  }
13180
13843
  };
13181
13844
  }
13182
- function create_fragment68(ctx) {
13845
+ function create_fragment70(ctx) {
13183
13846
  let div1;
13184
13847
  let div0;
13185
13848
  let contents;
@@ -13449,7 +14112,7 @@ function create_fragment68(ctx) {
13449
14112
  };
13450
14113
  }
13451
14114
  var name6 = "fastboard-toolbar";
13452
- function instance68($$self, $$props, $$invalidate) {
14115
+ function instance70($$self, $$props, $$invalidate) {
13453
14116
  let writable2;
13454
14117
  let phase;
13455
14118
  let disabled;
@@ -13568,7 +14231,7 @@ function instance68($$self, $$props, $$invalidate) {
13568
14231
  var Toolbar = class extends SvelteComponent {
13569
14232
  constructor(options) {
13570
14233
  super();
13571
- init(this, options, instance68, create_fragment68, safe_not_equal, {
14234
+ init(this, options, instance70, create_fragment70, safe_not_equal, {
13572
14235
  app: 1,
13573
14236
  theme: 2,
13574
14237
  language: 3,
@@ -13599,7 +14262,7 @@ function create_else_block_12(ctx) {
13599
14262
  ]
13600
14263
  ),
13601
14264
  alt: "[play]",
13602
- $$slots: { default: [create_default_slot_53] },
14265
+ $$slots: { default: [create_default_slot_54] },
13603
14266
  $$scope: { ctx }
13604
14267
  }
13605
14268
  });
@@ -13656,7 +14319,7 @@ function create_if_block_22(ctx) {
13656
14319
  ]
13657
14320
  ),
13658
14321
  alt: "[pause]",
13659
- $$slots: { default: [create_default_slot_43] },
14322
+ $$slots: { default: [create_default_slot_44] },
13660
14323
  $$scope: { ctx }
13661
14324
  }
13662
14325
  });
@@ -13699,7 +14362,7 @@ function create_if_block_22(ctx) {
13699
14362
  }
13700
14363
  };
13701
14364
  }
13702
- function create_if_block_13(ctx) {
14365
+ function create_if_block_15(ctx) {
13703
14366
  var _a;
13704
14367
  let icon;
13705
14368
  let current;
@@ -13713,7 +14376,7 @@ function create_if_block_13(ctx) {
13713
14376
  ]
13714
14377
  ),
13715
14378
  alt: "[loading]",
13716
- $$slots: { default: [create_default_slot_34] },
14379
+ $$slots: { default: [create_default_slot_35] },
13717
14380
  $$scope: { ctx }
13718
14381
  }
13719
14382
  });
@@ -13756,7 +14419,7 @@ function create_if_block_13(ctx) {
13756
14419
  }
13757
14420
  };
13758
14421
  }
13759
- function create_default_slot_53(ctx) {
14422
+ function create_default_slot_54(ctx) {
13760
14423
  let icons_play;
13761
14424
  let current;
13762
14425
  icons_play = new Icons_default.Play({ props: { theme: (
@@ -13794,7 +14457,7 @@ function create_default_slot_53(ctx) {
13794
14457
  }
13795
14458
  };
13796
14459
  }
13797
- function create_default_slot_43(ctx) {
14460
+ function create_default_slot_44(ctx) {
13798
14461
  let icons_pause;
13799
14462
  let current;
13800
14463
  icons_pause = new Icons_default.Pause({ props: { theme: (
@@ -13832,7 +14495,7 @@ function create_default_slot_43(ctx) {
13832
14495
  }
13833
14496
  };
13834
14497
  }
13835
- function create_default_slot_34(ctx) {
14498
+ function create_default_slot_35(ctx) {
13836
14499
  let icons_loading;
13837
14500
  let current;
13838
14501
  icons_loading = new Icons_default.Loading({ props: { theme: (
@@ -13875,7 +14538,7 @@ function create_default_slot_25(ctx) {
13875
14538
  let if_block;
13876
14539
  let if_block_anchor;
13877
14540
  let current;
13878
- const if_block_creators = [create_if_block_13, create_if_block_22, create_else_block_12];
14541
+ const if_block_creators = [create_if_block_15, create_if_block_22, create_else_block_12];
13879
14542
  const if_blocks = [];
13880
14543
  function select_block_type(ctx2, dirty) {
13881
14544
  if (
@@ -14252,7 +14915,7 @@ function create_each_block5(key_1, ctx) {
14252
14915
  }
14253
14916
  };
14254
14917
  }
14255
- function create_fragment69(ctx) {
14918
+ function create_fragment71(ctx) {
14256
14919
  let div0;
14257
14920
  let button0;
14258
14921
  let t0;
@@ -14529,7 +15192,7 @@ function format(ms) {
14529
15192
  return String(m).padStart(2, "0") + ":" + String(s % 60).padStart(2, "0");
14530
15193
  }
14531
15194
  var name7 = "fastboard-player-control";
14532
- function instance69($$self, $$props, $$invalidate) {
15195
+ function instance71($$self, $$props, $$invalidate) {
14533
15196
  let t;
14534
15197
  let canPlay;
14535
15198
  let disabled;
@@ -14674,7 +15337,7 @@ function instance69($$self, $$props, $$invalidate) {
14674
15337
  var PlayerControl = class extends SvelteComponent {
14675
15338
  constructor(options) {
14676
15339
  super();
14677
- init(this, options, instance69, create_fragment69, safe_not_equal, {
15340
+ init(this, options, instance71, create_fragment71, safe_not_equal, {
14678
15341
  player: 19,
14679
15342
  theme: 0,
14680
15343
  language: 20,
@@ -14743,7 +15406,7 @@ function create_if_block17(ctx) {
14743
15406
  }
14744
15407
  };
14745
15408
  }
14746
- function create_fragment70(ctx) {
15409
+ function create_fragment72(ctx) {
14747
15410
  var _a;
14748
15411
  let div2;
14749
15412
  let div0;
@@ -14843,7 +15506,7 @@ function create_fragment70(ctx) {
14843
15506
  };
14844
15507
  }
14845
15508
  var name8 = "fastboard";
14846
- function instance70($$self, $$props, $$invalidate) {
15509
+ function instance72($$self, $$props, $$invalidate) {
14847
15510
  let { player = null } = $$props;
14848
15511
  let { theme = "light" } = $$props;
14849
15512
  let { language = "en" } = $$props;
@@ -14918,7 +15581,7 @@ function instance70($$self, $$props, $$invalidate) {
14918
15581
  var ReplayFastboard = class extends SvelteComponent {
14919
15582
  constructor(options) {
14920
15583
  super();
14921
- init(this, options, instance70, create_fragment70, not_equal, {
15584
+ init(this, options, instance72, create_fragment72, not_equal, {
14922
15585
  player: 0,
14923
15586
  theme: 1,
14924
15587
  language: 2,
@@ -15054,7 +15717,7 @@ function create_if_block_23(ctx) {
15054
15717
  }
15055
15718
  };
15056
15719
  }
15057
- function create_if_block_14(ctx) {
15720
+ function create_if_block_16(ctx) {
15058
15721
  let zoomcontrol;
15059
15722
  let current;
15060
15723
  zoomcontrol = new ZoomControl_default({
@@ -15170,7 +15833,7 @@ function create_if_block18(ctx) {
15170
15833
  }
15171
15834
  };
15172
15835
  }
15173
- function create_fragment71(ctx) {
15836
+ function create_fragment73(ctx) {
15174
15837
  var _a, _b, _c, _d;
15175
15838
  let div4;
15176
15839
  let div0;
@@ -15195,7 +15858,7 @@ function create_fragment71(ctx) {
15195
15858
  );
15196
15859
  let if_block2 = (
15197
15860
  /*config*/
15198
- ((_c = ctx[3].zoom_control) == null ? void 0 : _c.enable) !== false && create_if_block_14(ctx)
15861
+ ((_c = ctx[3].zoom_control) == null ? void 0 : _c.enable) !== false && create_if_block_16(ctx)
15199
15862
  );
15200
15863
  let if_block3 = (
15201
15864
  /*config*/
@@ -15348,7 +16011,7 @@ function create_fragment71(ctx) {
15348
16011
  transition_in(if_block2, 1);
15349
16012
  }
15350
16013
  } else {
15351
- if_block2 = create_if_block_14(ctx2);
16014
+ if_block2 = create_if_block_16(ctx2);
15352
16015
  if_block2.c();
15353
16016
  transition_in(if_block2, 1);
15354
16017
  if_block2.m(div2, null);
@@ -15441,7 +16104,7 @@ function create_fragment71(ctx) {
15441
16104
  };
15442
16105
  }
15443
16106
  var name9 = "fastboard";
15444
- function instance71($$self, $$props, $$invalidate) {
16107
+ function instance73($$self, $$props, $$invalidate) {
15445
16108
  let writable2;
15446
16109
  let boxState;
15447
16110
  let focusedApp;
@@ -15566,7 +16229,7 @@ function instance71($$self, $$props, $$invalidate) {
15566
16229
  var Fastboard = class extends SvelteComponent {
15567
16230
  constructor(options) {
15568
16231
  super();
15569
- init(this, options, instance71, create_fragment71, not_equal, {
16232
+ init(this, options, instance73, create_fragment73, not_equal, {
15570
16233
  app: 0,
15571
16234
  theme: 1,
15572
16235
  language: 2,