@netless/fastboard-react 0.2.5 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -69,6 +69,7 @@ __export(src_exports, {
69
69
  Toolbar: () => Toolbar,
70
70
  ZoomControl: () => ZoomControl,
71
71
  mount: () => mount,
72
+ useAppsStatus: () => useAppsStatus,
72
73
  useBoxState: () => useBoxState,
73
74
  useFastboardApp: () => useFastboardApp,
74
75
  useFastboardValue: () => useFastboardValue,
@@ -136,7 +137,7 @@ function useForceUpdate() {
136
137
  }
137
138
 
138
139
  // src/style.scss?inline
139
- var style_default = '.netless-window-manager-playground{width:100%;height:100%;position:relative;z-index:1;overflow:hidden;user-select:none}.netless-window-manager-sizer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;overflow:hidden;display:flex}.netless-window-manager-sizer-horizontal{flex-direction:column}.netless-window-manager-sizer:before,.netless-window-manager-sizer:after{flex:1;content:"";display:block}.netless-window-manager-chess-sizer:before,.netless-window-manager-chess-sizer:after{background-image:linear-gradient(45deg,#b0b0b0 25%,transparent 25%),linear-gradient(-45deg,#b0b0b0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#b0b0b0 75%),linear-gradient(-45deg,transparent 75%,#b0b0b0 75%);background-color:#fff;background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px}.netless-window-manager-wrapper{position:relative;z-index:1;width:100%;height:100%;overflow:hidden}.netless-window-manager-main-view{width:100%;height:100%}.netless-window-manager-cursor-pencil-image,.netless-window-manager-cursor-eraser-image{width:26px;height:26px}.netless-window-manager-cursor-selector-image{width:24px;height:24px}.netless-window-manager-cursor-selector-avatar{border-radius:50%;border-style:solid;border-width:2px;border-color:#fff;margin-bottom:2px}.netless-window-manager-cursor-selector-avatar img{width:12px}.netless-window-manager-cursor-inner{border-radius:4px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:4px;padding-right:4px;font-size:12px}.netless-window-manager-cursor-inner-mellow{height:32px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:16px;padding-right:16px}.netless-window-manager-cursor-tag-name{font-size:12px;margin-left:4px;padding:2px 8px;border-radius:4px}.netless-window-manager-cursor-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:26px;height:26px;z-index:2147483647;left:0;top:0;will-change:transform;transition:transform .1s;transform-origin:0 0;user-select:none}.netless-window-manager-cursor-pencil-offset{margin-left:-20px}.netless-window-manager-cursor-selector-offset{margin-left:-22px;margin-top:56px}.netless-window-manager-cursor-text-offset{margin-left:-30px;margin-top:18px}.netless-window-manager-cursor-shape-offset{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:180px;height:64px;margin-left:-30px;margin-top:12px}.netless-window-manager-cursor-laserPointer-image{margin-left:-22px;margin-top:3px}.netless-window-manager-cursor-name{width:100%;height:48px;display:flex;align-items:center;justify-content:center;position:absolute;top:-40px}.cursor-image-wrapper{display:flex;justify-content:center}.telebox-collector{position:absolute;right:10px;bottom:15px}.tele-fancy-scrollbar{overscroll-behavior:contain;overflow:auto;overflow-y:scroll;overflow-y:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.tele-fancy-scrollbar::-webkit-scrollbar{height:8px;width:8px}.tele-fancy-scrollbar::-webkit-scrollbar-track{background-color:transparent}.tele-fancy-scrollbar::-webkit-scrollbar-thumb{background-color:#444e601a;background-color:transparent;border-radius:4px;transition:background-color .4s}.tele-fancy-scrollbar:hover::-webkit-scrollbar-thumb{background-color:#444e601a}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#444e6033}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:active{background-color:#444e6033}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:vertical{min-height:50px}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:horizontal{min-width:50px}.telebox-box{position:absolute;top:0;left:0;z-index:100;transition:width .4s cubic-bezier(.4,.9,.71,1.02),height .4s cubic-bezier(.55,.82,.63,.95),opacity .6s cubic-bezier(.7,0,.84,0),transform .4s ease}.telebox-box-main{position:relative;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#f9f9fc;box-shadow:0 4px 10px #2f419226;border-radius:6px;border:1px solid #e3e3ec}.telebox-titlebar-wrap{flex-shrink:0;position:relative;z-index:1}.telebox-content-wrap{flex:1;width:100%;overflow:hidden;display:flex;justify-content:center;align-items:center}.telebox-content{width:100%;height:100%;position:relative}.telebox-footer-wrap{flex-shrink:0;display:flex;flex-direction:column}.telebox-footer-wrap:before{content:"";display:block;flex:1}.telebox-resize-handle{position:absolute;z-index:2147483647}.telebox-n{width:100%;height:5px;left:0;top:-5px;cursor:n-resize}.telebox-s{width:100%;height:5px;left:0;bottom:-5px;cursor:s-resize}.telebox-w{width:5px;height:100%;left:-5px;top:0;cursor:w-resize}.telebox-e{width:5px;height:100%;right:-5px;top:0;cursor:e-resize}.telebox-nw{width:15px;height:15px;top:-5px;left:-5px;cursor:nw-resize}.telebox-ne{width:15px;height:15px;top:-5px;right:-5px;cursor:ne-resize}.telebox-se{width:15px;height:15px;bottom:-5px;right:-5px;cursor:se-resize}.telebox-sw{width:15px;height:15px;bottom:-5px;left:-5px;cursor:sw-resize}.telebox-track-mask{position:fixed;top:0;left:0;z-index:2147483647;width:100%;height:100%;background:rgba(0,0,0,.0001);cursor:move}.telebox-cursor-n{cursor:n-resize}.telebox-cursor-s{cursor:s-resize}.telebox-cursor-w{cursor:w-resize}.telebox-cursor-e{cursor:e-resize}.telebox-cursor-nw{cursor:nw-resize}.telebox-cursor-ne{cursor:ne-resize}.telebox-cursor-se{cursor:se-resize}.telebox-cursor-sw{cursor:sw-resize}.telebox-maximized .telebox-resize-handles,.telebox-no-resize .telebox-resize-handles{display:none}.telebox-maximized{box-shadow:none;transition:none}.telebox-minimized{transition:width 50ms cubic-bezier(.4,.9,.71,1.02),height 50ms cubic-bezier(.55,.82,.63,.95),opacity .6s cubic-bezier(.7,0,.84,0),transform .6s ease;opacity:0;pointer-events:none;user-select:none}.telebox-transforming{will-change:transform;transition:opacity .6s cubic-bezier(.7,0,.84,0)}.telebox-readonly .telebox-resize-handle{cursor:initial!important;pointer-events:none!important}.telebox-color-scheme-dark .telebox-box-main{color:#e9e9e9;background:#212126;border-color:#43434d}.telebox-titlebar{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;background:#fff;user-select:none;border-bottom:1px solid #eeeef7;touch-action:manipulation}.telebox-title-area{overflow:hidden;position:relative;height:100%;flex:1;display:flex;align-items:center}.telebox-title{overflow:hidden;margin:0;padding:0;font-size:14px;font-weight:400;font-family:PingFangSC-Regular,PingFang SC;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;color:#191919}.telebox-drag-area{position:absolute;inset:0;margin:auto;z-index:10}.telebox-titlebar-btns{white-space:nowrap;word-break:keep-all;margin-left:auto;font-size:0}.telebox-titlebar-btn{width:22px;height:22px;padding:0;outline:0;border:none;background:0 0;cursor:pointer}.telebox-titlebar-btn~.telebox-titlebar-btn{margin-left:10px}.telebox-titlebar-btn-icon{width:22px;height:22px}.telebox-readonly .telebox-titlebar-btn{cursor:not-allowed}.telebox-titlebar-icon-minimize{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPHBhdGggZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOSAxM2gxMHYxLjZIOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=)}.telebox-titlebar-icon-maximize{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPGcgZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI2IpIj4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgIGQ9Ik0yMC40ODEgMTcuMWgxLjJ2NC41ODFIMTcuMXYtMS4yaDMuMzgxVjE3LjF6bS0xNC4xOTA1LS4wMDloMS4ydjMuMzgxaDMuMzgwOXYxLjJoLTQuNTgxdi00LjU4MXpNMTcuMSA2LjE5MDVoNC41ODF2NC41ODA5aC0xLjJ2LTMuMzgxSDE3LjF2LTEuMnptLTEwLjcwMDguMTA4N2g0Ljc5ODV2MS4ySDcuNTk5MnYzLjU5ODVoLTEuMlY2LjI5OTJ6IiAvPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==)}.telebox-titlebar-icon-maximize.is-active{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjZ2MjZIMHoiIC8+CiAgICAgICAgPHBhdGggaWQ9ImMiIGQ9Ik0yNi44NjkgMEwyOCAxLjEzMVYyNi44N0wyNi44NjkgMjhIMS4xM0wwIDI2Ljg3VjEuMTMxTDEuMTMgMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPgogICAgICAgICAgICA8bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNhIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tNC42NDI5LTQuNjQyOWgzNS4yODU4djM1LjI4NThILTQuNjQyOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxnPgogICAgICAgICAgICA8bWFzayBpZD0iZCIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNjIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tMTcuNTE2OCAxNEwxNC0xNy41MTY4IDQ1LjUxNjggMTQgMTQgNDUuNTE2OHoiIG1hc2s9InVybCgjZCkiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjIiCiAgICAgICAgICAgIGQ9Ik0xMC4wODg2IDIxLjQ4NjV2LTMuNjk2Nkg2LjM5Mk0yMS4zODU1IDEwLjE4OTVoLTMuNjk2NlY2LjQ5M00yMS40MDIgMTcuNzk4M2gtMy42OTY2djMuNjk2Nk0xMC4yNTAzIDYuMTQ5OHYzLjg5ODVINi4zNTE3IiAvPgogICAgPC9nPgo8L3N2Zz4K)}.telebox-titlebar-icon-close{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjQiPgogICAgICAgIDxwYXRoIGQ9Ik04LjM1MyAyMC4zMzIxTDIwLjMzMiA4LjM1M00yMC4zMzIyIDIwLjMzMjFMOC4zNTMgOC4zNTMiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=)}.telebox-color-scheme-dark .telebox-titlebar{color:#e9e9e9;background:#43434d;border-bottom:none}.telebox-collector{visibility:hidden;display:block;position:absolute;z-index:200;width:40px;height:40px;margin:0;padding:0;border:none;outline:0;font-size:0;border-radius:50%;background:#fff;box-shadow:0 2px 6px #2f419226;cursor:pointer;user-select:none;pointer-events:none;background-repeat:no-repeat;background-size:18px 16px;background-position:center}.telebox-collector-visible{visibility:visible;pointer-events:initial}.telebox-collector-readonly{cursor:not-allowed}.telebox-color-scheme-dark.telebox-collector{background-color:#43434d}.telebox-max-titlebar{display:none;position:absolute;top:0;left:0;z-index:50000;user-select:none}.telebox-max-titlebar .telebox-drag-area{height:100%;min-width:16px;position:static;margin:0;flex-grow:1;flex-shrink:0}.telebox-max-titlebar-maximized{display:flex}.telebox-titles{height:100%;margin:0;overflow-y:hidden;overflow-x:scroll;overflow-x:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.telebox-titles::-webkit-scrollbar{height:8px;width:8px}.telebox-titles::-webkit-scrollbar-track{background-color:transparent}.telebox-titles::-webkit-scrollbar-thumb{background-color:#eeeef7cc;background-color:transparent;border-radius:4px;transition:background-color .4s}.telebox-titles:hover::-webkit-scrollbar-thumb{background-color:#eeeef7cc}.telebox-titles::-webkit-scrollbar-thumb:hover{background-color:#eeeef7}.telebox-titles::-webkit-scrollbar-thumb:active{background-color:#eeeef7}.telebox-titles::-webkit-scrollbar-thumb:vertical{min-height:50px}.telebox-titles::-webkit-scrollbar-thumb:horizontal{min-width:50px}.telebox-titles-content{height:100%;display:flex;flex-wrap:nowrap;align-items:center;padding:0}.telebox-titles-tab{height:100%;overflow:hidden;max-width:182px;min-width:50px;padding:0 26px 0 16px;outline:0;font-size:13px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;border:none;border-right:1px solid #e5e5f0;color:#7b88a0;background:0 0;cursor:pointer;user-select:none}.telebox-titles-tab-focus{color:#357bf6}.telebox-readonly .telebox-titles-tab{cursor:not-allowed}.telebox-color-scheme-dark{color-scheme:dark}.telebox-color-scheme-dark.telebox-titlebar{color:#e9e9e9;background:#43434d;border-bottom:none}.telebox-color-scheme-dark .telebox-titles-tab{border-right-color:#7b88a0}.telebox-color-scheme-dark .telebox-title{color:#e9e9e9}.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}.rc-slider{position:relative;height:14px;padding:5px 0;width:100%;border-radius:6px;touch-action:none;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-rail{position:absolute;width:100%;background-color:#e9e9e9;height:4px;border-radius:6px}.rc-slider-track{position:absolute;left:0;height:4px;border-radius:6px;background-color:#abe2fb}.rc-slider-handle{position:absolute;width:14px;height:14px;cursor:pointer;cursor:-webkit-grab;margin-top:-5px;cursor:grab;border-radius:50%;border:solid 2px #96dbfa;background-color:#fff;touch-action:pan-x}.rc-slider-handle-dragging.rc-slider-handle-dragging.rc-slider-handle-dragging{border-color:#57c5f7;box-shadow:0 0 0 5px #96dbfa}.rc-slider-handle:focus{outline:none}.rc-slider-handle-click-focused:focus{border-color:#96dbfa;box-shadow:unset}.rc-slider-handle:hover{border-color:#57c5f7}.rc-slider-handle:active{border-color:#57c5f7;box-shadow:0 0 5px #57c5f7;cursor:-webkit-grabbing;cursor:grabbing}.rc-slider-mark{position:absolute;top:18px;left:0;width:100%;font-size:12px}.rc-slider-mark-text{position:absolute;display:inline-block;vertical-align:middle;text-align:center;cursor:pointer;color:#999}.rc-slider-mark-text-active{color:#666}.rc-slider-step{position:absolute;width:100%;height:4px;background:transparent}.rc-slider-dot{position:absolute;bottom:-2px;margin-left:-4px;width:8px;height:8px;border:2px solid #e9e9e9;background-color:#fff;cursor:pointer;border-radius:50%;vertical-align:middle}.rc-slider-dot-active{border-color:#96dbfa}.rc-slider-dot-reverse{margin-right:-4px}.rc-slider-disabled{background-color:#e9e9e9}.rc-slider-disabled .rc-slider-track{background-color:#ccc}.rc-slider-disabled .rc-slider-handle,.rc-slider-disabled .rc-slider-dot{border-color:#ccc;box-shadow:none;background-color:#fff;cursor:not-allowed}.rc-slider-disabled .rc-slider-mark-text,.rc-slider-disabled .rc-slider-dot{cursor:not-allowed!important}.rc-slider-vertical{width:14px;height:100%;padding:0 5px}.rc-slider-vertical .rc-slider-rail{height:100%;width:4px}.rc-slider-vertical .rc-slider-track{left:5px;bottom:0;width:4px}.rc-slider-vertical .rc-slider-handle{margin-left:-5px;touch-action:pan-y}.rc-slider-vertical .rc-slider-mark{top:0;left:18px;height:100%}.rc-slider-vertical .rc-slider-step{height:100%;width:4px}.rc-slider-vertical .rc-slider-dot{left:2px;margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:first-child{margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:last-child{margin-bottom:-4px}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear,.rc-slider-tooltip-zoom-down-leave{animation-duration:.3s;animation-fill-mode:both;display:block!important;animation-play-state:paused}.rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,.rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active{animation-name:rcSliderTooltipZoomDownIn;animation-play-state:running}.rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active{animation-name:rcSliderTooltipZoomDownOut;animation-play-state:running}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear{transform:scale(0);animation-timing-function:cubic-bezier(.23,1,.32,1)}.rc-slider-tooltip-zoom-down-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@keyframes rcSliderTooltipZoomDownIn{0%{opacity:0;transform-origin:50% 100%;transform:scale(0)}to{transform-origin:50% 100%;transform:scale(1)}}@keyframes rcSliderTooltipZoomDownOut{0%{transform-origin:50% 100%;transform:scale(1)}to{opacity:0;transform-origin:50% 100%;transform:scale(0)}}.rc-slider-tooltip{position:absolute;left:-9999px;top:-9999px;visibility:visible;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip-hidden{display:none}.rc-slider-tooltip-placement-top{padding:4px 0 8px}.rc-slider-tooltip-inner{padding:6px 2px;min-width:24px;height:24px;font-size:12px;line-height:1;color:#fff;text-align:center;text-decoration:none;background-color:#6c6c6c;border-radius:6px;box-shadow:0 0 4px #d9d9d9}.rc-slider-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow{bottom:4px;left:50%;margin-left:-4px;border-width:4px 4px 0;border-top-color:#6c6c6c}.fastboard-root{position:relative;width:100%;height:100%;overflow:hidden}.fastboard-view{position:absolute;top:0;left:0;width:100%;height:100%}.fastboard-left{position:absolute;top:0;left:0;height:calc(100% - 48px);padding:16px;z-index:201;display:flex;align-items:center}.fastboard-bottom-left,.fastboard-bottom-right{display:flex;gap:10px;position:absolute;bottom:8px;left:8px;padding:8px;z-index:200}.fastboard-bottom-right{left:initial;right:8px}.fastboard-redo-undo{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-redo-undo.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-redo-undo.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-redo-undo-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-redo-undo-btn svg,.fastboard-redo-undo-btn img{width:1em;height:1em}.fastboard-redo-undo-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-redo-undo-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-redo-undo-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-page-control{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-page-control.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-page-control.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-page-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-page-control-btn svg,.fastboard-page-control-btn img{width:1em;height:1em}.fastboard-page-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-page-control-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-page-control-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-page-control-cut-line{height:24px;width:.5px}.fastboard-page-control-cut-line.light{background-color:#e7e7e7}.fastboard-page-control-cut-line.dark{background-color:#ffffff26}.fastboard-page-control-slash{opacity:.6}.fastboard-page-control-page,.fastboard-page-control-slash,.fastboard-page-control-page-count{font-size:12px;font-variant-numeric:tabular-nums}.fastboard-zoom-control{position:relative;display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-zoom-control.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-zoom-control.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-zoom-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-zoom-control-btn svg,.fastboard-zoom-control-btn img{width:1em;height:1em}.fastboard-zoom-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-zoom-control-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-zoom-control-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-zoom-control-cut-line{height:24px;width:.5px}.fastboard-zoom-control-cut-line.light{background-color:#e7e7e7}.fastboard-zoom-control-cut-line.dark{background-color:#ffffff26}.fastboard-zoom-control-percent{opacity:.6}.fastboard-zoom-control-scale,.fastboard-zoom-control-percent{font-size:12px;font-variant-numeric:tabular-nums}.fastboard-toolbar{display:flex;align-items:center;padding:4px;border-radius:4px;flex-direction:column;gap:4px;position:absolute;z-index:100;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-toolbar .rc-slider{padding:6px 0}.fastboard-toolbar .rc-slider-rail,.fastboard-toolbar .rc-slider-track{height:2px}.fastboard-toolbar .tippy-content{padding:8px}.fastboard-toolbar .tippy-box{border:1px solid rgba(0,0,0,.15);background-color:#333333f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-toolbar .tippy-box[data-theme~=light]{background-color:#fffffff2;box-shadow:0 5px 10px #00000040}.fastboard-toolbar.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-toolbar.expanded{border:1px solid rgba(0,0,0,.15)}.fastboard-toolbar.dark{color:#ddd;background-color:#333333d9}.fastboard-toolbar.expanded:hover{box-shadow:0 0 5px #00000040;transform:translate(0)}.fastboard-toolbar.collapsed{padding:0;background-color:transparent}.fastboard-toolbar-tooltip{display:inline-flex;align-items:center;gap:4px}.fastboard-toolbar-hotkey{margin-right:-4px;width:24px;height:24px;border-radius:4px;background-color:#ffffff1a;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:4px;width:32px;height:32px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1;position:relative}.fastboard-toolbar-btn-interactive{display:inline-block;width:32px;height:32px}.fastboard-toolbar-btn svg,.fastboard-toolbar-btn img{width:100%;height:100%}.fastboard-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-toolbar-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-toolbar-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-toolbar-triangle{width:0px;height:0px;border-bottom:4px solid;border-left:4px solid transparent;position:absolute;bottom:0;right:0}.fastboard-toolbar-cut-line{display:inline-block;height:.5px;width:100%}.fastboard-toolbar-cut-line.light{background-color:#e7e7e7}.fastboard-toolbar-cut-line.dark{background-color:#ffffff26}.fastboard-toolbar-section{display:inline-flex;flex-flow:column nowrap;gap:4px;scroll-behavior:smooth}.fastboard-toolbar-section.collapsed{transform:translate(-100%);transition:1s transform}.fastboard-toolbar-section+.fastboard-toolbar-mask{opacity:0;transition:.5s opacity .4s}.fastboard-toolbar-section:hover+.fastboard-toolbar-mask,.fastboard-toolbar-mask:hover{opacity:1;transition:.2s opacity}.fastboard-toolbar-panel{width:120px;padding:0;display:flex;flex-flow:column nowrap;align-items:center;gap:8px}.fastboard-toolbar-panel.apps{width:224px}.fastboard-toolbar-color-box,.fastboard-toolbar-shapes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;align-items:center;justify-items:center}.fastboard-toolbar-color-box .fastboard-toolbar-btn,.fastboard-toolbar-shapes .fastboard-toolbar-btn{padding:0;width:24px;height:24px}.fastboard-toolbar-apps{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:center;justify-items:center}.fastboard-toolbar-apps .fastboard-toolbar-btn{width:40px;height:40px;font-size:0}.fastboard-toolbar-app-icon{padding-top:4px;display:inline-flex;flex-flow:column nowrap;align-items:center;gap:4px}.fastboard-toolbar-app-icon .fastboard-toolbar-btn{padding:0}.fastboard-toolbar-app-icon-text{font-size:12px;color:#5d5d5d;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fastboard-toolbar-color-item{width:24px;height:24px;border-radius:4px;cursor:pointer}.fastboard-toolbar-color-item *.light:hover{background-color:#f5f5f5}.fastboard-toolbar-color-item *.dark:hover{background-color:#333}.fastboard-toolbar-color-border{width:24px;height:24px;border:1px solid transparent;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-color-border.active.light,.fastboard-toolbar-color-border.active.dark{border:1px solid rgba(51,129,255,.8)}.fastboard-toolbar-color-btn{margin:0;border:1px solid rgba(0,0,0,.24);padding:0;appearance:none;width:16px;height:16px;border-radius:4px;cursor:pointer}.fastboard-toolbar-color-btn:focus-visible{outline-offset:2px}.fastboard-toolbar-mask{position:absolute;left:calc(100% + 1px);top:50%;transform:translateY(-50%);opacity:.85}.fastboard-toolbar-mask.dark{left:100%}.fastboard-toolbar-mask-btn{width:17px;height:62px;cursor:pointer;opacity:.85}.fastboard-toolbar-mask-btn.dark{filter:invert(.8)}.fastboard-toolbar-expand-btn{display:flex;align-items:center;position:absolute;left:0}.fastboard-player-control{width:100%;display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-player-control.auto-hide{opacity:0;transition:opacity .2s}.fastboard-player-control.auto-hide:hover{opacity:1}.fastboard-player-control .rc-slider-disabled{background:transparent;opacity:.5}.fastboard-player-control .rc-slider-rail,.fastboard-player-control .rc-slider-track{height:2px}.fastboard-player-control .tippy-content{padding:8px}.fastboard-player-control .tippy-box{border:1px solid rgba(0,0,0,.15);background-color:#333333f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-player-control .tippy-box[data-theme~=light]{background-color:#fffffff2;box-shadow:0 5px 10px #00000040}.fastboard-player-control.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-player-control.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-player-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;min-width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.fastboard-player-control-btn svg,.fastboard-player-control-btn img{width:1em;height:1em}.fastboard-player-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-player-control-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-player-control-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-player-control-btn.loading{animation:fastboard-player-control-rotate .5s linear infinite}@keyframes fastboard-player-control-rotate{to{transform:rotate(360deg)}}.fastboard-player-control-panel{padding:0;display:flex;flex-flow:column nowrap;align-items:stretch;gap:4px}.fastboard-player-control-panel .fastboard-player-control-btn{width:initial;height:initial;user-select:none;font-size:12px;padding:4px;justify-content:flex-end}.fastboard-player-control-panel .fastboard-player-control-btn.active{color:#3381ff}.fastboard-player-control-slider{width:100%;padding:0 7px}.fastboard-player-control-slider.loading{cursor:not-allowed}.fastboard-player-control-slash{opacity:.6}.fastboard-player-control-current,.fastboard-player-control-slash,.fastboard-player-control-total,.fastboard-player-control-speed-text{font-size:12px;font-variant-numeric:tabular-nums}.tippy-box.fastboard-tip{color:#eee;background-color:#000000f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.tippy-box.fastboard-tip[data-placement^=right]>.tippy-arrow:before{top:4px;border-width:4px;border-right-color:#000}.tippy-box.fastboard-tip[data-placement^=top]>.tippy-arrow:before{left:4px;border-width:4px;border-top-color:#000}\n';
140
+ var style_default = '@charset "UTF-8";.vjs-modal-dialog .vjs-modal-dialog-content,.video-js .vjs-modal-dialog,.vjs-button>.vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-button>.vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{text-align:center}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABDkAAsAAAAAG6gAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAPgAAAFZRiV3hY21hcAAAAYQAAADaAAADPv749/pnbHlmAAACYAAAC3AAABHQZg6OcWhlYWQAAA3QAAAAKwAAADYZw251aGhlYQAADfwAAAAdAAAAJA+RCLFobXR4AAAOHAAAABMAAACM744AAGxvY2EAAA4wAAAASAAAAEhF6kqubWF4cAAADngAAAAfAAAAIAE0AIFuYW1lAAAOmAAAASUAAAIK1cf1oHBvc3QAAA/AAAABJAAAAdPExYuNeJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGS7wTiBgZWBgaWQ5RkDA8MvCM0cwxDOeI6BgYmBlZkBKwhIc01hcPjI+FGJHcRdyA4RZgQRADK3CxEAAHic7dFZbsMgAEXRS0ycyZnnOeG7y+qC8pU1dHusIOXxuoxaOlwZYWQB0Aea4quIEN4E9LzKbKjzDeM6H/mua6Lmc/p8yhg0lvdYx15ZG8uOLQOGjMp3EzqmzJizYMmKNRu27Nhz4MiJMxeu3Ljz4Ekqm7T8P52G8PP3lnTOVk++Z6iN6QZzNN1F7ptuN7eGOjDUoaGODHVsuvU8MdTO9Hd5aqgzQ50b6sJQl4a6MtS1oW4MdWuoO0PdG+rBUI+GejLUs6FeDPVqqDdDvRvqw1CfhpqM9At0iFLaAAB4nJ1YDXBTVRZ+5/22TUlJ8we0pHlJm7RJf5O8F2j6EymlSPkpxaL8U2xpa3DKj0CBhc2IW4eWKSokIoLsuMqssM64f+jA4HSdWXXXscBq67IOs3FXZ1ZYWVyRFdo899yXtIBQZ90k7717zz3v3HPPOfd854YCCj9cL9dL0RQFOqCbGJnrHb5EayiKIWN8iA/hWBblo6hUWm8TtCDwE80WMJus/irwyxOdxeB0MDb14VNJHnXYoLLSl6FfCUYO9nYPTA8Epg9090LprfbBbZ2hY0UlJUXHQp3/vtWkS6EBv8+rPMq5u9692f/dNxJNiqwC1xPE9TCUgCsSdQWgE3XQD25lkG4CN2xmTcOXWBOyser6RN6KnGbKSbmQ3+d0OI1m2W8QzLLkI2sykrWAgJJEtA8vGGW/2Q+CmT3n8zS9wZwu2DCvtuZKZN3xkrLh36yCZuUomQSqGpY8t/25VfHVhw8z4ebGBtfLb0ya9PCaDc+8dGTvk2dsh6z7WzvowlXKUSWo9MJ15a3KrEP2loOr2Ojhw6iW6hf2BDdEccQvZGpaAy7YovSwq8kr7HGllxpd71rkS6G0Sf11sl9OvMK1+jwPPODxjUwkOim9CU3ix1wNjXDfmJSEn618Bs6lpWwUpU+8PCqLMY650zjq8VhCIP17NEKTx3eaLL+s5Pi6yJWaWjTHLR1jYzPSV9VF/6Ojdb/1kO3Mk3uhHC0x6gc1BjlKQ+nQFxTYdaJkZ7ySVxLBbhR1dsboNXp1tCYKW2LRaEzpYcIx2BKNxaL0ZaUnSqfFoiNhHKR/GkX6PWUSAaJelQaqZL1EpoHNsajSEyPSoJ9IjhIxTdjHLmwZvhRDOiFTY/YeQnvrVZmiTQtGncECXtFTBZLOVwwMRgoXHAkXzMzPn1nAJJ8jYSbMDaqN2waGLzNhih/bZynUBMpIWSg7VYi7DRx2m8ALkIdRCJwI6ArJx2EI8kaDWeTQKeAFk9fjl/1AvwktjQ1P7NjyMGQyfd4vjipX6M/i52D7Cq80kqlcxEcGXRr/FEcgs0u5uGgB4VWuMFfpdn2Re6Hi3PqzmxWKsz6+ae2Pn9hXXw/fqM859UiGC0oKYYILJBqJrsn1Z1E5qOs9rQCiUQRREjm8yJcbHF5cUJufX1vAHlefw0XgUoboS3ETfQlTxBC4SOtuE8VPRJTBSCQSjZCpk7Gqzu+masaZ2y7Zjehho4F3g82BNDkAHpORG4+OCS+f6JTPmtRn/PH1kch6d04sp7AQb25aQ/pqUyXeQ8vrebG8OYQdXOQ+585u0sdW9rqalzRURiJ+9F4MweRFrKUjl1GUYhH1A27WOHw5cTFSFPMo9EeUIGnQTZHIaJ7AHLaOKsOODaNF9jkBjYG2QEsQ2xjMUAx2bBEbeTBWMHwskBjngq56S/yfgkBnWBa4K9sqKtq2t1UI8S9He5XuBRbawAdatrQEAi30Aks2+LM8WeCbalVZkWNylvJ+dqJnzVb+OHlSoKW8nPCP7Rd+CcZ2DdWAGqJ2CBFOphgywFFCFBNtfAbGtNPBCwxvygHeYMZMY9ZboBqwq/pVrsbgN5tkv152ODlbMfiqwGMBgxa4Exz3QhovRIUp6acqZmQzRq0ypDXS2TPLT02YIkQETnOE445oOGxOmXAqUJNNG7XgupMjPq2ua9asrj5yY/yuKteO1Kx0YNJTufrirLe1mZnat7OL6rnUdCWenpW6I8mAnbsY8KWs1PuSovCW9A/Z25PQ24a7cNOqgmTkLmBMgh4THgc4b9k2IVv1/g/F5nGljwPLfOgHAzJzh45V/4+WenTzmMtR5Z7us2Tys909UHqrPY7KbckoxRvRHhmVc3cJGE97uml0R1S0jdULVl7EvZtDFVBF35N9cEdjpgmAiOlFZ+Dtoh93+D3zzHr8RRNZQhnCNMNbcegOvpEwZoL+06cJQ07h+th3fZ/7PVbVC6ngTAV/KoLFuO6+2KFcU651gEb5ugPSIb1D+Xp8V4+k3sEIGnw5mYe4If4k1lFYr6SCzmM2EQ8iWtmwjnBI9kTwe1TlfAmXh7H02by9fW2gsjKwtv0aaURKil4OdV7rDL1MXIFNrhdxohcZXYTnq47WisrKitaObbf5+yvkLi5J6lCNZZ+B6GC38VNBZBDidSS/+mSvh6s+srgC8pyKMvDtt+de3c9fU76ZPfuM8ud4Kv0fyP/LqfepMT/3oZxSqpZaTa1DaQYLY8TFsHYbWYsPoRhRWfL5eSSQbhUGgGC3YLbVMk6PitTFNGpAsNrC6D1VNBKgBHMejaiuRWEWGgsSDBTJjqWIl8kJLlsaLJ2tXDr6xGfT85bM2Q06a46x2HTgvdnV8z5YDy/27J4zt6x2VtkzjoYpkq36kaBr4eQSg7tyiVweWubXZugtadl58ydapfbORfKsDTuZ0OBgx4cfdjCf5tbWNITnL120fdOi1RV1C3uKGzNdwYLcMvZ3BxoPyTOCD1XvXTp7U10gWCVmTV9b3r2z0SkGWovb2hp9I89O8a2smlyaO8muMU+dRmtzp60IzAoFpjLr1n388boLyf0dRvxhsHZ0qbWqDkwqvvpkj4l0fY6EIXRi5sQSrAvsVYwXRy4qJ2EVtD1AN7a0HWth9ymvL1xc3WTUKK/TAHA/bXDVtVWfOMfuGxGZv4Ln/jVr9jc3j1yMv0tndmyt9Vq88Y9gH1wtLX3KWjot5++jWHgAoZZkQ14wGQ20Fli71UmKJAy4xKMSTGbVdybW7FDDAut9XpD5AzWrYO7zQ8qffqF8+Ynd/clrHcdyxGy3a/3+mfNnzC/cBsveTjnTvXf1o6vzOlZw7WtqtdmPK/Errz/6NNtD72zmNOZfbmYdTGHfoofqI79Oc+R2n1lrnL6pOm0Up7kwxhTW12Amm7WYkXR2qYrF2AmgmbAsxZjwy1xpg/m1Je2vrp8v/nz2xpmlBg4E9hrMU341wVpTOh/OfmGvAnra8q6uctr60ZQHV3Q+WMQJykMj8ZsWn2QBOmmHMB+m5pDIpTFonYigiaKAhGEiAHF7EliVnQkjoLVIMPtJpBKHYd3A8GYH9jJzrWwmHx5Qjp7vDAX0suGRym1vtm/9W1/HyR8vczfMs6Sk8DSv855/5dlX9oQq52hT8syyp2rx5Id17IAyAM3wIjQPMOHzytEB64q6D5zT91yNbnx3V/nqnd017S9Y0605k3izoXLpsxde2n38yoOV9s1LcjwzNjbdX6asnBVaBj/6/DwKwPkpcqbDG7BnsXoSqWnUAmottYF6jMSdVyYZh3zVXCjwTiwwHH6sGuRiEHQGzuRX6whZkp123oy1BWE2mEfJ/tvIRtM4ZM5bDXiMsPMaAKOTyc5uL57rqyyc5y5JE5pm1i2S2iUX0CcaQ6lC6Zog7JqSqZmYlosl2K6pwNA84zRnQW6SaALYZQGW5lhCtU/W34N6o+bKfZ8cf3/Cl/+iTX3wBzpOY4mRkeNf3rptycGSshQWgGbYt5jFc2e0+DglIrwl6DVWQ7BuwaJ3Xk1J4VL5urnLl/Wf+gHU/hZoZdKNym6lG+I34FaNeZKcSpJIo2IeCVvpdsDGfKvzJnAwmeD37Ow65ZWwSowpgwX5T69s/rB55dP5BcpgDKFV8p7q2sn/1uc93bVzT/w6UrCqDTWvfCq/oCD/qZXNoUj8BL5Kp6GU017frfNXkAtiiyf/SOCEeLqnd8R/Ql9GlCRfctS6k5chvIBuQ1zCCjoCHL2DHNHIXxMJ3kQeO8lbsUXONeSfA5EjcG6/E+KdhN4bP04vBhdi883+BFBzQbxFbvZzQeY9LNBZc0FNfn5NwfDn6rCTnTw6R8o+gfpf5hCom33cRuiTlss3KHmZjD+BPN+5gXuA2ziS/Q73mLxUkpbKN/eqwz5uK0X9F3h2d1V4nGNgZGBgAOJd776+iue3+crAzc4AAje5Bfcg0xz9YHEOBiYQBQA8FQlFAHicY2BkYGBnAAGOPgaG//85+hkYGVCBMgBGGwNYAAAAeJxjYGBgYB8EmKOPgQEAQ04BfgAAAAAAAA4AaAB+AMwA4AECAUIBbAGYAcICGAJYArQC4AMwA7AD3gQwBJYE3AUkBWYFigYgBmYGtAbqB1gIEghYCG4IhAi2COh4nGNgZGBgUGYoZWBnAAEmIOYCQgaG/2A+AwAYCQG2AHicXZBNaoNAGIZfE5PQCKFQ2lUps2oXBfOzzAESyDKBQJdGR2NQR3QSSE/QE/QEPUUPUHqsvsrXjTMw83zPvPMNCuAWP3DQDAejdm1GjzwS7pMmwi75XngAD4/CQ/oX4TFe4Qt7uMMbOzjuDc0EmXCP/C7cJ38Iu+RP4QEe8CU8pP8WHmOPX2EPz87TPo202ey2OjlnQSXV/6arOjWFmvszMWtd6CqwOlKHq6ovycLaWMWVydXKFFZnmVFlZU46tP7R2nI5ncbi/dDkfDtFBA2DDXbYkhKc+V0Bqs5Zt9JM1HQGBRTm/EezTmZNKtpcAMs9Yu6AK9caF76zoLWIWcfMGOSkVduvSWechqZsz040Ib2PY3urxBJTzriT95lipz+TN1fmAAAAeJxtkMl2wjAMRfOAhABlKm2h80C3+ajgCKKDY6cegP59TYBzukAL+z1Zsq8ctaJTTKPrsUQLbXQQI0EXKXroY4AbDDHCGBNMcYsZ7nCPB8yxwCOe8IwXvOIN7/jAJ76wxHfUqWX+OzgumWAjJMV17i0Ndlr6irLKO+qftdT7i6y4uFSUvCknay+lFYZIZaQcmfH/xIFdYn98bqhra1aKTM/6lWMnyaYirx1rFUQZFBkb2zJUtoXeJCeg0WnLtHeSFc3OtrnozNwqi0TkSpBMDB1nSde5oJXW23hTS2/T0LilglXX7dmFVxLnq5U0vYATHFk3zX3BOisoQHNDFDeZnqKDy9hRNawN7Vh727hFzcJ5c8TILrKZfH7tIPxAFP0BpLeJPA==) format("woff");font-weight:400;font-style:normal}.vjs-icon-play,.video-js .vjs-play-control .vjs-icon-placeholder,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play:before,.video-js .vjs-play-control .vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{content:"\\f101"}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:"\\f102"}.vjs-icon-pause,.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pause:before,.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before{content:"\\f103"}.vjs-icon-volume-mute,.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mute:before,.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before{content:"\\f104"}.vjs-icon-volume-low,.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-low:before,.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before{content:"\\f105"}.vjs-icon-volume-mid,.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mid:before,.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before{content:"\\f106"}.vjs-icon-volume-high,.video-js .vjs-mute-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-high:before,.video-js .vjs-mute-control .vjs-icon-placeholder:before{content:"\\f107"}.vjs-icon-fullscreen-enter,.video-js .vjs-fullscreen-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-enter:before,.video-js .vjs-fullscreen-control .vjs-icon-placeholder:before{content:"\\f108"}.vjs-icon-fullscreen-exit,.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-exit:before,.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before{content:"\\f109"}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:"\\f10a"}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:"\\f10b"}.vjs-icon-subtitles,.video-js .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-subtitles-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-subtitles:before,.video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-subtitles-button .vjs-icon-placeholder:before{content:"\\f10c"}.vjs-icon-captions,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-captions-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-captions:before,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-captions-button .vjs-icon-placeholder:before{content:"\\f10d"}.vjs-icon-chapters,.video-js .vjs-chapters-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-chapters:before,.video-js .vjs-chapters-button .vjs-icon-placeholder:before{content:"\\f10e"}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:"\\f10f"}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:"\\f110"}.vjs-icon-circle,.vjs-seek-to-live-control .vjs-icon-placeholder,.video-js .vjs-volume-level,.video-js .vjs-play-progress{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle:before,.vjs-seek-to-live-control .vjs-icon-placeholder:before,.video-js .vjs-volume-level:before,.video-js .vjs-play-progress:before{content:"\\f111"}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:"\\f112"}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:"\\f113"}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:"\\f114"}.vjs-icon-cancel,.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cancel:before,.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before{content:"\\f115"}.vjs-icon-replay,.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay:before,.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before{content:"\\f116"}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:"\\f117"}.vjs-icon-gplus{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-gplus:before{content:"\\f118"}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:"\\f119"}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:"\\f11a"}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:"\\f11b"}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:"\\f11c"}.vjs-icon-audio-description,.video-js .vjs-descriptions-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio-description:before,.video-js .vjs-descriptions-button .vjs-icon-placeholder:before{content:"\\f11d"}.vjs-icon-audio,.video-js .vjs-audio-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio:before,.video-js .vjs-audio-button .vjs-icon-placeholder:before{content:"\\f11e"}.vjs-icon-next-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-next-item:before{content:"\\f11f"}.vjs-icon-previous-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-previous-item:before{content:"\\f120"}.vjs-icon-picture-in-picture-enter,.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-picture-in-picture-enter:before,.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before{content:"\\f121"}.vjs-icon-picture-in-picture-exit,.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-picture-in-picture-exit:before,.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before{content:"\\f122"}.video-js{display:block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;line-height:1;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;word-break:initial}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js[tabindex="-1"]{outline:none}.video-js *,.video-js *:before,.video-js *:after{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin:0}.video-js.vjs-fluid,.video-js.vjs-16-9,.video-js.vjs-4-3,.video-js.vjs-9-16,.video-js.vjs-1-1{width:100%;max-width:100%;height:0}.video-js.vjs-16-9{padding-top:56.25%}.video-js.vjs-4-3{padding-top:75%}.video-js.vjs-9-16{padding-top:177.7777777778%}.video-js.vjs-1-1{padding-top:100%}.video-js.vjs-fill{width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}body.vjs-full-window{padding:0;margin:0;height:100%}.vjs-full-window .video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;inset:0}.video-js.vjs-fullscreen:not(.vjs-ios-native-fs){width:100%!important;height:100%!important;padding-top:0!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-hidden{display:none!important}.vjs-disabled{opacity:.5;cursor:default}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1!important;visibility:visible!important}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#66a8cc}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.63332em;width:3em;display:block;position:absolute;top:10px;left:10px;padding:0;cursor:pointer;opacity:1;border:.06666em solid #fff;background-color:#2b333f;background-color:#2b333fb3;border-radius:.3em;transition:all .4s}.vjs-big-play-centered .vjs-big-play-button{top:50%;left:50%;margin-top:-.81666em;margin-left:-1.5em}.video-js:hover .vjs-big-play-button,.video-js .vjs-big-play-button:focus{border-color:#fff;background-color:#73859f;background-color:#73859f80;transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button,.vjs-error .vjs-big-play-button{display:none}.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause .vjs-big-play-button{display:block}.video-js button{background:none;border:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;text-transform:none;text-decoration:none;transition:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vjs-control .vjs-button{width:100%;height:100%}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:linear-gradient(180deg,rgba(0,0,0,.8),rgba(255,255,255,0));overflow:auto}.video-js .vjs-modal-dialog>*{box-sizing:border-box}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}.vjs-menu-button{cursor:pointer}.vjs-menu-button.vjs-disabled{cursor:default}.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu{display:none}.vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;font-family:Arial,Helvetica,sans-serif;overflow:auto}.vjs-menu .vjs-menu-content>*{box-sizing:border-box}.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-menu li.vjs-menu-item:focus,.vjs-menu li.vjs-menu-item:hover,.js-focus-visible .vjs-menu li.vjs-menu-item:hover{background-color:#73859f;background-color:#73859f80}.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover,.js-focus-visible .vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2b333f}.video-js .vjs-menu *:not(.vjs-selected):focus:not(:focus-visible),.js-focus-visible .vjs-menu *:not(.vjs-selected):focus:not(.focus-visible){background:none}.vjs-menu li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;width:10em;left:-3em;height:0em;margin-bottom:1.5em;border-top-color:#2b333fb3}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2b333f;background-color:#2b333fb3;position:absolute;width:100%;bottom:1.5em;max-height:15em}.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:5em}.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:10em}.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:14em}.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:25em}.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu,.vjs-menu-button-popup .vjs-menu.vjs-lock-showing{display:block}.video-js .vjs-menu-button-inline{transition:all .4s;overflow:hidden}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline:hover,.video-js .vjs-menu-button-inline:focus,.video-js .vjs-menu-button-inline.vjs-slider-active,.video-js.vjs-no-flex .vjs-menu-button-inline{width:12em}.vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:4em;top:0;padding:0;margin:0;transition:all .4s}.vjs-menu-button-inline:hover .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline.vjs-slider-active .vjs-menu{display:block;opacity:1}.vjs-no-flex .vjs-menu-button-inline .vjs-menu{display:block;opacity:1;position:relative;width:auto}.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu,.vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu,.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu{width:auto}.vjs-menu-button-inline .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2b333f;background-color:#2b333fb3}.vjs-has-started .vjs-control-bar{display:flex;visibility:visible;opacity:1;transition:visibility .1s,opacity .1s}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:visible;opacity:0;transition:visibility 1s,opacity 1s}.vjs-controls-disabled .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar,.vjs-error .vjs-control-bar{display:none!important}.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible}.vjs-has-started.vjs-no-flex .vjs-control-bar{display:table}.video-js .vjs-control{position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;flex:none}.vjs-button>.vjs-icon-placeholder:before{font-size:1.8em;line-height:1.67}.vjs-button>.vjs-icon-placeholder{display:block}.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before,.video-js .vjs-control:focus{text-shadow:0em 0em 1em white}.video-js .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-no-flex .vjs-control{display:table-cell;vertical-align:middle}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{cursor:pointer;flex:auto;display:flex;align-items:center;min-width:4em;touch-action:none}.video-js .vjs-progress-control.disabled{cursor:default}.vjs-live .vjs-progress-control{display:none}.vjs-liveui .vjs-progress-control{display:flex;align-items:center}.vjs-no-flex .vjs-progress-control{width:auto}.video-js .vjs-progress-holder{flex:auto;transition:all .2s;height:.3em}.video-js .vjs-progress-control .vjs-progress-holder{margin:0 10px}.video-js .vjs-progress-control:hover .vjs-progress-holder{font-size:1.6666666667em}.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled{font-size:1em}.video-js .vjs-progress-holder .vjs-play-progress,.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div{position:absolute;display:block;height:100%;margin:0;padding:0;width:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{font-size:.9em;position:absolute;right:-.5em;top:-.3333333333em;z-index:1}.video-js .vjs-load-progress{background:rgba(115,133,159,.5)}.video-js .vjs-load-progress div{background:rgba(115,133,159,.75)}.video-js .vjs-time-tooltip{background-color:#fff;background-color:#fffc;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-progress-holder:focus .vjs-time-tooltip{display:none}.video-js .vjs-progress-control:hover .vjs-time-tooltip,.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip{display:block;font-size:.6em;visibility:visible}.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip{font-size:1em}.video-js .vjs-progress-control .vjs-mouse-display{display:none;position:absolute;width:1px;height:100%;background-color:#000;z-index:1}.vjs-no-flex .vjs-progress-control .vjs-mouse-display{z-index:0}.video-js .vjs-progress-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display{display:none}.vjs-mouse-display .vjs-time-tooltip{color:#fff;background-color:#000;background-color:#000c}.video-js .vjs-slider{position:relative;cursor:pointer;padding:0;margin:0 .45em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#73859f;background-color:#73859f80}.video-js .vjs-slider.disabled{cursor:default}.video-js .vjs-slider:focus{text-shadow:0em 0em 1em white;box-shadow:0 0 1em #fff}.video-js .vjs-mute-control{cursor:pointer;flex:none}.video-js .vjs-volume-control{cursor:pointer;margin-right:1em;display:flex}.video-js .vjs-volume-control.vjs-volume-horizontal{width:5em}.video-js .vjs-volume-panel .vjs-volume-control{visibility:visible;opacity:0;width:1px;height:1px;margin-left:-1px}.video-js .vjs-volume-panel{transition:width 1s}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control,.video-js .vjs-volume-panel:active .vjs-volume-control,.video-js .vjs-volume-panel:focus .vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control:active,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active{visibility:visible;opacity:1;position:relative;transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal{width:5em;height:3em;margin-right:0}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical{left:-3.5em;transition:left 0s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active{width:10em;transition:width .1s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only{width:4em}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{height:8em;width:3em;left:-3000em;transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s}.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{width:5em;height:3em;visibility:visible;opacity:1;position:relative;transition:none}.video-js.vjs-no-flex .vjs-volume-control.vjs-volume-vertical,.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{position:absolute;bottom:3em;left:.5em}.video-js .vjs-volume-panel{display:flex}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em;margin:1.35em auto}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em;z-index:1}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em;z-index:1}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{top:-.3em;right:-.5em}.video-js .vjs-volume-panel.vjs-volume-panel-vertical{width:4em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-volume-vertical{width:3em;height:8em;bottom:8em;background-color:#2b333f;background-color:#2b333fb3}.video-js .vjs-volume-horizontal .vjs-menu{left:-2em}.video-js .vjs-volume-tooltip{background-color:#fff;background-color:#fffc;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-volume-control:hover .vjs-volume-tooltip,.video-js .vjs-volume-control:hover .vjs-progress-holder:focus .vjs-volume-tooltip{display:block;font-size:1em;visibility:visible}.video-js .vjs-volume-vertical:hover .vjs-volume-tooltip,.video-js .vjs-volume-vertical:hover .vjs-progress-holder:focus .vjs-volume-tooltip{left:1em;top:-12px}.video-js .vjs-volume-control.disabled:hover .vjs-volume-tooltip{font-size:1em}.video-js .vjs-volume-control .vjs-mouse-display{display:none;position:absolute;width:100%;height:1px;background-color:#000;z-index:1}.video-js .vjs-volume-horizontal .vjs-mouse-display{width:1px;height:100%}.vjs-no-flex .vjs-volume-control .vjs-mouse-display{z-index:0}.video-js .vjs-volume-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-volume-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.video-js.vjs-user-inactive.vjs-no-flex .vjs-volume-control .vjs-mouse-display{display:none}.vjs-mouse-display .vjs-volume-tooltip{color:#fff;background-color:#000;background-color:#000c}.vjs-poster{display:inline-block;vertical-align:middle;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;background-color:#000;cursor:pointer;margin:0;padding:0;position:absolute;inset:0;height:100%}.vjs-has-started .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster{display:block}.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-live-control{display:flex;align-items:flex-start;flex:auto;font-size:1em;line-height:3em}.vjs-no-flex .vjs-live-control{display:table-cell;width:auto;text-align:left}.video-js:not(.vjs-live) .vjs-live-control,.video-js.vjs-liveui .vjs-live-control{display:none}.video-js .vjs-seek-to-live-control{align-items:center;cursor:pointer;flex:none;display:inline-flex;height:100%;padding-left:.5em;padding-right:.5em;font-size:1em;line-height:3em;width:auto;min-width:4em}.vjs-no-flex .vjs-seek-to-live-control{display:table-cell;width:auto;text-align:left}.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,.video-js:not(.vjs-live) .vjs-seek-to-live-control{display:none}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge{cursor:auto}.vjs-seek-to-live-control .vjs-icon-placeholder{margin-right:.5em;color:#888}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder{color:red}.video-js .vjs-time-control{flex:none;font-size:1em;line-height:3em;min-width:2em;width:auto;padding-left:1em;padding-right:1em}.vjs-live .vjs-time-control,.video-js .vjs-current-time,.vjs-no-flex .vjs-current-time,.video-js .vjs-duration,.vjs-no-flex .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.vjs-live .vjs-time-divider{display:none}.video-js .vjs-play-control{cursor:pointer}.video-js .vjs-play-control .vjs-icon-placeholder{flex:none}.vjs-text-track-display{position:absolute;inset:0 0 3em;pointer-events:none}.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{transform:translateY(-3em)}.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{transform:translateY(-1.5em)}.video-js .vjs-picture-in-picture-control,.video-js .vjs-fullscreen-control{cursor:pointer;flex:none}.vjs-playback-rate>.vjs-menu-button,.vjs-playback-rate .vjs-playback-rate-value{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-playback-rate .vjs-playback-rate-value{pointer-events:none;font-size:1.5em;line-height:2;text-align:center}.vjs-playback-rate .vjs-menu{width:4em;left:0}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-error .vjs-error-display:before{color:#fff;content:"X";font-family:Arial,Helvetica,sans-serif;font-size:4em;left:0;line-height:1;margin-top:-.5em;position:absolute;text-shadow:.05em .05em .1em #000;text-align:center;top:50%;vertical-align:middle;width:100%}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;opacity:.85;text-align:left;border:6px solid rgba(43,51,63,.7);box-sizing:border-box;background-clip:padding-box;width:50px;height:50px;border-radius:25px;visibility:hidden}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:block;-webkit-animation:vjs-spinner-show 0s linear .3s forwards;animation:vjs-spinner-show 0s linear .3s forwards}.vjs-loading-spinner:before,.vjs-loading-spinner:after{content:"";position:absolute;margin:-6px;box-sizing:inherit;width:inherit;height:inherit;border-radius:inherit;opacity:1;border:inherit;border-color:transparent;border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:before,.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after{-webkit-animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite;animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{border-top-color:#fff;-webkit-animation-delay:.44s;animation-delay:.44s}@keyframes vjs-spinner-show{to{visibility:visible}}@-webkit-keyframes vjs-spinner-show{to{visibility:visible}}@keyframes vjs-spinner-spin{to{transform:rotate(360deg)}}@-webkit-keyframes vjs-spinner-spin{to{-webkit-transform:rotate(360deg)}}@keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}to{border-top-color:#73859f}}@-webkit-keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}to{border-top-color:#73859f}}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:"\\f10d";font-size:1.5em;line-height:inherit}.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:" \\f11d";font-size:1.5em;line-height:inherit}.video-js.vjs-layout-small .vjs-current-time,.video-js.vjs-layout-small .vjs-time-divider,.video-js.vjs-layout-small .vjs-duration,.video-js.vjs-layout-small .vjs-remaining-time,.video-js.vjs-layout-small .vjs-playback-rate,.video-js.vjs-layout-small .vjs-chapters-button,.video-js.vjs-layout-small .vjs-descriptions-button,.video-js.vjs-layout-small .vjs-captions-button,.video-js.vjs-layout-small .vjs-subtitles-button,.video-js.vjs-layout-small .vjs-audio-button,.video-js.vjs-layout-small .vjs-volume-control,.video-js.vjs-layout-x-small .vjs-current-time,.video-js.vjs-layout-x-small .vjs-time-divider,.video-js.vjs-layout-x-small .vjs-duration,.video-js.vjs-layout-x-small .vjs-remaining-time,.video-js.vjs-layout-x-small .vjs-playback-rate,.video-js.vjs-layout-x-small .vjs-chapters-button,.video-js.vjs-layout-x-small .vjs-descriptions-button,.video-js.vjs-layout-x-small .vjs-captions-button,.video-js.vjs-layout-x-small .vjs-subtitles-button,.video-js.vjs-layout-x-small .vjs-audio-button,.video-js.vjs-layout-x-small .vjs-volume-control,.video-js.vjs-layout-tiny .vjs-current-time,.video-js.vjs-layout-tiny .vjs-time-divider,.video-js.vjs-layout-tiny .vjs-duration,.video-js.vjs-layout-tiny .vjs-remaining-time,.video-js.vjs-layout-tiny .vjs-playback-rate,.video-js.vjs-layout-tiny .vjs-chapters-button,.video-js.vjs-layout-tiny .vjs-descriptions-button,.video-js.vjs-layout-tiny .vjs-captions-button,.video-js.vjs-layout-tiny .vjs-subtitles-button,.video-js.vjs-layout-tiny .vjs-audio-button,.video-js.vjs-layout-tiny .vjs-volume-control{display:none!important}.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active{width:auto;width:initial}.video-js.vjs-layout-x-small:not(.vjs-liveui) .vjs-subs-caps-button,.video-js.vjs-layout-x-small:not(.vjs-live) .vjs-subs-caps-button,.video-js.vjs-layout-tiny .vjs-subs-caps-button{display:none}.video-js.vjs-layout-x-small.vjs-liveui .vjs-custom-control-spacer,.video-js.vjs-layout-tiny .vjs-custom-control-spacer{flex:auto;display:block}.video-js.vjs-layout-x-small.vjs-liveui.vjs-no-flex .vjs-custom-control-spacer,.video-js.vjs-layout-tiny.vjs-no-flex .vjs-custom-control-spacer{width:auto}.video-js.vjs-layout-x-small.vjs-liveui .vjs-progress-control,.video-js.vjs-layout-tiny .vjs-progress-control{display:none}.vjs-modal-dialog.vjs-text-track-settings{background-color:#2b333f;background-color:#2b333fbf;color:#fff;height:70%}.vjs-text-track-settings .vjs-modal-dialog-content{display:table}.vjs-text-track-settings .vjs-track-settings-colors,.vjs-text-track-settings .vjs-track-settings-font,.vjs-text-track-settings .vjs-track-settings-controls{display:table-cell}.vjs-text-track-settings .vjs-track-settings-controls{text-align:right;vertical-align:bottom}@supports (display: grid){.vjs-text-track-settings .vjs-modal-dialog-content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding:20px 24px 0}.vjs-track-settings-controls .vjs-default-button{margin-bottom:20px}.vjs-text-track-settings .vjs-track-settings-controls{grid-column:1/-1}.vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content{grid-template-columns:1fr}}.vjs-track-setting>select{margin-right:1em;margin-bottom:.5em}.vjs-text-track-settings fieldset{margin:5px;padding:3px;border:none}.vjs-text-track-settings fieldset span{display:inline-block}.vjs-text-track-settings fieldset span>select{max-width:7.3em}.vjs-text-track-settings legend{color:#fff;margin:0 0 5px}.vjs-text-track-settings .vjs-label{position:absolute;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);display:block;margin:0 0 5px;padding:0;border:0;height:1px;width:1px;overflow:hidden}.vjs-track-settings-controls button:focus,.vjs-track-settings-controls button:active{outline-style:solid;outline-width:medium;background-image:linear-gradient(0deg,#fff 88%,#73859f 100%)}.vjs-track-settings-controls button:hover{color:#2b333fbf}.vjs-track-settings-controls button{background-color:#fff;background-image:linear-gradient(-180deg,#fff 88%,#73859f 100%);color:#2b333f;cursor:pointer;border-radius:2px}.vjs-track-settings-controls .vjs-default-button{margin-right:1em}@media print{.video-js>*:not(.vjs-tech):not(.vjs-poster){visibility:hidden}}.vjs-resize-manager{position:absolute;top:0;left:0;width:100%;height:100%;border:none;z-index:-1000}.js-focus-visible .video-js *:focus:not(.focus-visible){outline:none}.video-js *:focus:not(:focus-visible){outline:none}.netless-window-manager-playground{width:100%;height:100%;position:relative;z-index:1;overflow:hidden;user-select:none}.netless-window-manager-sizer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;overflow:hidden;display:flex}.netless-window-manager-sizer-horizontal{flex-direction:column}.netless-window-manager-sizer:before,.netless-window-manager-sizer:after{flex:1;content:"";display:block}.netless-window-manager-chess-sizer:before,.netless-window-manager-chess-sizer:after{background-image:linear-gradient(45deg,#b0b0b0 25%,transparent 25%),linear-gradient(-45deg,#b0b0b0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#b0b0b0 75%),linear-gradient(-45deg,transparent 75%,#b0b0b0 75%);background-color:#fff;background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px}.netless-window-manager-wrapper{position:relative;z-index:1;width:100%;height:100%;overflow:hidden}.netless-window-manager-main-view{width:100%;height:100%}.netless-window-manager-cursor-pencil-image,.netless-window-manager-cursor-eraser-image{width:26px;height:26px}.netless-window-manager-cursor-selector-image{width:24px;height:24px}.netless-window-manager-cursor-selector-avatar{border-radius:50%;border-style:solid;border-width:2px;border-color:#fff;margin-bottom:2px}.netless-window-manager-cursor-selector-avatar img{width:12px}.netless-window-manager-cursor-inner{border-radius:4px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:4px;padding-right:4px;font-size:12px}.netless-window-manager-cursor-inner-mellow{height:32px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:16px;padding-right:16px}.netless-window-manager-cursor-tag-name{font-size:12px;margin-left:4px;padding:2px 8px;border-radius:4px}.netless-window-manager-cursor-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:26px;height:26px;z-index:2147483647;left:0;top:0;will-change:transform;transition:transform .1s;transform-origin:0 0;user-select:none}.netless-window-manager-cursor-pencil-offset{margin-left:-20px}.netless-window-manager-cursor-selector-offset{margin-left:-22px;margin-top:56px}.netless-window-manager-cursor-text-offset{margin-left:-30px;margin-top:18px}.netless-window-manager-cursor-shape-offset{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:180px;height:64px;margin-left:-30px;margin-top:12px}.netless-window-manager-cursor-laserPointer-image{margin-left:-22px;margin-top:3px}.netless-window-manager-cursor-name{width:100%;height:48px;display:flex;align-items:center;justify-content:center;position:absolute;top:-40px}.cursor-image-wrapper{display:flex;justify-content:center}.telebox-collector{position:absolute;right:10px;bottom:15px}.tele-fancy-scrollbar{overscroll-behavior:contain;overflow:auto;overflow-y:scroll;overflow-y:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.tele-fancy-scrollbar::-webkit-scrollbar{height:8px;width:8px}.tele-fancy-scrollbar::-webkit-scrollbar-track{background-color:transparent}.tele-fancy-scrollbar::-webkit-scrollbar-thumb{background-color:#444e601a;background-color:transparent;border-radius:4px;transition:background-color .4s}.tele-fancy-scrollbar:hover::-webkit-scrollbar-thumb{background-color:#444e601a}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#444e6033}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:active{background-color:#444e6033}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:vertical{min-height:50px}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:horizontal{min-width:50px}.telebox-box{position:absolute;top:0;left:0;z-index:100;transition:width .4s cubic-bezier(.4,.9,.71,1.02),height .4s cubic-bezier(.55,.82,.63,.95),opacity .6s cubic-bezier(.7,0,.84,0),transform .4s ease}.telebox-box-main{position:relative;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#f9f9fc;box-shadow:0 4px 10px #2f419226;border-radius:6px;border:1px solid #e3e3ec}.telebox-titlebar-wrap{flex-shrink:0;position:relative;z-index:1}.telebox-content-wrap{flex:1;width:100%;overflow:hidden;display:flex;justify-content:center;align-items:center}.telebox-content{width:100%;height:100%;position:relative}.telebox-footer-wrap{flex-shrink:0;display:flex;flex-direction:column}.telebox-footer-wrap:before{content:"";display:block;flex:1}.telebox-resize-handle{position:absolute;z-index:2147483647}.telebox-n{width:100%;height:5px;left:0;top:-5px;cursor:n-resize}.telebox-s{width:100%;height:5px;left:0;bottom:-5px;cursor:s-resize}.telebox-w{width:5px;height:100%;left:-5px;top:0;cursor:w-resize}.telebox-e{width:5px;height:100%;right:-5px;top:0;cursor:e-resize}.telebox-nw{width:15px;height:15px;top:-5px;left:-5px;cursor:nw-resize}.telebox-ne{width:15px;height:15px;top:-5px;right:-5px;cursor:ne-resize}.telebox-se{width:15px;height:15px;bottom:-5px;right:-5px;cursor:se-resize}.telebox-sw{width:15px;height:15px;bottom:-5px;left:-5px;cursor:sw-resize}.telebox-track-mask{position:fixed;top:0;left:0;z-index:2147483647;width:100%;height:100%;background:rgba(0,0,0,.0001);cursor:move}.telebox-cursor-n{cursor:n-resize}.telebox-cursor-s{cursor:s-resize}.telebox-cursor-w{cursor:w-resize}.telebox-cursor-e{cursor:e-resize}.telebox-cursor-nw{cursor:nw-resize}.telebox-cursor-ne{cursor:ne-resize}.telebox-cursor-se{cursor:se-resize}.telebox-cursor-sw{cursor:sw-resize}.telebox-maximized .telebox-resize-handles,.telebox-no-resize .telebox-resize-handles{display:none}.telebox-maximized{box-shadow:none;transition:none}.telebox-minimized{transition:width 50ms cubic-bezier(.4,.9,.71,1.02),height 50ms cubic-bezier(.55,.82,.63,.95),opacity .6s cubic-bezier(.7,0,.84,0),transform .6s ease;opacity:0;pointer-events:none;user-select:none}.telebox-transforming{will-change:transform;transition:opacity .6s cubic-bezier(.7,0,.84,0)}.telebox-readonly .telebox-resize-handle{cursor:initial!important;pointer-events:none!important}.telebox-color-scheme-dark .telebox-box-main{color:#e9e9e9;background:#212126;border-color:#43434d}.telebox-titlebar{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;background:#fff;user-select:none;border-bottom:1px solid #eeeef7;touch-action:manipulation}.telebox-title-area{overflow:hidden;position:relative;height:100%;flex:1;display:flex;align-items:center}.telebox-title{overflow:hidden;margin:0;padding:0;font-size:14px;font-weight:400;font-family:PingFangSC-Regular,PingFang SC;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;color:#191919}.telebox-drag-area{position:absolute;inset:0;margin:auto;z-index:10}.telebox-titlebar-btns{white-space:nowrap;word-break:keep-all;margin-left:auto;font-size:0}.telebox-titlebar-btn{width:22px;height:22px;padding:0;outline:0;border:none;background:0 0;cursor:pointer}.telebox-titlebar-btn~.telebox-titlebar-btn{margin-left:10px}.telebox-titlebar-btn-icon{width:22px;height:22px}.telebox-readonly .telebox-titlebar-btn{cursor:not-allowed}.telebox-titlebar-icon-minimize{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPHBhdGggZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOSAxM2gxMHYxLjZIOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=)}.telebox-titlebar-icon-maximize{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPGcgZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI2IpIj4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgIGQ9Ik0yMC40ODEgMTcuMWgxLjJ2NC41ODFIMTcuMXYtMS4yaDMuMzgxVjE3LjF6bS0xNC4xOTA1LS4wMDloMS4ydjMuMzgxaDMuMzgwOXYxLjJoLTQuNTgxdi00LjU4MXpNMTcuMSA2LjE5MDVoNC41ODF2NC41ODA5aC0xLjJ2LTMuMzgxSDE3LjF2LTEuMnptLTEwLjcwMDguMTA4N2g0Ljc5ODV2MS4ySDcuNTk5MnYzLjU5ODVoLTEuMlY2LjI5OTJ6IiAvPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==)}.telebox-titlebar-icon-maximize.is-active{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjZ2MjZIMHoiIC8+CiAgICAgICAgPHBhdGggaWQ9ImMiIGQ9Ik0yNi44NjkgMEwyOCAxLjEzMVYyNi44N0wyNi44NjkgMjhIMS4xM0wwIDI2Ljg3VjEuMTMxTDEuMTMgMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPgogICAgICAgICAgICA8bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNhIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tNC42NDI5LTQuNjQyOWgzNS4yODU4djM1LjI4NThILTQuNjQyOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxnPgogICAgICAgICAgICA8bWFzayBpZD0iZCIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNjIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tMTcuNTE2OCAxNEwxNC0xNy41MTY4IDQ1LjUxNjggMTQgMTQgNDUuNTE2OHoiIG1hc2s9InVybCgjZCkiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjIiCiAgICAgICAgICAgIGQ9Ik0xMC4wODg2IDIxLjQ4NjV2LTMuNjk2Nkg2LjM5Mk0yMS4zODU1IDEwLjE4OTVoLTMuNjk2NlY2LjQ5M00yMS40MDIgMTcuNzk4M2gtMy42OTY2djMuNjk2Nk0xMC4yNTAzIDYuMTQ5OHYzLjg5ODVINi4zNTE3IiAvPgogICAgPC9nPgo8L3N2Zz4K)}.telebox-titlebar-icon-close{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjQiPgogICAgICAgIDxwYXRoIGQ9Ik04LjM1MyAyMC4zMzIxTDIwLjMzMiA4LjM1M00yMC4zMzIyIDIwLjMzMjFMOC4zNTMgOC4zNTMiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=)}.telebox-color-scheme-dark .telebox-titlebar{color:#e9e9e9;background:#43434d;border-bottom:none}.telebox-collector{visibility:hidden;display:block;position:absolute;z-index:200;width:40px;height:40px;margin:0;padding:0;border:none;outline:0;font-size:0;border-radius:50%;background:#fff;box-shadow:0 2px 6px #2f419226;cursor:pointer;user-select:none;pointer-events:none;background-repeat:no-repeat;background-size:18px 16px;background-position:center;-webkit-tap-highlight-color:transparent}.telebox-collector-visible{visibility:visible;pointer-events:initial}.telebox-collector-readonly{cursor:not-allowed}.telebox-color-scheme-dark.telebox-collector{background-color:#43434d}.telebox-max-titlebar{display:none;position:absolute;top:0;left:0;z-index:50000;user-select:none}.telebox-max-titlebar .telebox-drag-area{height:100%;min-width:16px;position:static;margin:0;flex-grow:1;flex-shrink:0}.telebox-max-titlebar-maximized{display:flex}.telebox-titles{height:100%;margin:0;overflow-y:hidden;overflow-x:scroll;overflow-x:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.telebox-titles::-webkit-scrollbar{height:8px;width:8px}.telebox-titles::-webkit-scrollbar-track{background-color:transparent}.telebox-titles::-webkit-scrollbar-thumb{background-color:#eeeef7cc;background-color:transparent;border-radius:4px;transition:background-color .4s}.telebox-titles:hover::-webkit-scrollbar-thumb{background-color:#eeeef7cc}.telebox-titles::-webkit-scrollbar-thumb:hover{background-color:#eeeef7}.telebox-titles::-webkit-scrollbar-thumb:active{background-color:#eeeef7}.telebox-titles::-webkit-scrollbar-thumb:vertical{min-height:50px}.telebox-titles::-webkit-scrollbar-thumb:horizontal{min-width:50px}.telebox-titles-content{height:100%;display:flex;flex-wrap:nowrap;align-items:center;padding:0}.telebox-titles-tab{height:100%;overflow:hidden;max-width:182px;min-width:50px;padding:0 26px 0 16px;outline:0;font-size:13px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;border:none;border-right:1px solid #e5e5f0;color:#7b88a0;background:0 0;cursor:pointer;user-select:none}.telebox-titles-tab-focus{color:#357bf6}.telebox-readonly .telebox-titles-tab{cursor:not-allowed}.telebox-color-scheme-dark{color-scheme:dark}.telebox-color-scheme-dark.telebox-titlebar{color:#e9e9e9;background:#43434d;border-bottom:none}.telebox-color-scheme-dark .telebox-titles-tab{border-right-color:#7b88a0}.telebox-color-scheme-dark .telebox-title{color:#e9e9e9}.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}.rc-slider{position:relative;height:14px;padding:5px 0;width:100%;border-radius:6px;touch-action:none;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-rail{position:absolute;width:100%;background-color:#e9e9e9;height:4px;border-radius:6px}.rc-slider-track{position:absolute;left:0;height:4px;border-radius:6px;background-color:#abe2fb}.rc-slider-handle{position:absolute;width:14px;height:14px;cursor:pointer;cursor:-webkit-grab;margin-top:-5px;cursor:grab;border-radius:50%;border:solid 2px #96dbfa;background-color:#fff;touch-action:pan-x}.rc-slider-handle-dragging.rc-slider-handle-dragging.rc-slider-handle-dragging{border-color:#57c5f7;box-shadow:0 0 0 5px #96dbfa}.rc-slider-handle:focus{outline:none}.rc-slider-handle-click-focused:focus{border-color:#96dbfa;box-shadow:unset}.rc-slider-handle:hover{border-color:#57c5f7}.rc-slider-handle:active{border-color:#57c5f7;box-shadow:0 0 5px #57c5f7;cursor:-webkit-grabbing;cursor:grabbing}.rc-slider-mark{position:absolute;top:18px;left:0;width:100%;font-size:12px}.rc-slider-mark-text{position:absolute;display:inline-block;vertical-align:middle;text-align:center;cursor:pointer;color:#999}.rc-slider-mark-text-active{color:#666}.rc-slider-step{position:absolute;width:100%;height:4px;background:transparent}.rc-slider-dot{position:absolute;bottom:-2px;margin-left:-4px;width:8px;height:8px;border:2px solid #e9e9e9;background-color:#fff;cursor:pointer;border-radius:50%;vertical-align:middle}.rc-slider-dot-active{border-color:#96dbfa}.rc-slider-dot-reverse{margin-right:-4px}.rc-slider-disabled{background-color:#e9e9e9}.rc-slider-disabled .rc-slider-track{background-color:#ccc}.rc-slider-disabled .rc-slider-handle,.rc-slider-disabled .rc-slider-dot{border-color:#ccc;box-shadow:none;background-color:#fff;cursor:not-allowed}.rc-slider-disabled .rc-slider-mark-text,.rc-slider-disabled .rc-slider-dot{cursor:not-allowed!important}.rc-slider-vertical{width:14px;height:100%;padding:0 5px}.rc-slider-vertical .rc-slider-rail{height:100%;width:4px}.rc-slider-vertical .rc-slider-track{left:5px;bottom:0;width:4px}.rc-slider-vertical .rc-slider-handle{margin-left:-5px;touch-action:pan-y}.rc-slider-vertical .rc-slider-mark{top:0;left:18px;height:100%}.rc-slider-vertical .rc-slider-step{height:100%;width:4px}.rc-slider-vertical .rc-slider-dot{left:2px;margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:first-child{margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:last-child{margin-bottom:-4px}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear,.rc-slider-tooltip-zoom-down-leave{animation-duration:.3s;animation-fill-mode:both;display:block!important;animation-play-state:paused}.rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,.rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active{animation-name:rcSliderTooltipZoomDownIn;animation-play-state:running}.rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active{animation-name:rcSliderTooltipZoomDownOut;animation-play-state:running}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear{transform:scale(0);animation-timing-function:cubic-bezier(.23,1,.32,1)}.rc-slider-tooltip-zoom-down-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@keyframes rcSliderTooltipZoomDownIn{0%{opacity:0;transform-origin:50% 100%;transform:scale(0)}to{transform-origin:50% 100%;transform:scale(1)}}@keyframes rcSliderTooltipZoomDownOut{0%{transform-origin:50% 100%;transform:scale(1)}to{opacity:0;transform-origin:50% 100%;transform:scale(0)}}.rc-slider-tooltip{position:absolute;left:-9999px;top:-9999px;visibility:visible;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip-hidden{display:none}.rc-slider-tooltip-placement-top{padding:4px 0 8px}.rc-slider-tooltip-inner{padding:6px 2px;min-width:24px;height:24px;font-size:12px;line-height:1;color:#fff;text-align:center;text-decoration:none;background-color:#6c6c6c;border-radius:6px;box-shadow:0 0 4px #d9d9d9}.rc-slider-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow{bottom:4px;left:50%;margin-left:-4px;border-width:4px 4px 0;border-top-color:#6c6c6c}.fastboard-root{position:relative;width:100%;height:100%;overflow:hidden}.fastboard-view{position:absolute;top:0;left:0;width:100%;height:100%}.fastboard-left{position:absolute;top:0;left:0;height:calc(100% - 48px);padding:16px;z-index:201;display:flex;align-items:center}.fastboard-bottom-left,.fastboard-bottom-right{display:flex;gap:10px;position:absolute;bottom:8px;left:8px;padding:8px;z-index:200}.fastboard-bottom-right{left:auto;right:8px}.fastboard-redo-undo{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-redo-undo.light{color:#333;background-color:#ffffffe6;border:1px solid #e5e8f0}.fastboard-redo-undo.dark{color:#ddd;background-color:#14181e;border:1px solid #383b42}.fastboard-redo-undo-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-redo-undo-btn svg,.fastboard-redo-undo-btn img{width:100%;height:100%}.fastboard-redo-undo-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-redo-undo-btn.light:not(:disabled):hover{background-color:#ebf2ff}.fastboard-redo-undo-btn.dark:not(:disabled):hover{background-color:#383b42}.fastboard-page-control{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-page-control.light{color:#333;background-color:#ffffffe6;border:1px solid #e5e8f0}.fastboard-page-control.dark{color:#ddd;background-color:#14181e;border:1px solid #383b42}.fastboard-page-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-page-control-btn svg,.fastboard-page-control-btn img{width:100%;height:100%}.fastboard-page-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-page-control-btn.light:not(:disabled):hover{background-color:#ebf2ff}.fastboard-page-control-btn.dark:not(:disabled):hover{background-color:#383b42}.fastboard-page-control-cut-line{height:24px;width:.5px}.fastboard-page-control-cut-line.light{background-color:#e7e7e7}.fastboard-page-control-cut-line.dark{background-color:#ffffff26}.fastboard-page-control-slash{opacity:.6}.fastboard-page-control-text{line-height:24px}.fastboard-page-control-page,.fastboard-page-control-slash,.fastboard-page-control-page-count{font-size:14px;font-variant-numeric:tabular-nums}.fastboard-zoom-control{position:relative;display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-zoom-control.light{color:#333;background-color:#ffffffe6;border:1px solid #e5e8f0}.fastboard-zoom-control.dark{color:#ddd;background-color:#14181e;border:1px solid #383b42}.fastboard-zoom-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-zoom-control-btn svg,.fastboard-zoom-control-btn img{width:100%;height:100%}.fastboard-zoom-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-zoom-control-btn.light:not(:disabled):hover{background-color:#ebf2ff}.fastboard-zoom-control-btn.dark:not(:disabled):hover{background-color:#383b42}.fastboard-zoom-control-cut-line{height:24px;width:.5px}.fastboard-zoom-control-cut-line.light{background-color:#e7e7e7}.fastboard-zoom-control-cut-line.dark{background-color:#ffffff26}.fastboard-zoom-control-text{line-height:24px}.fastboard-zoom-control-percent{opacity:.6}.fastboard-zoom-control-scale,.fastboard-zoom-control-percent{font-size:14px;font-variant-numeric:tabular-nums}.fastboard-toolbar{display:flex;align-items:center;padding:4px;border-radius:4px;flex-direction:column;gap:4px;position:absolute;z-index:100;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-toolbar .rc-slider{padding:6px 0}.fastboard-toolbar .rc-slider-rail,.fastboard-toolbar .rc-slider-track{height:2px}.fastboard-toolbar .tippy-content{padding:8px}.fastboard-toolbar .tippy-box{border:1px solid rgba(0,0,0,.15);background-color:#333333f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-toolbar .tippy-box[data-theme~=light]{background-color:#fffffff2;box-shadow:0 5px 10px #00000040}.fastboard-toolbar.light{color:#333;background-color:#ffffffe6;border:1px solid #e5e8f0}.fastboard-toolbar.dark{color:#ddd;background-color:#14181e;border:1px solid #383b42}.fastboard-toolbar.expanded{border:1px solid rgba(0,0,0,.15)}.fastboard-toolbar.expanded:hover{box-shadow:0 0 5px #00000040;transform:translate(0)}.fastboard-toolbar.collapsed{padding:0;background-color:transparent}.fastboard-toolbar-tooltip{display:inline-flex;align-items:center;gap:4px}.fastboard-toolbar-hotkey{margin-right:-4px;width:24px;height:24px;border-radius:4px;background-color:#ffffff1a;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:4px;width:32px;height:32px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1;position:relative}.fastboard-toolbar-btn-interactive{display:inline-block;width:32px;height:32px}.fastboard-toolbar-btn svg,.fastboard-toolbar-btn img{width:100%;height:100%}.fastboard-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-toolbar-btn.light:not(:disabled):hover{background-color:#ebf2ff}.fastboard-toolbar-btn.dark:not(:disabled):hover{background-color:#383b42}.fastboard-toolbar-triangle{width:0px;height:0px;border-bottom:4px solid;border-left:4px solid transparent;position:absolute;bottom:0;right:0}.fastboard-toolbar-cut-line{display:inline-block;height:.5px;width:100%}.fastboard-toolbar-cut-line.light{background-color:#e7e7e7}.fastboard-toolbar-cut-line.dark{background-color:#ffffff26}.fastboard-toolbar-section{display:inline-flex;flex-flow:column nowrap;gap:4px;scroll-behavior:smooth}.fastboard-toolbar-section.collapsed{transform:translate(-100%);transition:1s transform}.fastboard-toolbar-section+.fastboard-toolbar-mask{opacity:0;transition:.5s opacity .4s}.fastboard-toolbar-section:hover+.fastboard-toolbar-mask,.fastboard-toolbar-mask:hover{opacity:1;transition:.2s opacity}.fastboard-toolbar-panel{width:120px;padding:0;display:flex;flex-flow:column nowrap;align-items:center;gap:8px}.fastboard-toolbar-panel.apps{width:224px}.fastboard-toolbar-color-box,.fastboard-toolbar-shapes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;align-items:center;justify-items:center}.fastboard-toolbar-color-box .fastboard-toolbar-btn,.fastboard-toolbar-shapes .fastboard-toolbar-btn{padding:0;width:24px;height:24px}.fastboard-toolbar-apps{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:center;justify-items:center}.fastboard-toolbar-apps .fastboard-toolbar-btn{width:40px;height:40px;font-size:0}.fastboard-toolbar-app-is-loading{opacity:.8;cursor:wait}.fastboard-toolbar-app-is-failed{opacity:.5;cursor:not-allowed}.fastboard-toolbar-app-icon{padding-top:4px;display:inline-flex;flex-flow:column nowrap;align-items:center;gap:4px}.fastboard-toolbar-app-icon .fastboard-toolbar-btn{padding:0}.fastboard-toolbar-app-icon-text{font-size:14px;color:#5d5d5d;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fastboard-toolbar-color-item{width:24px;height:24px;border-radius:4px;cursor:pointer}.fastboard-toolbar-color-item *.light:hover{background-color:#f5f5f5}.fastboard-toolbar-color-item *.dark:hover{background-color:#333}.fastboard-toolbar-color-border{width:24px;height:24px;border:1px solid transparent;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-color-border.active.light,.fastboard-toolbar-color-border.active.dark{border:1px solid rgba(51,129,255,.8)}.fastboard-toolbar-color-btn{margin:0;border:1px solid rgba(0,0,0,.24);padding:0;appearance:none;width:16px;height:16px;border-radius:4px;cursor:pointer}.fastboard-toolbar-color-btn:focus-visible{outline-offset:2px}.fastboard-toolbar-mask{position:absolute;left:calc(100% + 1px);top:50%;transform:translateY(-50%);opacity:.85}.fastboard-toolbar-mask.dark{left:100%}.fastboard-toolbar-mask-btn{width:17px;height:62px;cursor:pointer;opacity:.85}.fastboard-toolbar-mask-btn.dark{filter:invert(.8)}.fastboard-toolbar-expand-btn{display:flex;align-items:center;position:absolute;left:0}.fastboard-player-control{width:100%;display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-player-control.auto-hide{opacity:0;transition:opacity .2s}.fastboard-player-control.auto-hide:hover{opacity:1}.fastboard-player-control .rc-slider-disabled{background:transparent;opacity:.5}.fastboard-player-control .rc-slider-rail,.fastboard-player-control .rc-slider-track{height:2px}.fastboard-player-control .tippy-content{padding:8px}.fastboard-player-control .tippy-box{border:1px solid rgba(0,0,0,.15);background-color:#333333f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-player-control .tippy-box[data-theme~=light]{background-color:#fffffff2;box-shadow:0 5px 10px #00000040}.fastboard-player-control.light{color:#333;background-color:#ffffffe6;border:1px solid #e5e8f0}.fastboard-player-control.dark{color:#ddd;background-color:#14181e;border:1px solid #383b42}.fastboard-player-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;min-width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.fastboard-player-control-btn svg,.fastboard-player-control-btn img{width:100%;height:100%}.fastboard-player-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-player-control-btn.light:not(:disabled):hover{background-color:#ebf2ff}.fastboard-player-control-btn.dark:not(:disabled):hover{background-color:#383b42}.fastboard-player-control-btn.loading{animation:fastboard-player-control-rotate .5s linear infinite}@keyframes fastboard-player-control-rotate{to{transform:rotate(360deg)}}.fastboard-player-control-panel{padding:0;display:flex;flex-flow:column nowrap;align-items:stretch;gap:4px}.fastboard-player-control-panel .fastboard-player-control-btn{width:initial;height:initial;user-select:none;font-size:14px;padding:4px;justify-content:flex-end}.fastboard-player-control-panel .fastboard-player-control-btn.active{color:#3381ff}.fastboard-player-control-slider{width:100%;padding:0 7px}.fastboard-player-control-slider.loading{cursor:not-allowed}.fastboard-player-control-slash{opacity:.6}.fastboard-player-control-current,.fastboard-player-control-slash,.fastboard-player-control-total,.fastboard-player-control-speed-text{font-size:14px;font-variant-numeric:tabular-nums}.tippy-box.fastboard-tip{color:#eee;background-color:#000000f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.tippy-box.fastboard-tip[data-placement^=right]>.tippy-arrow:before{top:4px;border-width:4px;border-right-color:#000}.tippy-box.fastboard-tip[data-placement^=top]>.tippy-arrow:before{left:4px;border-width:4px;border-top-color:#000}\n';
140
141
 
141
142
  // src/behaviors/style.ts
142
143
  applyStyles(style_default);
@@ -344,18 +345,17 @@ function Redo({ theme = "light", active }) {
344
345
  const config = themes[theme];
345
346
  const stroke = active ? config.activeColor : config.color;
346
347
  return /* @__PURE__ */ import_react6.default.createElement("svg", {
347
- viewBox: "0 0 24 24"
348
- }, /* @__PURE__ */ import_react6.default.createElement("g", {
349
- fill: "none",
350
- fillRule: "evenodd",
351
- stroke,
352
- strokeLinecap: "round",
353
- strokeLinejoin: "round"
348
+ viewBox: "0 0 24 24",
349
+ fill: "none"
354
350
  }, /* @__PURE__ */ import_react6.default.createElement("path", {
355
- d: "M14 14h4v-4"
351
+ d: "M19 9.625H9v-1.25h10v1.25ZM5.625 13v6h-1.25v-6h1.25ZM9 9.625A3.375 3.375 0 0 0 5.625 13h-1.25A4.625 4.625 0 0 1 9 8.375v1.25Z",
352
+ fill: stroke
356
353
  }), /* @__PURE__ */ import_react6.default.createElement("path", {
357
- d: "m18 14-.788-.9A7.005 7.005 0 0 0 6 14h0"
358
- })));
354
+ d: "m15 5 4 4-4 4",
355
+ stroke,
356
+ strokeLinejoin: "round",
357
+ strokeWidth: "1.25"
358
+ }));
359
359
  }
360
360
 
361
361
  // src/icons/Undo.tsx
@@ -364,18 +364,17 @@ function Undo({ theme = "light", active }) {
364
364
  const config = themes[theme];
365
365
  const stroke = active ? config.activeColor : config.color;
366
366
  return /* @__PURE__ */ import_react7.default.createElement("svg", {
367
- viewBox: "0 0 24 24"
368
- }, /* @__PURE__ */ import_react7.default.createElement("g", {
369
- fill: "none",
370
- fillRule: "evenodd",
371
- stroke,
372
- strokeLinecap: "round",
373
- strokeLinejoin: "round"
367
+ viewBox: "0 0 24 24",
368
+ fill: "none"
374
369
  }, /* @__PURE__ */ import_react7.default.createElement("path", {
375
- d: "M10 14H6v-4"
370
+ d: "M5 9.625h10v-1.25H5v1.25ZM18.375 13v6h1.25v-6h-1.25ZM15 9.625A3.375 3.375 0 0 1 18.375 13h1.25A4.625 4.625 0 0 0 15 8.375v1.25Z",
371
+ fill: stroke
376
372
  }), /* @__PURE__ */ import_react7.default.createElement("path", {
377
- d: "m6 14 .788-.9A7.005 7.005 0 0 1 18 14h0"
378
- })));
373
+ d: "M9 5 5 9l4 4",
374
+ stroke,
375
+ strokeLinejoin: "round",
376
+ strokeWidth: "1.25"
377
+ }));
379
378
  }
380
379
 
381
380
  // src/components/RedoUndo/RedoUndo.tsx
@@ -432,12 +431,7 @@ function RedoUndo({ theme, undoIcon, undoIconDisable, redoIcon, redoIconDisable
432
431
  // src/components/ZoomControl/hooks.ts
433
432
  var import_react10 = require("react");
434
433
  var ScalePoints = [
435
- 0.10737418240000011,
436
- 0.13421772800000012,
437
- 0.16777216000000014,
438
- 0.20971520000000016,
439
- 0.26214400000000015,
440
- 0.3276800000000002,
434
+ 0.3,
441
435
  0.4096000000000002,
442
436
  0.5120000000000001,
443
437
  0.6400000000000001,
@@ -447,12 +441,7 @@ var ScalePoints = [
447
441
  1.5876000000000001,
448
442
  2.000376,
449
443
  2.5204737600000002,
450
- 3.1757969376000004,
451
- 4.001504141376,
452
- 5.041895218133761,
453
- 6.352787974848539,
454
- 8.00451284830916,
455
- 10
444
+ 3
456
445
  ];
457
446
  function nextScale(scale, delta) {
458
447
  const { length } = ScalePoints;
@@ -504,13 +493,13 @@ function Minus({ theme = "light", active }) {
504
493
  const config = themes[theme];
505
494
  const stroke = active ? config.activeColor : config.color;
506
495
  return /* @__PURE__ */ import_react11.default.createElement("svg", {
507
- viewBox: "0 0 24 24"
496
+ viewBox: "0 0 24 24",
497
+ fill: "none"
508
498
  }, /* @__PURE__ */ import_react11.default.createElement("path", {
509
- fill: "none",
499
+ d: "M5 12h14",
510
500
  stroke,
511
- strokeLinecap: "round",
512
501
  strokeLinejoin: "round",
513
- d: "M7 12h10"
502
+ strokeWidth: "1.25"
514
503
  }));
515
504
  }
516
505
 
@@ -520,13 +509,13 @@ function Plus({ theme = "light", active }) {
520
509
  const config = themes[theme];
521
510
  const stroke = active ? config.activeColor : config.color;
522
511
  return /* @__PURE__ */ import_react12.default.createElement("svg", {
523
- viewBox: "0 0 24 24"
512
+ viewBox: "0 0 24 24",
513
+ fill: "none"
524
514
  }, /* @__PURE__ */ import_react12.default.createElement("path", {
525
- fill: "none",
515
+ d: "M5 12h14m-7-7v14",
526
516
  stroke,
527
- strokeLinecap: "round",
528
517
  strokeLinejoin: "round",
529
- d: "M12 7v10m-5-5h10"
518
+ strokeWidth: "1.25"
530
519
  }));
531
520
  }
532
521
 
@@ -536,26 +525,26 @@ function Reset({ theme = "light", active }) {
536
525
  const config = themes[theme];
537
526
  const stroke = active ? config.activeColor : config.color;
538
527
  return /* @__PURE__ */ import_react13.default.createElement("svg", {
539
- viewBox: "0 0 24 24"
540
- }, /* @__PURE__ */ import_react13.default.createElement("g", {
541
- fill: "none",
542
- fillRule: "evenodd",
543
- transform: "translate(-176 -684)"
544
- }, /* @__PURE__ */ import_react13.default.createElement("path", {
528
+ viewBox: "0 0 24 24",
529
+ fill: "none"
530
+ }, /* @__PURE__ */ import_react13.default.createElement("circle", {
531
+ cx: "12",
532
+ cy: "12",
533
+ fill: stroke,
534
+ r: "2"
535
+ }), /* @__PURE__ */ import_react13.default.createElement("path", {
536
+ d: "M12 3v4m0 10v4m9-9h-4M7 12H3",
545
537
  stroke,
546
538
  strokeLinejoin: "round",
547
- d: "M188 688v4m0 8v4m8-8h-4m-8 0h-4"
548
- }), /* @__PURE__ */ import_react13.default.createElement("circle", {
549
- cx: "188",
550
- cy: "696",
551
- r: "6",
552
- stroke
539
+ strokeWidth: "1.25"
553
540
  }), /* @__PURE__ */ import_react13.default.createElement("circle", {
554
- cx: "188",
555
- cy: "696",
556
- r: "1",
557
- fill: stroke
558
- })));
541
+ cx: "12",
542
+ cy: "12",
543
+ r: "7",
544
+ stroke,
545
+ strokeLinejoin: "round",
546
+ strokeWidth: "1.25"
547
+ }));
559
548
  }
560
549
 
561
550
  // src/components/ZoomControl/ZoomControl.tsx
@@ -596,10 +585,12 @@ function ZoomControl({
596
585
  src: disabled ? minusIconDisable : minusIcon,
597
586
  alt: "[minus]"
598
587
  }))), /* @__PURE__ */ import_react15.default.createElement("span", {
588
+ className: (0, import_clsx2.default)(`${name2}-text`, theme)
589
+ }, /* @__PURE__ */ import_react15.default.createElement("span", {
599
590
  className: (0, import_clsx2.default)(`${name2}-scale`, theme)
600
591
  }, Math.ceil(scale * 100)), /* @__PURE__ */ import_react15.default.createElement("span", {
601
592
  className: (0, import_clsx2.default)(`${name2}-percent`, theme)
602
- }, "%"), /* @__PURE__ */ import_react15.default.createElement(import_react14.default, {
593
+ }, "%")), /* @__PURE__ */ import_react15.default.createElement(import_react14.default, {
603
594
  className: "fastboard-tip",
604
595
  content: t("zoomIn"),
605
596
  theme,
@@ -665,48 +656,65 @@ var import_react20 = __toESM(require("@tippyjs/react"));
665
656
  var import_clsx3 = __toESM(require("clsx"));
666
657
  var import_react21 = __toESM(require("react"));
667
658
 
668
- // src/icons/ChevronLeft.tsx
659
+ // src/icons/Left.tsx
669
660
  var import_react17 = __toESM(require("react"));
670
- function ChevronLeft({ theme = "light", active }) {
661
+ function Left({ theme = "light", active }) {
671
662
  const config = themes[theme];
672
663
  const stroke = active ? config.activeColor : config.color;
673
664
  return /* @__PURE__ */ import_react17.default.createElement("svg", {
674
- viewBox: "0 0 24 24"
665
+ viewBox: "0 0 24 24",
666
+ fill: "none"
675
667
  }, /* @__PURE__ */ import_react17.default.createElement("path", {
676
- fill: "none",
668
+ d: "m14 8-2 2-2 2 2 2 2 2",
677
669
  stroke,
678
- strokeLinecap: "round",
679
670
  strokeLinejoin: "round",
680
- d: "m14 16-2-2-2-2 2-2 2-2"
671
+ strokeWidth: "1.25"
681
672
  }));
682
673
  }
683
674
 
684
- // src/icons/ChevronRight.tsx
675
+ // src/icons/Right.tsx
685
676
  var import_react18 = __toESM(require("react"));
686
- function ChevronRight({ theme = "light", active }) {
677
+ function Right({ theme = "light", active }) {
687
678
  const config = themes[theme];
688
679
  const stroke = active ? config.activeColor : config.color;
689
680
  return /* @__PURE__ */ import_react18.default.createElement("svg", {
690
- viewBox: "0 0 24 24"
681
+ viewBox: "0 0 24 24",
682
+ fill: "none"
691
683
  }, /* @__PURE__ */ import_react18.default.createElement("path", {
692
- fill: "none",
684
+ d: "m10 8 2 2 2 2-2 2-2 2",
693
685
  stroke,
694
- strokeLinecap: "round",
695
686
  strokeLinejoin: "round",
696
- d: "m10 16 2-2 2-2-2-2-2-2"
687
+ strokeWidth: "1.25"
697
688
  }));
698
689
  }
699
690
 
700
- // src/icons/FilePlus.tsx
691
+ // src/icons/WhiteboardAdd.tsx
701
692
  var import_react19 = __toESM(require("react"));
702
- function FilePlus({ theme = "light", active }) {
693
+ function WhiteboardAdd({ theme = "light", active }) {
703
694
  const config = themes[theme];
704
695
  const stroke = active ? config.activeColor : config.color;
705
696
  return /* @__PURE__ */ import_react19.default.createElement("svg", {
706
- viewBox: "0 0 24 24"
697
+ viewBox: "0 0 24 24",
698
+ fill: "none"
707
699
  }, /* @__PURE__ */ import_react19.default.createElement("path", {
708
- fill: stroke,
709
- d: "M12 7.5a.5.5 0 0 1 .09.992L12 8.5H8a1.5 1.5 0 0 0-1.493 1.356L6.5 10v6a1.5 1.5 0 0 0 1.356 1.493L8 17.5h6a1.5 1.5 0 0 0 1.493-1.356L15.5 16v-4a.5.5 0 0 1 .992-.09l.008.09v4a2.5 2.5 0 0 1-2.336 2.495L14 18.5H8a2.5 2.5 0 0 1-2.495-2.336L5.5 16v-6a2.5 2.5 0 0 1 2.336-2.495L8 7.5h4Zm4-2a.5.5 0 0 1 .492.41L16.5 6v1.5H18a.5.5 0 0 1 .09.992L18 8.5h-1.5V10a.5.5 0 0 1-.992.09L15.5 10V8.5H14a.5.5 0 0 1-.09-.992L14 7.5h1.5V6a.5.5 0 0 1 .5-.5Z"
700
+ d: "M4 20h16M4 6h16",
701
+ stroke,
702
+ strokeLinejoin: "round",
703
+ strokeWidth: "1.25"
704
+ }), /* @__PURE__ */ import_react19.default.createElement("rect", {
705
+ height: "10",
706
+ rx: "1",
707
+ stroke,
708
+ strokeLinejoin: "round",
709
+ strokeWidth: "1.25",
710
+ width: "14",
711
+ x: "5",
712
+ y: "8"
713
+ }), /* @__PURE__ */ import_react19.default.createElement("path", {
714
+ d: "M12 4v2m-3 7h6m-3-3v6",
715
+ stroke,
716
+ strokeLinejoin: "round",
717
+ strokeWidth: "1.25"
710
718
  }));
711
719
  }
712
720
 
@@ -742,18 +750,20 @@ function PageControl({
742
750
  disabled: disabled || pageIndex === 0,
743
751
  onClick: actions.prevPage
744
752
  }, /* @__PURE__ */ import_react21.default.createElement(Icon, {
745
- fallback: /* @__PURE__ */ import_react21.default.createElement(ChevronLeft, {
753
+ fallback: /* @__PURE__ */ import_react21.default.createElement(Left, {
746
754
  theme
747
755
  }),
748
756
  src: disabled ? prevIconDisable : prevIcon,
749
757
  alt: "[prev]"
750
758
  }))), /* @__PURE__ */ import_react21.default.createElement("span", {
759
+ className: (0, import_clsx3.default)(`${name3}-text`, theme)
760
+ }, /* @__PURE__ */ import_react21.default.createElement("span", {
751
761
  className: (0, import_clsx3.default)(`${name3}-page`, theme)
752
762
  }, pageCount === 0 ? "\u2026" : pageIndex + 1), /* @__PURE__ */ import_react21.default.createElement("span", {
753
763
  className: (0, import_clsx3.default)(`${name3}-slash`, theme)
754
764
  }, "/"), /* @__PURE__ */ import_react21.default.createElement("span", {
755
765
  className: (0, import_clsx3.default)(`${name3}-page-count`, theme)
756
- }, pageCount), /* @__PURE__ */ import_react21.default.createElement(import_react20.default, {
766
+ }, pageCount)), /* @__PURE__ */ import_react21.default.createElement(import_react20.default, {
757
767
  className: "fastboard-tip",
758
768
  content: t("nextPage"),
759
769
  theme,
@@ -767,7 +777,7 @@ function PageControl({
767
777
  disabled: disabled || pageIndex === pageCount - 1,
768
778
  onClick: actions.nextPage
769
779
  }, /* @__PURE__ */ import_react21.default.createElement(Icon, {
770
- fallback: /* @__PURE__ */ import_react21.default.createElement(ChevronRight, {
780
+ fallback: /* @__PURE__ */ import_react21.default.createElement(Right, {
771
781
  theme
772
782
  }),
773
783
  src: disabled ? nextIconDisable : nextIcon,
@@ -786,7 +796,7 @@ function PageControl({
786
796
  disabled,
787
797
  onClick: actions.addPage
788
798
  }, /* @__PURE__ */ import_react21.default.createElement(Icon, {
789
- fallback: /* @__PURE__ */ import_react21.default.createElement(FilePlus, {
799
+ fallback: /* @__PURE__ */ import_react21.default.createElement(WhiteboardAdd, {
790
800
  theme
791
801
  }),
792
802
  src: disabled ? addIconDisable : addIcon,
@@ -795,97 +805,48 @@ function PageControl({
795
805
  }
796
806
 
797
807
  // src/components/Toolbar/hooks.ts
798
- var import_react22 = require("react");
799
- function useRoomState() {
800
- return useFastboardValue(useFastboardApp().memberState);
801
- }
802
- function useToolbar() {
803
- const app = useFastboardApp();
804
- const writable = useWritable();
805
- const memberState = useRoomState();
806
- const cleanCurrentScene = (0, import_react22.useCallback)(() => {
807
- app.cleanCurrentScene();
808
- }, [app]);
809
- const setAppliance = (0, import_react22.useCallback)((appliance, shape) => {
810
- app.setAppliance(appliance, shape);
811
- }, [app]);
812
- const setStrokeWidth = (0, import_react22.useCallback)((strokeWidth) => {
813
- app.setStrokeWidth(strokeWidth);
814
- }, [app]);
815
- const setStrokeColor = (0, import_react22.useCallback)((strokeColor) => {
816
- app.setStrokeColor(strokeColor);
817
- }, [app]);
818
- return {
819
- writable,
820
- memberState,
821
- cleanCurrentScene,
822
- setAppliance,
823
- setStrokeWidth,
824
- setStrokeColor
825
- };
826
- }
827
- var EmptyToolbarHook = {
828
- writable: false,
829
- memberState: void 0,
830
- cleanCurrentScene: noop,
831
- setAppliance: noop,
832
- setStrokeWidth: noop,
833
- setStrokeColor: noop
834
- };
835
-
836
- // src/components/Toolbar/Toolbar.tsx
837
- var import_clsx9 = __toESM(require("clsx"));
838
- var import_framer_motion = require("framer-motion");
839
- var import_react59 = __toESM(require("react"));
840
-
841
- // src/components/Toolbar/components/assets/expanded.png
842
- var expanded_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAB8CAYAAAAMw2JFAAAAAXNSR0IArs4c6QAAA5xJREFUeF7tnL9v00AUx5/TlRkJMSAxZ+jYCf4GtopK6dB2qBBsjshaJErboWVJpYaNLGDaIR2YYAFXqlxhlvzAJkhGJGlyDhVNSpWgyOiqBJnQ+urznW2Jy1JVVnKffv3x8yV9LxLE5CEBwFUA6ALAzyiZJFVVX21ubj7N5/MmACAAGEQBJDWbzQZCqGcYRm52dlbpdDpNAPgRNozkOE691+tBo9FItNtto1AorC0tLX0EAAzUDwvoDGS02NHREU4IarXatizLOV3XvwHAdwBweAP9BYIXGwwGcHh4mLBtG2matrGwsPB2mA5Xmf8BGf3lJycn+HRNtFqtd2HIfCEIBnIcBxBCEkKobxjGFk+ZPUFG6YQh86VAPGSuAUCbhcy+QMZktjVNW2cls28QD5k/A0CLtjJTg4zLbJpmLpVKvaStzIFAWMrMBISFzExBgsjMHIRWZm4gfmXmCnKezIqiLK+srOjDG+mfu3ooIG6Z6/X6r/39/Udzc3OvAQBX5jOYUEHwgqenp2BZlrS7u/sgnU6/Ge53wgfBMN1uV6pWq/b09PTdSqVSwtU49ERGp8myrISqqsszMzPPcSqRgRwfH0vlcvnD1NTUIgB8jQyk3+9DuVy2Jycn7wBANTIQvPsrlUqJZDJ5GwA+RQaCXSkWixPJZPKWABldOSKR8XeLIhGRCOkTBOGIcEQ4QkpAOEJKSNQR4YhwhJSAcISUkKgjTBy5fuPmNfxCNetLA/98srp25WFaxv+UpH5QnZpxEPz7/XuLnSAwzEBwFEFgmIIEgWEOQgvDBYQGhhuIXxiuIH5g/g8QP5czt0T8QFB/mHdeZXXXdr8QXEBoIJiD0EIwBQkCwQwksm0A9abD44lUl68A4ZEAkz0rDzDhiDg1JK+EI8IR4QgpAeEIKSFRR4QjwhFSAsIRUkKijsTSkdi0f8WmIS42LYKxaJqMRRtpLBpr8URTpK3GrrEYU1GUx6E3X7sHhUzTfJZKpV5cNFvBrY10NDqFEFKz2ex6Pp/3nDZhDuIaJrMPDg425ufncac3HrXzHCZjCuIar9vJZDI5TdPweN2lJpKYgLhlLBQKqzQDh4FA/MhI2ptQg/iVkTkIrYxMQdwyyrK8pet6uONxLGQMlAhLGalBXDK+z2azG6TKSFqIdNxrzNZXZSQtRDp+0eDxDmsZLwUSxvQqEWQ4nN4n3aZJLxT0uLS3t7cdhowk0Ph8gQGJNKzjvwGKWUjXcvHclAAAAABJRU5ErkJggg==";
843
-
844
- // src/components/Toolbar/Content.tsx
845
- var import_clsx8 = __toESM(require("clsx"));
846
- var import_react58 = __toESM(require("react"));
808
+ var import_react42 = require("react");
847
809
 
848
- // src/components/Toolbar/components/ApplianceButtons.tsx
849
- var import_react45 = __toESM(require("react"));
810
+ // src/components/Toolbar/const.ts
850
811
  var import_white_web_sdk = require("white-web-sdk");
851
812
 
852
813
  // src/components/Toolbar/icons/index.ts
853
- var import_react42 = require("react");
814
+ var import_react41 = require("react");
854
815
 
855
816
  // src/components/Toolbar/icons/Apps.tsx
856
- var import_react23 = __toESM(require("react"));
817
+ var import_react22 = __toESM(require("react"));
857
818
  var Apps = (props) => {
858
819
  const stroke = getStroke(props);
859
- return /* @__PURE__ */ import_react23.default.createElement("svg", {
820
+ return /* @__PURE__ */ import_react22.default.createElement("svg", {
860
821
  viewBox: "0 0 24 24"
861
- }, /* @__PURE__ */ import_react23.default.createElement("g", {
822
+ }, /* @__PURE__ */ import_react22.default.createElement("g", {
862
823
  fill: stroke
863
- }, /* @__PURE__ */ import_react23.default.createElement("path", {
824
+ }, /* @__PURE__ */ import_react22.default.createElement("path", {
864
825
  d: "M17.667 4.5h-3.334c-1.012 0-1.833.82-1.833 1.833V11.5h5.167c1.012 0 1.833-.82 1.833-1.833V6.333c0-1.012-.82-1.833-1.833-1.833Zm-3.334 1h3.334c.46 0 .833.373.833.833v3.334l-.006.104a.833.833 0 0 1-.827.729H13.5V6.333c0-.46.373-.833.833-.833Z"
865
- }), /* @__PURE__ */ import_react23.default.createElement("path", {
826
+ }), /* @__PURE__ */ import_react22.default.createElement("path", {
866
827
  d: "M6.333 19.5A1.833 1.833 0 0 1 4.5 17.667v-3.334c0-.525.221-1 .576-1.334a1.822 1.822 0 0 1-.576-1.332V8.333c0-1.012.82-1.833 1.833-1.833H10A1.5 1.5 0 0 1 11.5 8v4.5h4.167c.962 0 1.75.74 1.827 1.683l.006.15v3.334c0 1.012-.82 1.833-1.833 1.833Zm4.167-6H6.333a.833.833 0 0 0-.827.729l-.006.104v3.334c0 .46.373.833.833.833H10.5v-5Zm5.167 0H11.5v5h4.167c.46 0 .833-.373.833-.833v-3.334a.833.833 0 0 0-.833-.833ZM10 7.5H6.333a.833.833 0 0 0-.833.833v3.334c0 .46.373.833.833.833H10.5V8a.5.5 0 0 0-.41-.492L10 7.5Z"
867
828
  })));
868
829
  };
869
830
 
870
831
  // src/components/Toolbar/icons/Arrow.tsx
871
- var import_react24 = __toESM(require("react"));
832
+ var import_react23 = __toESM(require("react"));
872
833
  var Arrow = (props) => {
873
834
  const stroke = getStroke(props);
874
- return /* @__PURE__ */ import_react24.default.createElement("svg", {
835
+ return /* @__PURE__ */ import_react23.default.createElement("svg", {
875
836
  viewBox: "0 0 24 24"
876
- }, /* @__PURE__ */ import_react24.default.createElement("path", {
837
+ }, /* @__PURE__ */ import_react23.default.createElement("path", {
877
838
  fill: stroke,
878
839
  d: "M19 5v6l-2.647-2.646L5.99 18.718l-.708-.708L15.645 7.646 13 5h6Z"
879
840
  }));
880
841
  };
881
842
 
882
843
  // src/components/Toolbar/icons/Circle.tsx
883
- var import_react25 = __toESM(require("react"));
844
+ var import_react24 = __toESM(require("react"));
884
845
  var Circle = (props) => {
885
846
  const stroke = getStroke(props);
886
- return /* @__PURE__ */ import_react25.default.createElement("svg", {
847
+ return /* @__PURE__ */ import_react24.default.createElement("svg", {
887
848
  viewBox: "0 0 24 24"
888
- }, /* @__PURE__ */ import_react25.default.createElement("rect", {
849
+ }, /* @__PURE__ */ import_react24.default.createElement("rect", {
889
850
  width: "15",
890
851
  height: "15",
891
852
  x: "4.5",
@@ -897,40 +858,40 @@ var Circle = (props) => {
897
858
  };
898
859
 
899
860
  // src/components/Toolbar/icons/Clean.tsx
900
- var import_react26 = __toESM(require("react"));
861
+ var import_react25 = __toESM(require("react"));
901
862
  var Clean = (props) => {
902
863
  const stroke = getStroke(props);
903
- return /* @__PURE__ */ import_react26.default.createElement("svg", {
864
+ return /* @__PURE__ */ import_react25.default.createElement("svg", {
904
865
  viewBox: "0 0 24 24"
905
- }, /* @__PURE__ */ import_react26.default.createElement("path", {
866
+ }, /* @__PURE__ */ import_react25.default.createElement("path", {
906
867
  fill: stroke,
907
868
  d: "M9.754 11.99c0 1.856-.711 3.62-1.96 4.951l-.151.155h1.403l.855-.853h.707l.853.853h2.635l.094-.064a6.237 6.237 0 0 0 2.559-4.781l.005-.26h1a7.237 7.237 0 0 1-2.994 5.862l-.229.16-.277.083h-3l-.353-.146-.647-.647-.646.647-.354.146h-3l-.286-.91.214-.148a6.237 6.237 0 0 0 2.567-4.787l.005-.26h1Zm4.772-6.502v2l.35.039a2.98 2.98 0 0 1 2.644 2.78l.006.181h-8a2.98 2.98 0 0 1 2.65-2.961l.35-.039v-2h2Z"
908
869
  }));
909
870
  };
910
871
 
911
872
  // src/components/Toolbar/icons/Clicker.tsx
912
- var import_react27 = __toESM(require("react"));
873
+ var import_react26 = __toESM(require("react"));
913
874
  var Clicker = (props) => {
914
875
  const stroke = getStroke(props);
915
- return /* @__PURE__ */ import_react27.default.createElement("svg", {
876
+ return /* @__PURE__ */ import_react26.default.createElement("svg", {
916
877
  viewBox: "0 0 24 24"
917
- }, /* @__PURE__ */ import_react27.default.createElement("g", {
878
+ }, /* @__PURE__ */ import_react26.default.createElement("g", {
918
879
  fill: "none"
919
- }, /* @__PURE__ */ import_react27.default.createElement("path", {
880
+ }, /* @__PURE__ */ import_react26.default.createElement("path", {
920
881
  d: "M0 0h24v24H0z"
921
- }), /* @__PURE__ */ import_react27.default.createElement("path", {
882
+ }), /* @__PURE__ */ import_react26.default.createElement("path", {
922
883
  fill: stroke,
923
884
  d: "m7 5.072 10.33 7.892-4.879.549 3.232 5.598-.866.5-3.233-5.597-2.914 3.95L7 5.072Z"
924
885
  })));
925
886
  };
926
887
 
927
888
  // src/components/Toolbar/icons/Collapse.tsx
928
- var import_react28 = __toESM(require("react"));
889
+ var import_react27 = __toESM(require("react"));
929
890
  var Collapse = (props) => {
930
891
  const stroke = getStroke(props);
931
- return /* @__PURE__ */ import_react28.default.createElement("svg", {
892
+ return /* @__PURE__ */ import_react27.default.createElement("svg", {
932
893
  viewBox: "0 0 24 24"
933
- }, /* @__PURE__ */ import_react28.default.createElement("path", {
894
+ }, /* @__PURE__ */ import_react27.default.createElement("path", {
934
895
  fill: "none",
935
896
  stroke,
936
897
  d: "m8 10-2 2 2 2m10-8H6m12 12H6m12-4h-8m8-4h-8"
@@ -938,12 +899,12 @@ var Collapse = (props) => {
938
899
  };
939
900
 
940
901
  // src/components/Toolbar/icons/Diamond.tsx
941
- var import_react29 = __toESM(require("react"));
902
+ var import_react28 = __toESM(require("react"));
942
903
  var Diamond = (props) => {
943
904
  const stroke = getStroke(props);
944
- return /* @__PURE__ */ import_react29.default.createElement("svg", {
905
+ return /* @__PURE__ */ import_react28.default.createElement("svg", {
945
906
  viewBox: "0 0 24 24"
946
- }, /* @__PURE__ */ import_react29.default.createElement("path", {
907
+ }, /* @__PURE__ */ import_react28.default.createElement("path", {
947
908
  fill: "none",
948
909
  stroke,
949
910
  d: "M4.222 12 12 4.222 19.778 12 12 19.778z"
@@ -951,12 +912,12 @@ var Diamond = (props) => {
951
912
  };
952
913
 
953
914
  // src/components/Toolbar/icons/Down.tsx
954
- var import_react30 = __toESM(require("react"));
915
+ var import_react29 = __toESM(require("react"));
955
916
  var Down = (props) => {
956
917
  const stroke = getStroke(props);
957
- return /* @__PURE__ */ import_react30.default.createElement("svg", {
918
+ return /* @__PURE__ */ import_react29.default.createElement("svg", {
958
919
  viewBox: "0 0 24 24"
959
- }, /* @__PURE__ */ import_react30.default.createElement("path", {
920
+ }, /* @__PURE__ */ import_react29.default.createElement("path", {
960
921
  fill: "none",
961
922
  stroke,
962
923
  d: "m16 13-2 2-2 2-2-2-2-2m8-6-2 2-2 2-2-2-2-2"
@@ -964,24 +925,24 @@ var Down = (props) => {
964
925
  };
965
926
 
966
927
  // src/components/Toolbar/icons/Eraser.tsx
967
- var import_react31 = __toESM(require("react"));
928
+ var import_react30 = __toESM(require("react"));
968
929
  var Eraser = (props) => {
969
930
  const stroke = getStroke(props);
970
- return /* @__PURE__ */ import_react31.default.createElement("svg", {
931
+ return /* @__PURE__ */ import_react30.default.createElement("svg", {
971
932
  viewBox: "0 0 24 24"
972
- }, /* @__PURE__ */ import_react31.default.createElement("path", {
933
+ }, /* @__PURE__ */ import_react30.default.createElement("path", {
973
934
  fill: stroke,
974
935
  d: "m14.333 5.183.165.007c.494.037.978.245 1.356.623l2.333 2.333a2.15 2.15 0 0 1 0 3.04l-5.833 5.834a3.8 3.8 0 0 1-5.374 0l-1.167-1.166a2.15 2.15 0 0 1 0-3.04l7-7c.42-.42.97-.63 1.52-.63ZM11.52 8.52l-4.999 5a1.15 1.15 0 0 0 0 1.626l1.167 1.167a2.8 2.8 0 0 0 3.96 0l3.832-3.833-3.96-3.96Z"
975
936
  }));
976
937
  };
977
938
 
978
939
  // src/components/Toolbar/icons/Expand.tsx
979
- var import_react32 = __toESM(require("react"));
940
+ var import_react31 = __toESM(require("react"));
980
941
  var Expand = (props) => {
981
942
  const stroke = getStroke(props);
982
- return /* @__PURE__ */ import_react32.default.createElement("svg", {
943
+ return /* @__PURE__ */ import_react31.default.createElement("svg", {
983
944
  viewBox: "0 0 24 24"
984
- }, /* @__PURE__ */ import_react32.default.createElement("path", {
945
+ }, /* @__PURE__ */ import_react31.default.createElement("path", {
985
946
  fill: "none",
986
947
  stroke,
987
948
  d: "m16 10 2 2-2 2M6 6h12M6 18h12M6 14h8m-8-4h8"
@@ -989,36 +950,36 @@ var Expand = (props) => {
989
950
  };
990
951
 
991
952
  // src/components/Toolbar/icons/Line.tsx
992
- var import_react33 = __toESM(require("react"));
953
+ var import_react32 = __toESM(require("react"));
993
954
  var Line = (props) => {
994
955
  const stroke = getStroke(props);
995
- return /* @__PURE__ */ import_react33.default.createElement("svg", {
956
+ return /* @__PURE__ */ import_react32.default.createElement("svg", {
996
957
  viewBox: "0 0 24 24"
997
- }, /* @__PURE__ */ import_react33.default.createElement("path", {
958
+ }, /* @__PURE__ */ import_react32.default.createElement("path", {
998
959
  fill: stroke,
999
960
  d: "m18.01 5.282.708.708L5.99 18.718l-.708-.708z"
1000
961
  }));
1001
962
  };
1002
963
 
1003
964
  // src/components/Toolbar/icons/Pencil.tsx
1004
- var import_react34 = __toESM(require("react"));
965
+ var import_react33 = __toESM(require("react"));
1005
966
  var Pencil = (props) => {
1006
967
  const stroke = getStroke(props);
1007
- return /* @__PURE__ */ import_react34.default.createElement("svg", {
968
+ return /* @__PURE__ */ import_react33.default.createElement("svg", {
1008
969
  viewBox: "0 0 24 24"
1009
- }, /* @__PURE__ */ import_react34.default.createElement("path", {
970
+ }, /* @__PURE__ */ import_react33.default.createElement("path", {
1010
971
  fill: stroke,
1011
972
  d: "m17.497 4.84.116.105 1.442 1.442a1.52 1.52 0 0 1 .104 2.034l-.104.116L8.733 18.858l-4.347.756.756-4.347L15.463 4.945a1.52 1.52 0 0 1 2.034-.104ZM5.967 16.349l-.353 2.037 2.037-.354-1.683-1.683Zm8.407-8.901-7.946 7.946 2.178 2.178 7.946-7.946-2.178-2.178Zm-.728 2.2.708.707-5 5-.708-.708 5-5Zm2.596-4.055-.072.06-1.09 1.088 2.179 2.178 1.089-1.088a.52.52 0 0 0 .105-.584l-.045-.08-.06-.072-1.442-1.442a.52.52 0 0 0-.664-.06Z"
1012
973
  }));
1013
974
  };
1014
975
 
1015
976
  // src/components/Toolbar/icons/Rectangle.tsx
1016
- var import_react35 = __toESM(require("react"));
977
+ var import_react34 = __toESM(require("react"));
1017
978
  var Rectangle = (props) => {
1018
979
  const stroke = getStroke(props);
1019
- return /* @__PURE__ */ import_react35.default.createElement("svg", {
980
+ return /* @__PURE__ */ import_react34.default.createElement("svg", {
1020
981
  viewBox: "0 0 24 24"
1021
- }, /* @__PURE__ */ import_react35.default.createElement("path", {
982
+ }, /* @__PURE__ */ import_react34.default.createElement("path", {
1022
983
  fill: "none",
1023
984
  stroke,
1024
985
  d: "M5.5 5.5h13v13h-13z"
@@ -1026,24 +987,24 @@ var Rectangle = (props) => {
1026
987
  };
1027
988
 
1028
989
  // src/components/Toolbar/icons/Selector.tsx
1029
- var import_react36 = __toESM(require("react"));
990
+ var import_react35 = __toESM(require("react"));
1030
991
  var Selector = (props) => {
1031
992
  const stroke = getStroke(props);
1032
- return /* @__PURE__ */ import_react36.default.createElement("svg", {
993
+ return /* @__PURE__ */ import_react35.default.createElement("svg", {
1033
994
  viewBox: "0 0 24 24"
1034
- }, /* @__PURE__ */ import_react36.default.createElement("path", {
995
+ }, /* @__PURE__ */ import_react35.default.createElement("path", {
1035
996
  fill: stroke,
1036
997
  d: "m12 12 8 2.667-3.556 1.777L14.667 20 12 12Zm3-8v7.5h-1V5H5v9h6.5v1H4V4h11Z"
1037
998
  }));
1038
999
  };
1039
1000
 
1040
1001
  // src/components/Toolbar/icons/SpeechBalloon.tsx
1041
- var import_react37 = __toESM(require("react"));
1002
+ var import_react36 = __toESM(require("react"));
1042
1003
  var SpeechBalloon = (props) => {
1043
1004
  const stroke = getStroke(props);
1044
- return /* @__PURE__ */ import_react37.default.createElement("svg", {
1005
+ return /* @__PURE__ */ import_react36.default.createElement("svg", {
1045
1006
  viewBox: "0 0 24 24"
1046
- }, /* @__PURE__ */ import_react37.default.createElement("path", {
1007
+ }, /* @__PURE__ */ import_react36.default.createElement("path", {
1047
1008
  fill: "none",
1048
1009
  stroke,
1049
1010
  d: "M17 4.5c.414 0 .79.168 1.06.44.272.27.44.646.44 1.06v9c0 .414-.168.79-.44 1.06a1.49 1.49 0 0 1-1.06.44h-4.207l-2.715 2.715-1.81-2.715H7a1.49 1.49 0 0 1-1.06-.44A1.495 1.495 0 0 1 5.5 15V6c0-.414.168-.79.44-1.06A1.49 1.49 0 0 1 7 4.5Z"
@@ -1051,12 +1012,12 @@ var SpeechBalloon = (props) => {
1051
1012
  };
1052
1013
 
1053
1014
  // src/components/Toolbar/icons/Star.tsx
1054
- var import_react38 = __toESM(require("react"));
1015
+ var import_react37 = __toESM(require("react"));
1055
1016
  var Star = (props) => {
1056
1017
  const stroke = getStroke(props);
1057
- return /* @__PURE__ */ import_react38.default.createElement("svg", {
1018
+ return /* @__PURE__ */ import_react37.default.createElement("svg", {
1058
1019
  viewBox: "0 0 24 24"
1059
- }, /* @__PURE__ */ import_react38.default.createElement("path", {
1020
+ }, /* @__PURE__ */ import_react37.default.createElement("path", {
1060
1021
  fill: "none",
1061
1022
  stroke,
1062
1023
  d: "m12 3.523 1.993 5.734 6.07.123-4.838 3.668 1.758 5.81L12 15.391l-4.983 3.467 1.758-5.81L3.938 9.38l6.069-.123L12 3.523Z"
@@ -1064,24 +1025,24 @@ var Star = (props) => {
1064
1025
  };
1065
1026
 
1066
1027
  // src/components/Toolbar/icons/Text.tsx
1067
- var import_react39 = __toESM(require("react"));
1028
+ var import_react38 = __toESM(require("react"));
1068
1029
  var Text = (props) => {
1069
1030
  const stroke = getStroke(props);
1070
- return /* @__PURE__ */ import_react39.default.createElement("svg", {
1031
+ return /* @__PURE__ */ import_react38.default.createElement("svg", {
1071
1032
  viewBox: "0 0 24 24"
1072
- }, /* @__PURE__ */ import_react39.default.createElement("path", {
1033
+ }, /* @__PURE__ */ import_react38.default.createElement("path", {
1073
1034
  fill: stroke,
1074
1035
  d: "M18.5 5.5V8h-1V6.5H13v11h2v1H9v-1h2v-11H6.5V8h-1V5.5h13Z"
1075
1036
  }));
1076
1037
  };
1077
1038
 
1078
1039
  // src/components/Toolbar/icons/Triangle.tsx
1079
- var import_react40 = __toESM(require("react"));
1040
+ var import_react39 = __toESM(require("react"));
1080
1041
  var Triangle = (props) => {
1081
1042
  const stroke = getStroke(props);
1082
- return /* @__PURE__ */ import_react40.default.createElement("svg", {
1043
+ return /* @__PURE__ */ import_react39.default.createElement("svg", {
1083
1044
  viewBox: "0 0 24 24"
1084
- }, /* @__PURE__ */ import_react40.default.createElement("path", {
1045
+ }, /* @__PURE__ */ import_react39.default.createElement("path", {
1085
1046
  fill: "none",
1086
1047
  stroke,
1087
1048
  d: "M12 6.008 19.138 18.5H4.862L12 6.008Z"
@@ -1089,12 +1050,12 @@ var Triangle = (props) => {
1089
1050
  };
1090
1051
 
1091
1052
  // src/components/Toolbar/icons/Up.tsx
1092
- var import_react41 = __toESM(require("react"));
1053
+ var import_react40 = __toESM(require("react"));
1093
1054
  var Up = (props) => {
1094
1055
  const stroke = getStroke(props);
1095
- return /* @__PURE__ */ import_react41.default.createElement("svg", {
1056
+ return /* @__PURE__ */ import_react40.default.createElement("svg", {
1096
1057
  viewBox: "0 0 24 24"
1097
- }, /* @__PURE__ */ import_react41.default.createElement("path", {
1058
+ }, /* @__PURE__ */ import_react40.default.createElement("path", {
1098
1059
  fill: "none",
1099
1060
  stroke,
1100
1061
  d: "m16 11-2-2-2-2-2 2-2 2m8 6-2-2-2-2-2 2-2 2"
@@ -1103,27 +1064,123 @@ var Up = (props) => {
1103
1064
 
1104
1065
  // src/components/Toolbar/icons/index.ts
1105
1066
  var Icons = {
1106
- Clicker: (0, import_react42.memo)(Clicker),
1107
- Collapse: (0, import_react42.memo)(Collapse),
1108
- Eraser: (0, import_react42.memo)(Eraser),
1109
- Expand: (0, import_react42.memo)(Expand),
1110
- Pencil: (0, import_react42.memo)(Pencil),
1111
- Selector: (0, import_react42.memo)(Selector),
1112
- Rectangle: (0, import_react42.memo)(Rectangle),
1113
- Text: (0, import_react42.memo)(Text),
1114
- Apps: (0, import_react42.memo)(Apps),
1115
- Clean: (0, import_react42.memo)(Clean),
1116
- Circle: (0, import_react42.memo)(Circle),
1117
- Line: (0, import_react42.memo)(Line),
1118
- Arrow: (0, import_react42.memo)(Arrow),
1119
- Star: (0, import_react42.memo)(Star),
1120
- Diamond: (0, import_react42.memo)(Diamond),
1121
- SpeechBalloon: (0, import_react42.memo)(SpeechBalloon),
1122
- Triangle: (0, import_react42.memo)(Triangle),
1123
- Up: (0, import_react42.memo)(Up),
1124
- Down: (0, import_react42.memo)(Down)
1067
+ Clicker: (0, import_react41.memo)(Clicker),
1068
+ Collapse: (0, import_react41.memo)(Collapse),
1069
+ Eraser: (0, import_react41.memo)(Eraser),
1070
+ Expand: (0, import_react41.memo)(Expand),
1071
+ Pencil: (0, import_react41.memo)(Pencil),
1072
+ Selector: (0, import_react41.memo)(Selector),
1073
+ Rectangle: (0, import_react41.memo)(Rectangle),
1074
+ Text: (0, import_react41.memo)(Text),
1075
+ Apps: (0, import_react41.memo)(Apps),
1076
+ Clean: (0, import_react41.memo)(Clean),
1077
+ Circle: (0, import_react41.memo)(Circle),
1078
+ Line: (0, import_react41.memo)(Line),
1079
+ Arrow: (0, import_react41.memo)(Arrow),
1080
+ Star: (0, import_react41.memo)(Star),
1081
+ Diamond: (0, import_react41.memo)(Diamond),
1082
+ SpeechBalloon: (0, import_react41.memo)(SpeechBalloon),
1083
+ Triangle: (0, import_react41.memo)(Triangle),
1084
+ Up: (0, import_react41.memo)(Up),
1085
+ Down: (0, import_react41.memo)(Down)
1125
1086
  };
1126
1087
 
1088
+ // src/components/Toolbar/const.ts
1089
+ var ShapesMap = {
1090
+ [import_white_web_sdk.ApplianceNames.rectangle]: Icons.Rectangle,
1091
+ [import_white_web_sdk.ApplianceNames.ellipse]: Icons.Circle,
1092
+ [import_white_web_sdk.ApplianceNames.straight]: Icons.Line,
1093
+ [import_white_web_sdk.ApplianceNames.arrow]: Icons.Arrow,
1094
+ [import_white_web_sdk.ShapeType.Pentagram]: Icons.Star,
1095
+ [import_white_web_sdk.ShapeType.Rhombus]: Icons.Diamond,
1096
+ [import_white_web_sdk.ShapeType.Triangle]: Icons.Triangle,
1097
+ [import_white_web_sdk.ShapeType.SpeechBalloon]: Icons.SpeechBalloon
1098
+ };
1099
+ var ApplianceShapes = [
1100
+ import_white_web_sdk.ApplianceNames.rectangle,
1101
+ import_white_web_sdk.ApplianceNames.ellipse,
1102
+ import_white_web_sdk.ApplianceNames.straight,
1103
+ import_white_web_sdk.ApplianceNames.arrow
1104
+ ];
1105
+ var Shapes = [
1106
+ import_white_web_sdk.ShapeType.Pentagram,
1107
+ import_white_web_sdk.ShapeType.Rhombus,
1108
+ import_white_web_sdk.ShapeType.Triangle,
1109
+ import_white_web_sdk.ShapeType.SpeechBalloon
1110
+ ];
1111
+ var ItemHeight = 32 + 4;
1112
+ var ItemsCount = 8;
1113
+ var MaxHeight = ItemHeight * ItemsCount - 4;
1114
+ var MinHeight = ItemHeight * 2 - 4;
1115
+
1116
+ // src/components/Toolbar/hooks.ts
1117
+ function useRoomState() {
1118
+ return useFastboardValue(useFastboardApp().memberState);
1119
+ }
1120
+ function useAppsStatus() {
1121
+ return useFastboardValue(useFastboardApp().appsStatus);
1122
+ }
1123
+ function useToolbar() {
1124
+ const app = useFastboardApp();
1125
+ const writable = useWritable();
1126
+ const memberState = useRoomState();
1127
+ const appsStatus = useAppsStatus();
1128
+ const [lastShape, setLastShape] = (0, import_react42.useState)("rectangle");
1129
+ const cleanCurrentScene = (0, import_react42.useCallback)(() => {
1130
+ app.cleanCurrentScene();
1131
+ }, [app]);
1132
+ const setAppliance = (0, import_react42.useCallback)((appliance, shape) => {
1133
+ app.setAppliance(appliance, shape);
1134
+ if (shape) {
1135
+ setLastShape(shape);
1136
+ } else if (appliance in ShapesMap) {
1137
+ setLastShape(appliance);
1138
+ }
1139
+ }, [app]);
1140
+ const setStrokeWidth = (0, import_react42.useCallback)((strokeWidth) => {
1141
+ app.setStrokeWidth(strokeWidth);
1142
+ }, [app]);
1143
+ const setStrokeColor = (0, import_react42.useCallback)((strokeColor) => {
1144
+ app.setStrokeColor(strokeColor);
1145
+ }, [app]);
1146
+ return {
1147
+ writable,
1148
+ memberState,
1149
+ lastShape,
1150
+ appsStatus,
1151
+ cleanCurrentScene,
1152
+ setAppliance,
1153
+ setStrokeWidth,
1154
+ setStrokeColor
1155
+ };
1156
+ }
1157
+ var EmptyToolbarHook = {
1158
+ writable: false,
1159
+ memberState: void 0,
1160
+ lastShape: "rectangle",
1161
+ appsStatus: {},
1162
+ cleanCurrentScene: noop,
1163
+ setAppliance: noop,
1164
+ setStrokeWidth: noop,
1165
+ setStrokeColor: noop
1166
+ };
1167
+
1168
+ // src/components/Toolbar/Toolbar.tsx
1169
+ var import_clsx10 = __toESM(require("clsx"));
1170
+ var import_framer_motion = require("framer-motion");
1171
+ var import_react59 = __toESM(require("react"));
1172
+
1173
+ // src/components/Toolbar/components/assets/expanded.png
1174
+ var expanded_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAB8CAYAAAAMw2JFAAAAAXNSR0IArs4c6QAAA5xJREFUeF7tnL9v00AUx5/TlRkJMSAxZ+jYCf4GtopK6dB2qBBsjshaJErboWVJpYaNLGDaIR2YYAFXqlxhlvzAJkhGJGlyDhVNSpWgyOiqBJnQ+urznW2Jy1JVVnKffv3x8yV9LxLE5CEBwFUA6ALAzyiZJFVVX21ubj7N5/MmACAAGEQBJDWbzQZCqGcYRm52dlbpdDpNAPgRNozkOE691+tBo9FItNtto1AorC0tLX0EAAzUDwvoDGS02NHREU4IarXatizLOV3XvwHAdwBweAP9BYIXGwwGcHh4mLBtG2matrGwsPB2mA5Xmf8BGf3lJycn+HRNtFqtd2HIfCEIBnIcBxBCEkKobxjGFk+ZPUFG6YQh86VAPGSuAUCbhcy+QMZktjVNW2cls28QD5k/A0CLtjJTg4zLbJpmLpVKvaStzIFAWMrMBISFzExBgsjMHIRWZm4gfmXmCnKezIqiLK+srOjDG+mfu3ooIG6Z6/X6r/39/Udzc3OvAQBX5jOYUEHwgqenp2BZlrS7u/sgnU6/Ge53wgfBMN1uV6pWq/b09PTdSqVSwtU49ERGp8myrISqqsszMzPPcSqRgRwfH0vlcvnD1NTUIgB8jQyk3+9DuVy2Jycn7wBANTIQvPsrlUqJZDJ5GwA+RQaCXSkWixPJZPKWABldOSKR8XeLIhGRCOkTBOGIcEQ4QkpAOEJKSNQR4YhwhJSAcISUkKgjTBy5fuPmNfxCNetLA/98srp25WFaxv+UpH5QnZpxEPz7/XuLnSAwzEBwFEFgmIIEgWEOQgvDBYQGhhuIXxiuIH5g/g8QP5czt0T8QFB/mHdeZXXXdr8QXEBoIJiD0EIwBQkCwQwksm0A9abD44lUl68A4ZEAkz0rDzDhiDg1JK+EI8IR4QgpAeEIKSFRR4QjwhFSAsIRUkKijsTSkdi0f8WmIS42LYKxaJqMRRtpLBpr8URTpK3GrrEYU1GUx6E3X7sHhUzTfJZKpV5cNFvBrY10NDqFEFKz2ex6Pp/3nDZhDuIaJrMPDg425ufncac3HrXzHCZjCuIar9vJZDI5TdPweN2lJpKYgLhlLBQKqzQDh4FA/MhI2ptQg/iVkTkIrYxMQdwyyrK8pet6uONxLGQMlAhLGalBXDK+z2azG6TKSFqIdNxrzNZXZSQtRDp+0eDxDmsZLwUSxvQqEWQ4nN4n3aZJLxT0uLS3t7cdhowk0Ph8gQGJNKzjvwGKWUjXcvHclAAAAABJRU5ErkJggg==";
1175
+
1176
+ // src/components/Toolbar/Content.tsx
1177
+ var import_clsx9 = __toESM(require("clsx"));
1178
+ var import_react58 = __toESM(require("react"));
1179
+
1180
+ // src/components/Toolbar/components/ApplianceButtons.tsx
1181
+ var import_react45 = __toESM(require("react"));
1182
+ var import_white_web_sdk2 = require("white-web-sdk");
1183
+
1127
1184
  // src/components/Toolbar/components/Button.tsx
1128
1185
  var import_clsx4 = __toESM(require("clsx"));
1129
1186
  var import_react43 = __toESM(require("react"));
@@ -1164,10 +1221,10 @@ function ClickerButton() {
1164
1221
  const app = useFastboardApp();
1165
1222
  const { t } = useTranslation();
1166
1223
  const { theme, icons, writable, setAppliance, memberState } = (0, import_react45.useContext)(ToolbarContext);
1167
- const changeAppliance = (0, import_react45.useCallback)(() => setAppliance(import_white_web_sdk.ApplianceNames.clicker), [setAppliance]);
1224
+ const changeAppliance = (0, import_react45.useCallback)(() => setAppliance(import_white_web_sdk2.ApplianceNames.clicker), [setAppliance]);
1168
1225
  const shortcut = (_a = app.hotKeys) == null ? void 0 : _a.changeToClick;
1169
1226
  const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
1170
- const active = appliance === import_white_web_sdk.ApplianceNames.clicker;
1227
+ const active = appliance === import_white_web_sdk2.ApplianceNames.clicker;
1171
1228
  const disabled = !writable;
1172
1229
  return /* @__PURE__ */ import_react45.default.createElement(Button, {
1173
1230
  content: renderToolTip(t("clicker"), shortcut),
@@ -1186,9 +1243,9 @@ function SelectorButton() {
1186
1243
  const app = useFastboardApp();
1187
1244
  const { t } = useTranslation();
1188
1245
  const { theme, icons, writable, setAppliance, memberState } = (0, import_react45.useContext)(ToolbarContext);
1189
- const changeAppliance = (0, import_react45.useCallback)(() => setAppliance(import_white_web_sdk.ApplianceNames.selector), [setAppliance]);
1246
+ const changeAppliance = (0, import_react45.useCallback)(() => setAppliance(import_white_web_sdk2.ApplianceNames.selector), [setAppliance]);
1190
1247
  const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
1191
- const active = appliance === import_white_web_sdk.ApplianceNames.selector;
1248
+ const active = appliance === import_white_web_sdk2.ApplianceNames.selector;
1192
1249
  const disabled = !writable;
1193
1250
  const shortcut = (app.hotKeys || defaultHotKeys).changeToSelector;
1194
1251
  return /* @__PURE__ */ import_react45.default.createElement(Button, {
@@ -1208,9 +1265,9 @@ function EraserButton() {
1208
1265
  const app = useFastboardApp();
1209
1266
  const { t } = useTranslation();
1210
1267
  const { theme, icons, writable, setAppliance, memberState } = (0, import_react45.useContext)(ToolbarContext);
1211
- const changeAppliance = (0, import_react45.useCallback)(() => setAppliance(import_white_web_sdk.ApplianceNames.eraser), [setAppliance]);
1268
+ const changeAppliance = (0, import_react45.useCallback)(() => setAppliance(import_white_web_sdk2.ApplianceNames.eraser), [setAppliance]);
1212
1269
  const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
1213
- const active = appliance === import_white_web_sdk.ApplianceNames.eraser;
1270
+ const active = appliance === import_white_web_sdk2.ApplianceNames.eraser;
1214
1271
  const disabled = !writable;
1215
1272
  const shortcut = ((app == null ? void 0 : app.hotKeys) || defaultHotKeys).changeToEraser;
1216
1273
  return /* @__PURE__ */ import_react45.default.createElement(Button, {
@@ -1243,6 +1300,7 @@ function CleanButton() {
1243
1300
  }
1244
1301
 
1245
1302
  // src/components/Toolbar/components/AppsButton.tsx
1303
+ var import_clsx5 = __toESM(require("clsx"));
1246
1304
  var import_react46 = __toESM(require("@tippyjs/react"));
1247
1305
  var import_react47 = __toESM(require("react"));
1248
1306
 
@@ -1291,34 +1349,46 @@ function renderAppsButtonContent(content) {
1291
1349
  }
1292
1350
  function DefaultApps() {
1293
1351
  const app = useFastboardApp();
1352
+ const { appsStatus } = (0, import_react47.useContext)(ToolbarContext);
1294
1353
  return /* @__PURE__ */ import_react47.default.createElement(import_react47.default.Fragment, null, /* @__PURE__ */ import_react47.default.createElement(AppIcon, {
1295
1354
  title: "Code Editor",
1296
1355
  src: vscode_default,
1297
1356
  alt: "[code editor]",
1357
+ appStatus: appsStatus["Monaco"],
1298
1358
  onClick: app == null ? void 0 : app.insertCodeEditor.bind(app)
1299
1359
  }), /* @__PURE__ */ import_react47.default.createElement(AppIcon, {
1300
1360
  title: "GeoGebra",
1301
1361
  src: geogebra_default,
1302
1362
  alt: "[geogebra]",
1363
+ appStatus: appsStatus["GeoGebra"],
1303
1364
  onClick: app == null ? void 0 : app.insertGeoGebra.bind(app)
1304
1365
  }), /* @__PURE__ */ import_react47.default.createElement(AppIcon, {
1305
1366
  title: "Countdown",
1306
1367
  src: countdown_default,
1307
1368
  alt: "[countdown]",
1369
+ appStatus: appsStatus["Countdown"],
1308
1370
  onClick: app == null ? void 0 : app.insertCountdown.bind(app)
1309
1371
  }));
1310
1372
  }
1311
- function AppIcon({ title, src, alt, onClick }) {
1373
+ function AppIcon({ title, src, alt, appStatus, onClick }) {
1374
+ const { status = "idle", reason } = appStatus || {};
1375
+ const loading = status === "loading";
1376
+ const failed = status === "failed";
1377
+ const unifiedTitle = loading ? "loading" : failed ? reason : title;
1312
1378
  return /* @__PURE__ */ import_react47.default.createElement("span", {
1313
- className: "fastboard-toolbar-app-icon"
1379
+ className: (0, import_clsx5.default)("fastboard-toolbar-app-icon", {
1380
+ "fastboard-toolbar-app-is-loading": loading,
1381
+ "fastboard-toolbar-app-is-failed": failed
1382
+ })
1314
1383
  }, /* @__PURE__ */ import_react47.default.createElement(Button, {
1384
+ disabled: failed,
1315
1385
  placement: "top",
1316
- content: title,
1386
+ content: unifiedTitle,
1317
1387
  onClick
1318
1388
  }, /* @__PURE__ */ import_react47.default.createElement("img", {
1319
1389
  src,
1320
1390
  alt,
1321
- title
1391
+ title: unifiedTitle
1322
1392
  })), /* @__PURE__ */ import_react47.default.createElement("span", {
1323
1393
  className: "fastboard-toolbar-app-icon-text"
1324
1394
  }, title));
@@ -1327,10 +1397,10 @@ function AppIcon({ title, src, alt, onClick }) {
1327
1397
  // src/components/Toolbar/components/PencilButton.tsx
1328
1398
  var import_react51 = __toESM(require("@tippyjs/react"));
1329
1399
  var import_react52 = __toESM(require("react"));
1330
- var import_white_web_sdk2 = require("white-web-sdk");
1400
+ var import_white_web_sdk3 = require("white-web-sdk");
1331
1401
 
1332
1402
  // src/components/Toolbar/components/ColorBox.tsx
1333
- var import_clsx5 = __toESM(require("clsx"));
1403
+ var import_clsx6 = __toESM(require("clsx"));
1334
1404
  var import_react48 = __toESM(require("react"));
1335
1405
  var colors = {
1336
1406
  "#E02020": [224, 32, 32],
@@ -1348,17 +1418,17 @@ function ColorBox() {
1348
1418
  const strokeColor = memberState == null ? void 0 : memberState.strokeColor;
1349
1419
  const disabled = !writable;
1350
1420
  return /* @__PURE__ */ import_react48.default.createElement("div", {
1351
- className: (0, import_clsx5.default)("fastboard-toolbar-color-box", theme)
1421
+ className: (0, import_clsx6.default)("fastboard-toolbar-color-box", theme)
1352
1422
  }, colorKeys.map((key) => /* @__PURE__ */ import_react48.default.createElement("div", {
1353
1423
  key,
1354
- className: (0, import_clsx5.default)("fastboard-toolbar-color-item", theme),
1424
+ className: (0, import_clsx6.default)("fastboard-toolbar-color-item", theme),
1355
1425
  onClick: () => setStrokeColor(colors[key])
1356
1426
  }, /* @__PURE__ */ import_react48.default.createElement("div", {
1357
- className: (0, import_clsx5.default)("fastboard-toolbar-color-border", theme, {
1427
+ className: (0, import_clsx6.default)("fastboard-toolbar-color-border", theme, {
1358
1428
  active: strokeColor && isEqualArray(strokeColor, colors[key])
1359
1429
  })
1360
1430
  }, /* @__PURE__ */ import_react48.default.createElement("button", {
1361
- className: (0, import_clsx5.default)("fastboard-toolbar-color-btn"),
1431
+ className: (0, import_clsx6.default)("fastboard-toolbar-color-btn"),
1362
1432
  style: { background: key },
1363
1433
  disabled,
1364
1434
  onClick: (ev) => {
@@ -1369,17 +1439,17 @@ function ColorBox() {
1369
1439
  }
1370
1440
 
1371
1441
  // src/components/Toolbar/components/CutLine.tsx
1372
- var import_clsx6 = __toESM(require("clsx"));
1442
+ var import_clsx7 = __toESM(require("clsx"));
1373
1443
  var import_react49 = __toESM(require("react"));
1374
1444
  function CutLine() {
1375
1445
  const { theme } = (0, import_react49.useContext)(ToolbarContext);
1376
1446
  return /* @__PURE__ */ import_react49.default.createElement("span", {
1377
- className: (0, import_clsx6.default)(`${name4}-cut-line`, theme)
1447
+ className: (0, import_clsx7.default)(`${name4}-cut-line`, theme)
1378
1448
  });
1379
1449
  }
1380
1450
 
1381
1451
  // src/components/Toolbar/components/Slider.tsx
1382
- var import_clsx7 = __toESM(require("clsx"));
1452
+ var import_clsx8 = __toESM(require("clsx"));
1383
1453
  var import_rc_slider = __toESM(require("rc-slider"));
1384
1454
  var import_react50 = __toESM(require("react"));
1385
1455
  function Slider() {
@@ -1388,7 +1458,7 @@ function Slider() {
1388
1458
  const strokeWidth = (memberState == null ? void 0 : memberState.strokeWidth) || 0;
1389
1459
  return /* @__PURE__ */ import_react50.default.createElement(import_rc_slider.default, {
1390
1460
  disabled: !writable,
1391
- className: (0, import_clsx7.default)("fastboard-toolbar-slider", theme),
1461
+ className: (0, import_clsx8.default)("fastboard-toolbar-slider", theme),
1392
1462
  trackStyle: { background: activeColor },
1393
1463
  handleStyle: { border: `1px solid ${activeColor}` },
1394
1464
  value: strokeWidth,
@@ -1404,10 +1474,10 @@ function PencilButton() {
1404
1474
  const { t } = useTranslation();
1405
1475
  const { theme, icons, writable, setAppliance, memberState } = (0, import_react52.useContext)(ToolbarContext);
1406
1476
  const changeAppliance = (0, import_react52.useCallback)(() => {
1407
- setAppliance(import_white_web_sdk2.ApplianceNames.pencil);
1477
+ setAppliance(import_white_web_sdk3.ApplianceNames.pencil);
1408
1478
  }, [setAppliance]);
1409
1479
  const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
1410
- const active = appliance === import_white_web_sdk2.ApplianceNames.pencil;
1480
+ const active = appliance === import_white_web_sdk3.ApplianceNames.pencil;
1411
1481
  const disabled = !writable;
1412
1482
  const shortcut = ((app == null ? void 0 : app.hotKeys) || defaultHotKeys).changeToPencil;
1413
1483
  return /* @__PURE__ */ import_react52.default.createElement("span", {
@@ -1446,46 +1516,22 @@ function renderPencilButtonContent() {
1446
1516
  var import_react53 = __toESM(require("@tippyjs/react"));
1447
1517
  var import_react54 = __toESM(require("react"));
1448
1518
  var import_white_web_sdk4 = require("white-web-sdk");
1449
-
1450
- // src/components/Toolbar/const.ts
1451
- var import_white_web_sdk3 = require("white-web-sdk");
1452
- var ShapesMap = {
1453
- [import_white_web_sdk3.ApplianceNames.rectangle]: Icons.Rectangle,
1454
- [import_white_web_sdk3.ApplianceNames.ellipse]: Icons.Circle,
1455
- [import_white_web_sdk3.ApplianceNames.straight]: Icons.Line,
1456
- [import_white_web_sdk3.ApplianceNames.arrow]: Icons.Arrow,
1457
- [import_white_web_sdk3.ShapeType.Pentagram]: Icons.Star,
1458
- [import_white_web_sdk3.ShapeType.Rhombus]: Icons.Diamond,
1459
- [import_white_web_sdk3.ShapeType.Triangle]: Icons.Triangle,
1460
- [import_white_web_sdk3.ShapeType.SpeechBalloon]: Icons.SpeechBalloon
1461
- };
1462
- var ApplianceShapes = [
1463
- import_white_web_sdk3.ApplianceNames.rectangle,
1464
- import_white_web_sdk3.ApplianceNames.ellipse,
1465
- import_white_web_sdk3.ApplianceNames.straight,
1466
- import_white_web_sdk3.ApplianceNames.arrow
1467
- ];
1468
- var Shapes = [
1469
- import_white_web_sdk3.ShapeType.Pentagram,
1470
- import_white_web_sdk3.ShapeType.Rhombus,
1471
- import_white_web_sdk3.ShapeType.Triangle,
1472
- import_white_web_sdk3.ShapeType.SpeechBalloon
1473
- ];
1474
- var ItemHeight = 32 + 4;
1475
- var ItemsCount = 8;
1476
- var MaxHeight = ItemHeight * ItemsCount - 4;
1477
- var MinHeight = ItemHeight * 2 - 4;
1478
-
1479
- // src/components/Toolbar/components/ShapesButton.tsx
1480
1519
  var ShapeTypes = /* @__PURE__ */ new Set([...ApplianceShapes, ...Shapes]);
1481
1520
  function ShapesButton() {
1482
1521
  const { t } = useTranslation();
1483
- const { theme, memberState } = (0, import_react54.useContext)(ToolbarContext);
1522
+ const { writable, theme, memberState, lastShape, setAppliance } = (0, import_react54.useContext)(ToolbarContext);
1484
1523
  const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
1485
1524
  const shape = memberState == null ? void 0 : memberState.shapeType;
1486
1525
  const key = appliance === import_white_web_sdk4.ApplianceNames.shape ? shape : appliance;
1487
1526
  const active = ShapeTypes.has(key);
1488
- const CurrentIcon = ShapesMap[key] || Icons.Rectangle;
1527
+ const CurrentIcon = ShapesMap[lastShape];
1528
+ const onClick = (0, import_react54.useCallback)(() => {
1529
+ if (ApplianceShapes.includes(lastShape)) {
1530
+ setAppliance(lastShape);
1531
+ } else if (Shapes.includes(lastShape)) {
1532
+ setAppliance(import_white_web_sdk4.ApplianceNames.shape, lastShape);
1533
+ }
1534
+ }, [lastShape, setAppliance]);
1489
1535
  return /* @__PURE__ */ import_react54.default.createElement("span", {
1490
1536
  className: "fastboard-toolbar-btn-interactive"
1491
1537
  }, /* @__PURE__ */ import_react54.default.createElement(import_react53.default, {
@@ -1499,7 +1545,9 @@ function ShapesButton() {
1499
1545
  interactive: true
1500
1546
  }, /* @__PURE__ */ import_react54.default.createElement(Button, {
1501
1547
  content: t("shape"),
1502
- active
1548
+ active,
1549
+ disabled: !writable,
1550
+ onClick
1503
1551
  }, /* @__PURE__ */ import_react54.default.createElement(CurrentIcon, {
1504
1552
  theme,
1505
1553
  active
@@ -1679,7 +1727,7 @@ function Content({ onCollapse }) {
1679
1727
  disabled: disableScrollUp
1680
1728
  }), /* @__PURE__ */ import_react58.default.createElement("div", {
1681
1729
  ref,
1682
- className: (0, import_clsx8.default)(`${name4}-section`),
1730
+ className: (0, import_clsx9.default)(`${name4}-section`),
1683
1731
  style: {
1684
1732
  height: `${sectionHeight}px`,
1685
1733
  overflow: needScroll ? "hidden" : "visible"
@@ -1688,12 +1736,12 @@ function Content({ onCollapse }) {
1688
1736
  scrollTo,
1689
1737
  disabled: disableScrollDown
1690
1738
  }), /* @__PURE__ */ import_react58.default.createElement("div", {
1691
- className: (0, import_clsx8.default)("fastboard-toolbar-mask", theme),
1739
+ className: (0, import_clsx9.default)("fastboard-toolbar-mask", theme),
1692
1740
  onClick: onCollapse
1693
1741
  }, /* @__PURE__ */ import_react58.default.createElement(Icon, {
1694
1742
  fallback: /* @__PURE__ */ import_react58.default.createElement("img", {
1695
1743
  draggable: false,
1696
- className: (0, import_clsx8.default)(`${name4}-mask-btn`, theme),
1744
+ className: (0, import_clsx9.default)(`${name4}-mask-btn`, theme),
1697
1745
  src: collapsed_default
1698
1746
  }),
1699
1747
  src: disabled ? icons == null ? void 0 : icons.expandIconDisable : icons == null ? void 0 : icons.expandIcon
@@ -1715,7 +1763,7 @@ function Toolbar({ theme, icons }) {
1715
1763
  value: __spreadValues({ theme, icons }, hook)
1716
1764
  }, /* @__PURE__ */ import_react59.default.createElement(import_framer_motion.AnimatePresence, null, expanded ? /* @__PURE__ */ import_react59.default.createElement(import_framer_motion.motion.div, {
1717
1765
  key: "toolbar",
1718
- className: (0, import_clsx9.default)(name4, theme),
1766
+ className: (0, import_clsx10.default)(name4, theme),
1719
1767
  initial: { x: -100 },
1720
1768
  animate: { x: 0, transition: { duration: 0.5 } },
1721
1769
  exit: { x: -100, transition: { duration: 0.5 } },
@@ -1725,7 +1773,7 @@ function Toolbar({ theme, icons }) {
1725
1773
  }, /* @__PURE__ */ import_react59.default.createElement(Content, {
1726
1774
  onCollapse: () => setExpanded(false)
1727
1775
  })) : /* @__PURE__ */ import_react59.default.createElement(import_framer_motion.motion.div, {
1728
- className: (0, import_clsx9.default)(`${name4}-expand-btn`, theme),
1776
+ className: (0, import_clsx10.default)(`${name4}-expand-btn`, theme),
1729
1777
  key: "expand",
1730
1778
  onClick: () => setExpanded(true),
1731
1779
  initial: { x: -100 },
@@ -1734,7 +1782,7 @@ function Toolbar({ theme, icons }) {
1734
1782
  fallback: /* @__PURE__ */ import_react59.default.createElement("img", {
1735
1783
  draggable: false,
1736
1784
  src: expanded_default,
1737
- className: (0, import_clsx9.default)(`${name4}-mask-btn`, theme)
1785
+ className: (0, import_clsx10.default)(`${name4}-mask-btn`, theme)
1738
1786
  }),
1739
1787
  src: disabled ? icons == null ? void 0 : icons.expandIconDisable : icons == null ? void 0 : icons.expandIcon
1740
1788
  }))));
@@ -1810,13 +1858,13 @@ function usePlayerControl(player) {
1810
1858
 
1811
1859
  // src/components/PlayerControl/PlayerControl.tsx
1812
1860
  var import_react67 = __toESM(require("@tippyjs/react"));
1813
- var import_clsx11 = __toESM(require("clsx"));
1861
+ var import_clsx12 = __toESM(require("clsx"));
1814
1862
  var import_rc_slider2 = __toESM(require("rc-slider"));
1815
1863
  var import_react68 = __toESM(require("react"));
1816
1864
  var import_white_web_sdk7 = require("white-web-sdk");
1817
1865
 
1818
1866
  // src/components/PlayerControl/components/Button.tsx
1819
- var import_clsx10 = __toESM(require("clsx"));
1867
+ var import_clsx11 = __toESM(require("clsx"));
1820
1868
  var import_react61 = __toESM(require("react"));
1821
1869
  var import_react62 = __toESM(require("@tippyjs/react"));
1822
1870
  var Button2 = (0, import_react61.forwardRef)((props, ref) => {
@@ -1833,7 +1881,7 @@ var Button2 = (0, import_react61.forwardRef)((props, ref) => {
1833
1881
  duration: 300
1834
1882
  }, /* @__PURE__ */ import_react61.default.createElement("button", {
1835
1883
  ref,
1836
- className: (0, import_clsx10.default)("fastboard-player-control-btn", theme, { active }),
1884
+ className: (0, import_clsx11.default)("fastboard-player-control-btn", theme, { active }),
1837
1885
  onClick,
1838
1886
  disabled
1839
1887
  }, children));
@@ -1905,9 +1953,9 @@ function PlayerControl(_a) {
1905
1953
  const isPlaying = player.phase === import_white_web_sdk7.PlayerPhase.Playing;
1906
1954
  const { activeColor } = themes[theme];
1907
1955
  return /* @__PURE__ */ import_react68.default.createElement("div", {
1908
- className: (0, import_clsx11.default)(name5, theme, { "auto-hide": autoHide })
1956
+ className: (0, import_clsx12.default)(name5, theme, { "auto-hide": autoHide })
1909
1957
  }, /* @__PURE__ */ import_react68.default.createElement("button", {
1910
- className: (0, import_clsx11.default)(`${name5}-btn`, isLoading ? "loading" : isPlaying ? "pause" : "play", theme),
1958
+ className: (0, import_clsx12.default)(`${name5}-btn`, isLoading ? "loading" : isPlaying ? "pause" : "play", theme),
1911
1959
  disabled: isLoading,
1912
1960
  onClick: player.togglePlay
1913
1961
  }, /* @__PURE__ */ import_react68.default.createElement(Icon, {
@@ -1921,7 +1969,7 @@ function PlayerControl(_a) {
1921
1969
  src: isLoading ? icons.loadingIcon : isPlaying ? icons.pauseIcon : icons.playIcon,
1922
1970
  alt: isLoading ? "[loading]" : isPlaying ? "[pause]" : "[play]"
1923
1971
  })), /* @__PURE__ */ import_react68.default.createElement("span", {
1924
- className: (0, import_clsx11.default)(`${name5}-slider`, { loading: isLoading }, theme)
1972
+ className: (0, import_clsx12.default)(`${name5}-slider`, { loading: isLoading }, theme)
1925
1973
  }, /* @__PURE__ */ import_react68.default.createElement(import_rc_slider2.default, {
1926
1974
  disabled: isLoading,
1927
1975
  trackStyle: { background: activeColor },
@@ -1932,11 +1980,11 @@ function PlayerControl(_a) {
1932
1980
  max: player.totalTime,
1933
1981
  step: 100
1934
1982
  })), /* @__PURE__ */ import_react68.default.createElement("span", {
1935
- className: (0, import_clsx11.default)(`${name5}-current`, theme)
1983
+ className: (0, import_clsx12.default)(`${name5}-current`, theme)
1936
1984
  }, renderTime(player.currentTime)), /* @__PURE__ */ import_react68.default.createElement("span", {
1937
- className: (0, import_clsx11.default)(`${name5}-slash`, theme)
1985
+ className: (0, import_clsx12.default)(`${name5}-slash`, theme)
1938
1986
  }, "/"), /* @__PURE__ */ import_react68.default.createElement("span", {
1939
- className: (0, import_clsx11.default)(`${name5}-total`, theme)
1987
+ className: (0, import_clsx12.default)(`${name5}-total`, theme)
1940
1988
  }, renderTime(player.totalTime)), /* @__PURE__ */ import_react68.default.createElement("span", {
1941
1989
  className: `${name5}-btn-interactive`
1942
1990
  }, /* @__PURE__ */ import_react68.default.createElement(import_react67.default, {
@@ -1953,7 +2001,7 @@ function PlayerControl(_a) {
1953
2001
  theme,
1954
2002
  disabled: isLoading
1955
2003
  }, /* @__PURE__ */ import_react68.default.createElement("span", {
1956
- className: (0, import_clsx11.default)(`${name5}-speed-text`, theme)
2004
+ className: (0, import_clsx12.default)(`${name5}-speed-text`, theme)
1957
2005
  }, player.speed, "x")))));
1958
2006
  }
1959
2007
  function renderTime(ms) {
@@ -1965,9 +2013,9 @@ function renderTime(ms) {
1965
2013
  var Speeds = [2, 1.5, 1.25, 1, 0.75, 0.5];
1966
2014
  function renderSpeeds({ speed: current, setSpeed }) {
1967
2015
  return /* @__PURE__ */ import_react68.default.createElement("div", {
1968
- className: (0, import_clsx11.default)(`${name5}-panel`, "speed")
2016
+ className: (0, import_clsx12.default)(`${name5}-panel`, "speed")
1969
2017
  }, Speeds.map((speed) => /* @__PURE__ */ import_react68.default.createElement("button", {
1970
- className: (0, import_clsx11.default)(`${name5}-btn`, "speed", {
2018
+ className: (0, import_clsx12.default)(`${name5}-btn`, "speed", {
1971
2019
  active: speed === current
1972
2020
  }),
1973
2021
  key: speed,
@@ -2037,7 +2085,8 @@ function FastboardInternal(_a) {
2037
2085
  ref: forwardedRef
2038
2086
  }), /* @__PURE__ */ import_react69.default.createElement("div", {
2039
2087
  className: "fastboard-view",
2040
- ref: useWhiteboard
2088
+ ref: useWhiteboard,
2089
+ onPointerDownCapture: focusThisElementImmediate
2041
2090
  }), children ? children : /* @__PURE__ */ import_react69.default.createElement(import_react69.default.Fragment, null, toolbar && /* @__PURE__ */ import_react69.default.createElement("div", {
2042
2091
  className: "fastboard-left"
2043
2092
  }, /* @__PURE__ */ import_react69.default.createElement(Toolbar, null)), (redo_undo || zoom_control) && /* @__PURE__ */ import_react69.default.createElement("div", {
@@ -2046,6 +2095,9 @@ function FastboardInternal(_a) {
2046
2095
  className: "fastboard-bottom-right"
2047
2096
  }, /* @__PURE__ */ import_react69.default.createElement(PageControl, null))))));
2048
2097
  }
2098
+ function focusThisElementImmediate(ev) {
2099
+ ev.currentTarget.focus();
2100
+ }
2049
2101
 
2050
2102
  // src/vanilla/index.tsx
2051
2103
  var import_react70 = __toESM(require("react"));
@@ -2054,7 +2106,16 @@ function mount(app, dom, props) {
2054
2106
  import_react_dom.default.render(/* @__PURE__ */ import_react70.default.createElement(Fastboard, __spreadValues({
2055
2107
  app
2056
2108
  }, props)), dom);
2057
- return () => import_react_dom.default.unmountComponentAtNode(dom);
2109
+ return {
2110
+ update(props2) {
2111
+ import_react_dom.default.render(/* @__PURE__ */ import_react70.default.createElement(Fastboard, __spreadValues({
2112
+ app
2113
+ }, props2)), dom);
2114
+ },
2115
+ destroy() {
2116
+ import_react_dom.default.unmountComponentAtNode(dom);
2117
+ }
2118
+ };
2058
2119
  }
2059
2120
  module.exports = __toCommonJS(src_exports);
2060
2121
  //# sourceMappingURL=index.js.map