@netless/fastboard-react 0.1.1 → 0.2.0
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 +243 -236
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +243 -232
- package/dist/index.mjs.map +1 -1
- package/package.json +18 -13
- package/src/components/Fastboard.tsx +13 -14
- package/src/components/hooks.ts +1 -1
- package/src/index.ts +1 -0
- package/src/vanilla/index.tsx +18 -0
package/dist/index.js
CHANGED
|
@@ -68,6 +68,7 @@ __export(src_exports, {
|
|
|
68
68
|
ThemeContext: () => ThemeContext,
|
|
69
69
|
Toolbar: () => Toolbar,
|
|
70
70
|
ZoomControl: () => ZoomControl,
|
|
71
|
+
mount: () => mount,
|
|
71
72
|
useBoxState: () => useBoxState,
|
|
72
73
|
useFastboardApp: () => useFastboardApp,
|
|
73
74
|
useFastboardValue: () => useFastboardValue,
|
|
@@ -84,10 +85,6 @@ __export(src_exports, {
|
|
|
84
85
|
useZoomControl: () => useZoomControl
|
|
85
86
|
});
|
|
86
87
|
|
|
87
|
-
// ../../node_modules/.pnpm/tsup@5.11.11_typescript@4.5.4/node_modules/tsup/assets/cjs_shims.js
|
|
88
|
-
var getImportMetaUrl = () => typeof document === "undefined" ? new URL("file:" + __filename).href : document.currentScript && document.currentScript.src || new URL("main.js", document.baseURI).href;
|
|
89
|
-
var importMetaUrl = getImportMetaUrl();
|
|
90
|
-
|
|
91
88
|
// src/internal/helpers.ts
|
|
92
89
|
function noop() {
|
|
93
90
|
return;
|
|
@@ -139,7 +136,7 @@ function useForceUpdate() {
|
|
|
139
136
|
}
|
|
140
137
|
|
|
141
138
|
// src/style.scss?inline
|
|
142
|
-
var style_default = '.page-renderer-pages-container{position:relative;overflow:hidden}.page-renderer-page{position:absolute;top:0;left:0;will-change:transform;background-position:center;background-size:cover;background-repeat:no-repeat}.page-renderer-page-img{display:block;width:100%;height:auto;user-select:none}.netless-app-docs-viewer-static-scrollbar{position:absolute;top:0;right:0;z-index:2147483647;width:8px;min-height:30px;margin:0;padding:0;border:none;outline:none;border-radius:4px;background:rgba(68,78,96,.4);box-shadow:1px 1px 8px #ffffffb3;opacity:0;transition:background .4s,opacity .4s 3s,transform .2s;will-change:transform,height;user-select:none}.netless-app-docs-viewer-static-scrollbar.netless-app-docs-viewer-static-scrollbar-dragging{background:rgba(68,78,96,.6);opacity:1;transition:background .4s,opacity .4s 3s!important}.netless-app-docs-viewer-static-scrollbar:hover,.netless-app-docs-viewer-static-scrollbar:focus{background:rgba(68,78,96,.5)}.netless-app-docs-viewer-static-scrollbar:active{background:rgba(68,78,96,.6)}.netless-app-docs-viewer-content:hover .netless-app-docs-viewer-static-scrollbar{opacity:1;transition:background .4s,opacity .4s,transform .2s}.netless-app-docs-viewer-readonly .netless-app-docs-viewer-static-scrollbar{display:none}.netless-app-docs-viewer-static-pages:hover .netless-app-docs-viewer-static-scrollbar{opacity:1;transition:background .4s,opacity .4s,transform .2s}.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 .05s;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-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;will-change:transform;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{will-change:transform;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:1em;height:1em}.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-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:40px}.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-btn{width:17px;height:62px;cursor:pointer}.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';
|
|
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-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:1em;height:1em}.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-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:40px}.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-btn{width:17px;height:62px;cursor:pointer}.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';
|
|
143
140
|
|
|
144
141
|
// src/behaviors/style.ts
|
|
145
142
|
applyStyles(style_default);
|
|
@@ -147,8 +144,8 @@ applyStyles(style_default);
|
|
|
147
144
|
// src/components/hooks.ts
|
|
148
145
|
var import_window_manager = require("@netless/window-manager");
|
|
149
146
|
var import_react2 = require("react");
|
|
150
|
-
var FastboardAppContext = (0, import_react2.createContext)(null);
|
|
151
|
-
var ThemeContext = (0, import_react2.createContext)("light");
|
|
147
|
+
var FastboardAppContext = /* @__PURE__ */ (0, import_react2.createContext)(null);
|
|
148
|
+
var ThemeContext = /* @__PURE__ */ (0, import_react2.createContext)("light");
|
|
152
149
|
function useTheme(userTheme) {
|
|
153
150
|
const themeFromContext = (0, import_react2.useContext)(ThemeContext);
|
|
154
151
|
return userTheme || themeFromContext;
|
|
@@ -293,7 +290,7 @@ var createI18n = async ({
|
|
|
293
290
|
});
|
|
294
291
|
return import_i18next.default;
|
|
295
292
|
};
|
|
296
|
-
var I18nContext = (0, import_react4.createContext)(null);
|
|
293
|
+
var I18nContext = /* @__PURE__ */ (0, import_react4.createContext)(null);
|
|
297
294
|
function useTranslation() {
|
|
298
295
|
const i18n = (0, import_react4.useContext)(I18nContext);
|
|
299
296
|
const t = (0, import_react4.useMemo)(() => i18n ? i18n.getFixedT(null, ["translation"]) : (id) => id, [i18n]);
|
|
@@ -303,7 +300,7 @@ function useTranslation() {
|
|
|
303
300
|
// src/icons/index.tsx
|
|
304
301
|
var import_react5 = __toESM(require("react"));
|
|
305
302
|
function Icon({ fallback, src, alt = "[icon]" }) {
|
|
306
|
-
return src ? import_react5.default.createElement("img", {
|
|
303
|
+
return src ? /* @__PURE__ */ import_react5.default.createElement("img", {
|
|
307
304
|
src,
|
|
308
305
|
alt,
|
|
309
306
|
title: alt
|
|
@@ -341,17 +338,17 @@ var RightOffset = [0, 11];
|
|
|
341
338
|
function Redo({ theme = "light", active }) {
|
|
342
339
|
const config = themes[theme];
|
|
343
340
|
const stroke = active ? config.activeColor : config.color;
|
|
344
|
-
return import_react6.default.createElement("svg", {
|
|
341
|
+
return /* @__PURE__ */ import_react6.default.createElement("svg", {
|
|
345
342
|
viewBox: "0 0 24 24"
|
|
346
|
-
}, import_react6.default.createElement("g", {
|
|
343
|
+
}, /* @__PURE__ */ import_react6.default.createElement("g", {
|
|
347
344
|
fill: "none",
|
|
348
345
|
fillRule: "evenodd",
|
|
349
346
|
stroke,
|
|
350
347
|
strokeLinecap: "round",
|
|
351
348
|
strokeLinejoin: "round"
|
|
352
|
-
}, import_react6.default.createElement("path", {
|
|
349
|
+
}, /* @__PURE__ */ import_react6.default.createElement("path", {
|
|
353
350
|
d: "M14 14h4v-4"
|
|
354
|
-
}), import_react6.default.createElement("path", {
|
|
351
|
+
}), /* @__PURE__ */ import_react6.default.createElement("path", {
|
|
355
352
|
d: "m18 14-.788-.9A7.005 7.005 0 0 0 6 14h0"
|
|
356
353
|
})));
|
|
357
354
|
}
|
|
@@ -361,17 +358,17 @@ var import_react7 = __toESM(require("react"));
|
|
|
361
358
|
function Undo({ theme = "light", active }) {
|
|
362
359
|
const config = themes[theme];
|
|
363
360
|
const stroke = active ? config.activeColor : config.color;
|
|
364
|
-
return import_react7.default.createElement("svg", {
|
|
361
|
+
return /* @__PURE__ */ import_react7.default.createElement("svg", {
|
|
365
362
|
viewBox: "0 0 24 24"
|
|
366
|
-
}, import_react7.default.createElement("g", {
|
|
363
|
+
}, /* @__PURE__ */ import_react7.default.createElement("g", {
|
|
367
364
|
fill: "none",
|
|
368
365
|
fillRule: "evenodd",
|
|
369
366
|
stroke,
|
|
370
367
|
strokeLinecap: "round",
|
|
371
368
|
strokeLinejoin: "round"
|
|
372
|
-
}, import_react7.default.createElement("path", {
|
|
369
|
+
}, /* @__PURE__ */ import_react7.default.createElement("path", {
|
|
373
370
|
d: "M10 14H6v-4"
|
|
374
|
-
}), import_react7.default.createElement("path", {
|
|
371
|
+
}), /* @__PURE__ */ import_react7.default.createElement("path", {
|
|
375
372
|
d: "m6 14 .788-.9A7.005 7.005 0 0 1 18 14h0"
|
|
376
373
|
})));
|
|
377
374
|
}
|
|
@@ -384,9 +381,9 @@ function RedoUndo({ theme, undoIcon, undoIconDisable, redoIcon, redoIconDisable
|
|
|
384
381
|
const writable = useWritable();
|
|
385
382
|
const { redoSteps, undoSteps, redo, undo } = useRedoUndo();
|
|
386
383
|
const disabled = !writable;
|
|
387
|
-
return import_react9.default.createElement("div", {
|
|
384
|
+
return /* @__PURE__ */ import_react9.default.createElement("div", {
|
|
388
385
|
className: (0, import_clsx.default)(name, theme)
|
|
389
|
-
}, import_react9.default.createElement(import_react8.default, {
|
|
386
|
+
}, /* @__PURE__ */ import_react9.default.createElement(import_react8.default, {
|
|
390
387
|
className: "fastboard-tip",
|
|
391
388
|
content: t("undo"),
|
|
392
389
|
theme,
|
|
@@ -395,17 +392,17 @@ function RedoUndo({ theme, undoIcon, undoIconDisable, redoIcon, redoIconDisable
|
|
|
395
392
|
delay: [1e3, 400],
|
|
396
393
|
duration: 300,
|
|
397
394
|
offset: TopOffset
|
|
398
|
-
}, import_react9.default.createElement("button", {
|
|
395
|
+
}, /* @__PURE__ */ import_react9.default.createElement("button", {
|
|
399
396
|
className: (0, import_clsx.default)(`${name}-btn`, "undo", theme),
|
|
400
397
|
disabled: disabled || undoSteps === 0,
|
|
401
398
|
onClick: undo
|
|
402
|
-
}, import_react9.default.createElement(Icon, {
|
|
403
|
-
fallback: import_react9.default.createElement(Undo, {
|
|
399
|
+
}, /* @__PURE__ */ import_react9.default.createElement(Icon, {
|
|
400
|
+
fallback: /* @__PURE__ */ import_react9.default.createElement(Undo, {
|
|
404
401
|
theme
|
|
405
402
|
}),
|
|
406
403
|
src: undoSteps === 0 ? undoIconDisable : undoIcon,
|
|
407
404
|
alt: "[undo]"
|
|
408
|
-
}))), import_react9.default.createElement(import_react8.default, {
|
|
405
|
+
}))), /* @__PURE__ */ import_react9.default.createElement(import_react8.default, {
|
|
409
406
|
className: "fastboard-tip",
|
|
410
407
|
content: t("redo"),
|
|
411
408
|
theme,
|
|
@@ -414,12 +411,12 @@ function RedoUndo({ theme, undoIcon, undoIconDisable, redoIcon, redoIconDisable
|
|
|
414
411
|
delay: [1e3, 400],
|
|
415
412
|
duration: 300,
|
|
416
413
|
offset: TopOffset
|
|
417
|
-
}, import_react9.default.createElement("button", {
|
|
414
|
+
}, /* @__PURE__ */ import_react9.default.createElement("button", {
|
|
418
415
|
className: (0, import_clsx.default)(`${name}-btn`, "redo", theme),
|
|
419
416
|
disabled: disabled || redoSteps === 0,
|
|
420
417
|
onClick: redo
|
|
421
|
-
}, import_react9.default.createElement(Icon, {
|
|
422
|
-
fallback: import_react9.default.createElement(Redo, {
|
|
418
|
+
}, /* @__PURE__ */ import_react9.default.createElement(Icon, {
|
|
419
|
+
fallback: /* @__PURE__ */ import_react9.default.createElement(Redo, {
|
|
423
420
|
theme
|
|
424
421
|
}),
|
|
425
422
|
src: redoSteps === 0 ? redoIconDisable : redoIcon,
|
|
@@ -501,9 +498,9 @@ var import_react11 = __toESM(require("react"));
|
|
|
501
498
|
function Minus({ theme = "light", active }) {
|
|
502
499
|
const config = themes[theme];
|
|
503
500
|
const stroke = active ? config.activeColor : config.color;
|
|
504
|
-
return import_react11.default.createElement("svg", {
|
|
501
|
+
return /* @__PURE__ */ import_react11.default.createElement("svg", {
|
|
505
502
|
viewBox: "0 0 24 24"
|
|
506
|
-
}, import_react11.default.createElement("path", {
|
|
503
|
+
}, /* @__PURE__ */ import_react11.default.createElement("path", {
|
|
507
504
|
fill: "none",
|
|
508
505
|
stroke,
|
|
509
506
|
strokeLinecap: "round",
|
|
@@ -517,9 +514,9 @@ var import_react12 = __toESM(require("react"));
|
|
|
517
514
|
function Plus({ theme = "light", active }) {
|
|
518
515
|
const config = themes[theme];
|
|
519
516
|
const stroke = active ? config.activeColor : config.color;
|
|
520
|
-
return import_react12.default.createElement("svg", {
|
|
517
|
+
return /* @__PURE__ */ import_react12.default.createElement("svg", {
|
|
521
518
|
viewBox: "0 0 24 24"
|
|
522
|
-
}, import_react12.default.createElement("path", {
|
|
519
|
+
}, /* @__PURE__ */ import_react12.default.createElement("path", {
|
|
523
520
|
fill: "none",
|
|
524
521
|
stroke,
|
|
525
522
|
strokeLinecap: "round",
|
|
@@ -533,22 +530,22 @@ var import_react13 = __toESM(require("react"));
|
|
|
533
530
|
function Reset({ theme = "light", active }) {
|
|
534
531
|
const config = themes[theme];
|
|
535
532
|
const stroke = active ? config.activeColor : config.color;
|
|
536
|
-
return import_react13.default.createElement("svg", {
|
|
533
|
+
return /* @__PURE__ */ import_react13.default.createElement("svg", {
|
|
537
534
|
viewBox: "0 0 24 24"
|
|
538
|
-
}, import_react13.default.createElement("g", {
|
|
535
|
+
}, /* @__PURE__ */ import_react13.default.createElement("g", {
|
|
539
536
|
fill: "none",
|
|
540
537
|
fillRule: "evenodd",
|
|
541
538
|
transform: "translate(-176 -684)"
|
|
542
|
-
}, import_react13.default.createElement("path", {
|
|
539
|
+
}, /* @__PURE__ */ import_react13.default.createElement("path", {
|
|
543
540
|
stroke,
|
|
544
541
|
strokeLinejoin: "round",
|
|
545
542
|
d: "M188 688v4m0 8v4m8-8h-4m-8 0h-4"
|
|
546
|
-
}), import_react13.default.createElement("circle", {
|
|
543
|
+
}), /* @__PURE__ */ import_react13.default.createElement("circle", {
|
|
547
544
|
cx: "188",
|
|
548
545
|
cy: "696",
|
|
549
546
|
r: "6",
|
|
550
547
|
stroke
|
|
551
|
-
}), import_react13.default.createElement("circle", {
|
|
548
|
+
}), /* @__PURE__ */ import_react13.default.createElement("circle", {
|
|
552
549
|
cx: "188",
|
|
553
550
|
cy: "696",
|
|
554
551
|
r: "1",
|
|
@@ -572,9 +569,9 @@ function ZoomControl({
|
|
|
572
569
|
const writable = useWritable();
|
|
573
570
|
const { scale, resetCamera, zoomIn, zoomOut } = useZoomControl();
|
|
574
571
|
const disabled = !writable;
|
|
575
|
-
return import_react15.default.createElement("div", {
|
|
572
|
+
return /* @__PURE__ */ import_react15.default.createElement("div", {
|
|
576
573
|
className: (0, import_clsx2.default)(name2, theme)
|
|
577
|
-
}, import_react15.default.createElement(import_react14.default, {
|
|
574
|
+
}, /* @__PURE__ */ import_react15.default.createElement(import_react14.default, {
|
|
578
575
|
className: "fastboard-tip",
|
|
579
576
|
content: t("zoomOut"),
|
|
580
577
|
theme,
|
|
@@ -583,21 +580,21 @@ function ZoomControl({
|
|
|
583
580
|
delay: [1e3, 400],
|
|
584
581
|
duration: 300,
|
|
585
582
|
offset: TopOffset
|
|
586
|
-
}, import_react15.default.createElement("button", {
|
|
583
|
+
}, /* @__PURE__ */ import_react15.default.createElement("button", {
|
|
587
584
|
className: (0, import_clsx2.default)(`${name2}-btn`, "minus", theme),
|
|
588
585
|
disabled,
|
|
589
586
|
onClick: zoomOut
|
|
590
|
-
}, import_react15.default.createElement(Icon, {
|
|
591
|
-
fallback: import_react15.default.createElement(Minus, {
|
|
587
|
+
}, /* @__PURE__ */ import_react15.default.createElement(Icon, {
|
|
588
|
+
fallback: /* @__PURE__ */ import_react15.default.createElement(Minus, {
|
|
592
589
|
theme
|
|
593
590
|
}),
|
|
594
591
|
src: disabled ? minusIconDisable : minusIcon,
|
|
595
592
|
alt: "[minus]"
|
|
596
|
-
}))), import_react15.default.createElement("span", {
|
|
593
|
+
}))), /* @__PURE__ */ import_react15.default.createElement("span", {
|
|
597
594
|
className: (0, import_clsx2.default)(`${name2}-scale`, theme)
|
|
598
|
-
}, Math.ceil(scale * 100)), import_react15.default.createElement("span", {
|
|
595
|
+
}, Math.ceil(scale * 100)), /* @__PURE__ */ import_react15.default.createElement("span", {
|
|
599
596
|
className: (0, import_clsx2.default)(`${name2}-percent`, theme)
|
|
600
|
-
}, "%"), import_react15.default.createElement(import_react14.default, {
|
|
597
|
+
}, "%"), /* @__PURE__ */ import_react15.default.createElement(import_react14.default, {
|
|
601
598
|
className: "fastboard-tip",
|
|
602
599
|
content: t("zoomIn"),
|
|
603
600
|
theme,
|
|
@@ -606,17 +603,17 @@ function ZoomControl({
|
|
|
606
603
|
delay: [1e3, 400],
|
|
607
604
|
duration: 300,
|
|
608
605
|
offset: TopOffset
|
|
609
|
-
}, import_react15.default.createElement("button", {
|
|
606
|
+
}, /* @__PURE__ */ import_react15.default.createElement("button", {
|
|
610
607
|
className: (0, import_clsx2.default)(`${name2}-btn`, "plus", theme),
|
|
611
608
|
disabled,
|
|
612
609
|
onClick: zoomIn
|
|
613
|
-
}, import_react15.default.createElement(Icon, {
|
|
614
|
-
fallback: import_react15.default.createElement(Plus, {
|
|
610
|
+
}, /* @__PURE__ */ import_react15.default.createElement(Icon, {
|
|
611
|
+
fallback: /* @__PURE__ */ import_react15.default.createElement(Plus, {
|
|
615
612
|
theme
|
|
616
613
|
}),
|
|
617
614
|
src: disabled ? plusIconDisable : plusIcon,
|
|
618
615
|
alt: "[plus]"
|
|
619
|
-
}))), import_react15.default.createElement(import_react14.default, {
|
|
616
|
+
}))), /* @__PURE__ */ import_react15.default.createElement(import_react14.default, {
|
|
620
617
|
className: "fastboard-tip",
|
|
621
618
|
content: t("reset"),
|
|
622
619
|
theme,
|
|
@@ -625,12 +622,12 @@ function ZoomControl({
|
|
|
625
622
|
delay: [1e3, 400],
|
|
626
623
|
duration: 300,
|
|
627
624
|
offset: TopOffset
|
|
628
|
-
}, import_react15.default.createElement("button", {
|
|
625
|
+
}, /* @__PURE__ */ import_react15.default.createElement("button", {
|
|
629
626
|
className: (0, import_clsx2.default)(`${name2}-btn`, "reset", theme),
|
|
630
627
|
disabled,
|
|
631
628
|
onClick: resetCamera
|
|
632
|
-
}, import_react15.default.createElement(Icon, {
|
|
633
|
-
fallback: import_react15.default.createElement(Reset, {
|
|
629
|
+
}, /* @__PURE__ */ import_react15.default.createElement(Icon, {
|
|
630
|
+
fallback: /* @__PURE__ */ import_react15.default.createElement(Reset, {
|
|
634
631
|
theme
|
|
635
632
|
}),
|
|
636
633
|
src: disabled ? resetIconDisable : resetIcon,
|
|
@@ -668,9 +665,9 @@ var import_react17 = __toESM(require("react"));
|
|
|
668
665
|
function ChevronLeft({ theme = "light", active }) {
|
|
669
666
|
const config = themes[theme];
|
|
670
667
|
const stroke = active ? config.activeColor : config.color;
|
|
671
|
-
return import_react17.default.createElement("svg", {
|
|
668
|
+
return /* @__PURE__ */ import_react17.default.createElement("svg", {
|
|
672
669
|
viewBox: "0 0 24 24"
|
|
673
|
-
}, import_react17.default.createElement("path", {
|
|
670
|
+
}, /* @__PURE__ */ import_react17.default.createElement("path", {
|
|
674
671
|
fill: "none",
|
|
675
672
|
stroke,
|
|
676
673
|
strokeLinecap: "round",
|
|
@@ -684,9 +681,9 @@ var import_react18 = __toESM(require("react"));
|
|
|
684
681
|
function ChevronRight({ theme = "light", active }) {
|
|
685
682
|
const config = themes[theme];
|
|
686
683
|
const stroke = active ? config.activeColor : config.color;
|
|
687
|
-
return import_react18.default.createElement("svg", {
|
|
684
|
+
return /* @__PURE__ */ import_react18.default.createElement("svg", {
|
|
688
685
|
viewBox: "0 0 24 24"
|
|
689
|
-
}, import_react18.default.createElement("path", {
|
|
686
|
+
}, /* @__PURE__ */ import_react18.default.createElement("path", {
|
|
690
687
|
fill: "none",
|
|
691
688
|
stroke,
|
|
692
689
|
strokeLinecap: "round",
|
|
@@ -700,9 +697,9 @@ var import_react19 = __toESM(require("react"));
|
|
|
700
697
|
function FilePlus({ theme = "light", active }) {
|
|
701
698
|
const config = themes[theme];
|
|
702
699
|
const stroke = active ? config.activeColor : config.color;
|
|
703
|
-
return import_react19.default.createElement("svg", {
|
|
700
|
+
return /* @__PURE__ */ import_react19.default.createElement("svg", {
|
|
704
701
|
viewBox: "0 0 24 24"
|
|
705
|
-
}, import_react19.default.createElement("path", {
|
|
702
|
+
}, /* @__PURE__ */ import_react19.default.createElement("path", {
|
|
706
703
|
fill: stroke,
|
|
707
704
|
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"
|
|
708
705
|
}));
|
|
@@ -724,9 +721,9 @@ function PageControl({
|
|
|
724
721
|
const writable = useWritable();
|
|
725
722
|
const _a = usePageControl(), { pageIndex, pageCount } = _a, actions = __objRest(_a, ["pageIndex", "pageCount"]);
|
|
726
723
|
const disabled = !writable;
|
|
727
|
-
return import_react21.default.createElement("div", {
|
|
724
|
+
return /* @__PURE__ */ import_react21.default.createElement("div", {
|
|
728
725
|
className: (0, import_clsx3.default)(name3, theme)
|
|
729
|
-
}, import_react21.default.createElement(import_react20.default, {
|
|
726
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react20.default, {
|
|
730
727
|
className: "fastboard-tip",
|
|
731
728
|
content: t("prevPage"),
|
|
732
729
|
theme,
|
|
@@ -735,23 +732,23 @@ function PageControl({
|
|
|
735
732
|
delay: [1e3, 400],
|
|
736
733
|
duration: 300,
|
|
737
734
|
offset: TopOffset
|
|
738
|
-
}, import_react21.default.createElement("button", {
|
|
735
|
+
}, /* @__PURE__ */ import_react21.default.createElement("button", {
|
|
739
736
|
className: (0, import_clsx3.default)(`${name3}-btn`, "prev", theme),
|
|
740
737
|
disabled: disabled || pageIndex === 0,
|
|
741
738
|
onClick: actions.prevPage
|
|
742
|
-
}, import_react21.default.createElement(Icon, {
|
|
743
|
-
fallback: import_react21.default.createElement(ChevronLeft, {
|
|
739
|
+
}, /* @__PURE__ */ import_react21.default.createElement(Icon, {
|
|
740
|
+
fallback: /* @__PURE__ */ import_react21.default.createElement(ChevronLeft, {
|
|
744
741
|
theme
|
|
745
742
|
}),
|
|
746
743
|
src: disabled ? prevIconDisable : prevIcon,
|
|
747
744
|
alt: "[prev]"
|
|
748
|
-
}))), import_react21.default.createElement("span", {
|
|
745
|
+
}))), /* @__PURE__ */ import_react21.default.createElement("span", {
|
|
749
746
|
className: (0, import_clsx3.default)(`${name3}-page`, theme)
|
|
750
|
-
}, pageCount === 0 ? "\u2026" : pageIndex + 1), import_react21.default.createElement("span", {
|
|
747
|
+
}, pageCount === 0 ? "\u2026" : pageIndex + 1), /* @__PURE__ */ import_react21.default.createElement("span", {
|
|
751
748
|
className: (0, import_clsx3.default)(`${name3}-slash`, theme)
|
|
752
|
-
}, "/"), import_react21.default.createElement("span", {
|
|
749
|
+
}, "/"), /* @__PURE__ */ import_react21.default.createElement("span", {
|
|
753
750
|
className: (0, import_clsx3.default)(`${name3}-page-count`, theme)
|
|
754
|
-
}, pageCount), import_react21.default.createElement(import_react20.default, {
|
|
751
|
+
}, pageCount), /* @__PURE__ */ import_react21.default.createElement(import_react20.default, {
|
|
755
752
|
className: "fastboard-tip",
|
|
756
753
|
content: t("nextPage"),
|
|
757
754
|
theme,
|
|
@@ -760,17 +757,17 @@ function PageControl({
|
|
|
760
757
|
delay: [1e3, 400],
|
|
761
758
|
duration: 300,
|
|
762
759
|
offset: TopOffset
|
|
763
|
-
}, import_react21.default.createElement("button", {
|
|
760
|
+
}, /* @__PURE__ */ import_react21.default.createElement("button", {
|
|
764
761
|
className: (0, import_clsx3.default)(`${name3}-btn`, "next", theme),
|
|
765
762
|
disabled: disabled || pageIndex === pageCount - 1,
|
|
766
763
|
onClick: actions.nextPage
|
|
767
|
-
}, import_react21.default.createElement(Icon, {
|
|
768
|
-
fallback: import_react21.default.createElement(ChevronRight, {
|
|
764
|
+
}, /* @__PURE__ */ import_react21.default.createElement(Icon, {
|
|
765
|
+
fallback: /* @__PURE__ */ import_react21.default.createElement(ChevronRight, {
|
|
769
766
|
theme
|
|
770
767
|
}),
|
|
771
768
|
src: disabled ? nextIconDisable : nextIcon,
|
|
772
769
|
alt: "[next]"
|
|
773
|
-
}))), import_react21.default.createElement(import_react20.default, {
|
|
770
|
+
}))), /* @__PURE__ */ import_react21.default.createElement(import_react20.default, {
|
|
774
771
|
className: "fastboard-tip",
|
|
775
772
|
content: t("addPage"),
|
|
776
773
|
theme,
|
|
@@ -779,12 +776,12 @@ function PageControl({
|
|
|
779
776
|
delay: [1e3, 400],
|
|
780
777
|
duration: 300,
|
|
781
778
|
offset: TopOffset
|
|
782
|
-
}, import_react21.default.createElement("button", {
|
|
779
|
+
}, /* @__PURE__ */ import_react21.default.createElement("button", {
|
|
783
780
|
className: (0, import_clsx3.default)(`${name3}-btn`, "add", theme),
|
|
784
781
|
disabled,
|
|
785
782
|
onClick: actions.addPage
|
|
786
|
-
}, import_react21.default.createElement(Icon, {
|
|
787
|
-
fallback: import_react21.default.createElement(FilePlus, {
|
|
783
|
+
}, /* @__PURE__ */ import_react21.default.createElement(Icon, {
|
|
784
|
+
fallback: /* @__PURE__ */ import_react21.default.createElement(FilePlus, {
|
|
788
785
|
theme
|
|
789
786
|
}),
|
|
790
787
|
src: disabled ? addIconDisable : addIcon,
|
|
@@ -892,13 +889,13 @@ var import_react43 = require("react");
|
|
|
892
889
|
var import_react24 = __toESM(require("react"));
|
|
893
890
|
var Apps = (props) => {
|
|
894
891
|
const stroke = getStroke(props);
|
|
895
|
-
return import_react24.default.createElement("svg", {
|
|
892
|
+
return /* @__PURE__ */ import_react24.default.createElement("svg", {
|
|
896
893
|
viewBox: "0 0 24 24"
|
|
897
|
-
}, import_react24.default.createElement("g", {
|
|
894
|
+
}, /* @__PURE__ */ import_react24.default.createElement("g", {
|
|
898
895
|
fill: stroke
|
|
899
|
-
}, import_react24.default.createElement("path", {
|
|
896
|
+
}, /* @__PURE__ */ import_react24.default.createElement("path", {
|
|
900
897
|
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"
|
|
901
|
-
}), import_react24.default.createElement("path", {
|
|
898
|
+
}), /* @__PURE__ */ import_react24.default.createElement("path", {
|
|
902
899
|
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"
|
|
903
900
|
})));
|
|
904
901
|
};
|
|
@@ -907,9 +904,9 @@ var Apps = (props) => {
|
|
|
907
904
|
var import_react25 = __toESM(require("react"));
|
|
908
905
|
var Arrow = (props) => {
|
|
909
906
|
const stroke = getStroke(props);
|
|
910
|
-
return import_react25.default.createElement("svg", {
|
|
907
|
+
return /* @__PURE__ */ import_react25.default.createElement("svg", {
|
|
911
908
|
viewBox: "0 0 24 24"
|
|
912
|
-
}, import_react25.default.createElement("path", {
|
|
909
|
+
}, /* @__PURE__ */ import_react25.default.createElement("path", {
|
|
913
910
|
fill: stroke,
|
|
914
911
|
d: "M19 5v6l-2.647-2.646L5.99 18.718l-.708-.708L15.645 7.646 13 5h6Z"
|
|
915
912
|
}));
|
|
@@ -919,9 +916,9 @@ var Arrow = (props) => {
|
|
|
919
916
|
var import_react26 = __toESM(require("react"));
|
|
920
917
|
var Circle = (props) => {
|
|
921
918
|
const stroke = getStroke(props);
|
|
922
|
-
return import_react26.default.createElement("svg", {
|
|
919
|
+
return /* @__PURE__ */ import_react26.default.createElement("svg", {
|
|
923
920
|
viewBox: "0 0 24 24"
|
|
924
|
-
}, import_react26.default.createElement("rect", {
|
|
921
|
+
}, /* @__PURE__ */ import_react26.default.createElement("rect", {
|
|
925
922
|
width: "15",
|
|
926
923
|
height: "15",
|
|
927
924
|
x: "4.5",
|
|
@@ -936,9 +933,9 @@ var Circle = (props) => {
|
|
|
936
933
|
var import_react27 = __toESM(require("react"));
|
|
937
934
|
var Clean = (props) => {
|
|
938
935
|
const stroke = getStroke(props);
|
|
939
|
-
return import_react27.default.createElement("svg", {
|
|
936
|
+
return /* @__PURE__ */ import_react27.default.createElement("svg", {
|
|
940
937
|
viewBox: "0 0 24 24"
|
|
941
|
-
}, import_react27.default.createElement("path", {
|
|
938
|
+
}, /* @__PURE__ */ import_react27.default.createElement("path", {
|
|
942
939
|
fill: stroke,
|
|
943
940
|
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"
|
|
944
941
|
}));
|
|
@@ -948,13 +945,13 @@ var Clean = (props) => {
|
|
|
948
945
|
var import_react28 = __toESM(require("react"));
|
|
949
946
|
var Clicker = (props) => {
|
|
950
947
|
const stroke = getStroke(props);
|
|
951
|
-
return import_react28.default.createElement("svg", {
|
|
948
|
+
return /* @__PURE__ */ import_react28.default.createElement("svg", {
|
|
952
949
|
viewBox: "0 0 24 24"
|
|
953
|
-
}, import_react28.default.createElement("g", {
|
|
950
|
+
}, /* @__PURE__ */ import_react28.default.createElement("g", {
|
|
954
951
|
fill: "none"
|
|
955
|
-
}, import_react28.default.createElement("path", {
|
|
952
|
+
}, /* @__PURE__ */ import_react28.default.createElement("path", {
|
|
956
953
|
d: "M0 0h24v24H0z"
|
|
957
|
-
}), import_react28.default.createElement("path", {
|
|
954
|
+
}), /* @__PURE__ */ import_react28.default.createElement("path", {
|
|
958
955
|
fill: stroke,
|
|
959
956
|
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"
|
|
960
957
|
})));
|
|
@@ -964,9 +961,9 @@ var Clicker = (props) => {
|
|
|
964
961
|
var import_react29 = __toESM(require("react"));
|
|
965
962
|
var Collapse = (props) => {
|
|
966
963
|
const stroke = getStroke(props);
|
|
967
|
-
return import_react29.default.createElement("svg", {
|
|
964
|
+
return /* @__PURE__ */ import_react29.default.createElement("svg", {
|
|
968
965
|
viewBox: "0 0 24 24"
|
|
969
|
-
}, import_react29.default.createElement("path", {
|
|
966
|
+
}, /* @__PURE__ */ import_react29.default.createElement("path", {
|
|
970
967
|
fill: "none",
|
|
971
968
|
stroke,
|
|
972
969
|
d: "m8 10-2 2 2 2m10-8H6m12 12H6m12-4h-8m8-4h-8"
|
|
@@ -977,9 +974,9 @@ var Collapse = (props) => {
|
|
|
977
974
|
var import_react30 = __toESM(require("react"));
|
|
978
975
|
var Diamond = (props) => {
|
|
979
976
|
const stroke = getStroke(props);
|
|
980
|
-
return import_react30.default.createElement("svg", {
|
|
977
|
+
return /* @__PURE__ */ import_react30.default.createElement("svg", {
|
|
981
978
|
viewBox: "0 0 24 24"
|
|
982
|
-
}, import_react30.default.createElement("path", {
|
|
979
|
+
}, /* @__PURE__ */ import_react30.default.createElement("path", {
|
|
983
980
|
fill: "none",
|
|
984
981
|
stroke,
|
|
985
982
|
d: "M4.222 12 12 4.222 19.778 12 12 19.778z"
|
|
@@ -990,9 +987,9 @@ var Diamond = (props) => {
|
|
|
990
987
|
var import_react31 = __toESM(require("react"));
|
|
991
988
|
var Down = (props) => {
|
|
992
989
|
const stroke = getStroke(props);
|
|
993
|
-
return import_react31.default.createElement("svg", {
|
|
990
|
+
return /* @__PURE__ */ import_react31.default.createElement("svg", {
|
|
994
991
|
viewBox: "0 0 24 24"
|
|
995
|
-
}, import_react31.default.createElement("path", {
|
|
992
|
+
}, /* @__PURE__ */ import_react31.default.createElement("path", {
|
|
996
993
|
fill: "none",
|
|
997
994
|
stroke,
|
|
998
995
|
d: "m16 13-2 2-2 2-2-2-2-2m8-6-2 2-2 2-2-2-2-2"
|
|
@@ -1003,9 +1000,9 @@ var Down = (props) => {
|
|
|
1003
1000
|
var import_react32 = __toESM(require("react"));
|
|
1004
1001
|
var Eraser = (props) => {
|
|
1005
1002
|
const stroke = getStroke(props);
|
|
1006
|
-
return import_react32.default.createElement("svg", {
|
|
1003
|
+
return /* @__PURE__ */ import_react32.default.createElement("svg", {
|
|
1007
1004
|
viewBox: "0 0 24 24"
|
|
1008
|
-
}, import_react32.default.createElement("path", {
|
|
1005
|
+
}, /* @__PURE__ */ import_react32.default.createElement("path", {
|
|
1009
1006
|
fill: stroke,
|
|
1010
1007
|
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"
|
|
1011
1008
|
}));
|
|
@@ -1015,9 +1012,9 @@ var Eraser = (props) => {
|
|
|
1015
1012
|
var import_react33 = __toESM(require("react"));
|
|
1016
1013
|
var Expand = (props) => {
|
|
1017
1014
|
const stroke = getStroke(props);
|
|
1018
|
-
return import_react33.default.createElement("svg", {
|
|
1015
|
+
return /* @__PURE__ */ import_react33.default.createElement("svg", {
|
|
1019
1016
|
viewBox: "0 0 24 24"
|
|
1020
|
-
}, import_react33.default.createElement("path", {
|
|
1017
|
+
}, /* @__PURE__ */ import_react33.default.createElement("path", {
|
|
1021
1018
|
fill: "none",
|
|
1022
1019
|
stroke,
|
|
1023
1020
|
d: "m16 10 2 2-2 2M6 6h12M6 18h12M6 14h8m-8-4h8"
|
|
@@ -1028,9 +1025,9 @@ var Expand = (props) => {
|
|
|
1028
1025
|
var import_react34 = __toESM(require("react"));
|
|
1029
1026
|
var Line = (props) => {
|
|
1030
1027
|
const stroke = getStroke(props);
|
|
1031
|
-
return import_react34.default.createElement("svg", {
|
|
1028
|
+
return /* @__PURE__ */ import_react34.default.createElement("svg", {
|
|
1032
1029
|
viewBox: "0 0 24 24"
|
|
1033
|
-
}, import_react34.default.createElement("path", {
|
|
1030
|
+
}, /* @__PURE__ */ import_react34.default.createElement("path", {
|
|
1034
1031
|
fill: stroke,
|
|
1035
1032
|
d: "m18.01 5.282.708.708L5.99 18.718l-.708-.708z"
|
|
1036
1033
|
}));
|
|
@@ -1040,9 +1037,9 @@ var Line = (props) => {
|
|
|
1040
1037
|
var import_react35 = __toESM(require("react"));
|
|
1041
1038
|
var Pencil = (props) => {
|
|
1042
1039
|
const stroke = getStroke(props);
|
|
1043
|
-
return import_react35.default.createElement("svg", {
|
|
1040
|
+
return /* @__PURE__ */ import_react35.default.createElement("svg", {
|
|
1044
1041
|
viewBox: "0 0 24 24"
|
|
1045
|
-
}, import_react35.default.createElement("path", {
|
|
1042
|
+
}, /* @__PURE__ */ import_react35.default.createElement("path", {
|
|
1046
1043
|
fill: stroke,
|
|
1047
1044
|
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"
|
|
1048
1045
|
}));
|
|
@@ -1052,9 +1049,9 @@ var Pencil = (props) => {
|
|
|
1052
1049
|
var import_react36 = __toESM(require("react"));
|
|
1053
1050
|
var Rectangle = (props) => {
|
|
1054
1051
|
const stroke = getStroke(props);
|
|
1055
|
-
return import_react36.default.createElement("svg", {
|
|
1052
|
+
return /* @__PURE__ */ import_react36.default.createElement("svg", {
|
|
1056
1053
|
viewBox: "0 0 24 24"
|
|
1057
|
-
}, import_react36.default.createElement("path", {
|
|
1054
|
+
}, /* @__PURE__ */ import_react36.default.createElement("path", {
|
|
1058
1055
|
fill: "none",
|
|
1059
1056
|
stroke,
|
|
1060
1057
|
d: "M5.5 5.5h13v13h-13z"
|
|
@@ -1065,9 +1062,9 @@ var Rectangle = (props) => {
|
|
|
1065
1062
|
var import_react37 = __toESM(require("react"));
|
|
1066
1063
|
var Selector = (props) => {
|
|
1067
1064
|
const stroke = getStroke(props);
|
|
1068
|
-
return import_react37.default.createElement("svg", {
|
|
1065
|
+
return /* @__PURE__ */ import_react37.default.createElement("svg", {
|
|
1069
1066
|
viewBox: "0 0 24 24"
|
|
1070
|
-
}, import_react37.default.createElement("path", {
|
|
1067
|
+
}, /* @__PURE__ */ import_react37.default.createElement("path", {
|
|
1071
1068
|
fill: stroke,
|
|
1072
1069
|
d: "m12 12 8 2.667-3.556 1.777L14.667 20 12 12Zm3-8v7.5h-1V5H5v9h6.5v1H4V4h11Z"
|
|
1073
1070
|
}));
|
|
@@ -1077,9 +1074,9 @@ var Selector = (props) => {
|
|
|
1077
1074
|
var import_react38 = __toESM(require("react"));
|
|
1078
1075
|
var SpeechBalloon = (props) => {
|
|
1079
1076
|
const stroke = getStroke(props);
|
|
1080
|
-
return import_react38.default.createElement("svg", {
|
|
1077
|
+
return /* @__PURE__ */ import_react38.default.createElement("svg", {
|
|
1081
1078
|
viewBox: "0 0 24 24"
|
|
1082
|
-
}, import_react38.default.createElement("path", {
|
|
1079
|
+
}, /* @__PURE__ */ import_react38.default.createElement("path", {
|
|
1083
1080
|
fill: "none",
|
|
1084
1081
|
stroke,
|
|
1085
1082
|
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"
|
|
@@ -1090,9 +1087,9 @@ var SpeechBalloon = (props) => {
|
|
|
1090
1087
|
var import_react39 = __toESM(require("react"));
|
|
1091
1088
|
var Star = (props) => {
|
|
1092
1089
|
const stroke = getStroke(props);
|
|
1093
|
-
return import_react39.default.createElement("svg", {
|
|
1090
|
+
return /* @__PURE__ */ import_react39.default.createElement("svg", {
|
|
1094
1091
|
viewBox: "0 0 24 24"
|
|
1095
|
-
}, import_react39.default.createElement("path", {
|
|
1092
|
+
}, /* @__PURE__ */ import_react39.default.createElement("path", {
|
|
1096
1093
|
fill: "none",
|
|
1097
1094
|
stroke,
|
|
1098
1095
|
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"
|
|
@@ -1103,9 +1100,9 @@ var Star = (props) => {
|
|
|
1103
1100
|
var import_react40 = __toESM(require("react"));
|
|
1104
1101
|
var Text = (props) => {
|
|
1105
1102
|
const stroke = getStroke(props);
|
|
1106
|
-
return import_react40.default.createElement("svg", {
|
|
1103
|
+
return /* @__PURE__ */ import_react40.default.createElement("svg", {
|
|
1107
1104
|
viewBox: "0 0 24 24"
|
|
1108
|
-
}, import_react40.default.createElement("path", {
|
|
1105
|
+
}, /* @__PURE__ */ import_react40.default.createElement("path", {
|
|
1109
1106
|
fill: stroke,
|
|
1110
1107
|
d: "M18.5 5.5V8h-1V6.5H13v11h2v1H9v-1h2v-11H6.5V8h-1V5.5h13Z"
|
|
1111
1108
|
}));
|
|
@@ -1115,9 +1112,9 @@ var Text = (props) => {
|
|
|
1115
1112
|
var import_react41 = __toESM(require("react"));
|
|
1116
1113
|
var Triangle = (props) => {
|
|
1117
1114
|
const stroke = getStroke(props);
|
|
1118
|
-
return import_react41.default.createElement("svg", {
|
|
1115
|
+
return /* @__PURE__ */ import_react41.default.createElement("svg", {
|
|
1119
1116
|
viewBox: "0 0 24 24"
|
|
1120
|
-
}, import_react41.default.createElement("path", {
|
|
1117
|
+
}, /* @__PURE__ */ import_react41.default.createElement("path", {
|
|
1121
1118
|
fill: "none",
|
|
1122
1119
|
stroke,
|
|
1123
1120
|
d: "M12 6.008 19.138 18.5H4.862L12 6.008Z"
|
|
@@ -1128,9 +1125,9 @@ var Triangle = (props) => {
|
|
|
1128
1125
|
var import_react42 = __toESM(require("react"));
|
|
1129
1126
|
var Up = (props) => {
|
|
1130
1127
|
const stroke = getStroke(props);
|
|
1131
|
-
return import_react42.default.createElement("svg", {
|
|
1128
|
+
return /* @__PURE__ */ import_react42.default.createElement("svg", {
|
|
1132
1129
|
viewBox: "0 0 24 24"
|
|
1133
|
-
}, import_react42.default.createElement("path", {
|
|
1130
|
+
}, /* @__PURE__ */ import_react42.default.createElement("path", {
|
|
1134
1131
|
fill: "none",
|
|
1135
1132
|
stroke,
|
|
1136
1133
|
d: "m16 11-2-2-2-2-2 2-2 2m8 6-2-2-2-2-2 2-2 2"
|
|
@@ -1167,7 +1164,7 @@ var import_react45 = __toESM(require("@tippyjs/react"));
|
|
|
1167
1164
|
var Button = (0, import_react44.forwardRef)((props, ref) => {
|
|
1168
1165
|
const { content, disabled, active, onClick, interactive, placement = "right", children } = props;
|
|
1169
1166
|
const { writable, theme } = (0, import_react44.useContext)(ToolbarContext);
|
|
1170
|
-
return import_react44.default.createElement(import_react45.default, {
|
|
1167
|
+
return /* @__PURE__ */ import_react44.default.createElement(import_react45.default, {
|
|
1171
1168
|
className: "fastboard-tip",
|
|
1172
1169
|
content,
|
|
1173
1170
|
interactive,
|
|
@@ -1177,7 +1174,7 @@ var Button = (0, import_react44.forwardRef)((props, ref) => {
|
|
|
1177
1174
|
offset: placement.includes("right") ? RightOffset : void 0,
|
|
1178
1175
|
delay: [1e3, 400],
|
|
1179
1176
|
duration: 300
|
|
1180
|
-
}, import_react44.default.createElement("button", {
|
|
1177
|
+
}, /* @__PURE__ */ import_react44.default.createElement("button", {
|
|
1181
1178
|
ref,
|
|
1182
1179
|
className: (0, import_clsx4.default)("fastboard-toolbar-btn", theme, { active }),
|
|
1183
1180
|
onClick,
|
|
@@ -1189,9 +1186,9 @@ var Button = (0, import_react44.forwardRef)((props, ref) => {
|
|
|
1189
1186
|
function renderToolTip(text, hotkey) {
|
|
1190
1187
|
if (!(typeof hotkey === "string"))
|
|
1191
1188
|
return text;
|
|
1192
|
-
return import_react46.default.createElement("span", {
|
|
1189
|
+
return /* @__PURE__ */ import_react46.default.createElement("span", {
|
|
1193
1190
|
className: "fastboard-toolbar-tooltip"
|
|
1194
|
-
}, import_react46.default.createElement("span", null, text), import_react46.default.createElement("span", {
|
|
1191
|
+
}, /* @__PURE__ */ import_react46.default.createElement("span", null, text), /* @__PURE__ */ import_react46.default.createElement("span", {
|
|
1195
1192
|
className: "fastboard-toolbar-hotkey"
|
|
1196
1193
|
}, hotkey.toUpperCase()));
|
|
1197
1194
|
}
|
|
@@ -1205,12 +1202,12 @@ function ClickerButton() {
|
|
|
1205
1202
|
const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
|
|
1206
1203
|
const active = appliance === import_white_web_sdk.ApplianceNames.clicker;
|
|
1207
1204
|
const disabled = !writable;
|
|
1208
|
-
return import_react46.default.createElement(Button, {
|
|
1205
|
+
return /* @__PURE__ */ import_react46.default.createElement(Button, {
|
|
1209
1206
|
content: renderToolTip(t("clicker"), shortcut),
|
|
1210
1207
|
onClick: changeAppliance,
|
|
1211
1208
|
active
|
|
1212
|
-
}, import_react46.default.createElement(Icon, {
|
|
1213
|
-
fallback: import_react46.default.createElement(Icons.Clicker, {
|
|
1209
|
+
}, /* @__PURE__ */ import_react46.default.createElement(Icon, {
|
|
1210
|
+
fallback: /* @__PURE__ */ import_react46.default.createElement(Icons.Clicker, {
|
|
1214
1211
|
theme,
|
|
1215
1212
|
active
|
|
1216
1213
|
}),
|
|
@@ -1227,12 +1224,12 @@ function SelectorButton() {
|
|
|
1227
1224
|
const active = appliance === import_white_web_sdk.ApplianceNames.selector;
|
|
1228
1225
|
const disabled = !writable;
|
|
1229
1226
|
const shortcut = (app.hotKeys || defaultHotKeys).changeToSelector;
|
|
1230
|
-
return import_react46.default.createElement(Button, {
|
|
1227
|
+
return /* @__PURE__ */ import_react46.default.createElement(Button, {
|
|
1231
1228
|
content: renderToolTip(t("selector"), shortcut),
|
|
1232
1229
|
onClick: changeAppliance,
|
|
1233
1230
|
active
|
|
1234
|
-
}, import_react46.default.createElement(Icon, {
|
|
1235
|
-
fallback: import_react46.default.createElement(Icons.Selector, {
|
|
1231
|
+
}, /* @__PURE__ */ import_react46.default.createElement(Icon, {
|
|
1232
|
+
fallback: /* @__PURE__ */ import_react46.default.createElement(Icons.Selector, {
|
|
1236
1233
|
theme,
|
|
1237
1234
|
active
|
|
1238
1235
|
}),
|
|
@@ -1249,12 +1246,12 @@ function EraserButton() {
|
|
|
1249
1246
|
const active = appliance === import_white_web_sdk.ApplianceNames.eraser;
|
|
1250
1247
|
const disabled = !writable;
|
|
1251
1248
|
const shortcut = ((app == null ? void 0 : app.hotKeys) || defaultHotKeys).changeToEraser;
|
|
1252
|
-
return import_react46.default.createElement(Button, {
|
|
1249
|
+
return /* @__PURE__ */ import_react46.default.createElement(Button, {
|
|
1253
1250
|
content: renderToolTip(t("eraser"), shortcut),
|
|
1254
1251
|
onClick: changeAppliance,
|
|
1255
1252
|
active
|
|
1256
|
-
}, import_react46.default.createElement(Icon, {
|
|
1257
|
-
fallback: import_react46.default.createElement(Icons.Eraser, {
|
|
1253
|
+
}, /* @__PURE__ */ import_react46.default.createElement(Icon, {
|
|
1254
|
+
fallback: /* @__PURE__ */ import_react46.default.createElement(Icons.Eraser, {
|
|
1258
1255
|
theme,
|
|
1259
1256
|
active
|
|
1260
1257
|
}),
|
|
@@ -1266,11 +1263,11 @@ function CleanButton() {
|
|
|
1266
1263
|
const { t } = useTranslation();
|
|
1267
1264
|
const { theme, icons, writable, cleanCurrentScene } = (0, import_react46.useContext)(ToolbarContext);
|
|
1268
1265
|
const disabled = !writable;
|
|
1269
|
-
return import_react46.default.createElement(Button, {
|
|
1266
|
+
return /* @__PURE__ */ import_react46.default.createElement(Button, {
|
|
1270
1267
|
content: t("clean"),
|
|
1271
1268
|
onClick: cleanCurrentScene
|
|
1272
|
-
}, import_react46.default.createElement(Icon, {
|
|
1273
|
-
fallback: import_react46.default.createElement(Icons.Clean, {
|
|
1269
|
+
}, /* @__PURE__ */ import_react46.default.createElement(Icon, {
|
|
1270
|
+
fallback: /* @__PURE__ */ import_react46.default.createElement(Icons.Clean, {
|
|
1274
1271
|
theme
|
|
1275
1272
|
}),
|
|
1276
1273
|
src: disabled ? icons == null ? void 0 : icons.cleanIconDisable : icons == null ? void 0 : icons.cleanIcon,
|
|
@@ -1295,19 +1292,19 @@ var countdown_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyC
|
|
|
1295
1292
|
function AppsButton({ content, onClick }) {
|
|
1296
1293
|
const { theme, icons, writable } = (0, import_react48.useContext)(ToolbarContext);
|
|
1297
1294
|
const disabled = !writable;
|
|
1298
|
-
const button = import_react48.default.createElement(Button, {
|
|
1295
|
+
const button = /* @__PURE__ */ import_react48.default.createElement(Button, {
|
|
1299
1296
|
content: "Apps",
|
|
1300
1297
|
onClick
|
|
1301
|
-
}, import_react48.default.createElement(Icon, {
|
|
1302
|
-
fallback: import_react48.default.createElement(Icons.Apps, {
|
|
1298
|
+
}, /* @__PURE__ */ import_react48.default.createElement(Icon, {
|
|
1299
|
+
fallback: /* @__PURE__ */ import_react48.default.createElement(Icons.Apps, {
|
|
1303
1300
|
theme
|
|
1304
1301
|
}),
|
|
1305
1302
|
src: disabled ? icons == null ? void 0 : icons.appsIconDisable : icons == null ? void 0 : icons.appsIcon,
|
|
1306
1303
|
alt: "[apps]"
|
|
1307
1304
|
}));
|
|
1308
|
-
return content === false ? button : import_react48.default.createElement("span", {
|
|
1305
|
+
return content === false ? button : /* @__PURE__ */ import_react48.default.createElement("span", {
|
|
1309
1306
|
className: "fastboard-toolbar-btn-interactive"
|
|
1310
|
-
}, import_react48.default.createElement(import_react47.default, {
|
|
1307
|
+
}, /* @__PURE__ */ import_react48.default.createElement(import_react47.default, {
|
|
1311
1308
|
className: "fastboard-tip",
|
|
1312
1309
|
content: renderAppsButtonContent(content),
|
|
1313
1310
|
theme,
|
|
@@ -1319,25 +1316,25 @@ function AppsButton({ content, onClick }) {
|
|
|
1319
1316
|
}, button));
|
|
1320
1317
|
}
|
|
1321
1318
|
function renderAppsButtonContent(content) {
|
|
1322
|
-
return import_react48.default.createElement("div", {
|
|
1319
|
+
return /* @__PURE__ */ import_react48.default.createElement("div", {
|
|
1323
1320
|
className: "fastboard-toolbar-panel apps"
|
|
1324
|
-
}, import_react48.default.createElement("div", {
|
|
1321
|
+
}, /* @__PURE__ */ import_react48.default.createElement("div", {
|
|
1325
1322
|
className: "fastboard-toolbar-apps"
|
|
1326
|
-
}, content || import_react48.default.createElement(DefaultApps, null)));
|
|
1323
|
+
}, content || /* @__PURE__ */ import_react48.default.createElement(DefaultApps, null)));
|
|
1327
1324
|
}
|
|
1328
1325
|
function DefaultApps() {
|
|
1329
1326
|
const app = useFastboardApp();
|
|
1330
|
-
return import_react48.default.createElement(import_react48.default.Fragment, null, import_react48.default.createElement(AppIcon, {
|
|
1327
|
+
return /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null, /* @__PURE__ */ import_react48.default.createElement(AppIcon, {
|
|
1331
1328
|
title: "Code Editor",
|
|
1332
1329
|
src: vscode_default,
|
|
1333
1330
|
alt: "[code editor]",
|
|
1334
1331
|
onClick: app == null ? void 0 : app.insertCodeEditor.bind(app)
|
|
1335
|
-
}), import_react48.default.createElement(AppIcon, {
|
|
1332
|
+
}), /* @__PURE__ */ import_react48.default.createElement(AppIcon, {
|
|
1336
1333
|
title: "GeoGebra",
|
|
1337
1334
|
src: geogebra_default,
|
|
1338
1335
|
alt: "[geogebra]",
|
|
1339
1336
|
onClick: app == null ? void 0 : app.insertGeoGebra.bind(app)
|
|
1340
|
-
}), import_react48.default.createElement(AppIcon, {
|
|
1337
|
+
}), /* @__PURE__ */ import_react48.default.createElement(AppIcon, {
|
|
1341
1338
|
title: "Countdown",
|
|
1342
1339
|
src: countdown_default,
|
|
1343
1340
|
alt: "[countdown]",
|
|
@@ -1345,17 +1342,17 @@ function DefaultApps() {
|
|
|
1345
1342
|
}));
|
|
1346
1343
|
}
|
|
1347
1344
|
function AppIcon({ title, src, alt, onClick }) {
|
|
1348
|
-
return import_react48.default.createElement("span", {
|
|
1345
|
+
return /* @__PURE__ */ import_react48.default.createElement("span", {
|
|
1349
1346
|
className: "fastboard-toolbar-app-icon"
|
|
1350
|
-
}, import_react48.default.createElement(Button, {
|
|
1347
|
+
}, /* @__PURE__ */ import_react48.default.createElement(Button, {
|
|
1351
1348
|
placement: "top",
|
|
1352
1349
|
content: title,
|
|
1353
1350
|
onClick
|
|
1354
|
-
}, import_react48.default.createElement("img", {
|
|
1351
|
+
}, /* @__PURE__ */ import_react48.default.createElement("img", {
|
|
1355
1352
|
src,
|
|
1356
1353
|
alt,
|
|
1357
1354
|
title
|
|
1358
|
-
})), import_react48.default.createElement("span", {
|
|
1355
|
+
})), /* @__PURE__ */ import_react48.default.createElement("span", {
|
|
1359
1356
|
className: "fastboard-toolbar-app-icon-text"
|
|
1360
1357
|
}, title));
|
|
1361
1358
|
}
|
|
@@ -1383,17 +1380,17 @@ function ColorBox() {
|
|
|
1383
1380
|
const { theme, memberState, setStrokeColor, writable } = (0, import_react49.useContext)(ToolbarContext);
|
|
1384
1381
|
const strokeColor = memberState == null ? void 0 : memberState.strokeColor;
|
|
1385
1382
|
const disabled = !writable;
|
|
1386
|
-
return import_react49.default.createElement("div", {
|
|
1383
|
+
return /* @__PURE__ */ import_react49.default.createElement("div", {
|
|
1387
1384
|
className: (0, import_clsx5.default)("fastboard-toolbar-color-box", theme)
|
|
1388
|
-
}, colorKeys.map((key) => import_react49.default.createElement("div", {
|
|
1385
|
+
}, colorKeys.map((key) => /* @__PURE__ */ import_react49.default.createElement("div", {
|
|
1389
1386
|
key,
|
|
1390
1387
|
className: (0, import_clsx5.default)("fastboard-toolbar-color-item", theme),
|
|
1391
1388
|
onClick: () => setStrokeColor(colors[key])
|
|
1392
|
-
}, import_react49.default.createElement("div", {
|
|
1389
|
+
}, /* @__PURE__ */ import_react49.default.createElement("div", {
|
|
1393
1390
|
className: (0, import_clsx5.default)("fastboard-toolbar-color-border", theme, {
|
|
1394
1391
|
active: strokeColor && isEqualArray(strokeColor, colors[key])
|
|
1395
1392
|
})
|
|
1396
|
-
}, import_react49.default.createElement("button", {
|
|
1393
|
+
}, /* @__PURE__ */ import_react49.default.createElement("button", {
|
|
1397
1394
|
className: (0, import_clsx5.default)("fastboard-toolbar-color-btn"),
|
|
1398
1395
|
style: { background: key },
|
|
1399
1396
|
disabled,
|
|
@@ -1409,7 +1406,7 @@ var import_clsx6 = __toESM(require("clsx"));
|
|
|
1409
1406
|
var import_react50 = __toESM(require("react"));
|
|
1410
1407
|
function CutLine() {
|
|
1411
1408
|
const { theme } = (0, import_react50.useContext)(ToolbarContext);
|
|
1412
|
-
return import_react50.default.createElement("span", {
|
|
1409
|
+
return /* @__PURE__ */ import_react50.default.createElement("span", {
|
|
1413
1410
|
className: (0, import_clsx6.default)(`${name4}-cut-line`, theme)
|
|
1414
1411
|
});
|
|
1415
1412
|
}
|
|
@@ -1422,7 +1419,7 @@ function Slider() {
|
|
|
1422
1419
|
const { theme, writable, memberState, setStrokeWidth } = (0, import_react51.useContext)(ToolbarContext);
|
|
1423
1420
|
const { activeColor } = themes[theme];
|
|
1424
1421
|
const strokeWidth = (memberState == null ? void 0 : memberState.strokeWidth) || 0;
|
|
1425
|
-
return import_react51.default.createElement(import_rc_slider.default, {
|
|
1422
|
+
return /* @__PURE__ */ import_react51.default.createElement(import_rc_slider.default, {
|
|
1426
1423
|
disabled: !writable,
|
|
1427
1424
|
className: (0, import_clsx7.default)("fastboard-toolbar-slider", theme),
|
|
1428
1425
|
trackStyle: { background: activeColor },
|
|
@@ -1446,9 +1443,9 @@ function PencilButton() {
|
|
|
1446
1443
|
const active = appliance === import_white_web_sdk2.ApplianceNames.pencil;
|
|
1447
1444
|
const disabled = !writable;
|
|
1448
1445
|
const shortcut = ((app == null ? void 0 : app.hotKeys) || defaultHotKeys).changeToPencil;
|
|
1449
|
-
return import_react53.default.createElement("span", {
|
|
1446
|
+
return /* @__PURE__ */ import_react53.default.createElement("span", {
|
|
1450
1447
|
className: "fastboard-toolbar-btn-interactive"
|
|
1451
|
-
}, import_react53.default.createElement(import_react52.default, {
|
|
1448
|
+
}, /* @__PURE__ */ import_react53.default.createElement(import_react52.default, {
|
|
1452
1449
|
className: "fastboard-tip",
|
|
1453
1450
|
content: renderPencilButtonContent(),
|
|
1454
1451
|
theme,
|
|
@@ -1457,25 +1454,25 @@ function PencilButton() {
|
|
|
1457
1454
|
offset: RightOffset,
|
|
1458
1455
|
arrow: false,
|
|
1459
1456
|
interactive: true
|
|
1460
|
-
}, import_react53.default.createElement(Button, {
|
|
1457
|
+
}, /* @__PURE__ */ import_react53.default.createElement(Button, {
|
|
1461
1458
|
content: renderToolTip(t("pencil"), shortcut),
|
|
1462
1459
|
active,
|
|
1463
1460
|
onClick: changeAppliance
|
|
1464
|
-
}, import_react53.default.createElement(Icon, {
|
|
1465
|
-
fallback: import_react53.default.createElement(Icons.Pencil, {
|
|
1461
|
+
}, /* @__PURE__ */ import_react53.default.createElement(Icon, {
|
|
1462
|
+
fallback: /* @__PURE__ */ import_react53.default.createElement(Icons.Pencil, {
|
|
1466
1463
|
theme,
|
|
1467
1464
|
active
|
|
1468
1465
|
}),
|
|
1469
1466
|
src: disabled ? icons == null ? void 0 : icons.pencilIconDisable : icons == null ? void 0 : icons.pencilIcon,
|
|
1470
1467
|
alt: "[pencil]"
|
|
1471
|
-
}), import_react53.default.createElement("span", {
|
|
1468
|
+
}), /* @__PURE__ */ import_react53.default.createElement("span", {
|
|
1472
1469
|
className: "fastboard-toolbar-triangle"
|
|
1473
1470
|
}))));
|
|
1474
1471
|
}
|
|
1475
1472
|
function renderPencilButtonContent() {
|
|
1476
|
-
return import_react53.default.createElement("div", {
|
|
1473
|
+
return /* @__PURE__ */ import_react53.default.createElement("div", {
|
|
1477
1474
|
className: "fastboard-toolbar-panel pencil"
|
|
1478
|
-
}, import_react53.default.createElement(Slider, null), import_react53.default.createElement(CutLine, null), import_react53.default.createElement(ColorBox, null));
|
|
1475
|
+
}, /* @__PURE__ */ import_react53.default.createElement(Slider, null), /* @__PURE__ */ import_react53.default.createElement(CutLine, null), /* @__PURE__ */ import_react53.default.createElement(ColorBox, null));
|
|
1479
1476
|
}
|
|
1480
1477
|
|
|
1481
1478
|
// src/components/Toolbar/components/ShapesButton.tsx
|
|
@@ -1522,9 +1519,9 @@ function ShapesButton() {
|
|
|
1522
1519
|
const key = appliance === import_white_web_sdk4.ApplianceNames.shape ? shape : appliance;
|
|
1523
1520
|
const active = ShapeTypes.has(key);
|
|
1524
1521
|
const CurrentIcon = ShapesMap[key] || Icons.Rectangle;
|
|
1525
|
-
return import_react55.default.createElement("span", {
|
|
1522
|
+
return /* @__PURE__ */ import_react55.default.createElement("span", {
|
|
1526
1523
|
className: "fastboard-toolbar-btn-interactive"
|
|
1527
|
-
}, import_react55.default.createElement(import_react54.default, {
|
|
1524
|
+
}, /* @__PURE__ */ import_react55.default.createElement(import_react54.default, {
|
|
1528
1525
|
className: "fastboard-tip",
|
|
1529
1526
|
content: renderShapesButtonContent(),
|
|
1530
1527
|
theme,
|
|
@@ -1533,31 +1530,31 @@ function ShapesButton() {
|
|
|
1533
1530
|
offset: RightOffset,
|
|
1534
1531
|
arrow: false,
|
|
1535
1532
|
interactive: true
|
|
1536
|
-
}, import_react55.default.createElement(Button, {
|
|
1533
|
+
}, /* @__PURE__ */ import_react55.default.createElement(Button, {
|
|
1537
1534
|
content: t("shape"),
|
|
1538
1535
|
active
|
|
1539
|
-
}, import_react55.default.createElement(CurrentIcon, {
|
|
1536
|
+
}, /* @__PURE__ */ import_react55.default.createElement(CurrentIcon, {
|
|
1540
1537
|
theme,
|
|
1541
1538
|
active
|
|
1542
|
-
}), import_react55.default.createElement("span", {
|
|
1539
|
+
}), /* @__PURE__ */ import_react55.default.createElement("span", {
|
|
1543
1540
|
className: "fastboard-toolbar-triangle"
|
|
1544
1541
|
}))));
|
|
1545
1542
|
}
|
|
1546
1543
|
function renderShapesButtonContent() {
|
|
1547
|
-
return import_react55.default.createElement("div", {
|
|
1544
|
+
return /* @__PURE__ */ import_react55.default.createElement("div", {
|
|
1548
1545
|
className: "fastboard-toolbar-panel shapes"
|
|
1549
|
-
}, import_react55.default.createElement(ShapesBox, null), import_react55.default.createElement(CutLine, null), import_react55.default.createElement(Slider, null), import_react55.default.createElement(CutLine, null), import_react55.default.createElement(ColorBox, null));
|
|
1546
|
+
}, /* @__PURE__ */ import_react55.default.createElement(ShapesBox, null), /* @__PURE__ */ import_react55.default.createElement(CutLine, null), /* @__PURE__ */ import_react55.default.createElement(Slider, null), /* @__PURE__ */ import_react55.default.createElement(CutLine, null), /* @__PURE__ */ import_react55.default.createElement(ColorBox, null));
|
|
1550
1547
|
}
|
|
1551
1548
|
function ShapesBox() {
|
|
1552
1549
|
const { t } = useTranslation();
|
|
1553
|
-
return import_react55.default.createElement("div", {
|
|
1550
|
+
return /* @__PURE__ */ import_react55.default.createElement("div", {
|
|
1554
1551
|
className: "fastboard-toolbar-shapes"
|
|
1555
|
-
}, ApplianceShapes.map((Appliance) => import_react55.default.createElement(ApplianceShapeButton, {
|
|
1552
|
+
}, ApplianceShapes.map((Appliance) => /* @__PURE__ */ import_react55.default.createElement(ApplianceShapeButton, {
|
|
1556
1553
|
key: Appliance,
|
|
1557
1554
|
content: t(Appliance),
|
|
1558
1555
|
Appliance,
|
|
1559
1556
|
Icon: ShapesMap[Appliance]
|
|
1560
|
-
})), Shapes.map((shape) => import_react55.default.createElement(ShapeShapeButton, {
|
|
1557
|
+
})), Shapes.map((shape) => /* @__PURE__ */ import_react55.default.createElement(ShapeShapeButton, {
|
|
1561
1558
|
key: shape,
|
|
1562
1559
|
content: t(shape),
|
|
1563
1560
|
shape,
|
|
@@ -1568,12 +1565,12 @@ function ApplianceShapeButton({ content, Appliance, Icon: Icon2 }) {
|
|
|
1568
1565
|
const { theme, writable, setAppliance, memberState } = (0, import_react55.useContext)(ToolbarContext);
|
|
1569
1566
|
const current = memberState == null ? void 0 : memberState.currentApplianceName;
|
|
1570
1567
|
const disabled = !writable;
|
|
1571
|
-
return import_react55.default.createElement(Button, {
|
|
1568
|
+
return /* @__PURE__ */ import_react55.default.createElement(Button, {
|
|
1572
1569
|
content,
|
|
1573
1570
|
disabled,
|
|
1574
1571
|
placement: "top",
|
|
1575
1572
|
onClick: () => setAppliance(Appliance)
|
|
1576
|
-
}, import_react55.default.createElement(Icon2, {
|
|
1573
|
+
}, /* @__PURE__ */ import_react55.default.createElement(Icon2, {
|
|
1577
1574
|
theme,
|
|
1578
1575
|
active: current === Appliance
|
|
1579
1576
|
}));
|
|
@@ -1583,12 +1580,12 @@ function ShapeShapeButton({ content, shape, Icon: Icon2 }) {
|
|
|
1583
1580
|
const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
|
|
1584
1581
|
const current = appliance === import_white_web_sdk4.ApplianceNames.shape && (memberState == null ? void 0 : memberState.shapeType);
|
|
1585
1582
|
const disabled = !writable;
|
|
1586
|
-
return import_react55.default.createElement(Button, {
|
|
1583
|
+
return /* @__PURE__ */ import_react55.default.createElement(Button, {
|
|
1587
1584
|
content,
|
|
1588
1585
|
disabled,
|
|
1589
1586
|
placement: "top",
|
|
1590
1587
|
onClick: () => setAppliance(import_white_web_sdk4.ApplianceNames.shape, shape)
|
|
1591
|
-
}, import_react55.default.createElement(Icon2, {
|
|
1588
|
+
}, /* @__PURE__ */ import_react55.default.createElement(Icon2, {
|
|
1592
1589
|
theme,
|
|
1593
1590
|
active: current === shape
|
|
1594
1591
|
}));
|
|
@@ -1609,9 +1606,9 @@ function TextButton() {
|
|
|
1609
1606
|
const active = appliance === import_white_web_sdk5.ApplianceNames.text;
|
|
1610
1607
|
const disabled = !writable;
|
|
1611
1608
|
const shortcut = ((app == null ? void 0 : app.hotKeys) || defaultHotKeys).changeToText;
|
|
1612
|
-
return import_react57.default.createElement("span", {
|
|
1609
|
+
return /* @__PURE__ */ import_react57.default.createElement("span", {
|
|
1613
1610
|
className: "fastboard-toolbar-btn-interactive"
|
|
1614
|
-
}, import_react57.default.createElement(import_react56.default, {
|
|
1611
|
+
}, /* @__PURE__ */ import_react57.default.createElement(import_react56.default, {
|
|
1615
1612
|
className: "fastboard-tip",
|
|
1616
1613
|
content: renderTextButtonContent(),
|
|
1617
1614
|
theme,
|
|
@@ -1620,25 +1617,25 @@ function TextButton() {
|
|
|
1620
1617
|
offset: RightOffset,
|
|
1621
1618
|
arrow: false,
|
|
1622
1619
|
interactive: true
|
|
1623
|
-
}, import_react57.default.createElement(Button, {
|
|
1620
|
+
}, /* @__PURE__ */ import_react57.default.createElement(Button, {
|
|
1624
1621
|
content: renderToolTip(t("text"), shortcut),
|
|
1625
1622
|
active,
|
|
1626
1623
|
onClick: changeAppliance
|
|
1627
|
-
}, import_react57.default.createElement(Icon, {
|
|
1628
|
-
fallback: import_react57.default.createElement(Icons.Text, {
|
|
1624
|
+
}, /* @__PURE__ */ import_react57.default.createElement(Icon, {
|
|
1625
|
+
fallback: /* @__PURE__ */ import_react57.default.createElement(Icons.Text, {
|
|
1629
1626
|
theme,
|
|
1630
1627
|
active
|
|
1631
1628
|
}),
|
|
1632
1629
|
src: disabled ? icons == null ? void 0 : icons.textIconDisable : icons == null ? void 0 : icons.textIcon,
|
|
1633
1630
|
alt: "[text]"
|
|
1634
|
-
}), import_react57.default.createElement("span", {
|
|
1631
|
+
}), /* @__PURE__ */ import_react57.default.createElement("span", {
|
|
1635
1632
|
className: "fastboard-toolbar-triangle"
|
|
1636
1633
|
}))));
|
|
1637
1634
|
}
|
|
1638
1635
|
function renderTextButtonContent() {
|
|
1639
|
-
return import_react57.default.createElement("div", {
|
|
1636
|
+
return /* @__PURE__ */ import_react57.default.createElement("div", {
|
|
1640
1637
|
className: "fastboard-toolbar-panel text"
|
|
1641
|
-
}, import_react57.default.createElement(ColorBox, null));
|
|
1638
|
+
}, /* @__PURE__ */ import_react57.default.createElement(ColorBox, null));
|
|
1642
1639
|
}
|
|
1643
1640
|
|
|
1644
1641
|
// src/components/Toolbar/components/UpDownButtons.tsx
|
|
@@ -1646,27 +1643,27 @@ var import_react58 = __toESM(require("react"));
|
|
|
1646
1643
|
function UpButton({ disabled, scrollTo }) {
|
|
1647
1644
|
const { theme, icons } = (0, import_react58.useContext)(ToolbarContext);
|
|
1648
1645
|
const scrollUp = (0, import_react58.useCallback)(() => scrollTo(-ItemHeight), [scrollTo]);
|
|
1649
|
-
return import_react58.default.createElement(import_react58.default.Fragment, null, import_react58.default.createElement(Button, {
|
|
1646
|
+
return /* @__PURE__ */ import_react58.default.createElement(import_react58.default.Fragment, null, /* @__PURE__ */ import_react58.default.createElement(Button, {
|
|
1650
1647
|
content: "Up",
|
|
1651
1648
|
disabled,
|
|
1652
1649
|
onClick: scrollUp
|
|
1653
|
-
}, import_react58.default.createElement(Icon, {
|
|
1654
|
-
fallback: import_react58.default.createElement(Icons.Up, {
|
|
1650
|
+
}, /* @__PURE__ */ import_react58.default.createElement(Icon, {
|
|
1651
|
+
fallback: /* @__PURE__ */ import_react58.default.createElement(Icons.Up, {
|
|
1655
1652
|
theme
|
|
1656
1653
|
}),
|
|
1657
1654
|
src: disabled ? icons == null ? void 0 : icons.upIconDisable : icons == null ? void 0 : icons.upIcon,
|
|
1658
1655
|
alt: "[up]"
|
|
1659
|
-
})), import_react58.default.createElement(CutLine, null));
|
|
1656
|
+
})), /* @__PURE__ */ import_react58.default.createElement(CutLine, null));
|
|
1660
1657
|
}
|
|
1661
1658
|
function DownButton({ disabled, scrollTo }) {
|
|
1662
1659
|
const { theme, icons } = (0, import_react58.useContext)(ToolbarContext);
|
|
1663
1660
|
const scrollDown = (0, import_react58.useCallback)(() => scrollTo(ItemHeight), [scrollTo]);
|
|
1664
|
-
return import_react58.default.createElement(import_react58.default.Fragment, null, import_react58.default.createElement(CutLine, null), import_react58.default.createElement(Button, {
|
|
1661
|
+
return /* @__PURE__ */ import_react58.default.createElement(import_react58.default.Fragment, null, /* @__PURE__ */ import_react58.default.createElement(CutLine, null), /* @__PURE__ */ import_react58.default.createElement(Button, {
|
|
1665
1662
|
content: "Down",
|
|
1666
1663
|
disabled,
|
|
1667
1664
|
onClick: scrollDown
|
|
1668
|
-
}, import_react58.default.createElement(Icon, {
|
|
1669
|
-
fallback: import_react58.default.createElement(Icons.Down, {
|
|
1665
|
+
}, /* @__PURE__ */ import_react58.default.createElement(Icon, {
|
|
1666
|
+
fallback: /* @__PURE__ */ import_react58.default.createElement(Icons.Down, {
|
|
1670
1667
|
theme
|
|
1671
1668
|
}),
|
|
1672
1669
|
src: disabled ? icons == null ? void 0 : icons.downIconDisable : icons == null ? void 0 : icons.downIcon,
|
|
@@ -1705,17 +1702,17 @@ var Content = import_react59.default.memo(() => {
|
|
|
1705
1702
|
return () => resizeObserver.disconnect();
|
|
1706
1703
|
}
|
|
1707
1704
|
}, []);
|
|
1708
|
-
return import_react59.default.createElement(import_react59.default.Fragment, null, needScroll && import_react59.default.createElement(UpButton, {
|
|
1705
|
+
return /* @__PURE__ */ import_react59.default.createElement(import_react59.default.Fragment, null, needScroll && /* @__PURE__ */ import_react59.default.createElement(UpButton, {
|
|
1709
1706
|
scrollTo,
|
|
1710
1707
|
disabled: disableScrollUp
|
|
1711
|
-
}), import_react59.default.createElement("div", {
|
|
1708
|
+
}), /* @__PURE__ */ import_react59.default.createElement("div", {
|
|
1712
1709
|
ref,
|
|
1713
1710
|
className: (0, import_clsx8.default)(`${name4}-section`),
|
|
1714
1711
|
style: {
|
|
1715
1712
|
height: `${sectionHeight}px`,
|
|
1716
1713
|
overflow: needScroll ? "hidden" : "visible"
|
|
1717
1714
|
}
|
|
1718
|
-
}, import_react59.default.createElement(ClickerButton, null), import_react59.default.createElement(SelectorButton, null), import_react59.default.createElement(PencilButton, null), import_react59.default.createElement(TextButton, null), import_react59.default.createElement(ShapesButton, null), import_react59.default.createElement(EraserButton, null), import_react59.default.createElement(CleanButton, null), import_react59.default.createElement(AppsButton, null)), needScroll && import_react59.default.createElement(DownButton, {
|
|
1715
|
+
}, /* @__PURE__ */ import_react59.default.createElement(ClickerButton, null), /* @__PURE__ */ import_react59.default.createElement(SelectorButton, null), /* @__PURE__ */ import_react59.default.createElement(PencilButton, null), /* @__PURE__ */ import_react59.default.createElement(TextButton, null), /* @__PURE__ */ import_react59.default.createElement(ShapesButton, null), /* @__PURE__ */ import_react59.default.createElement(EraserButton, null), /* @__PURE__ */ import_react59.default.createElement(CleanButton, null), /* @__PURE__ */ import_react59.default.createElement(AppsButton, null)), needScroll && /* @__PURE__ */ import_react59.default.createElement(DownButton, {
|
|
1719
1716
|
scrollTo,
|
|
1720
1717
|
disabled: disableScrollDown
|
|
1721
1718
|
}));
|
|
@@ -1744,9 +1741,9 @@ var Toolbar = ({ theme, icons }) => {
|
|
|
1744
1741
|
}, 400);
|
|
1745
1742
|
return () => clearTimeout(timer);
|
|
1746
1743
|
}, [onHover]);
|
|
1747
|
-
return import_react60.default.createElement(ToolbarContext.Provider, {
|
|
1744
|
+
return /* @__PURE__ */ import_react60.default.createElement(ToolbarContext.Provider, {
|
|
1748
1745
|
value: __spreadValues({ theme, icons }, hook)
|
|
1749
|
-
}, import_react60.default.createElement(import_framer_motion.AnimatePresence, null, expanded ? import_react60.default.createElement(import_framer_motion.motion.div, {
|
|
1746
|
+
}, /* @__PURE__ */ import_react60.default.createElement(import_framer_motion.AnimatePresence, null, expanded ? /* @__PURE__ */ import_react60.default.createElement(import_framer_motion.motion.div, {
|
|
1750
1747
|
initial: { x: -100 },
|
|
1751
1748
|
animate: { x: 0, transition: { duration: 0.5 } },
|
|
1752
1749
|
key: "toolbar",
|
|
@@ -1760,22 +1757,22 @@ var Toolbar = ({ theme, icons }) => {
|
|
|
1760
1757
|
onAnimationStart: () => setPointEvents(false),
|
|
1761
1758
|
onAnimationComplete: () => setPointEvents(true),
|
|
1762
1759
|
style: { pointerEvents: pointEvents ? "auto" : "none" }
|
|
1763
|
-
}, import_react60.default.createElement(Content, null), expanded && (onHover || delayedOnHover) && import_react60.default.createElement(Mask, {
|
|
1760
|
+
}, /* @__PURE__ */ import_react60.default.createElement(Content, null), expanded && (onHover || delayedOnHover) && /* @__PURE__ */ import_react60.default.createElement(Mask, {
|
|
1764
1761
|
toolbar
|
|
1765
|
-
}, import_react60.default.createElement("div", {
|
|
1762
|
+
}, /* @__PURE__ */ import_react60.default.createElement("div", {
|
|
1766
1763
|
onClick: toggle
|
|
1767
|
-
}, import_react60.default.createElement("img", {
|
|
1764
|
+
}, /* @__PURE__ */ import_react60.default.createElement("img", {
|
|
1768
1765
|
draggable: false,
|
|
1769
1766
|
className: (0, import_clsx9.default)(`${name4}-mask-btn`, theme),
|
|
1770
1767
|
src: collapsed_default
|
|
1771
|
-
})))) : import_react60.default.createElement(import_framer_motion.motion.div, {
|
|
1768
|
+
})))) : /* @__PURE__ */ import_react60.default.createElement(import_framer_motion.motion.div, {
|
|
1772
1769
|
className: (0, import_clsx9.default)(`${name4}-expand-btn`, theme),
|
|
1773
1770
|
key: "expand",
|
|
1774
1771
|
onClick: toggle,
|
|
1775
1772
|
initial: { x: -100 },
|
|
1776
1773
|
animate: { x: 0, transition: { duration: 0.5 } }
|
|
1777
|
-
}, !expanded && import_react60.default.createElement(Icon, {
|
|
1778
|
-
fallback: import_react60.default.createElement("img", {
|
|
1774
|
+
}, !expanded && /* @__PURE__ */ import_react60.default.createElement(Icon, {
|
|
1775
|
+
fallback: /* @__PURE__ */ import_react60.default.createElement("img", {
|
|
1779
1776
|
draggable: false,
|
|
1780
1777
|
src: expanded_default,
|
|
1781
1778
|
className: (0, import_clsx9.default)(`${name4}-mask-btn`, theme)
|
|
@@ -1865,7 +1862,7 @@ var import_react62 = __toESM(require("react"));
|
|
|
1865
1862
|
var import_react63 = __toESM(require("@tippyjs/react"));
|
|
1866
1863
|
var Button2 = (0, import_react62.forwardRef)((props, ref) => {
|
|
1867
1864
|
const { theme, content, disabled, active, onClick, interactive, placement = "top", children } = props;
|
|
1868
|
-
return import_react62.default.createElement(import_react63.default, {
|
|
1865
|
+
return /* @__PURE__ */ import_react62.default.createElement(import_react63.default, {
|
|
1869
1866
|
className: "fastboard-tip",
|
|
1870
1867
|
content,
|
|
1871
1868
|
interactive,
|
|
@@ -1875,7 +1872,7 @@ var Button2 = (0, import_react62.forwardRef)((props, ref) => {
|
|
|
1875
1872
|
offset: TopOffset,
|
|
1876
1873
|
delay: [1e3, 400],
|
|
1877
1874
|
duration: 300
|
|
1878
|
-
}, import_react62.default.createElement("button", {
|
|
1875
|
+
}, /* @__PURE__ */ import_react62.default.createElement("button", {
|
|
1879
1876
|
ref,
|
|
1880
1877
|
className: (0, import_clsx10.default)("fastboard-player-control-btn", theme, { active }),
|
|
1881
1878
|
onClick,
|
|
@@ -1890,9 +1887,9 @@ var import_react67 = require("react");
|
|
|
1890
1887
|
var import_react64 = __toESM(require("react"));
|
|
1891
1888
|
var Loading = (props) => {
|
|
1892
1889
|
const stroke = getStroke(props);
|
|
1893
|
-
return import_react64.default.createElement("svg", {
|
|
1890
|
+
return /* @__PURE__ */ import_react64.default.createElement("svg", {
|
|
1894
1891
|
viewBox: "0 0 24 24"
|
|
1895
|
-
}, import_react64.default.createElement("path", {
|
|
1892
|
+
}, /* @__PURE__ */ import_react64.default.createElement("path", {
|
|
1896
1893
|
d: "M12 4V2A10 10 0 0 0 2 12h2a8 8 0 0 1 8-8z",
|
|
1897
1894
|
fill: stroke
|
|
1898
1895
|
}));
|
|
@@ -1902,9 +1899,9 @@ var Loading = (props) => {
|
|
|
1902
1899
|
var import_react65 = __toESM(require("react"));
|
|
1903
1900
|
var Pause = (props) => {
|
|
1904
1901
|
const stroke = getStroke(props);
|
|
1905
|
-
return import_react65.default.createElement("svg", {
|
|
1902
|
+
return /* @__PURE__ */ import_react65.default.createElement("svg", {
|
|
1906
1903
|
viewBox: "0 0 24 24"
|
|
1907
|
-
}, import_react65.default.createElement("path", {
|
|
1904
|
+
}, /* @__PURE__ */ import_react65.default.createElement("path", {
|
|
1908
1905
|
d: "M14 19h4V5h-4M6 19h4V5H6v14z",
|
|
1909
1906
|
fill: stroke
|
|
1910
1907
|
}));
|
|
@@ -1914,9 +1911,9 @@ var Pause = (props) => {
|
|
|
1914
1911
|
var import_react66 = __toESM(require("react"));
|
|
1915
1912
|
var Play = (props) => {
|
|
1916
1913
|
const stroke = getStroke(props);
|
|
1917
|
-
return import_react66.default.createElement("svg", {
|
|
1914
|
+
return /* @__PURE__ */ import_react66.default.createElement("svg", {
|
|
1918
1915
|
viewBox: "0 0 24 24"
|
|
1919
|
-
}, import_react66.default.createElement("path", {
|
|
1916
|
+
}, /* @__PURE__ */ import_react66.default.createElement("path", {
|
|
1920
1917
|
d: "M8 5.14v14l11-7l-11-7z",
|
|
1921
1918
|
fill: stroke
|
|
1922
1919
|
}));
|
|
@@ -1948,25 +1945,25 @@ function PlayerControl(_a) {
|
|
|
1948
1945
|
const isLoading = player.phase === import_white_web_sdk7.PlayerPhase.WaitingFirstFrame || player.phase === import_white_web_sdk7.PlayerPhase.Buffering;
|
|
1949
1946
|
const isPlaying = player.phase === import_white_web_sdk7.PlayerPhase.Playing;
|
|
1950
1947
|
const { activeColor } = themes[theme];
|
|
1951
|
-
return import_react69.default.createElement("div", {
|
|
1948
|
+
return /* @__PURE__ */ import_react69.default.createElement("div", {
|
|
1952
1949
|
className: (0, import_clsx11.default)(name5, theme, { "auto-hide": autoHide })
|
|
1953
|
-
}, import_react69.default.createElement("button", {
|
|
1950
|
+
}, /* @__PURE__ */ import_react69.default.createElement("button", {
|
|
1954
1951
|
className: (0, import_clsx11.default)(`${name5}-btn`, isLoading ? "loading" : isPlaying ? "pause" : "play", theme),
|
|
1955
1952
|
disabled: isLoading,
|
|
1956
1953
|
onClick: player.togglePlay
|
|
1957
|
-
}, import_react69.default.createElement(Icon, {
|
|
1958
|
-
fallback: isLoading ? import_react69.default.createElement(Icons2.Loading, {
|
|
1954
|
+
}, /* @__PURE__ */ import_react69.default.createElement(Icon, {
|
|
1955
|
+
fallback: isLoading ? /* @__PURE__ */ import_react69.default.createElement(Icons2.Loading, {
|
|
1959
1956
|
theme
|
|
1960
|
-
}) : isPlaying ? import_react69.default.createElement(Icons2.Pause, {
|
|
1957
|
+
}) : isPlaying ? /* @__PURE__ */ import_react69.default.createElement(Icons2.Pause, {
|
|
1961
1958
|
theme
|
|
1962
|
-
}) : import_react69.default.createElement(Icons2.Play, {
|
|
1959
|
+
}) : /* @__PURE__ */ import_react69.default.createElement(Icons2.Play, {
|
|
1963
1960
|
theme
|
|
1964
1961
|
}),
|
|
1965
1962
|
src: isLoading ? icons.loadingIcon : isPlaying ? icons.pauseIcon : icons.playIcon,
|
|
1966
1963
|
alt: isLoading ? "[loading]" : isPlaying ? "[pause]" : "[play]"
|
|
1967
|
-
})), import_react69.default.createElement("span", {
|
|
1964
|
+
})), /* @__PURE__ */ import_react69.default.createElement("span", {
|
|
1968
1965
|
className: (0, import_clsx11.default)(`${name5}-slider`, { loading: isLoading }, theme)
|
|
1969
|
-
}, import_react69.default.createElement(import_rc_slider2.default, {
|
|
1966
|
+
}, /* @__PURE__ */ import_react69.default.createElement(import_rc_slider2.default, {
|
|
1970
1967
|
disabled: isLoading,
|
|
1971
1968
|
trackStyle: { background: activeColor },
|
|
1972
1969
|
handleStyle: { border: `1px solid ${activeColor}` },
|
|
@@ -1975,15 +1972,15 @@ function PlayerControl(_a) {
|
|
|
1975
1972
|
min: 0,
|
|
1976
1973
|
max: player.totalTime,
|
|
1977
1974
|
step: 100
|
|
1978
|
-
})), import_react69.default.createElement("span", {
|
|
1975
|
+
})), /* @__PURE__ */ import_react69.default.createElement("span", {
|
|
1979
1976
|
className: (0, import_clsx11.default)(`${name5}-current`, theme)
|
|
1980
|
-
}, renderTime(player.currentTime)), import_react69.default.createElement("span", {
|
|
1977
|
+
}, renderTime(player.currentTime)), /* @__PURE__ */ import_react69.default.createElement("span", {
|
|
1981
1978
|
className: (0, import_clsx11.default)(`${name5}-slash`, theme)
|
|
1982
|
-
}, "/"), import_react69.default.createElement("span", {
|
|
1979
|
+
}, "/"), /* @__PURE__ */ import_react69.default.createElement("span", {
|
|
1983
1980
|
className: (0, import_clsx11.default)(`${name5}-total`, theme)
|
|
1984
|
-
}, renderTime(player.totalTime)), import_react69.default.createElement("span", {
|
|
1981
|
+
}, renderTime(player.totalTime)), /* @__PURE__ */ import_react69.default.createElement("span", {
|
|
1985
1982
|
className: `${name5}-btn-interactive`
|
|
1986
|
-
}, import_react69.default.createElement(import_react68.default, {
|
|
1983
|
+
}, /* @__PURE__ */ import_react69.default.createElement(import_react68.default, {
|
|
1987
1984
|
className: "fastboard-tip",
|
|
1988
1985
|
content: renderSpeeds(player),
|
|
1989
1986
|
theme,
|
|
@@ -1992,11 +1989,11 @@ function PlayerControl(_a) {
|
|
|
1992
1989
|
offset: TopOffset,
|
|
1993
1990
|
arrow: false,
|
|
1994
1991
|
interactive: true
|
|
1995
|
-
}, import_react69.default.createElement(Button2, {
|
|
1992
|
+
}, /* @__PURE__ */ import_react69.default.createElement(Button2, {
|
|
1996
1993
|
content: t("speed"),
|
|
1997
1994
|
theme,
|
|
1998
1995
|
disabled: isLoading
|
|
1999
|
-
}, import_react69.default.createElement("span", {
|
|
1996
|
+
}, /* @__PURE__ */ import_react69.default.createElement("span", {
|
|
2000
1997
|
className: (0, import_clsx11.default)(`${name5}-speed-text`, theme)
|
|
2001
1998
|
}, player.speed, "x")))));
|
|
2002
1999
|
}
|
|
@@ -2008,9 +2005,9 @@ function renderTime(ms) {
|
|
|
2008
2005
|
}
|
|
2009
2006
|
var Speeds = [2, 1.5, 1.25, 1, 0.75, 0.5];
|
|
2010
2007
|
function renderSpeeds({ speed: current, setSpeed }) {
|
|
2011
|
-
return import_react69.default.createElement("div", {
|
|
2008
|
+
return /* @__PURE__ */ import_react69.default.createElement("div", {
|
|
2012
2009
|
className: (0, import_clsx11.default)(`${name5}-panel`, "speed")
|
|
2013
|
-
}, Speeds.map((speed) => import_react69.default.createElement("button", {
|
|
2010
|
+
}, Speeds.map((speed) => /* @__PURE__ */ import_react69.default.createElement("button", {
|
|
2014
2011
|
className: (0, import_clsx11.default)(`${name5}-btn`, "speed", {
|
|
2015
2012
|
active: speed === current
|
|
2016
2013
|
}),
|
|
@@ -2021,17 +2018,17 @@ function renderSpeeds({ speed: current, setSpeed }) {
|
|
|
2021
2018
|
|
|
2022
2019
|
// src/components/Fastboard.tsx
|
|
2023
2020
|
var import_react70 = __toESM(require("react"));
|
|
2024
|
-
var Fastboard = (0, import_react70.forwardRef)(function Fastboard2(_a, ref) {
|
|
2021
|
+
var Fastboard = /* @__PURE__ */ (0, import_react70.forwardRef)(function Fastboard2(_a, ref) {
|
|
2025
2022
|
var _b = _a, { app, theme, layout, language } = _b, restProps = __objRest(_b, ["app", "theme", "layout", "language"]);
|
|
2026
2023
|
if (!app) {
|
|
2027
|
-
return import_react70.default.createElement("div", __spreadValues({
|
|
2024
|
+
return /* @__PURE__ */ import_react70.default.createElement("div", __spreadValues({
|
|
2028
2025
|
className: "fastboard-root",
|
|
2029
2026
|
ref
|
|
2030
2027
|
}, restProps));
|
|
2031
2028
|
}
|
|
2032
|
-
return import_react70.default.createElement(FastboardAppContext.Provider, {
|
|
2029
|
+
return /* @__PURE__ */ import_react70.default.createElement(FastboardAppContext.Provider, {
|
|
2033
2030
|
value: app
|
|
2034
|
-
}, import_react70.default.createElement(FastboardInternal, __spreadValues(__spreadValues({
|
|
2031
|
+
}, /* @__PURE__ */ import_react70.default.createElement(FastboardInternal, __spreadValues(__spreadValues({
|
|
2035
2032
|
forwardedRef: ref
|
|
2036
2033
|
}, { theme, layout, language }), restProps)));
|
|
2037
2034
|
});
|
|
@@ -2072,23 +2069,33 @@ function FastboardInternal(_a) {
|
|
|
2072
2069
|
ZoomControl: zoom_control = showControls,
|
|
2073
2070
|
PageControl: page_control = showControls
|
|
2074
2071
|
} = layout;
|
|
2075
|
-
return import_react70.default.createElement(ThemeContext.Provider, {
|
|
2072
|
+
return /* @__PURE__ */ import_react70.default.createElement(ThemeContext.Provider, {
|
|
2076
2073
|
value: theme
|
|
2077
|
-
}, import_react70.default.createElement(I18nContext.Provider, {
|
|
2074
|
+
}, /* @__PURE__ */ import_react70.default.createElement(I18nContext.Provider, {
|
|
2078
2075
|
value: i18n
|
|
2079
|
-
}, import_react70.default.createElement("div", __spreadProps(__spreadValues({}, restProps), {
|
|
2076
|
+
}, /* @__PURE__ */ import_react70.default.createElement("div", __spreadProps(__spreadValues({}, restProps), {
|
|
2080
2077
|
className: "fastboard-root",
|
|
2081
2078
|
ref: forwardedRef
|
|
2082
|
-
}), import_react70.default.createElement("div", {
|
|
2079
|
+
}), /* @__PURE__ */ import_react70.default.createElement("div", {
|
|
2083
2080
|
className: "fastboard-view",
|
|
2084
2081
|
ref: useWhiteboard
|
|
2085
|
-
}), children ? children : import_react70.default.createElement(import_react70.default.Fragment, null, toolbar && import_react70.default.createElement("div", {
|
|
2082
|
+
}), children ? children : /* @__PURE__ */ import_react70.default.createElement(import_react70.default.Fragment, null, toolbar && /* @__PURE__ */ import_react70.default.createElement("div", {
|
|
2086
2083
|
className: "fastboard-left"
|
|
2087
|
-
}, import_react70.default.createElement(Toolbar, null)), (redo_undo || zoom_control) && import_react70.default.createElement("div", {
|
|
2084
|
+
}, /* @__PURE__ */ import_react70.default.createElement(Toolbar, null)), (redo_undo || zoom_control) && /* @__PURE__ */ import_react70.default.createElement("div", {
|
|
2088
2085
|
className: "fastboard-bottom-left"
|
|
2089
|
-
}, redo_undo && import_react70.default.createElement(RedoUndo, null), zoom_control && import_react70.default.createElement(ZoomControl, null)), page_control && import_react70.default.createElement("div", {
|
|
2086
|
+
}, redo_undo && /* @__PURE__ */ import_react70.default.createElement(RedoUndo, null), zoom_control && /* @__PURE__ */ import_react70.default.createElement(ZoomControl, null)), page_control && /* @__PURE__ */ import_react70.default.createElement("div", {
|
|
2090
2087
|
className: "fastboard-bottom-right"
|
|
2091
|
-
}, import_react70.default.createElement(PageControl, null))))));
|
|
2088
|
+
}, /* @__PURE__ */ import_react70.default.createElement(PageControl, null))))));
|
|
2089
|
+
}
|
|
2090
|
+
|
|
2091
|
+
// src/vanilla/index.tsx
|
|
2092
|
+
var import_react71 = __toESM(require("react"));
|
|
2093
|
+
var import_react_dom2 = __toESM(require("react-dom"));
|
|
2094
|
+
function mount(app, dom, props) {
|
|
2095
|
+
import_react_dom2.default.render(/* @__PURE__ */ import_react71.default.createElement(Fastboard, __spreadValues({
|
|
2096
|
+
app
|
|
2097
|
+
}, props)), dom);
|
|
2098
|
+
return () => import_react_dom2.default.unmountComponentAtNode(dom);
|
|
2092
2099
|
}
|
|
2093
2100
|
module.exports = __toCommonJS(src_exports);
|
|
2094
2101
|
//# sourceMappingURL=index.js.map
|