@netless/fastboard-react 0.2.7 → 0.2.10

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.
Files changed (34) hide show
  1. package/dist/index.d.ts +146 -0
  2. package/dist/index.js +3207 -310
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +3158 -261
  5. package/dist/index.mjs.map +1 -1
  6. package/package.json +7 -7
  7. package/src/components/Fastboard.scss +6 -1
  8. package/src/components/Fastboard.tsx +3 -10
  9. package/src/components/PageControl/PageControl.scss +15 -11
  10. package/src/components/PageControl/PageControl.tsx +15 -17
  11. package/src/components/PlayerControl/PlayerControl.scss +13 -12
  12. package/src/components/PlayerControl/PlayerControl.tsx +3 -3
  13. package/src/components/PlayerControl/components/Button.tsx +1 -2
  14. package/src/components/RedoUndo/RedoUndo.scss +10 -10
  15. package/src/components/ReplayFastboard.tsx +36 -0
  16. package/src/components/Toolbar/Toolbar.scss +46 -17
  17. package/src/components/Toolbar/components/AppsButton.tsx +20 -11
  18. package/src/components/Toolbar/components/Button.tsx +1 -2
  19. package/src/components/Toolbar/icons/Loading.tsx +13 -0
  20. package/src/components/ZoomControl/ZoomControl.scss +15 -11
  21. package/src/components/ZoomControl/ZoomControl.tsx +4 -2
  22. package/src/components/tippy-util.ts +18 -0
  23. package/src/icons/Left.tsx +15 -0
  24. package/src/icons/Minus.tsx +2 -2
  25. package/src/icons/Plus.tsx +2 -2
  26. package/src/icons/Redo.tsx +6 -5
  27. package/src/icons/Reset.tsx +4 -6
  28. package/src/icons/Right.tsx +15 -0
  29. package/src/icons/Undo.tsx +6 -5
  30. package/src/icons/WhiteboardAdd.tsx +26 -0
  31. package/src/index.ts +1 -0
  32. package/src/icons/ChevronLeft.tsx +0 -21
  33. package/src/icons/ChevronRight.tsx +0 -21
  34. package/src/icons/FilePlus.tsx +0 -18
package/dist/index.mjs CHANGED
@@ -40,8 +40,8 @@ function applyStyles(css) {
40
40
  document.head.appendChild(el);
41
41
  return el;
42
42
  }
43
- function clamp(value, min, max) {
44
- return value < min ? min : value > max ? max : value;
43
+ function clamp(value, min2, max2) {
44
+ return value < min2 ? min2 : value > max2 ? max2 : value;
45
45
  }
46
46
  function isEqualArray(a, b) {
47
47
  return a.length === b.length && a.every((e, i) => e === b[i]);
@@ -68,10 +68,10 @@ function useLastValue(value) {
68
68
  }, [value]);
69
69
  return ref.current;
70
70
  }
71
- function useAsyncValue(fn) {
71
+ function useAsyncValue(fn2) {
72
72
  const [value, setValue] = useState(null);
73
73
  useEffect(() => {
74
- fn().then(setValue);
74
+ fn2().then(setValue);
75
75
  }, []);
76
76
  return value;
77
77
  }
@@ -81,7 +81,7 @@ function useForceUpdate() {
81
81
  }
82
82
 
83
83
  // src/style.scss?inline
84
- var style_default = '@charset "UTF-8";.vjs-modal-dialog .vjs-modal-dialog-content,.video-js .vjs-modal-dialog,.vjs-button>.vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-button>.vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{text-align:center}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,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) format("woff");font-weight:400;font-style:normal}.vjs-icon-play,.video-js .vjs-play-control .vjs-icon-placeholder,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play:before,.video-js .vjs-play-control .vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{content:"\\f101"}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:"\\f102"}.vjs-icon-pause,.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pause:before,.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before{content:"\\f103"}.vjs-icon-volume-mute,.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mute:before,.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before{content:"\\f104"}.vjs-icon-volume-low,.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-low:before,.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before{content:"\\f105"}.vjs-icon-volume-mid,.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mid:before,.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before{content:"\\f106"}.vjs-icon-volume-high,.video-js .vjs-mute-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-high:before,.video-js .vjs-mute-control .vjs-icon-placeholder:before{content:"\\f107"}.vjs-icon-fullscreen-enter,.video-js .vjs-fullscreen-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-enter:before,.video-js .vjs-fullscreen-control .vjs-icon-placeholder:before{content:"\\f108"}.vjs-icon-fullscreen-exit,.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-exit:before,.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before{content:"\\f109"}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:"\\f10a"}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:"\\f10b"}.vjs-icon-subtitles,.video-js .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-subtitles-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-subtitles:before,.video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-subtitles-button .vjs-icon-placeholder:before{content:"\\f10c"}.vjs-icon-captions,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-captions-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-captions:before,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-captions-button .vjs-icon-placeholder:before{content:"\\f10d"}.vjs-icon-chapters,.video-js .vjs-chapters-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-chapters:before,.video-js .vjs-chapters-button .vjs-icon-placeholder:before{content:"\\f10e"}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:"\\f10f"}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:"\\f110"}.vjs-icon-circle,.vjs-seek-to-live-control .vjs-icon-placeholder,.video-js .vjs-volume-level,.video-js .vjs-play-progress{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle:before,.vjs-seek-to-live-control .vjs-icon-placeholder:before,.video-js .vjs-volume-level:before,.video-js .vjs-play-progress:before{content:"\\f111"}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:"\\f112"}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:"\\f113"}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:"\\f114"}.vjs-icon-cancel,.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cancel:before,.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before{content:"\\f115"}.vjs-icon-replay,.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay:before,.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before{content:"\\f116"}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:"\\f117"}.vjs-icon-gplus{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-gplus:before{content:"\\f118"}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:"\\f119"}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:"\\f11a"}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:"\\f11b"}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:"\\f11c"}.vjs-icon-audio-description,.video-js .vjs-descriptions-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio-description:before,.video-js .vjs-descriptions-button .vjs-icon-placeholder:before{content:"\\f11d"}.vjs-icon-audio,.video-js .vjs-audio-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio:before,.video-js .vjs-audio-button .vjs-icon-placeholder:before{content:"\\f11e"}.vjs-icon-next-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-next-item:before{content:"\\f11f"}.vjs-icon-previous-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-previous-item:before{content:"\\f120"}.vjs-icon-picture-in-picture-enter,.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-picture-in-picture-enter:before,.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before{content:"\\f121"}.vjs-icon-picture-in-picture-exit,.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-picture-in-picture-exit:before,.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before{content:"\\f122"}.video-js{display:block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;line-height:1;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;word-break:initial}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js[tabindex="-1"]{outline:none}.video-js *,.video-js *:before,.video-js *:after{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin:0}.video-js.vjs-fluid,.video-js.vjs-16-9,.video-js.vjs-4-3,.video-js.vjs-9-16,.video-js.vjs-1-1{width:100%;max-width:100%;height:0}.video-js.vjs-16-9{padding-top:56.25%}.video-js.vjs-4-3{padding-top:75%}.video-js.vjs-9-16{padding-top:177.7777777778%}.video-js.vjs-1-1{padding-top:100%}.video-js.vjs-fill{width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}body.vjs-full-window{padding:0;margin:0;height:100%}.vjs-full-window .video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;inset:0}.video-js.vjs-fullscreen:not(.vjs-ios-native-fs){width:100%!important;height:100%!important;padding-top:0!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-hidden{display:none!important}.vjs-disabled{opacity:.5;cursor:default}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1!important;visibility:visible!important}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#66a8cc}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.63332em;width:3em;display:block;position:absolute;top:10px;left:10px;padding:0;cursor:pointer;opacity:1;border:.06666em solid #fff;background-color:#2b333f;background-color:#2b333fb3;border-radius:.3em;transition:all .4s}.vjs-big-play-centered .vjs-big-play-button{top:50%;left:50%;margin-top:-.81666em;margin-left:-1.5em}.video-js:hover .vjs-big-play-button,.video-js .vjs-big-play-button:focus{border-color:#fff;background-color:#73859f;background-color:#73859f80;transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button,.vjs-error .vjs-big-play-button{display:none}.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause .vjs-big-play-button{display:block}.video-js button{background:none;border:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;text-transform:none;text-decoration:none;transition:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vjs-control .vjs-button{width:100%;height:100%}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:linear-gradient(180deg,rgba(0,0,0,.8),rgba(255,255,255,0));overflow:auto}.video-js .vjs-modal-dialog>*{box-sizing:border-box}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}.vjs-menu-button{cursor:pointer}.vjs-menu-button.vjs-disabled{cursor:default}.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu{display:none}.vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;font-family:Arial,Helvetica,sans-serif;overflow:auto}.vjs-menu .vjs-menu-content>*{box-sizing:border-box}.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-menu li.vjs-menu-item:focus,.vjs-menu li.vjs-menu-item:hover,.js-focus-visible .vjs-menu li.vjs-menu-item:hover{background-color:#73859f;background-color:#73859f80}.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover,.js-focus-visible .vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2b333f}.video-js .vjs-menu *:not(.vjs-selected):focus:not(:focus-visible),.js-focus-visible .vjs-menu *:not(.vjs-selected):focus:not(.focus-visible){background:none}.vjs-menu li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;width:10em;left:-3em;height:0em;margin-bottom:1.5em;border-top-color:#2b333fb3}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2b333f;background-color:#2b333fb3;position:absolute;width:100%;bottom:1.5em;max-height:15em}.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:5em}.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:10em}.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:14em}.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:25em}.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu,.vjs-menu-button-popup .vjs-menu.vjs-lock-showing{display:block}.video-js .vjs-menu-button-inline{transition:all .4s;overflow:hidden}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline:hover,.video-js .vjs-menu-button-inline:focus,.video-js .vjs-menu-button-inline.vjs-slider-active,.video-js.vjs-no-flex .vjs-menu-button-inline{width:12em}.vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:4em;top:0;padding:0;margin:0;transition:all .4s}.vjs-menu-button-inline:hover .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline.vjs-slider-active .vjs-menu{display:block;opacity:1}.vjs-no-flex .vjs-menu-button-inline .vjs-menu{display:block;opacity:1;position:relative;width:auto}.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu,.vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu,.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu{width:auto}.vjs-menu-button-inline .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2b333f;background-color:#2b333fb3}.vjs-has-started .vjs-control-bar{display:flex;visibility:visible;opacity:1;transition:visibility .1s,opacity .1s}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:visible;opacity:0;transition:visibility 1s,opacity 1s}.vjs-controls-disabled .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar,.vjs-error .vjs-control-bar{display:none!important}.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible}.vjs-has-started.vjs-no-flex .vjs-control-bar{display:table}.video-js .vjs-control{position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;flex:none}.vjs-button>.vjs-icon-placeholder:before{font-size:1.8em;line-height:1.67}.vjs-button>.vjs-icon-placeholder{display:block}.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before,.video-js .vjs-control:focus{text-shadow:0em 0em 1em white}.video-js .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-no-flex .vjs-control{display:table-cell;vertical-align:middle}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{cursor:pointer;flex:auto;display:flex;align-items:center;min-width:4em;touch-action:none}.video-js .vjs-progress-control.disabled{cursor:default}.vjs-live .vjs-progress-control{display:none}.vjs-liveui .vjs-progress-control{display:flex;align-items:center}.vjs-no-flex .vjs-progress-control{width:auto}.video-js .vjs-progress-holder{flex:auto;transition:all .2s;height:.3em}.video-js .vjs-progress-control .vjs-progress-holder{margin:0 10px}.video-js .vjs-progress-control:hover .vjs-progress-holder{font-size:1.6666666667em}.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled{font-size:1em}.video-js .vjs-progress-holder .vjs-play-progress,.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div{position:absolute;display:block;height:100%;margin:0;padding:0;width:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{font-size:.9em;position:absolute;right:-.5em;top:-.3333333333em;z-index:1}.video-js .vjs-load-progress{background:rgba(115,133,159,.5)}.video-js .vjs-load-progress div{background:rgba(115,133,159,.75)}.video-js .vjs-time-tooltip{background-color:#fff;background-color:#fffc;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-progress-holder:focus .vjs-time-tooltip{display:none}.video-js .vjs-progress-control:hover .vjs-time-tooltip,.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip{display:block;font-size:.6em;visibility:visible}.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip{font-size:1em}.video-js .vjs-progress-control .vjs-mouse-display{display:none;position:absolute;width:1px;height:100%;background-color:#000;z-index:1}.vjs-no-flex .vjs-progress-control .vjs-mouse-display{z-index:0}.video-js .vjs-progress-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display{display:none}.vjs-mouse-display .vjs-time-tooltip{color:#fff;background-color:#000;background-color:#000c}.video-js .vjs-slider{position:relative;cursor:pointer;padding:0;margin:0 .45em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#73859f;background-color:#73859f80}.video-js .vjs-slider.disabled{cursor:default}.video-js .vjs-slider:focus{text-shadow:0em 0em 1em white;box-shadow:0 0 1em #fff}.video-js .vjs-mute-control{cursor:pointer;flex:none}.video-js .vjs-volume-control{cursor:pointer;margin-right:1em;display:flex}.video-js .vjs-volume-control.vjs-volume-horizontal{width:5em}.video-js .vjs-volume-panel .vjs-volume-control{visibility:visible;opacity:0;width:1px;height:1px;margin-left:-1px}.video-js .vjs-volume-panel{transition:width 1s}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control,.video-js .vjs-volume-panel:active .vjs-volume-control,.video-js .vjs-volume-panel:focus .vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control:active,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active{visibility:visible;opacity:1;position:relative;transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal{width:5em;height:3em;margin-right:0}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical{left:-3.5em;transition:left 0s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active{width:10em;transition:width .1s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only{width:4em}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{height:8em;width:3em;left:-3000em;transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s}.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{width:5em;height:3em;visibility:visible;opacity:1;position:relative;transition:none}.video-js.vjs-no-flex .vjs-volume-control.vjs-volume-vertical,.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{position:absolute;bottom:3em;left:.5em}.video-js .vjs-volume-panel{display:flex}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em;margin:1.35em auto}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em;z-index:1}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em;z-index:1}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{top:-.3em;right:-.5em}.video-js .vjs-volume-panel.vjs-volume-panel-vertical{width:4em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-volume-vertical{width:3em;height:8em;bottom:8em;background-color:#2b333f;background-color:#2b333fb3}.video-js .vjs-volume-horizontal .vjs-menu{left:-2em}.video-js .vjs-volume-tooltip{background-color:#fff;background-color:#fffc;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-volume-control:hover .vjs-volume-tooltip,.video-js .vjs-volume-control:hover .vjs-progress-holder:focus .vjs-volume-tooltip{display:block;font-size:1em;visibility:visible}.video-js .vjs-volume-vertical:hover .vjs-volume-tooltip,.video-js .vjs-volume-vertical:hover .vjs-progress-holder:focus .vjs-volume-tooltip{left:1em;top:-12px}.video-js .vjs-volume-control.disabled:hover .vjs-volume-tooltip{font-size:1em}.video-js .vjs-volume-control .vjs-mouse-display{display:none;position:absolute;width:100%;height:1px;background-color:#000;z-index:1}.video-js .vjs-volume-horizontal .vjs-mouse-display{width:1px;height:100%}.vjs-no-flex .vjs-volume-control .vjs-mouse-display{z-index:0}.video-js .vjs-volume-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-volume-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.video-js.vjs-user-inactive.vjs-no-flex .vjs-volume-control .vjs-mouse-display{display:none}.vjs-mouse-display .vjs-volume-tooltip{color:#fff;background-color:#000;background-color:#000c}.vjs-poster{display:inline-block;vertical-align:middle;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;background-color:#000;cursor:pointer;margin:0;padding:0;position:absolute;inset:0;height:100%}.vjs-has-started .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster{display:block}.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-live-control{display:flex;align-items:flex-start;flex:auto;font-size:1em;line-height:3em}.vjs-no-flex .vjs-live-control{display:table-cell;width:auto;text-align:left}.video-js:not(.vjs-live) .vjs-live-control,.video-js.vjs-liveui .vjs-live-control{display:none}.video-js .vjs-seek-to-live-control{align-items:center;cursor:pointer;flex:none;display:inline-flex;height:100%;padding-left:.5em;padding-right:.5em;font-size:1em;line-height:3em;width:auto;min-width:4em}.vjs-no-flex .vjs-seek-to-live-control{display:table-cell;width:auto;text-align:left}.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,.video-js:not(.vjs-live) .vjs-seek-to-live-control{display:none}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge{cursor:auto}.vjs-seek-to-live-control .vjs-icon-placeholder{margin-right:.5em;color:#888}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder{color:red}.video-js .vjs-time-control{flex:none;font-size:1em;line-height:3em;min-width:2em;width:auto;padding-left:1em;padding-right:1em}.vjs-live .vjs-time-control,.video-js .vjs-current-time,.vjs-no-flex .vjs-current-time,.video-js .vjs-duration,.vjs-no-flex .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.vjs-live .vjs-time-divider{display:none}.video-js .vjs-play-control{cursor:pointer}.video-js .vjs-play-control .vjs-icon-placeholder{flex:none}.vjs-text-track-display{position:absolute;inset:0 0 3em;pointer-events:none}.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{transform:translateY(-3em)}.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{transform:translateY(-1.5em)}.video-js .vjs-picture-in-picture-control,.video-js .vjs-fullscreen-control{cursor:pointer;flex:none}.vjs-playback-rate>.vjs-menu-button,.vjs-playback-rate .vjs-playback-rate-value{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-playback-rate .vjs-playback-rate-value{pointer-events:none;font-size:1.5em;line-height:2;text-align:center}.vjs-playback-rate .vjs-menu{width:4em;left:0}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-error .vjs-error-display:before{color:#fff;content:"X";font-family:Arial,Helvetica,sans-serif;font-size:4em;left:0;line-height:1;margin-top:-.5em;position:absolute;text-shadow:.05em .05em .1em #000;text-align:center;top:50%;vertical-align:middle;width:100%}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;opacity:.85;text-align:left;border:6px solid rgba(43,51,63,.7);box-sizing:border-box;background-clip:padding-box;width:50px;height:50px;border-radius:25px;visibility:hidden}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:block;-webkit-animation:vjs-spinner-show 0s linear .3s forwards;animation:vjs-spinner-show 0s linear .3s forwards}.vjs-loading-spinner:before,.vjs-loading-spinner:after{content:"";position:absolute;margin:-6px;box-sizing:inherit;width:inherit;height:inherit;border-radius:inherit;opacity:1;border:inherit;border-color:transparent;border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:before,.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after{-webkit-animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite;animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{border-top-color:#fff;-webkit-animation-delay:.44s;animation-delay:.44s}@keyframes vjs-spinner-show{to{visibility:visible}}@-webkit-keyframes vjs-spinner-show{to{visibility:visible}}@keyframes vjs-spinner-spin{to{transform:rotate(360deg)}}@-webkit-keyframes vjs-spinner-spin{to{-webkit-transform:rotate(360deg)}}@keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}to{border-top-color:#73859f}}@-webkit-keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}to{border-top-color:#73859f}}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:"\\f10d";font-size:1.5em;line-height:inherit}.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:" \\f11d";font-size:1.5em;line-height:inherit}.video-js.vjs-layout-small .vjs-current-time,.video-js.vjs-layout-small .vjs-time-divider,.video-js.vjs-layout-small .vjs-duration,.video-js.vjs-layout-small .vjs-remaining-time,.video-js.vjs-layout-small .vjs-playback-rate,.video-js.vjs-layout-small .vjs-chapters-button,.video-js.vjs-layout-small .vjs-descriptions-button,.video-js.vjs-layout-small .vjs-captions-button,.video-js.vjs-layout-small .vjs-subtitles-button,.video-js.vjs-layout-small .vjs-audio-button,.video-js.vjs-layout-small .vjs-volume-control,.video-js.vjs-layout-x-small .vjs-current-time,.video-js.vjs-layout-x-small .vjs-time-divider,.video-js.vjs-layout-x-small .vjs-duration,.video-js.vjs-layout-x-small .vjs-remaining-time,.video-js.vjs-layout-x-small .vjs-playback-rate,.video-js.vjs-layout-x-small .vjs-chapters-button,.video-js.vjs-layout-x-small .vjs-descriptions-button,.video-js.vjs-layout-x-small .vjs-captions-button,.video-js.vjs-layout-x-small .vjs-subtitles-button,.video-js.vjs-layout-x-small .vjs-audio-button,.video-js.vjs-layout-x-small .vjs-volume-control,.video-js.vjs-layout-tiny .vjs-current-time,.video-js.vjs-layout-tiny .vjs-time-divider,.video-js.vjs-layout-tiny .vjs-duration,.video-js.vjs-layout-tiny .vjs-remaining-time,.video-js.vjs-layout-tiny .vjs-playback-rate,.video-js.vjs-layout-tiny .vjs-chapters-button,.video-js.vjs-layout-tiny .vjs-descriptions-button,.video-js.vjs-layout-tiny .vjs-captions-button,.video-js.vjs-layout-tiny .vjs-subtitles-button,.video-js.vjs-layout-tiny .vjs-audio-button,.video-js.vjs-layout-tiny .vjs-volume-control{display:none!important}.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active{width:auto;width:initial}.video-js.vjs-layout-x-small:not(.vjs-liveui) .vjs-subs-caps-button,.video-js.vjs-layout-x-small:not(.vjs-live) .vjs-subs-caps-button,.video-js.vjs-layout-tiny .vjs-subs-caps-button{display:none}.video-js.vjs-layout-x-small.vjs-liveui .vjs-custom-control-spacer,.video-js.vjs-layout-tiny .vjs-custom-control-spacer{flex:auto;display:block}.video-js.vjs-layout-x-small.vjs-liveui.vjs-no-flex .vjs-custom-control-spacer,.video-js.vjs-layout-tiny.vjs-no-flex .vjs-custom-control-spacer{width:auto}.video-js.vjs-layout-x-small.vjs-liveui .vjs-progress-control,.video-js.vjs-layout-tiny .vjs-progress-control{display:none}.vjs-modal-dialog.vjs-text-track-settings{background-color:#2b333f;background-color:#2b333fbf;color:#fff;height:70%}.vjs-text-track-settings .vjs-modal-dialog-content{display:table}.vjs-text-track-settings .vjs-track-settings-colors,.vjs-text-track-settings .vjs-track-settings-font,.vjs-text-track-settings .vjs-track-settings-controls{display:table-cell}.vjs-text-track-settings .vjs-track-settings-controls{text-align:right;vertical-align:bottom}@supports (display: grid){.vjs-text-track-settings .vjs-modal-dialog-content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding:20px 24px 0}.vjs-track-settings-controls .vjs-default-button{margin-bottom:20px}.vjs-text-track-settings .vjs-track-settings-controls{grid-column:1/-1}.vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content{grid-template-columns:1fr}}.vjs-track-setting>select{margin-right:1em;margin-bottom:.5em}.vjs-text-track-settings fieldset{margin:5px;padding:3px;border:none}.vjs-text-track-settings fieldset span{display:inline-block}.vjs-text-track-settings fieldset span>select{max-width:7.3em}.vjs-text-track-settings legend{color:#fff;margin:0 0 5px}.vjs-text-track-settings .vjs-label{position:absolute;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);display:block;margin:0 0 5px;padding:0;border:0;height:1px;width:1px;overflow:hidden}.vjs-track-settings-controls button:focus,.vjs-track-settings-controls button:active{outline-style:solid;outline-width:medium;background-image:linear-gradient(0deg,#fff 88%,#73859f 100%)}.vjs-track-settings-controls button:hover{color:#2b333fbf}.vjs-track-settings-controls button{background-color:#fff;background-image:linear-gradient(-180deg,#fff 88%,#73859f 100%);color:#2b333f;cursor:pointer;border-radius:2px}.vjs-track-settings-controls .vjs-default-button{margin-right:1em}@media print{.video-js>*:not(.vjs-tech):not(.vjs-poster){visibility:hidden}}.vjs-resize-manager{position:absolute;top:0;left:0;width:100%;height:100%;border:none;z-index:-1000}.js-focus-visible .video-js *:focus:not(.focus-visible){outline:none}.video-js *:focus:not(:focus-visible){outline:none}.netless-window-manager-playground{width:100%;height:100%;position:relative;z-index:1;overflow:hidden;user-select:none}.netless-window-manager-sizer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;overflow:hidden;display:flex}.netless-window-manager-sizer-horizontal{flex-direction:column}.netless-window-manager-sizer:before,.netless-window-manager-sizer:after{flex:1;content:"";display:block}.netless-window-manager-chess-sizer:before,.netless-window-manager-chess-sizer:after{background-image:linear-gradient(45deg,#b0b0b0 25%,transparent 25%),linear-gradient(-45deg,#b0b0b0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#b0b0b0 75%),linear-gradient(-45deg,transparent 75%,#b0b0b0 75%);background-color:#fff;background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px}.netless-window-manager-wrapper{position:relative;z-index:1;width:100%;height:100%;overflow:hidden}.netless-window-manager-main-view{width:100%;height:100%}.netless-window-manager-cursor-pencil-image,.netless-window-manager-cursor-eraser-image{width:26px;height:26px}.netless-window-manager-cursor-selector-image{width:24px;height:24px}.netless-window-manager-cursor-selector-avatar{border-radius:50%;border-style:solid;border-width:2px;border-color:#fff;margin-bottom:2px}.netless-window-manager-cursor-selector-avatar img{width:12px}.netless-window-manager-cursor-inner{border-radius:4px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:4px;padding-right:4px;font-size:12px}.netless-window-manager-cursor-inner-mellow{height:32px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:16px;padding-right:16px}.netless-window-manager-cursor-tag-name{font-size:12px;margin-left:4px;padding:2px 8px;border-radius:4px}.netless-window-manager-cursor-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:26px;height:26px;z-index:2147483647;left:0;top:0;will-change:transform;transition:transform .1s;transform-origin:0 0;user-select:none}.netless-window-manager-cursor-pencil-offset{margin-left:-20px}.netless-window-manager-cursor-selector-offset{margin-left:-22px;margin-top:56px}.netless-window-manager-cursor-text-offset{margin-left:-30px;margin-top:18px}.netless-window-manager-cursor-shape-offset{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:180px;height:64px;margin-left:-30px;margin-top:12px}.netless-window-manager-cursor-laserPointer-image{margin-left:-22px;margin-top:3px}.netless-window-manager-cursor-name{width:100%;height:48px;display:flex;align-items:center;justify-content:center;position:absolute;top:-40px}.cursor-image-wrapper{display:flex;justify-content:center}.telebox-collector{position:absolute;right:10px;bottom:15px}.tele-fancy-scrollbar{overscroll-behavior:contain;overflow:auto;overflow-y:scroll;overflow-y:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.tele-fancy-scrollbar::-webkit-scrollbar{height:8px;width:8px}.tele-fancy-scrollbar::-webkit-scrollbar-track{background-color:transparent}.tele-fancy-scrollbar::-webkit-scrollbar-thumb{background-color:#444e601a;background-color:transparent;border-radius:4px;transition:background-color .4s}.tele-fancy-scrollbar:hover::-webkit-scrollbar-thumb{background-color:#444e601a}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#444e6033}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:active{background-color:#444e6033}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:vertical{min-height:50px}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:horizontal{min-width:50px}.telebox-box{position:absolute;top:0;left:0;z-index:100;transition:width .4s cubic-bezier(.4,.9,.71,1.02),height .4s cubic-bezier(.55,.82,.63,.95),opacity .6s cubic-bezier(.7,0,.84,0),transform .4s ease}.telebox-box-main{position:relative;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#f9f9fc;box-shadow:0 4px 10px #2f419226;border-radius:6px;border:1px solid #e3e3ec}.telebox-titlebar-wrap{flex-shrink:0;position:relative;z-index:1}.telebox-content-wrap{flex:1;width:100%;overflow:hidden;display:flex;justify-content:center;align-items:center}.telebox-content{width:100%;height:100%;position:relative}.telebox-footer-wrap{flex-shrink:0;display:flex;flex-direction:column}.telebox-footer-wrap:before{content:"";display:block;flex:1}.telebox-resize-handle{position:absolute;z-index:2147483647}.telebox-n{width:100%;height:5px;left:0;top:-5px;cursor:n-resize}.telebox-s{width:100%;height:5px;left:0;bottom:-5px;cursor:s-resize}.telebox-w{width:5px;height:100%;left:-5px;top:0;cursor:w-resize}.telebox-e{width:5px;height:100%;right:-5px;top:0;cursor:e-resize}.telebox-nw{width:15px;height:15px;top:-5px;left:-5px;cursor:nw-resize}.telebox-ne{width:15px;height:15px;top:-5px;right:-5px;cursor:ne-resize}.telebox-se{width:15px;height:15px;bottom:-5px;right:-5px;cursor:se-resize}.telebox-sw{width:15px;height:15px;bottom:-5px;left:-5px;cursor:sw-resize}.telebox-track-mask{position:fixed;top:0;left:0;z-index:2147483647;width:100%;height:100%;background:rgba(0,0,0,.0001);cursor:move}.telebox-cursor-n{cursor:n-resize}.telebox-cursor-s{cursor:s-resize}.telebox-cursor-w{cursor:w-resize}.telebox-cursor-e{cursor:e-resize}.telebox-cursor-nw{cursor:nw-resize}.telebox-cursor-ne{cursor:ne-resize}.telebox-cursor-se{cursor:se-resize}.telebox-cursor-sw{cursor:sw-resize}.telebox-maximized .telebox-resize-handles,.telebox-no-resize .telebox-resize-handles{display:none}.telebox-maximized{box-shadow:none;transition:none}.telebox-minimized{transition:width 50ms cubic-bezier(.4,.9,.71,1.02),height 50ms cubic-bezier(.55,.82,.63,.95),opacity .6s cubic-bezier(.7,0,.84,0),transform .6s ease;opacity:0;pointer-events:none;user-select:none}.telebox-transforming{will-change:transform;transition:opacity .6s cubic-bezier(.7,0,.84,0)}.telebox-readonly .telebox-resize-handle{cursor:initial!important;pointer-events:none!important}.telebox-color-scheme-dark .telebox-box-main{color:#e9e9e9;background:#212126;border-color:#43434d}.telebox-titlebar{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;background:#fff;user-select:none;border-bottom:1px solid #eeeef7;touch-action:manipulation}.telebox-title-area{overflow:hidden;position:relative;height:100%;flex:1;display:flex;align-items:center}.telebox-title{overflow:hidden;margin:0;padding:0;font-size:14px;font-weight:400;font-family:PingFangSC-Regular,PingFang SC;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;color:#191919}.telebox-drag-area{position:absolute;inset:0;margin:auto;z-index:10}.telebox-titlebar-btns{white-space:nowrap;word-break:keep-all;margin-left:auto;font-size:0}.telebox-titlebar-btn{width:22px;height:22px;padding:0;outline:0;border:none;background:0 0;cursor:pointer}.telebox-titlebar-btn~.telebox-titlebar-btn{margin-left:10px}.telebox-titlebar-btn-icon{width:22px;height:22px}.telebox-readonly .telebox-titlebar-btn{cursor:not-allowed}.telebox-titlebar-icon-minimize{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPHBhdGggZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOSAxM2gxMHYxLjZIOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=)}.telebox-titlebar-icon-maximize{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPGcgZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI2IpIj4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgIGQ9Ik0yMC40ODEgMTcuMWgxLjJ2NC41ODFIMTcuMXYtMS4yaDMuMzgxVjE3LjF6bS0xNC4xOTA1LS4wMDloMS4ydjMuMzgxaDMuMzgwOXYxLjJoLTQuNTgxdi00LjU4MXpNMTcuMSA2LjE5MDVoNC41ODF2NC41ODA5aC0xLjJ2LTMuMzgxSDE3LjF2LTEuMnptLTEwLjcwMDguMTA4N2g0Ljc5ODV2MS4ySDcuNTk5MnYzLjU5ODVoLTEuMlY2LjI5OTJ6IiAvPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==)}.telebox-titlebar-icon-maximize.is-active{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjZ2MjZIMHoiIC8+CiAgICAgICAgPHBhdGggaWQ9ImMiIGQ9Ik0yNi44NjkgMEwyOCAxLjEzMVYyNi44N0wyNi44NjkgMjhIMS4xM0wwIDI2Ljg3VjEuMTMxTDEuMTMgMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPgogICAgICAgICAgICA8bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNhIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tNC42NDI5LTQuNjQyOWgzNS4yODU4djM1LjI4NThILTQuNjQyOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxnPgogICAgICAgICAgICA8bWFzayBpZD0iZCIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNjIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tMTcuNTE2OCAxNEwxNC0xNy41MTY4IDQ1LjUxNjggMTQgMTQgNDUuNTE2OHoiIG1hc2s9InVybCgjZCkiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjIiCiAgICAgICAgICAgIGQ9Ik0xMC4wODg2IDIxLjQ4NjV2LTMuNjk2Nkg2LjM5Mk0yMS4zODU1IDEwLjE4OTVoLTMuNjk2NlY2LjQ5M00yMS40MDIgMTcuNzk4M2gtMy42OTY2djMuNjk2Nk0xMC4yNTAzIDYuMTQ5OHYzLjg5ODVINi4zNTE3IiAvPgogICAgPC9nPgo8L3N2Zz4K)}.telebox-titlebar-icon-close{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjQiPgogICAgICAgIDxwYXRoIGQ9Ik04LjM1MyAyMC4zMzIxTDIwLjMzMiA4LjM1M00yMC4zMzIyIDIwLjMzMjFMOC4zNTMgOC4zNTMiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=)}.telebox-color-scheme-dark .telebox-titlebar{color:#e9e9e9;background:#43434d;border-bottom:none}.telebox-collector{visibility:hidden;display:block;position:absolute;z-index:200;width:40px;height:40px;margin:0;padding:0;border:none;outline:0;font-size:0;border-radius:50%;background:#fff;box-shadow:0 2px 6px #2f419226;cursor:pointer;user-select:none;pointer-events:none;background-repeat:no-repeat;background-size:18px 16px;background-position:center;-webkit-tap-highlight-color:transparent}.telebox-collector-visible{visibility:visible;pointer-events:initial}.telebox-collector-readonly{cursor:not-allowed}.telebox-color-scheme-dark.telebox-collector{background-color:#43434d}.telebox-max-titlebar{display:none;position:absolute;top:0;left:0;z-index:50000;user-select:none}.telebox-max-titlebar .telebox-drag-area{height:100%;min-width:16px;position:static;margin:0;flex-grow:1;flex-shrink:0}.telebox-max-titlebar-maximized{display:flex}.telebox-titles{height:100%;margin:0;overflow-y:hidden;overflow-x:scroll;overflow-x:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.telebox-titles::-webkit-scrollbar{height:8px;width:8px}.telebox-titles::-webkit-scrollbar-track{background-color:transparent}.telebox-titles::-webkit-scrollbar-thumb{background-color:#eeeef7cc;background-color:transparent;border-radius:4px;transition:background-color .4s}.telebox-titles:hover::-webkit-scrollbar-thumb{background-color:#eeeef7cc}.telebox-titles::-webkit-scrollbar-thumb:hover{background-color:#eeeef7}.telebox-titles::-webkit-scrollbar-thumb:active{background-color:#eeeef7}.telebox-titles::-webkit-scrollbar-thumb:vertical{min-height:50px}.telebox-titles::-webkit-scrollbar-thumb:horizontal{min-width:50px}.telebox-titles-content{height:100%;display:flex;flex-wrap:nowrap;align-items:center;padding:0}.telebox-titles-tab{height:100%;overflow:hidden;max-width:182px;min-width:50px;padding:0 26px 0 16px;outline:0;font-size:13px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;border:none;border-right:1px solid #e5e5f0;color:#7b88a0;background:0 0;cursor:pointer;user-select:none}.telebox-titles-tab-focus{color:#357bf6}.telebox-readonly .telebox-titles-tab{cursor:not-allowed}.telebox-color-scheme-dark{color-scheme:dark}.telebox-color-scheme-dark.telebox-titlebar{color:#e9e9e9;background:#43434d;border-bottom:none}.telebox-color-scheme-dark .telebox-titles-tab{border-right-color:#7b88a0}.telebox-color-scheme-dark .telebox-title{color:#e9e9e9}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-theme~=light]{color:#26323d;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:#fff}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.rc-slider{position:relative;height:14px;padding:5px 0;width:100%;border-radius:6px;touch-action:none;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-rail{position:absolute;width:100%;background-color:#e9e9e9;height:4px;border-radius:6px}.rc-slider-track{position:absolute;left:0;height:4px;border-radius:6px;background-color:#abe2fb}.rc-slider-handle{position:absolute;width:14px;height:14px;cursor:pointer;cursor:-webkit-grab;margin-top:-5px;cursor:grab;border-radius:50%;border:solid 2px #96dbfa;background-color:#fff;touch-action:pan-x}.rc-slider-handle-dragging.rc-slider-handle-dragging.rc-slider-handle-dragging{border-color:#57c5f7;box-shadow:0 0 0 5px #96dbfa}.rc-slider-handle:focus{outline:none}.rc-slider-handle-click-focused:focus{border-color:#96dbfa;box-shadow:unset}.rc-slider-handle:hover{border-color:#57c5f7}.rc-slider-handle:active{border-color:#57c5f7;box-shadow:0 0 5px #57c5f7;cursor:-webkit-grabbing;cursor:grabbing}.rc-slider-mark{position:absolute;top:18px;left:0;width:100%;font-size:12px}.rc-slider-mark-text{position:absolute;display:inline-block;vertical-align:middle;text-align:center;cursor:pointer;color:#999}.rc-slider-mark-text-active{color:#666}.rc-slider-step{position:absolute;width:100%;height:4px;background:transparent}.rc-slider-dot{position:absolute;bottom:-2px;margin-left:-4px;width:8px;height:8px;border:2px solid #e9e9e9;background-color:#fff;cursor:pointer;border-radius:50%;vertical-align:middle}.rc-slider-dot-active{border-color:#96dbfa}.rc-slider-dot-reverse{margin-right:-4px}.rc-slider-disabled{background-color:#e9e9e9}.rc-slider-disabled .rc-slider-track{background-color:#ccc}.rc-slider-disabled .rc-slider-handle,.rc-slider-disabled .rc-slider-dot{border-color:#ccc;box-shadow:none;background-color:#fff;cursor:not-allowed}.rc-slider-disabled .rc-slider-mark-text,.rc-slider-disabled .rc-slider-dot{cursor:not-allowed!important}.rc-slider-vertical{width:14px;height:100%;padding:0 5px}.rc-slider-vertical .rc-slider-rail{height:100%;width:4px}.rc-slider-vertical .rc-slider-track{left:5px;bottom:0;width:4px}.rc-slider-vertical .rc-slider-handle{margin-left:-5px;touch-action:pan-y}.rc-slider-vertical .rc-slider-mark{top:0;left:18px;height:100%}.rc-slider-vertical .rc-slider-step{height:100%;width:4px}.rc-slider-vertical .rc-slider-dot{left:2px;margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:first-child{margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:last-child{margin-bottom:-4px}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear,.rc-slider-tooltip-zoom-down-leave{animation-duration:.3s;animation-fill-mode:both;display:block!important;animation-play-state:paused}.rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,.rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active{animation-name:rcSliderTooltipZoomDownIn;animation-play-state:running}.rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active{animation-name:rcSliderTooltipZoomDownOut;animation-play-state:running}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear{transform:scale(0);animation-timing-function:cubic-bezier(.23,1,.32,1)}.rc-slider-tooltip-zoom-down-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@keyframes rcSliderTooltipZoomDownIn{0%{opacity:0;transform-origin:50% 100%;transform:scale(0)}to{transform-origin:50% 100%;transform:scale(1)}}@keyframes rcSliderTooltipZoomDownOut{0%{transform-origin:50% 100%;transform:scale(1)}to{opacity:0;transform-origin:50% 100%;transform:scale(0)}}.rc-slider-tooltip{position:absolute;left:-9999px;top:-9999px;visibility:visible;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip-hidden{display:none}.rc-slider-tooltip-placement-top{padding:4px 0 8px}.rc-slider-tooltip-inner{padding:6px 2px;min-width:24px;height:24px;font-size:12px;line-height:1;color:#fff;text-align:center;text-decoration:none;background-color:#6c6c6c;border-radius:6px;box-shadow:0 0 4px #d9d9d9}.rc-slider-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow{bottom:4px;left:50%;margin-left:-4px;border-width:4px 4px 0;border-top-color:#6c6c6c}.fastboard-root{position:relative;width:100%;height:100%;overflow:hidden}.fastboard-view{position:absolute;top:0;left:0;width:100%;height:100%}.fastboard-left{position:absolute;top:0;left:0;height:calc(100% - 48px);padding:16px;z-index:201;display:flex;align-items:center}.fastboard-bottom-left,.fastboard-bottom-right{display:flex;gap:10px;position:absolute;bottom:8px;left:8px;padding:8px;z-index:200}.fastboard-bottom-right{left:initial;right:8px}.fastboard-redo-undo{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-redo-undo.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-redo-undo.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-redo-undo-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-redo-undo-btn svg,.fastboard-redo-undo-btn img{width:1em;height:1em}.fastboard-redo-undo-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-redo-undo-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-redo-undo-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-page-control{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-page-control.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-page-control.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-page-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-page-control-btn svg,.fastboard-page-control-btn img{width:1em;height:1em}.fastboard-page-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-page-control-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-page-control-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-page-control-cut-line{height:24px;width:.5px}.fastboard-page-control-cut-line.light{background-color:#e7e7e7}.fastboard-page-control-cut-line.dark{background-color:#ffffff26}.fastboard-page-control-slash{opacity:.6}.fastboard-page-control-page,.fastboard-page-control-slash,.fastboard-page-control-page-count{font-size:12px;font-variant-numeric:tabular-nums}.fastboard-zoom-control{position:relative;display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-zoom-control.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-zoom-control.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-zoom-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-zoom-control-btn svg,.fastboard-zoom-control-btn img{width:1em;height:1em}.fastboard-zoom-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-zoom-control-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-zoom-control-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-zoom-control-cut-line{height:24px;width:.5px}.fastboard-zoom-control-cut-line.light{background-color:#e7e7e7}.fastboard-zoom-control-cut-line.dark{background-color:#ffffff26}.fastboard-zoom-control-percent{opacity:.6}.fastboard-zoom-control-scale,.fastboard-zoom-control-percent{font-size:12px;font-variant-numeric:tabular-nums}.fastboard-toolbar{display:flex;align-items:center;padding:4px;border-radius:4px;flex-direction:column;gap:4px;position:absolute;z-index:100;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-toolbar .rc-slider{padding:6px 0}.fastboard-toolbar .rc-slider-rail,.fastboard-toolbar .rc-slider-track{height:2px}.fastboard-toolbar .tippy-content{padding:8px}.fastboard-toolbar .tippy-box{border:1px solid rgba(0,0,0,.15);background-color:#333333f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-toolbar .tippy-box[data-theme~=light]{background-color:#fffffff2;box-shadow:0 5px 10px #00000040}.fastboard-toolbar.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-toolbar.expanded{border:1px solid rgba(0,0,0,.15)}.fastboard-toolbar.dark{color:#ddd;background-color:#333333d9}.fastboard-toolbar.expanded:hover{box-shadow:0 0 5px #00000040;transform:translate(0)}.fastboard-toolbar.collapsed{padding:0;background-color:transparent}.fastboard-toolbar-tooltip{display:inline-flex;align-items:center;gap:4px}.fastboard-toolbar-hotkey{margin-right:-4px;width:24px;height:24px;border-radius:4px;background-color:#ffffff1a;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:4px;width:32px;height:32px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1;position:relative}.fastboard-toolbar-btn-interactive{display:inline-block;width:32px;height:32px}.fastboard-toolbar-btn svg,.fastboard-toolbar-btn img{width:100%;height:100%}.fastboard-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-toolbar-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-toolbar-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-toolbar-triangle{width:0px;height:0px;border-bottom:4px solid;border-left:4px solid transparent;position:absolute;bottom:0;right:0}.fastboard-toolbar-cut-line{display:inline-block;height:.5px;width:100%}.fastboard-toolbar-cut-line.light{background-color:#e7e7e7}.fastboard-toolbar-cut-line.dark{background-color:#ffffff26}.fastboard-toolbar-section{display:inline-flex;flex-flow:column nowrap;gap:4px;scroll-behavior:smooth}.fastboard-toolbar-section.collapsed{transform:translate(-100%);transition:1s transform}.fastboard-toolbar-section+.fastboard-toolbar-mask{opacity:0;transition:.5s opacity .4s}.fastboard-toolbar-section:hover+.fastboard-toolbar-mask,.fastboard-toolbar-mask:hover{opacity:1;transition:.2s opacity}.fastboard-toolbar-panel{width:120px;padding:0;display:flex;flex-flow:column nowrap;align-items:center;gap:8px}.fastboard-toolbar-panel.apps{width:224px}.fastboard-toolbar-color-box,.fastboard-toolbar-shapes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;align-items:center;justify-items:center}.fastboard-toolbar-color-box .fastboard-toolbar-btn,.fastboard-toolbar-shapes .fastboard-toolbar-btn{padding:0;width:24px;height:24px}.fastboard-toolbar-apps{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:center;justify-items:center}.fastboard-toolbar-apps .fastboard-toolbar-btn{width:40px;height:40px;font-size:0}.fastboard-toolbar-app-is-loading{opacity:.8;cursor:wait}.fastboard-toolbar-app-is-failed{opacity:.5;cursor:not-allowed}.fastboard-toolbar-app-icon{padding-top:4px;display:inline-flex;flex-flow:column nowrap;align-items:center;gap:4px}.fastboard-toolbar-app-icon .fastboard-toolbar-btn{padding:0}.fastboard-toolbar-app-icon-text{font-size:12px;color:#5d5d5d;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fastboard-toolbar-color-item{width:24px;height:24px;border-radius:4px;cursor:pointer}.fastboard-toolbar-color-item *.light:hover{background-color:#f5f5f5}.fastboard-toolbar-color-item *.dark:hover{background-color:#333}.fastboard-toolbar-color-border{width:24px;height:24px;border:1px solid transparent;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-color-border.active.light,.fastboard-toolbar-color-border.active.dark{border:1px solid rgba(51,129,255,.8)}.fastboard-toolbar-color-btn{margin:0;border:1px solid rgba(0,0,0,.24);padding:0;appearance:none;width:16px;height:16px;border-radius:4px;cursor:pointer}.fastboard-toolbar-color-btn:focus-visible{outline-offset:2px}.fastboard-toolbar-mask{position:absolute;left:calc(100% + 1px);top:50%;transform:translateY(-50%);opacity:.85}.fastboard-toolbar-mask.dark{left:100%}.fastboard-toolbar-mask-btn{width:17px;height:62px;cursor:pointer;opacity:.85}.fastboard-toolbar-mask-btn.dark{filter:invert(.8)}.fastboard-toolbar-expand-btn{display:flex;align-items:center;position:absolute;left:0}.fastboard-player-control{width:100%;display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-player-control.auto-hide{opacity:0;transition:opacity .2s}.fastboard-player-control.auto-hide:hover{opacity:1}.fastboard-player-control .rc-slider-disabled{background:transparent;opacity:.5}.fastboard-player-control .rc-slider-rail,.fastboard-player-control .rc-slider-track{height:2px}.fastboard-player-control .tippy-content{padding:8px}.fastboard-player-control .tippy-box{border:1px solid rgba(0,0,0,.15);background-color:#333333f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-player-control .tippy-box[data-theme~=light]{background-color:#fffffff2;box-shadow:0 5px 10px #00000040}.fastboard-player-control.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-player-control.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-player-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;min-width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.fastboard-player-control-btn svg,.fastboard-player-control-btn img{width:1em;height:1em}.fastboard-player-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-player-control-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-player-control-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-player-control-btn.loading{animation:fastboard-player-control-rotate .5s linear infinite}@keyframes fastboard-player-control-rotate{to{transform:rotate(360deg)}}.fastboard-player-control-panel{padding:0;display:flex;flex-flow:column nowrap;align-items:stretch;gap:4px}.fastboard-player-control-panel .fastboard-player-control-btn{width:initial;height:initial;user-select:none;font-size:12px;padding:4px;justify-content:flex-end}.fastboard-player-control-panel .fastboard-player-control-btn.active{color:#3381ff}.fastboard-player-control-slider{width:100%;padding:0 7px}.fastboard-player-control-slider.loading{cursor:not-allowed}.fastboard-player-control-slash{opacity:.6}.fastboard-player-control-current,.fastboard-player-control-slash,.fastboard-player-control-total,.fastboard-player-control-speed-text{font-size:12px;font-variant-numeric:tabular-nums}.tippy-box.fastboard-tip{color:#eee;background-color:#000000f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.tippy-box.fastboard-tip[data-placement^=right]>.tippy-arrow:before{top:4px;border-width:4px;border-right-color:#000}.tippy-box.fastboard-tip[data-placement^=top]>.tippy-arrow:before{left:4px;border-width:4px;border-top-color:#000}\n';
84
+ var style_default = '@charset "UTF-8";.vjs-modal-dialog .vjs-modal-dialog-content,.video-js .vjs-modal-dialog,.vjs-button>.vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-button>.vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{text-align:center}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,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) format("woff");font-weight:400;font-style:normal}.vjs-icon-play,.video-js .vjs-play-control .vjs-icon-placeholder,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play:before,.video-js .vjs-play-control .vjs-icon-placeholder:before,.video-js .vjs-big-play-button .vjs-icon-placeholder:before{content:"\\f101"}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:"\\f102"}.vjs-icon-pause,.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pause:before,.video-js .vjs-play-control.vjs-playing .vjs-icon-placeholder:before{content:"\\f103"}.vjs-icon-volume-mute,.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mute:before,.video-js .vjs-mute-control.vjs-vol-0 .vjs-icon-placeholder:before{content:"\\f104"}.vjs-icon-volume-low,.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-low:before,.video-js .vjs-mute-control.vjs-vol-1 .vjs-icon-placeholder:before{content:"\\f105"}.vjs-icon-volume-mid,.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mid:before,.video-js .vjs-mute-control.vjs-vol-2 .vjs-icon-placeholder:before{content:"\\f106"}.vjs-icon-volume-high,.video-js .vjs-mute-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-high:before,.video-js .vjs-mute-control .vjs-icon-placeholder:before{content:"\\f107"}.vjs-icon-fullscreen-enter,.video-js .vjs-fullscreen-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-enter:before,.video-js .vjs-fullscreen-control .vjs-icon-placeholder:before{content:"\\f108"}.vjs-icon-fullscreen-exit,.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-exit:before,.video-js.vjs-fullscreen .vjs-fullscreen-control .vjs-icon-placeholder:before{content:"\\f109"}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:"\\f10a"}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:"\\f10b"}.vjs-icon-subtitles,.video-js .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-subtitles-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-subtitles:before,.video-js .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-GB) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-IE) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-AU) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js.video-js:lang(en-NZ) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-subtitles-button .vjs-icon-placeholder:before{content:"\\f10c"}.vjs-icon-captions,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder,.video-js .vjs-captions-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-captions:before,.video-js:lang(en) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js:lang(fr-CA) .vjs-subs-caps-button .vjs-icon-placeholder:before,.video-js .vjs-captions-button .vjs-icon-placeholder:before{content:"\\f10d"}.vjs-icon-chapters,.video-js .vjs-chapters-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-chapters:before,.video-js .vjs-chapters-button .vjs-icon-placeholder:before{content:"\\f10e"}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:"\\f10f"}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:"\\f110"}.vjs-icon-circle,.vjs-seek-to-live-control .vjs-icon-placeholder,.video-js .vjs-volume-level,.video-js .vjs-play-progress{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle:before,.vjs-seek-to-live-control .vjs-icon-placeholder:before,.video-js .vjs-volume-level:before,.video-js .vjs-play-progress:before{content:"\\f111"}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:"\\f112"}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:"\\f113"}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:"\\f114"}.vjs-icon-cancel,.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cancel:before,.video-js .vjs-control.vjs-close-button .vjs-icon-placeholder:before{content:"\\f115"}.vjs-icon-replay,.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay:before,.video-js .vjs-play-control.vjs-ended .vjs-icon-placeholder:before{content:"\\f116"}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:"\\f117"}.vjs-icon-gplus{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-gplus:before{content:"\\f118"}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:"\\f119"}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:"\\f11a"}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:"\\f11b"}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:"\\f11c"}.vjs-icon-audio-description,.video-js .vjs-descriptions-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio-description:before,.video-js .vjs-descriptions-button .vjs-icon-placeholder:before{content:"\\f11d"}.vjs-icon-audio,.video-js .vjs-audio-button .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio:before,.video-js .vjs-audio-button .vjs-icon-placeholder:before{content:"\\f11e"}.vjs-icon-next-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-next-item:before{content:"\\f11f"}.vjs-icon-previous-item{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-previous-item:before{content:"\\f120"}.vjs-icon-picture-in-picture-enter,.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-picture-in-picture-enter:before,.video-js .vjs-picture-in-picture-control .vjs-icon-placeholder:before{content:"\\f121"}.vjs-icon-picture-in-picture-exit,.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-picture-in-picture-exit:before,.video-js.vjs-picture-in-picture .vjs-picture-in-picture-control .vjs-icon-placeholder:before{content:"\\f122"}.video-js{display:block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;line-height:1;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;word-break:initial}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js[tabindex="-1"]{outline:none}.video-js *,.video-js *:before,.video-js *:after{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin:0}.video-js.vjs-fluid,.video-js.vjs-16-9,.video-js.vjs-4-3,.video-js.vjs-9-16,.video-js.vjs-1-1{width:100%;max-width:100%;height:0}.video-js.vjs-16-9{padding-top:56.25%}.video-js.vjs-4-3{padding-top:75%}.video-js.vjs-9-16{padding-top:177.7777777778%}.video-js.vjs-1-1{padding-top:100%}.video-js.vjs-fill{width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}body.vjs-full-window{padding:0;margin:0;height:100%}.vjs-full-window .video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;inset:0}.video-js.vjs-fullscreen:not(.vjs-ios-native-fs){width:100%!important;height:100%!important;padding-top:0!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-hidden{display:none!important}.vjs-disabled{opacity:.5;cursor:default}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1!important;visibility:visible!important}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#66a8cc}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.63332em;width:3em;display:block;position:absolute;top:10px;left:10px;padding:0;cursor:pointer;opacity:1;border:.06666em solid #fff;background-color:#2b333f;background-color:#2b333fb3;border-radius:.3em;transition:all .4s}.vjs-big-play-centered .vjs-big-play-button{top:50%;left:50%;margin-top:-.81666em;margin-left:-1.5em}.video-js:hover .vjs-big-play-button,.video-js .vjs-big-play-button:focus{border-color:#fff;background-color:#73859f;background-color:#73859f80;transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button,.vjs-error .vjs-big-play-button{display:none}.vjs-has-started.vjs-paused.vjs-show-big-play-button-on-pause .vjs-big-play-button{display:block}.video-js button{background:none;border:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;text-transform:none;text-decoration:none;transition:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.vjs-control .vjs-button{width:100%;height:100%}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:linear-gradient(180deg,rgba(0,0,0,.8),rgba(255,255,255,0));overflow:auto}.video-js .vjs-modal-dialog>*{box-sizing:border-box}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}.vjs-menu-button{cursor:pointer}.vjs-menu-button.vjs-disabled{cursor:default}.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu{display:none}.vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;font-family:Arial,Helvetica,sans-serif;overflow:auto}.vjs-menu .vjs-menu-content>*{box-sizing:border-box}.vjs-scrubbing .vjs-control.vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-menu li.vjs-menu-item:focus,.vjs-menu li.vjs-menu-item:hover,.js-focus-visible .vjs-menu li.vjs-menu-item:hover{background-color:#73859f;background-color:#73859f80}.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover,.js-focus-visible .vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2b333f}.video-js .vjs-menu *:not(.vjs-selected):focus:not(:focus-visible),.js-focus-visible .vjs-menu *:not(.vjs-selected):focus:not(.focus-visible){background:none}.vjs-menu li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;width:10em;left:-3em;height:0em;margin-bottom:1.5em;border-top-color:#2b333fb3}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2b333f;background-color:#2b333fb3;position:absolute;width:100%;bottom:1.5em;max-height:15em}.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:5em}.vjs-layout-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:10em}.vjs-layout-medium .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:14em}.vjs-layout-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-x-large .vjs-menu-button-popup .vjs-menu .vjs-menu-content,.vjs-layout-huge .vjs-menu-button-popup .vjs-menu .vjs-menu-content{max-height:25em}.vjs-workinghover .vjs-menu-button-popup.vjs-hover .vjs-menu,.vjs-menu-button-popup .vjs-menu.vjs-lock-showing{display:block}.video-js .vjs-menu-button-inline{transition:all .4s;overflow:hidden}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline:hover,.video-js .vjs-menu-button-inline:focus,.video-js .vjs-menu-button-inline.vjs-slider-active,.video-js.vjs-no-flex .vjs-menu-button-inline{width:12em}.vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:4em;top:0;padding:0;margin:0;transition:all .4s}.vjs-menu-button-inline:hover .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline.vjs-slider-active .vjs-menu{display:block;opacity:1}.vjs-no-flex .vjs-menu-button-inline .vjs-menu{display:block;opacity:1;position:relative;width:auto}.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu,.vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu,.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu{width:auto}.vjs-menu-button-inline .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2b333f;background-color:#2b333fb3}.vjs-has-started .vjs-control-bar{display:flex;visibility:visible;opacity:1;transition:visibility .1s,opacity .1s}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:visible;opacity:0;transition:visibility 1s,opacity 1s}.vjs-controls-disabled .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar,.vjs-error .vjs-control-bar{display:none!important}.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible}.vjs-has-started.vjs-no-flex .vjs-control-bar{display:table}.video-js .vjs-control{position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;flex:none}.vjs-button>.vjs-icon-placeholder:before{font-size:1.8em;line-height:1.67}.vjs-button>.vjs-icon-placeholder{display:block}.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before,.video-js .vjs-control:focus{text-shadow:0em 0em 1em white}.video-js .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-no-flex .vjs-control{display:table-cell;vertical-align:middle}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{cursor:pointer;flex:auto;display:flex;align-items:center;min-width:4em;touch-action:none}.video-js .vjs-progress-control.disabled{cursor:default}.vjs-live .vjs-progress-control{display:none}.vjs-liveui .vjs-progress-control{display:flex;align-items:center}.vjs-no-flex .vjs-progress-control{width:auto}.video-js .vjs-progress-holder{flex:auto;transition:all .2s;height:.3em}.video-js .vjs-progress-control .vjs-progress-holder{margin:0 10px}.video-js .vjs-progress-control:hover .vjs-progress-holder{font-size:1.6666666667em}.video-js .vjs-progress-control:hover .vjs-progress-holder.disabled{font-size:1em}.video-js .vjs-progress-holder .vjs-play-progress,.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div{position:absolute;display:block;height:100%;margin:0;padding:0;width:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{font-size:.9em;position:absolute;right:-.5em;top:-.3333333333em;z-index:1}.video-js .vjs-load-progress{background:rgba(115,133,159,.5)}.video-js .vjs-load-progress div{background:rgba(115,133,159,.75)}.video-js .vjs-time-tooltip{background-color:#fff;background-color:#fffc;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-progress-holder:focus .vjs-time-tooltip{display:none}.video-js .vjs-progress-control:hover .vjs-time-tooltip,.video-js .vjs-progress-control:hover .vjs-progress-holder:focus .vjs-time-tooltip{display:block;font-size:.6em;visibility:visible}.video-js .vjs-progress-control.disabled:hover .vjs-time-tooltip{font-size:1em}.video-js .vjs-progress-control .vjs-mouse-display{display:none;position:absolute;width:1px;height:100%;background-color:#000;z-index:1}.vjs-no-flex .vjs-progress-control .vjs-mouse-display{z-index:0}.video-js .vjs-progress-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display{display:none}.vjs-mouse-display .vjs-time-tooltip{color:#fff;background-color:#000;background-color:#000c}.video-js .vjs-slider{position:relative;cursor:pointer;padding:0;margin:0 .45em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#73859f;background-color:#73859f80}.video-js .vjs-slider.disabled{cursor:default}.video-js .vjs-slider:focus{text-shadow:0em 0em 1em white;box-shadow:0 0 1em #fff}.video-js .vjs-mute-control{cursor:pointer;flex:none}.video-js .vjs-volume-control{cursor:pointer;margin-right:1em;display:flex}.video-js .vjs-volume-control.vjs-volume-horizontal{width:5em}.video-js .vjs-volume-panel .vjs-volume-control{visibility:visible;opacity:0;width:1px;height:1px;margin-left:-1px}.video-js .vjs-volume-panel{transition:width 1s}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control,.video-js .vjs-volume-panel:active .vjs-volume-control,.video-js .vjs-volume-panel:focus .vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control:active,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active{visibility:visible;opacity:1;position:relative;transition:visibility .1s,opacity .1s,height .1s,width .1s,left 0s,top 0s}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-horizontal,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-horizontal,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-horizontal{width:5em;height:3em;margin-right:0}.video-js .vjs-volume-panel.vjs-hover .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:active .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel:focus .vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control:active.vjs-volume-vertical,.video-js .vjs-volume-panel.vjs-hover .vjs-mute-control~.vjs-volume-control.vjs-volume-vertical,.video-js .vjs-volume-panel .vjs-volume-control.vjs-slider-active.vjs-volume-vertical{left:-3.5em;transition:left 0s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-hover,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active{width:10em;transition:width .1s}.video-js .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-mute-toggle-only{width:4em}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{height:8em;width:3em;left:-3000em;transition:visibility 1s,opacity 1s,height 1s 1s,width 1s 1s,left 1s 1s,top 1s 1s}.video-js .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{transition:visibility 1s,opacity 1s,height 1s 1s,width 1s,left 1s 1s,top 1s 1s}.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-horizontal{width:5em;height:3em;visibility:visible;opacity:1;position:relative;transition:none}.video-js.vjs-no-flex .vjs-volume-control.vjs-volume-vertical,.video-js.vjs-no-flex .vjs-volume-panel .vjs-volume-control.vjs-volume-vertical{position:absolute;bottom:3em;left:.5em}.video-js .vjs-volume-panel{display:flex}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em;margin:1.35em auto}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em;z-index:1}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em;z-index:1}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{top:-.3em;right:-.5em}.video-js .vjs-volume-panel.vjs-volume-panel-vertical{width:4em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-volume-vertical{width:3em;height:8em;bottom:8em;background-color:#2b333f;background-color:#2b333fb3}.video-js .vjs-volume-horizontal .vjs-menu{left:-2em}.video-js .vjs-volume-tooltip{background-color:#fff;background-color:#fffc;border-radius:.3em;color:#000;float:right;font-family:Arial,Helvetica,sans-serif;font-size:1em;padding:6px 8px 8px;pointer-events:none;position:absolute;top:-3.4em;visibility:hidden;z-index:1}.video-js .vjs-volume-control:hover .vjs-volume-tooltip,.video-js .vjs-volume-control:hover .vjs-progress-holder:focus .vjs-volume-tooltip{display:block;font-size:1em;visibility:visible}.video-js .vjs-volume-vertical:hover .vjs-volume-tooltip,.video-js .vjs-volume-vertical:hover .vjs-progress-holder:focus .vjs-volume-tooltip{left:1em;top:-12px}.video-js .vjs-volume-control.disabled:hover .vjs-volume-tooltip{font-size:1em}.video-js .vjs-volume-control .vjs-mouse-display{display:none;position:absolute;width:100%;height:1px;background-color:#000;z-index:1}.video-js .vjs-volume-horizontal .vjs-mouse-display{width:1px;height:100%}.vjs-no-flex .vjs-volume-control .vjs-mouse-display{z-index:0}.video-js .vjs-volume-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-volume-control .vjs-mouse-display{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.video-js.vjs-user-inactive.vjs-no-flex .vjs-volume-control .vjs-mouse-display{display:none}.vjs-mouse-display .vjs-volume-tooltip{color:#fff;background-color:#000;background-color:#000c}.vjs-poster{display:inline-block;vertical-align:middle;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;background-color:#000;cursor:pointer;margin:0;padding:0;position:absolute;inset:0;height:100%}.vjs-has-started .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster{display:block}.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-live-control{display:flex;align-items:flex-start;flex:auto;font-size:1em;line-height:3em}.vjs-no-flex .vjs-live-control{display:table-cell;width:auto;text-align:left}.video-js:not(.vjs-live) .vjs-live-control,.video-js.vjs-liveui .vjs-live-control{display:none}.video-js .vjs-seek-to-live-control{align-items:center;cursor:pointer;flex:none;display:inline-flex;height:100%;padding-left:.5em;padding-right:.5em;font-size:1em;line-height:3em;width:auto;min-width:4em}.vjs-no-flex .vjs-seek-to-live-control{display:table-cell;width:auto;text-align:left}.video-js.vjs-live:not(.vjs-liveui) .vjs-seek-to-live-control,.video-js:not(.vjs-live) .vjs-seek-to-live-control{display:none}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge{cursor:auto}.vjs-seek-to-live-control .vjs-icon-placeholder{margin-right:.5em;color:#888}.vjs-seek-to-live-control.vjs-control.vjs-at-live-edge .vjs-icon-placeholder{color:red}.video-js .vjs-time-control{flex:none;font-size:1em;line-height:3em;min-width:2em;width:auto;padding-left:1em;padding-right:1em}.vjs-live .vjs-time-control,.video-js .vjs-current-time,.vjs-no-flex .vjs-current-time,.video-js .vjs-duration,.vjs-no-flex .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.vjs-live .vjs-time-divider{display:none}.video-js .vjs-play-control{cursor:pointer}.video-js .vjs-play-control .vjs-icon-placeholder{flex:none}.vjs-text-track-display{position:absolute;inset:0 0 3em;pointer-events:none}.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{transform:translateY(-3em)}.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{transform:translateY(-1.5em)}.video-js .vjs-picture-in-picture-control,.video-js .vjs-fullscreen-control{cursor:pointer;flex:none}.vjs-playback-rate>.vjs-menu-button,.vjs-playback-rate .vjs-playback-rate-value{position:absolute;top:0;left:0;width:100%;height:100%}.vjs-playback-rate .vjs-playback-rate-value{pointer-events:none;font-size:1.5em;line-height:2;text-align:center}.vjs-playback-rate .vjs-menu{width:4em;left:0}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-error .vjs-error-display:before{color:#fff;content:"X";font-family:Arial,Helvetica,sans-serif;font-size:4em;left:0;line-height:1;margin-top:-.5em;position:absolute;text-shadow:.05em .05em .1em #000;text-align:center;top:50%;vertical-align:middle;width:100%}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;opacity:.85;text-align:left;border:6px solid rgba(43,51,63,.7);box-sizing:border-box;background-clip:padding-box;width:50px;height:50px;border-radius:25px;visibility:hidden}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:block;-webkit-animation:vjs-spinner-show 0s linear .3s forwards;animation:vjs-spinner-show 0s linear .3s forwards}.vjs-loading-spinner:before,.vjs-loading-spinner:after{content:"";position:absolute;margin:-6px;box-sizing:inherit;width:inherit;height:inherit;border-radius:inherit;opacity:1;border:inherit;border-color:transparent;border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:before,.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after{-webkit-animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite;animation:vjs-spinner-spin 1.1s cubic-bezier(.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{border-top-color:#fff;-webkit-animation-delay:.44s;animation-delay:.44s}@keyframes vjs-spinner-show{to{visibility:visible}}@-webkit-keyframes vjs-spinner-show{to{visibility:visible}}@keyframes vjs-spinner-spin{to{transform:rotate(360deg)}}@-webkit-keyframes vjs-spinner-spin{to{-webkit-transform:rotate(360deg)}}@keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}to{border-top-color:#73859f}}@-webkit-keyframes vjs-spinner-fade{0%{border-top-color:#73859f}20%{border-top-color:#73859f}35%{border-top-color:#fff}60%{border-top-color:#73859f}to{border-top-color:#73859f}}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-subs-caps-button+.vjs-menu .vjs-captions-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:"\\f10d";font-size:1.5em;line-height:inherit}.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder{vertical-align:middle;display:inline-block;margin-bottom:-.1em}.video-js .vjs-audio-button+.vjs-menu .vjs-main-desc-menu-item .vjs-menu-item-text .vjs-icon-placeholder:before{font-family:VideoJS;content:" \\f11d";font-size:1.5em;line-height:inherit}.video-js.vjs-layout-small .vjs-current-time,.video-js.vjs-layout-small .vjs-time-divider,.video-js.vjs-layout-small .vjs-duration,.video-js.vjs-layout-small .vjs-remaining-time,.video-js.vjs-layout-small .vjs-playback-rate,.video-js.vjs-layout-small .vjs-chapters-button,.video-js.vjs-layout-small .vjs-descriptions-button,.video-js.vjs-layout-small .vjs-captions-button,.video-js.vjs-layout-small .vjs-subtitles-button,.video-js.vjs-layout-small .vjs-audio-button,.video-js.vjs-layout-small .vjs-volume-control,.video-js.vjs-layout-x-small .vjs-current-time,.video-js.vjs-layout-x-small .vjs-time-divider,.video-js.vjs-layout-x-small .vjs-duration,.video-js.vjs-layout-x-small .vjs-remaining-time,.video-js.vjs-layout-x-small .vjs-playback-rate,.video-js.vjs-layout-x-small .vjs-chapters-button,.video-js.vjs-layout-x-small .vjs-descriptions-button,.video-js.vjs-layout-x-small .vjs-captions-button,.video-js.vjs-layout-x-small .vjs-subtitles-button,.video-js.vjs-layout-x-small .vjs-audio-button,.video-js.vjs-layout-x-small .vjs-volume-control,.video-js.vjs-layout-tiny .vjs-current-time,.video-js.vjs-layout-tiny .vjs-time-divider,.video-js.vjs-layout-tiny .vjs-duration,.video-js.vjs-layout-tiny .vjs-remaining-time,.video-js.vjs-layout-tiny .vjs-playback-rate,.video-js.vjs-layout-tiny .vjs-chapters-button,.video-js.vjs-layout-tiny .vjs-descriptions-button,.video-js.vjs-layout-tiny .vjs-captions-button,.video-js.vjs-layout-tiny .vjs-subtitles-button,.video-js.vjs-layout-tiny .vjs-audio-button,.video-js.vjs-layout-tiny .vjs-volume-control{display:none!important}.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-x-small .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:hover,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal:active,.video-js.vjs-layout-tiny .vjs-volume-panel.vjs-volume-panel-horizontal.vjs-slider-active{width:auto;width:initial}.video-js.vjs-layout-x-small:not(.vjs-liveui) .vjs-subs-caps-button,.video-js.vjs-layout-x-small:not(.vjs-live) .vjs-subs-caps-button,.video-js.vjs-layout-tiny .vjs-subs-caps-button{display:none}.video-js.vjs-layout-x-small.vjs-liveui .vjs-custom-control-spacer,.video-js.vjs-layout-tiny .vjs-custom-control-spacer{flex:auto;display:block}.video-js.vjs-layout-x-small.vjs-liveui.vjs-no-flex .vjs-custom-control-spacer,.video-js.vjs-layout-tiny.vjs-no-flex .vjs-custom-control-spacer{width:auto}.video-js.vjs-layout-x-small.vjs-liveui .vjs-progress-control,.video-js.vjs-layout-tiny .vjs-progress-control{display:none}.vjs-modal-dialog.vjs-text-track-settings{background-color:#2b333f;background-color:#2b333fbf;color:#fff;height:70%}.vjs-text-track-settings .vjs-modal-dialog-content{display:table}.vjs-text-track-settings .vjs-track-settings-colors,.vjs-text-track-settings .vjs-track-settings-font,.vjs-text-track-settings .vjs-track-settings-controls{display:table-cell}.vjs-text-track-settings .vjs-track-settings-controls{text-align:right;vertical-align:bottom}@supports (display: grid){.vjs-text-track-settings .vjs-modal-dialog-content{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;padding:20px 24px 0}.vjs-track-settings-controls .vjs-default-button{margin-bottom:20px}.vjs-text-track-settings .vjs-track-settings-controls{grid-column:1/-1}.vjs-layout-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-x-small .vjs-text-track-settings .vjs-modal-dialog-content,.vjs-layout-tiny .vjs-text-track-settings .vjs-modal-dialog-content{grid-template-columns:1fr}}.vjs-track-setting>select{margin-right:1em;margin-bottom:.5em}.vjs-text-track-settings fieldset{margin:5px;padding:3px;border:none}.vjs-text-track-settings fieldset span{display:inline-block}.vjs-text-track-settings fieldset span>select{max-width:7.3em}.vjs-text-track-settings legend{color:#fff;margin:0 0 5px}.vjs-text-track-settings .vjs-label{position:absolute;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);display:block;margin:0 0 5px;padding:0;border:0;height:1px;width:1px;overflow:hidden}.vjs-track-settings-controls button:focus,.vjs-track-settings-controls button:active{outline-style:solid;outline-width:medium;background-image:linear-gradient(0deg,#fff 88%,#73859f 100%)}.vjs-track-settings-controls button:hover{color:#2b333fbf}.vjs-track-settings-controls button{background-color:#fff;background-image:linear-gradient(-180deg,#fff 88%,#73859f 100%);color:#2b333f;cursor:pointer;border-radius:2px}.vjs-track-settings-controls .vjs-default-button{margin-right:1em}@media print{.video-js>*:not(.vjs-tech):not(.vjs-poster){visibility:hidden}}.vjs-resize-manager{position:absolute;top:0;left:0;width:100%;height:100%;border:none;z-index:-1000}.js-focus-visible .video-js *:focus:not(.focus-visible){outline:none}.video-js *:focus:not(:focus-visible){outline:none}.netless-window-manager-playground{width:100%;height:100%;position:relative;z-index:1;overflow:hidden;user-select:none}.netless-window-manager-sizer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;overflow:hidden;display:flex}.netless-window-manager-sizer-horizontal{flex-direction:column}.netless-window-manager-sizer:before,.netless-window-manager-sizer:after{flex:1;content:"";display:block}.netless-window-manager-chess-sizer:before,.netless-window-manager-chess-sizer:after{background-image:linear-gradient(45deg,#b0b0b0 25%,transparent 25%),linear-gradient(-45deg,#b0b0b0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#b0b0b0 75%),linear-gradient(-45deg,transparent 75%,#b0b0b0 75%);background-color:#fff;background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px}.netless-window-manager-wrapper{position:relative;z-index:1;width:100%;height:100%;overflow:hidden}.netless-window-manager-main-view{width:100%;height:100%}.netless-window-manager-cursor-pencil-image,.netless-window-manager-cursor-eraser-image{width:26px;height:26px}.netless-window-manager-cursor-selector-image{width:24px;height:24px}.netless-window-manager-cursor-selector-avatar{border-radius:50%;border-style:solid;border-width:2px;border-color:#fff;margin-bottom:2px}.netless-window-manager-cursor-selector-avatar img{width:12px}.netless-window-manager-cursor-inner{border-radius:4px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:4px;padding-right:4px;font-size:12px}.netless-window-manager-cursor-inner-mellow{height:32px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:16px;padding-right:16px}.netless-window-manager-cursor-tag-name{font-size:12px;margin-left:4px;padding:2px 8px;border-radius:4px}.netless-window-manager-cursor-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:26px;height:26px;z-index:2147483647;left:0;top:0;will-change:transform;transition:transform .1s;transform-origin:0 0;user-select:none}.netless-window-manager-cursor-pencil-offset{margin-left:-20px}.netless-window-manager-cursor-selector-offset{margin-left:-22px;margin-top:56px}.netless-window-manager-cursor-text-offset{margin-left:-30px;margin-top:18px}.netless-window-manager-cursor-shape-offset{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:180px;height:64px;margin-left:-30px;margin-top:12px}.netless-window-manager-cursor-laserPointer-image{margin-left:-22px;margin-top:3px}.netless-window-manager-cursor-name{width:100%;height:48px;display:flex;align-items:center;justify-content:center;position:absolute;top:-40px}.cursor-image-wrapper{display:flex;justify-content:center}.telebox-collector{position:absolute;right:10px;bottom:15px}.tele-fancy-scrollbar{overscroll-behavior:contain;overflow:auto;overflow-y:scroll;overflow-y:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.tele-fancy-scrollbar::-webkit-scrollbar{height:8px;width:8px}.tele-fancy-scrollbar::-webkit-scrollbar-track{background-color:transparent}.tele-fancy-scrollbar::-webkit-scrollbar-thumb{background-color:#444e601a;background-color:transparent;border-radius:4px;transition:background-color .4s}.tele-fancy-scrollbar:hover::-webkit-scrollbar-thumb{background-color:#444e601a}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#444e6033}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:active{background-color:#444e6033}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:vertical{min-height:50px}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:horizontal{min-width:50px}.telebox-box{position:absolute;top:0;left:0;z-index:100;transition:width .4s cubic-bezier(.4,.9,.71,1.02),height .4s cubic-bezier(.55,.82,.63,.95),opacity .6s cubic-bezier(.7,0,.84,0),transform .4s ease}.telebox-box-main{position:relative;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#f9f9fc;box-shadow:0 4px 10px #2f419226;border-radius:6px;border:1px solid #e3e3ec}.telebox-titlebar-wrap{flex-shrink:0;position:relative;z-index:1}.telebox-content-wrap{flex:1;width:100%;overflow:hidden;display:flex;justify-content:center;align-items:center}.telebox-content{width:100%;height:100%;position:relative}.telebox-footer-wrap{flex-shrink:0;display:flex;flex-direction:column}.telebox-footer-wrap:before{content:"";display:block;flex:1}.telebox-resize-handle{position:absolute;z-index:2147483647}.telebox-n{width:100%;height:5px;left:0;top:-5px;cursor:n-resize}.telebox-s{width:100%;height:5px;left:0;bottom:-5px;cursor:s-resize}.telebox-w{width:5px;height:100%;left:-5px;top:0;cursor:w-resize}.telebox-e{width:5px;height:100%;right:-5px;top:0;cursor:e-resize}.telebox-nw{width:15px;height:15px;top:-5px;left:-5px;cursor:nw-resize}.telebox-ne{width:15px;height:15px;top:-5px;right:-5px;cursor:ne-resize}.telebox-se{width:15px;height:15px;bottom:-5px;right:-5px;cursor:se-resize}.telebox-sw{width:15px;height:15px;bottom:-5px;left:-5px;cursor:sw-resize}.telebox-track-mask{position:fixed;top:0;left:0;z-index:2147483647;width:100%;height:100%;background:rgba(0,0,0,.0001);cursor:move}.telebox-cursor-n{cursor:n-resize}.telebox-cursor-s{cursor:s-resize}.telebox-cursor-w{cursor:w-resize}.telebox-cursor-e{cursor:e-resize}.telebox-cursor-nw{cursor:nw-resize}.telebox-cursor-ne{cursor:ne-resize}.telebox-cursor-se{cursor:se-resize}.telebox-cursor-sw{cursor:sw-resize}.telebox-maximized .telebox-resize-handles,.telebox-no-resize .telebox-resize-handles{display:none}.telebox-maximized{box-shadow:none;transition:none}.telebox-minimized{transition:width 50ms cubic-bezier(.4,.9,.71,1.02),height 50ms cubic-bezier(.55,.82,.63,.95),opacity .6s cubic-bezier(.7,0,.84,0),transform .6s ease;opacity:0;pointer-events:none;user-select:none}.telebox-transforming{will-change:transform;transition:opacity .6s cubic-bezier(.7,0,.84,0)}.telebox-readonly .telebox-resize-handle{cursor:initial!important;pointer-events:none!important}.telebox-color-scheme-dark .telebox-box-main{color:#e9e9e9;background:#212126;border-color:#43434d}.telebox-titlebar{box-sizing:border-box;height:26px;display:flex;align-items:center;background:#fff;user-select:none;border-bottom:1px solid #eeeef7;touch-action:manipulation}.telebox-title-area{padding-left:16px;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{padding-right:16px;white-space:nowrap;word-break:keep-all;margin-left:auto;font-size:0}.telebox-titlebar-btn{width:22px;height:22px;padding:0;outline:0;border:none;background:0 0;cursor:pointer}.telebox-titlebar-btn~.telebox-titlebar-btn{margin-left:10px}.telebox-titlebar-btn-icon{width:22px;height:22px}.telebox-readonly .telebox-titlebar-btn{cursor:not-allowed}.telebox-titlebar-icon-minimize{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPHBhdGggZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOSAxM2gxMHYxLjZIOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=)}.telebox-titlebar-icon-maximize{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPGcgZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI2IpIj4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgIGQ9Ik0yMC40ODEgMTcuMWgxLjJ2NC41ODFIMTcuMXYtMS4yaDMuMzgxVjE3LjF6bS0xNC4xOTA1LS4wMDloMS4ydjMuMzgxaDMuMzgwOXYxLjJoLTQuNTgxdi00LjU4MXpNMTcuMSA2LjE5MDVoNC41ODF2NC41ODA5aC0xLjJ2LTMuMzgxSDE3LjF2LTEuMnptLTEwLjcwMDguMTA4N2g0Ljc5ODV2MS4ySDcuNTk5MnYzLjU5ODVoLTEuMlY2LjI5OTJ6IiAvPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==)}.telebox-titlebar-icon-maximize.is-active{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjZ2MjZIMHoiIC8+CiAgICAgICAgPHBhdGggaWQ9ImMiIGQ9Ik0yNi44NjkgMEwyOCAxLjEzMVYyNi44N0wyNi44NjkgMjhIMS4xM0wwIDI2Ljg3VjEuMTMxTDEuMTMgMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPgogICAgICAgICAgICA8bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNhIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tNC42NDI5LTQuNjQyOWgzNS4yODU4djM1LjI4NThILTQuNjQyOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxnPgogICAgICAgICAgICA8bWFzayBpZD0iZCIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNjIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tMTcuNTE2OCAxNEwxNC0xNy41MTY4IDQ1LjUxNjggMTQgMTQgNDUuNTE2OHoiIG1hc2s9InVybCgjZCkiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjIiCiAgICAgICAgICAgIGQ9Ik0xMC4wODg2IDIxLjQ4NjV2LTMuNjk2Nkg2LjM5Mk0yMS4zODU1IDEwLjE4OTVoLTMuNjk2NlY2LjQ5M00yMS40MDIgMTcuNzk4M2gtMy42OTY2djMuNjk2Nk0xMC4yNTAzIDYuMTQ5OHYzLjg5ODVINi4zNTE3IiAvPgogICAgPC9nPgo8L3N2Zz4K)}.telebox-titlebar-icon-close{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjQiPgogICAgICAgIDxwYXRoIGQ9Ik04LjM1MyAyMC4zMzIxTDIwLjMzMiA4LjM1M00yMC4zMzIyIDIwLjMzMjFMOC4zNTMgOC4zNTMiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=)}.telebox-color-scheme-dark .telebox-titlebar{color:#e9e9e9;background:#43434d;border-bottom:none}.telebox-collector{visibility:hidden;display:block;position:absolute;z-index:200;width:40px;height:40px;margin:0;padding:0;border:none;outline:0;font-size:0;border-radius:50%;background:#fff;box-shadow:0 2px 6px #2f419226;cursor:pointer;user-select:none;pointer-events:none;background-repeat:no-repeat;background-size:18px 16px;background-position:center;-webkit-tap-highlight-color:transparent}.telebox-collector-visible{visibility:visible;pointer-events:initial}.telebox-collector-readonly{cursor:not-allowed}.telebox-color-scheme-dark.telebox-collector{background-color:#43434d}.telebox-max-titlebar{display:none;position:absolute;top:0;left:0;z-index:50000;user-select:none}.telebox-max-titlebar .telebox-title,.telebox-max-titlebar.telebox-max-titlebar-single-title .telebox-titles{display:none}.telebox-max-titlebar.telebox-max-titlebar-single-title .telebox-title{display:block}.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,.fastboard-bottom-right{display:flex;gap:10px;position:absolute;bottom:8px;left:8px;padding:8px;z-index:200}.fastboard-bottom-right{left:auto;right:8px}.fastboard-bottom{right:8px}.fastboard-redo-undo{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-redo-undo.light{color:#333;background-color:#ffffffe6;border:1px solid #e5e8f0}.fastboard-redo-undo.dark{color:#ddd;background-color:#14181e;border:1px solid #383b42}.fastboard-redo-undo-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-redo-undo-btn svg,.fastboard-redo-undo-btn img{width:100%;height:100%}.fastboard-redo-undo-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-redo-undo-btn.light:not(:disabled):hover{background-color:#ebf2ff}.fastboard-redo-undo-btn.dark:not(:disabled):hover{background-color:#383b42}.fastboard-page-control{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-page-control.light{color:#333;background-color:#ffffffe6;border:1px solid #e5e8f0}.fastboard-page-control.dark{color:#ddd;background-color:#14181e;border:1px solid #383b42}.fastboard-page-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-page-control-btn svg,.fastboard-page-control-btn img{width:100%;height:100%}.fastboard-page-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-page-control-btn.light:not(:disabled):hover{background-color:#ebf2ff}.fastboard-page-control-btn.dark:not(:disabled):hover{background-color:#383b42}.fastboard-page-control-cut-line{height:24px;width:.5px}.fastboard-page-control-cut-line.light{background-color:#e7e7e7}.fastboard-page-control-cut-line.dark{background-color:#ffffff26}.fastboard-page-control-slash{opacity:.6}.fastboard-page-control-text{line-height:24px}.fastboard-page-control-page,.fastboard-page-control-slash,.fastboard-page-control-page-count{font-size:14px;font-variant-numeric:tabular-nums}.fastboard-zoom-control{position:relative;display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-zoom-control.light{color:#333;background-color:#ffffffe6;border:1px solid #e5e8f0}.fastboard-zoom-control.dark{color:#ddd;background-color:#14181e;border:1px solid #383b42}.fastboard-zoom-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-zoom-control-btn svg,.fastboard-zoom-control-btn img{width:100%;height:100%}.fastboard-zoom-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-zoom-control-btn.light:not(:disabled):hover{background-color:#ebf2ff}.fastboard-zoom-control-btn.dark:not(:disabled):hover{background-color:#383b42}.fastboard-zoom-control-cut-line{height:24px;width:.5px}.fastboard-zoom-control-cut-line.light{background-color:#e7e7e7}.fastboard-zoom-control-cut-line.dark{background-color:#ffffff26}.fastboard-zoom-control-text{line-height:24px}.fastboard-zoom-control-percent{opacity:.6}.fastboard-zoom-control-scale,.fastboard-zoom-control-percent{font-size:14px;font-variant-numeric:tabular-nums}.fastboard-toolbar{display:flex;align-items:center;padding:4px;border-radius:4px;flex-direction:column;gap:4px;position:absolute;z-index:100;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.fastboard-toolbar .rc-slider{padding:6px 0}.fastboard-toolbar .rc-slider-rail,.fastboard-toolbar .rc-slider-track{height:2px}.fastboard-toolbar .tippy-content{padding:8px}.fastboard-toolbar .tippy-box{border:1px solid rgba(0,0,0,.15);background-color:#333333f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-toolbar .tippy-box[data-theme~=light]{background-color:#fffffff2;box-shadow:0 5px 10px #00000040}.fastboard-toolbar.light{color:#333;background-color:#ffffffe6;border:1px solid #e5e8f0}.fastboard-toolbar.dark{color:#ddd;background-color:#14181e;border:1px solid #383b42}.fastboard-toolbar.expanded{border:1px solid rgba(0,0,0,.15)}.fastboard-toolbar.expanded:hover{box-shadow:0 0 5px #00000040;transform:translate(0)}.fastboard-toolbar.collapsed{padding:0;background-color:transparent}.fastboard-toolbar-tooltip{display:inline-flex;align-items:center;gap:4px}.fastboard-toolbar-hotkey{margin-right:-4px;width:24px;height:24px;border-radius:4px;background-color:#ffffff1a;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:4px;width:32px;height:32px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1;position:relative}.fastboard-toolbar-btn-interactive{display:inline-block;width:32px;height:32px}.fastboard-toolbar-btn svg,.fastboard-toolbar-btn img{width:100%;height:100%}.fastboard-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-toolbar-btn.light:not(:disabled):hover{background-color:#ebf2ff}.fastboard-toolbar-btn.dark:not(:disabled):hover{background-color:#383b42}.fastboard-toolbar-triangle{width:0px;height:0px;border-bottom:4px solid;border-left:4px solid transparent;position:absolute;bottom:0;right:0}.fastboard-toolbar-cut-line{display:inline-block;height:.5px;width:100%}.fastboard-toolbar-cut-line.light{background-color:#e7e7e7}.fastboard-toolbar-cut-line.dark{background-color:#ffffff26}.fastboard-toolbar-section{display:inline-flex;flex-flow:column nowrap;gap:4px;scroll-behavior:smooth}.fastboard-toolbar-section.collapsed{transform:translate(-100%);transition:1s transform}.fastboard-toolbar-section~.fastboard-toolbar-mask{opacity:0;transition:.5s opacity .4s}.fastboard-toolbar-section:hover~.fastboard-toolbar-mask,.fastboard-toolbar-mask:hover{opacity:1;transition:.2s opacity}.fastboard-toolbar-panel{width:120px;padding:0;display:flex;flex-flow:column nowrap;align-items:center;gap:8px}.fastboard-toolbar-panel.apps{width:256px}.fastboard-toolbar-color-box,.fastboard-toolbar-shapes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;align-items:center;justify-items:center}.fastboard-toolbar-color-box .fastboard-toolbar-btn,.fastboard-toolbar-shapes .fastboard-toolbar-btn{padding:0;width:24px;height:24px}.fastboard-toolbar-apps{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:center;justify-items:center}.fastboard-toolbar-apps .fastboard-toolbar-btn{width:40px;height:40px;font-size:0}.fastboard-toolbar-app-icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.fastboard-toolbar-app-icon-mask{position:absolute;width:36px;height:36px;animation:fastboard-app-loading-rotate .5s linear infinite;transform-origin:center}.fastboard-toolbar-app-is-loading{cursor:wait}.fastboard-toolbar-app-is-loading button:disabled{cursor:wait}.fastboard-toolbar-app-is-failed{cursor:not-allowed}.fastboard-toolbar-app-is-failed button:disabled{cursor:not-allowed}.fastboard-toolbar-app-icon{padding-top:4px;display:inline-flex;flex-flow:column nowrap;align-items:center;gap:4px}.fastboard-toolbar-app-icon .fastboard-toolbar-btn{padding:0}.fastboard-toolbar-app-icon-text{font-size:14px;color:#5d5d5d;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fastboard-toolbar-color-item{width:24px;height:24px;border-radius:4px;cursor:pointer}.fastboard-toolbar-color-item *.light:hover{background-color:#f5f5f5}.fastboard-toolbar-color-item *.dark:hover{background-color:#333}.fastboard-toolbar-color-border{width:24px;height:24px;border:1px solid transparent;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-color-border.active.light,.fastboard-toolbar-color-border.active.dark{border:1px solid rgba(51,129,255,.8)}.fastboard-toolbar-color-btn{margin:0;border:1px solid rgba(0,0,0,.24);padding:0;appearance:none;width:16px;height:16px;border-radius:4px;cursor:pointer}.fastboard-toolbar-color-btn:focus-visible{outline-offset:2px}.fastboard-toolbar-mask{position:absolute;left:calc(100% + 1px);top:50%;transform:translateY(-50%);opacity:.85}.fastboard-toolbar-mask.dark{left:100%}.fastboard-toolbar-mask-btn{width:17px;height:62px;cursor:pointer;opacity:.85}.fastboard-toolbar-mask-btn.dark{filter:invert(.8)}.fastboard-toolbar-expand-btn{display:flex;align-items:center;position:absolute;left:0}@keyframes fastboard-app-loading-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fastboard-player-control{width:100%;display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:100}.fastboard-player-control.auto-hide{opacity:0;transition:opacity .2s}.fastboard-player-control.auto-hide:hover{opacity:1}.fastboard-player-control .rc-slider-disabled{background:transparent;opacity:.5}.fastboard-player-control .rc-slider-rail,.fastboard-player-control .rc-slider-track{height:2px}.fastboard-player-control .tippy-content{padding:8px}.fastboard-player-control .tippy-box{border:1px solid rgba(0,0,0,.15);background-color:#333333f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-player-control .tippy-box[data-theme~=light]{background-color:#fffffff2;box-shadow:0 5px 10px #00000040}.fastboard-player-control.light{color:#333;background-color:#ffffffe6;border:1px solid #e5e8f0}.fastboard-player-control.dark{color:#ddd;background-color:#14181e;border:1px solid #383b42}.fastboard-player-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;min-width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.fastboard-player-control-btn svg,.fastboard-player-control-btn img{width:100%;height:100%}.fastboard-player-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-player-control-btn.light:not(:disabled):hover{background-color:#ebf2ff}.fastboard-player-control-btn.dark:not(:disabled):hover{background-color:#383b42}.fastboard-player-control-btn.loading{animation:fastboard-player-control-rotate .5s linear infinite}@keyframes fastboard-player-control-rotate{to{transform:rotate(360deg)}}.fastboard-player-control-panel{padding:0;display:flex;flex-flow:column nowrap;align-items:stretch;gap:4px}.fastboard-player-control-panel .fastboard-player-control-btn{width:initial;height:initial;user-select:none;font-size:14px;padding:4px;justify-content:flex-end}.fastboard-player-control-panel .fastboard-player-control-btn.active{color:#3381ff}.fastboard-player-control-slider{width:100%;padding:0 7px}.fastboard-player-control-slider.loading{cursor:not-allowed}.fastboard-player-control-slash{opacity:.6}.fastboard-player-control-current,.fastboard-player-control-slash,.fastboard-player-control-total,.fastboard-player-control-speed-text{font-size:14px;font-variant-numeric:tabular-nums}.tippy-box.fastboard-tip{color:#eee;background-color:#000000f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.tippy-box.fastboard-tip[data-placement^=right]>.tippy-arrow:before{top:4px;border-width:4px;border-right-color:#000}.tippy-box.fastboard-tip[data-placement^=top]>.tippy-arrow:before{left:4px;border-width:4px;border-top-color:#000}\n';
85
85
 
86
86
  // src/behaviors/style.ts
87
87
  applyStyles(style_default);
@@ -289,18 +289,17 @@ function Redo({ theme = "light", active }) {
289
289
  const config = themes[theme];
290
290
  const stroke = active ? config.activeColor : config.color;
291
291
  return /* @__PURE__ */ React2.createElement("svg", {
292
- viewBox: "0 0 24 24"
293
- }, /* @__PURE__ */ React2.createElement("g", {
294
- fill: "none",
295
- fillRule: "evenodd",
296
- stroke,
297
- strokeLinecap: "round",
298
- strokeLinejoin: "round"
292
+ viewBox: "0 0 24 24",
293
+ fill: "none"
299
294
  }, /* @__PURE__ */ React2.createElement("path", {
300
- d: "M14 14h4v-4"
295
+ d: "M19 9.625H9v-1.25h10v1.25ZM5.625 13v6h-1.25v-6h1.25ZM9 9.625A3.375 3.375 0 0 0 5.625 13h-1.25A4.625 4.625 0 0 1 9 8.375v1.25Z",
296
+ fill: stroke
301
297
  }), /* @__PURE__ */ React2.createElement("path", {
302
- d: "m18 14-.788-.9A7.005 7.005 0 0 0 6 14h0"
303
- })));
298
+ d: "m15 5 4 4-4 4",
299
+ stroke,
300
+ strokeLinejoin: "round",
301
+ strokeWidth: "1.25"
302
+ }));
304
303
  }
305
304
 
306
305
  // src/icons/Undo.tsx
@@ -309,18 +308,17 @@ function Undo({ theme = "light", active }) {
309
308
  const config = themes[theme];
310
309
  const stroke = active ? config.activeColor : config.color;
311
310
  return /* @__PURE__ */ React3.createElement("svg", {
312
- viewBox: "0 0 24 24"
313
- }, /* @__PURE__ */ React3.createElement("g", {
314
- fill: "none",
315
- fillRule: "evenodd",
316
- stroke,
317
- strokeLinecap: "round",
318
- strokeLinejoin: "round"
311
+ viewBox: "0 0 24 24",
312
+ fill: "none"
319
313
  }, /* @__PURE__ */ React3.createElement("path", {
320
- d: "M10 14H6v-4"
314
+ d: "M5 9.625h10v-1.25H5v1.25ZM18.375 13v6h1.25v-6h-1.25ZM15 9.625A3.375 3.375 0 0 1 18.375 13h1.25A4.625 4.625 0 0 0 15 8.375v1.25Z",
315
+ fill: stroke
321
316
  }), /* @__PURE__ */ React3.createElement("path", {
322
- d: "m6 14 .788-.9A7.005 7.005 0 0 1 18 14h0"
323
- })));
317
+ d: "M9 5 5 9l4 4",
318
+ stroke,
319
+ strokeLinejoin: "round",
320
+ strokeWidth: "1.25"
321
+ }));
324
322
  }
325
323
 
326
324
  // src/components/RedoUndo/RedoUndo.tsx
@@ -439,13 +437,13 @@ function Minus({ theme = "light", active }) {
439
437
  const config = themes[theme];
440
438
  const stroke = active ? config.activeColor : config.color;
441
439
  return /* @__PURE__ */ React5.createElement("svg", {
442
- viewBox: "0 0 24 24"
440
+ viewBox: "0 0 24 24",
441
+ fill: "none"
443
442
  }, /* @__PURE__ */ React5.createElement("path", {
444
- fill: "none",
443
+ d: "M5 12h14",
445
444
  stroke,
446
- strokeLinecap: "round",
447
445
  strokeLinejoin: "round",
448
- d: "M7 12h10"
446
+ strokeWidth: "1.25"
449
447
  }));
450
448
  }
451
449
 
@@ -455,13 +453,13 @@ function Plus({ theme = "light", active }) {
455
453
  const config = themes[theme];
456
454
  const stroke = active ? config.activeColor : config.color;
457
455
  return /* @__PURE__ */ React6.createElement("svg", {
458
- viewBox: "0 0 24 24"
456
+ viewBox: "0 0 24 24",
457
+ fill: "none"
459
458
  }, /* @__PURE__ */ React6.createElement("path", {
460
- fill: "none",
459
+ d: "M5 12h14m-7-7v14",
461
460
  stroke,
462
- strokeLinecap: "round",
463
461
  strokeLinejoin: "round",
464
- d: "M12 7v10m-5-5h10"
462
+ strokeWidth: "1.25"
465
463
  }));
466
464
  }
467
465
 
@@ -471,26 +469,26 @@ function Reset({ theme = "light", active }) {
471
469
  const config = themes[theme];
472
470
  const stroke = active ? config.activeColor : config.color;
473
471
  return /* @__PURE__ */ React7.createElement("svg", {
474
- viewBox: "0 0 24 24"
475
- }, /* @__PURE__ */ React7.createElement("g", {
476
- fill: "none",
477
- fillRule: "evenodd",
478
- transform: "translate(-176 -684)"
479
- }, /* @__PURE__ */ React7.createElement("path", {
472
+ viewBox: "0 0 24 24",
473
+ fill: "none"
474
+ }, /* @__PURE__ */ React7.createElement("circle", {
475
+ cx: "12",
476
+ cy: "12",
477
+ fill: stroke,
478
+ r: "2"
479
+ }), /* @__PURE__ */ React7.createElement("path", {
480
+ d: "M12 3v4m0 10v4m9-9h-4M7 12H3",
480
481
  stroke,
481
482
  strokeLinejoin: "round",
482
- d: "M188 688v4m0 8v4m8-8h-4m-8 0h-4"
483
+ strokeWidth: "1.25"
483
484
  }), /* @__PURE__ */ React7.createElement("circle", {
484
- cx: "188",
485
- cy: "696",
486
- r: "6",
487
- stroke
488
- }), /* @__PURE__ */ React7.createElement("circle", {
489
- cx: "188",
490
- cy: "696",
491
- r: "1",
492
- fill: stroke
493
- })));
485
+ cx: "12",
486
+ cy: "12",
487
+ r: "7",
488
+ stroke,
489
+ strokeLinejoin: "round",
490
+ strokeWidth: "1.25"
491
+ }));
494
492
  }
495
493
 
496
494
  // src/components/ZoomControl/ZoomControl.tsx
@@ -531,10 +529,12 @@ function ZoomControl({
531
529
  src: disabled ? minusIconDisable : minusIcon,
532
530
  alt: "[minus]"
533
531
  }))), /* @__PURE__ */ React8.createElement("span", {
532
+ className: clsx2(`${name2}-text`, theme)
533
+ }, /* @__PURE__ */ React8.createElement("span", {
534
534
  className: clsx2(`${name2}-scale`, theme)
535
535
  }, Math.ceil(scale * 100)), /* @__PURE__ */ React8.createElement("span", {
536
536
  className: clsx2(`${name2}-percent`, theme)
537
- }, "%"), /* @__PURE__ */ React8.createElement(Tippy2, {
537
+ }, "%")), /* @__PURE__ */ React8.createElement(Tippy2, {
538
538
  className: "fastboard-tip",
539
539
  content: t("zoomIn"),
540
540
  theme,
@@ -600,48 +600,65 @@ import Tippy3 from "@tippyjs/react";
600
600
  import clsx3 from "clsx";
601
601
  import React12 from "react";
602
602
 
603
- // src/icons/ChevronLeft.tsx
603
+ // src/icons/Left.tsx
604
604
  import React9 from "react";
605
- function ChevronLeft({ theme = "light", active }) {
605
+ function Left({ theme = "light", active }) {
606
606
  const config = themes[theme];
607
607
  const stroke = active ? config.activeColor : config.color;
608
608
  return /* @__PURE__ */ React9.createElement("svg", {
609
- viewBox: "0 0 24 24"
609
+ viewBox: "0 0 24 24",
610
+ fill: "none"
610
611
  }, /* @__PURE__ */ React9.createElement("path", {
611
- fill: "none",
612
+ d: "m14 8-2 2-2 2 2 2 2 2",
612
613
  stroke,
613
- strokeLinecap: "round",
614
614
  strokeLinejoin: "round",
615
- d: "m14 16-2-2-2-2 2-2 2-2"
615
+ strokeWidth: "1.25"
616
616
  }));
617
617
  }
618
618
 
619
- // src/icons/ChevronRight.tsx
619
+ // src/icons/Right.tsx
620
620
  import React10 from "react";
621
- function ChevronRight({ theme = "light", active }) {
621
+ function Right({ theme = "light", active }) {
622
622
  const config = themes[theme];
623
623
  const stroke = active ? config.activeColor : config.color;
624
624
  return /* @__PURE__ */ React10.createElement("svg", {
625
- viewBox: "0 0 24 24"
625
+ viewBox: "0 0 24 24",
626
+ fill: "none"
626
627
  }, /* @__PURE__ */ React10.createElement("path", {
627
- fill: "none",
628
+ d: "m10 8 2 2 2 2-2 2-2 2",
628
629
  stroke,
629
- strokeLinecap: "round",
630
630
  strokeLinejoin: "round",
631
- d: "m10 16 2-2 2-2-2-2-2-2"
631
+ strokeWidth: "1.25"
632
632
  }));
633
633
  }
634
634
 
635
- // src/icons/FilePlus.tsx
635
+ // src/icons/WhiteboardAdd.tsx
636
636
  import React11 from "react";
637
- function FilePlus({ theme = "light", active }) {
637
+ function WhiteboardAdd({ theme = "light", active }) {
638
638
  const config = themes[theme];
639
639
  const stroke = active ? config.activeColor : config.color;
640
640
  return /* @__PURE__ */ React11.createElement("svg", {
641
- viewBox: "0 0 24 24"
641
+ viewBox: "0 0 24 24",
642
+ fill: "none"
642
643
  }, /* @__PURE__ */ React11.createElement("path", {
643
- fill: stroke,
644
- 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"
644
+ d: "M4 20h16M4 6h16",
645
+ stroke,
646
+ strokeLinejoin: "round",
647
+ strokeWidth: "1.25"
648
+ }), /* @__PURE__ */ React11.createElement("rect", {
649
+ height: "10",
650
+ rx: "1",
651
+ stroke,
652
+ strokeLinejoin: "round",
653
+ strokeWidth: "1.25",
654
+ width: "14",
655
+ x: "5",
656
+ y: "8"
657
+ }), /* @__PURE__ */ React11.createElement("path", {
658
+ d: "M12 4v2m-3 7h6m-3-3v6",
659
+ stroke,
660
+ strokeLinejoin: "round",
661
+ strokeWidth: "1.25"
645
662
  }));
646
663
  }
647
664
 
@@ -677,18 +694,20 @@ function PageControl({
677
694
  disabled: disabled || pageIndex === 0,
678
695
  onClick: actions.prevPage
679
696
  }, /* @__PURE__ */ React12.createElement(Icon, {
680
- fallback: /* @__PURE__ */ React12.createElement(ChevronLeft, {
697
+ fallback: /* @__PURE__ */ React12.createElement(Left, {
681
698
  theme
682
699
  }),
683
700
  src: disabled ? prevIconDisable : prevIcon,
684
701
  alt: "[prev]"
685
702
  }))), /* @__PURE__ */ React12.createElement("span", {
703
+ className: clsx3(`${name3}-text`, theme)
704
+ }, /* @__PURE__ */ React12.createElement("span", {
686
705
  className: clsx3(`${name3}-page`, theme)
687
706
  }, pageCount === 0 ? "\u2026" : pageIndex + 1), /* @__PURE__ */ React12.createElement("span", {
688
707
  className: clsx3(`${name3}-slash`, theme)
689
708
  }, "/"), /* @__PURE__ */ React12.createElement("span", {
690
709
  className: clsx3(`${name3}-page-count`, theme)
691
- }, pageCount), /* @__PURE__ */ React12.createElement(Tippy3, {
710
+ }, pageCount)), /* @__PURE__ */ React12.createElement(Tippy3, {
692
711
  className: "fastboard-tip",
693
712
  content: t("nextPage"),
694
713
  theme,
@@ -702,7 +721,7 @@ function PageControl({
702
721
  disabled: disabled || pageIndex === pageCount - 1,
703
722
  onClick: actions.nextPage
704
723
  }, /* @__PURE__ */ React12.createElement(Icon, {
705
- fallback: /* @__PURE__ */ React12.createElement(ChevronRight, {
724
+ fallback: /* @__PURE__ */ React12.createElement(Right, {
706
725
  theme
707
726
  }),
708
727
  src: disabled ? nextIconDisable : nextIcon,
@@ -721,7 +740,7 @@ function PageControl({
721
740
  disabled,
722
741
  onClick: actions.addPage
723
742
  }, /* @__PURE__ */ React12.createElement(Icon, {
724
- fallback: /* @__PURE__ */ React12.createElement(FilePlus, {
743
+ fallback: /* @__PURE__ */ React12.createElement(WhiteboardAdd, {
725
744
  theme
726
745
  }),
727
746
  src: disabled ? addIconDisable : addIcon,
@@ -1093,14 +1112,14 @@ var EmptyToolbarHook = {
1093
1112
  // src/components/Toolbar/Toolbar.tsx
1094
1113
  import clsx10 from "clsx";
1095
1114
  import { AnimatePresence, motion } from "framer-motion";
1096
- import React43, { createContext as createContext3, useState as useState5 } from "react";
1115
+ import React44, { createContext as createContext3, useState as useState5 } from "react";
1097
1116
 
1098
1117
  // src/components/Toolbar/components/assets/expanded.png
1099
1118
  var expanded_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAB8CAYAAAAMw2JFAAAAAXNSR0IArs4c6QAAA5xJREFUeF7tnL9v00AUx5/TlRkJMSAxZ+jYCf4GtopK6dB2qBBsjshaJErboWVJpYaNLGDaIR2YYAFXqlxhlvzAJkhGJGlyDhVNSpWgyOiqBJnQ+urznW2Jy1JVVnKffv3x8yV9LxLE5CEBwFUA6ALAzyiZJFVVX21ubj7N5/MmACAAGEQBJDWbzQZCqGcYRm52dlbpdDpNAPgRNozkOE691+tBo9FItNtto1AorC0tLX0EAAzUDwvoDGS02NHREU4IarXatizLOV3XvwHAdwBweAP9BYIXGwwGcHh4mLBtG2matrGwsPB2mA5Xmf8BGf3lJycn+HRNtFqtd2HIfCEIBnIcBxBCEkKobxjGFk+ZPUFG6YQh86VAPGSuAUCbhcy+QMZktjVNW2cls28QD5k/A0CLtjJTg4zLbJpmLpVKvaStzIFAWMrMBISFzExBgsjMHIRWZm4gfmXmCnKezIqiLK+srOjDG+mfu3ooIG6Z6/X6r/39/Udzc3OvAQBX5jOYUEHwgqenp2BZlrS7u/sgnU6/Ge53wgfBMN1uV6pWq/b09PTdSqVSwtU49ERGp8myrISqqsszMzPPcSqRgRwfH0vlcvnD1NTUIgB8jQyk3+9DuVy2Jycn7wBANTIQvPsrlUqJZDJ5GwA+RQaCXSkWixPJZPKWABldOSKR8XeLIhGRCOkTBOGIcEQ4QkpAOEJKSNQR4YhwhJSAcISUkKgjTBy5fuPmNfxCNetLA/98srp25WFaxv+UpH5QnZpxEPz7/XuLnSAwzEBwFEFgmIIEgWEOQgvDBYQGhhuIXxiuIH5g/g8QP5czt0T8QFB/mHdeZXXXdr8QXEBoIJiD0EIwBQkCwQwksm0A9abD44lUl68A4ZEAkz0rDzDhiDg1JK+EI8IR4QgpAeEIKSFRR4QjwhFSAsIRUkKijsTSkdi0f8WmIS42LYKxaJqMRRtpLBpr8URTpK3GrrEYU1GUx6E3X7sHhUzTfJZKpV5cNFvBrY10NDqFEFKz2ex6Pp/3nDZhDuIaJrMPDg425ufncac3HrXzHCZjCuIar9vJZDI5TdPweN2lJpKYgLhlLBQKqzQDh4FA/MhI2ptQg/iVkTkIrYxMQdwyyrK8pet6uONxLGQMlAhLGalBXDK+z2azG6TKSFqIdNxrzNZXZSQtRDp+0eDxDmsZLwUSxvQqEWQ4nN4n3aZJLxT0uLS3t7cdhowk0Ph8gQGJNKzjvwGKWUjXcvHclAAAAABJRU5ErkJggg==";
1100
1119
 
1101
1120
  // src/components/Toolbar/Content.tsx
1102
1121
  import clsx9 from "clsx";
1103
- import React42, { useCallback as useCallback11, useContext as useContext13, useEffect as useEffect3, useRef as useRef2, useState as useState4 } from "react";
1122
+ import React43, { useCallback as useCallback11, useContext as useContext13, useEffect as useEffect3, useRef as useRef2, useState as useState4 } from "react";
1104
1123
 
1105
1124
  // src/components/Toolbar/components/ApplianceButtons.tsx
1106
1125
  import React33, { useCallback as useCallback6, useContext as useContext4 } from "react";
@@ -1227,7 +1246,7 @@ function CleanButton() {
1227
1246
  // src/components/Toolbar/components/AppsButton.tsx
1228
1247
  import clsx5 from "clsx";
1229
1248
  import Tippy5 from "@tippyjs/react";
1230
- import React34, { useContext as useContext5 } from "react";
1249
+ import React35, { useContext as useContext5 } from "react";
1231
1250
 
1232
1251
  // src/components/Toolbar/components/assets/vscode.png
1233
1252
  var vscode_default = "data:image/png;base64,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";
@@ -1238,23 +1257,35 @@ var geogebra_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCA
1238
1257
  // src/components/Toolbar/components/assets/countdown.png
1239
1258
  var countdown_default = "data:image/png;base64,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";
1240
1259
 
1260
+ // src/components/Toolbar/icons/Loading.tsx
1261
+ import React34 from "react";
1262
+ var Loading = (props) => {
1263
+ const stroke = getStroke(props);
1264
+ return /* @__PURE__ */ React34.createElement("svg", {
1265
+ viewBox: "0 0 24 24"
1266
+ }, /* @__PURE__ */ React34.createElement("path", {
1267
+ fill: stroke,
1268
+ d: "M12 4V2A10 10 0 0 0 2 12h2a8 8 0 0 1 8-8Z"
1269
+ }));
1270
+ };
1271
+
1241
1272
  // src/components/Toolbar/components/AppsButton.tsx
1242
1273
  function AppsButton({ content, onClick }) {
1243
1274
  const { theme, icons, writable } = useContext5(ToolbarContext);
1244
1275
  const disabled = !writable;
1245
- const button = /* @__PURE__ */ React34.createElement(Button, {
1276
+ const button = /* @__PURE__ */ React35.createElement(Button, {
1246
1277
  content: "Apps",
1247
1278
  onClick
1248
- }, /* @__PURE__ */ React34.createElement(Icon, {
1249
- fallback: /* @__PURE__ */ React34.createElement(Icons.Apps, {
1279
+ }, /* @__PURE__ */ React35.createElement(Icon, {
1280
+ fallback: /* @__PURE__ */ React35.createElement(Icons.Apps, {
1250
1281
  theme
1251
1282
  }),
1252
1283
  src: disabled ? icons == null ? void 0 : icons.appsIconDisable : icons == null ? void 0 : icons.appsIcon,
1253
1284
  alt: "[apps]"
1254
1285
  }));
1255
- return content === false ? button : /* @__PURE__ */ React34.createElement("span", {
1286
+ return content === false ? button : /* @__PURE__ */ React35.createElement("span", {
1256
1287
  className: "fastboard-toolbar-btn-interactive"
1257
- }, /* @__PURE__ */ React34.createElement(Tippy5, {
1288
+ }, /* @__PURE__ */ React35.createElement(Tippy5, {
1258
1289
  className: "fastboard-tip",
1259
1290
  content: renderAppsButtonContent(content),
1260
1291
  theme,
@@ -1266,28 +1297,28 @@ function AppsButton({ content, onClick }) {
1266
1297
  }, button));
1267
1298
  }
1268
1299
  function renderAppsButtonContent(content) {
1269
- return /* @__PURE__ */ React34.createElement("div", {
1300
+ return /* @__PURE__ */ React35.createElement("div", {
1270
1301
  className: "fastboard-toolbar-panel apps"
1271
- }, /* @__PURE__ */ React34.createElement("div", {
1302
+ }, /* @__PURE__ */ React35.createElement("div", {
1272
1303
  className: "fastboard-toolbar-apps"
1273
- }, content || /* @__PURE__ */ React34.createElement(DefaultApps, null)));
1304
+ }, content || /* @__PURE__ */ React35.createElement(DefaultApps, null)));
1274
1305
  }
1275
1306
  function DefaultApps() {
1276
1307
  const app = useFastboardApp();
1277
1308
  const { appsStatus } = useContext5(ToolbarContext);
1278
- return /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement(AppIcon, {
1309
+ return /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(AppIcon, {
1279
1310
  title: "Code Editor",
1280
1311
  src: vscode_default,
1281
1312
  alt: "[code editor]",
1282
1313
  appStatus: appsStatus["Monaco"],
1283
1314
  onClick: app == null ? void 0 : app.insertCodeEditor.bind(app)
1284
- }), /* @__PURE__ */ React34.createElement(AppIcon, {
1315
+ }), /* @__PURE__ */ React35.createElement(AppIcon, {
1285
1316
  title: "GeoGebra",
1286
1317
  src: geogebra_default,
1287
1318
  alt: "[geogebra]",
1288
1319
  appStatus: appsStatus["GeoGebra"],
1289
1320
  onClick: app == null ? void 0 : app.insertGeoGebra.bind(app)
1290
- }), /* @__PURE__ */ React34.createElement(AppIcon, {
1321
+ }), /* @__PURE__ */ React35.createElement(AppIcon, {
1291
1322
  title: "Countdown",
1292
1323
  src: countdown_default,
1293
1324
  alt: "[countdown]",
@@ -1296,37 +1327,44 @@ function DefaultApps() {
1296
1327
  }));
1297
1328
  }
1298
1329
  function AppIcon({ title, src, alt, appStatus, onClick }) {
1330
+ const { theme } = useContext5(ToolbarContext);
1299
1331
  const { status = "idle", reason } = appStatus || {};
1300
1332
  const loading = status === "loading";
1301
1333
  const failed = status === "failed";
1302
1334
  const unifiedTitle = loading ? "loading" : failed ? reason : title;
1303
- return /* @__PURE__ */ React34.createElement("span", {
1335
+ return /* @__PURE__ */ React35.createElement("div", {
1336
+ className: "fastboard-toolbar-app-icon-wrapper"
1337
+ }, /* @__PURE__ */ React35.createElement("span", {
1304
1338
  className: clsx5("fastboard-toolbar-app-icon", {
1305
1339
  "fastboard-toolbar-app-is-loading": loading,
1306
1340
  "fastboard-toolbar-app-is-failed": failed
1307
1341
  })
1308
- }, /* @__PURE__ */ React34.createElement(Button, {
1309
- disabled: failed,
1342
+ }, /* @__PURE__ */ React35.createElement(Button, {
1343
+ disabled: failed || loading,
1310
1344
  placement: "top",
1311
1345
  content: unifiedTitle,
1312
1346
  onClick
1313
- }, /* @__PURE__ */ React34.createElement("img", {
1347
+ }, /* @__PURE__ */ React35.createElement("img", {
1314
1348
  src,
1315
1349
  alt,
1316
1350
  title: unifiedTitle
1317
- })), /* @__PURE__ */ React34.createElement("span", {
1351
+ })), /* @__PURE__ */ React35.createElement("span", {
1318
1352
  className: "fastboard-toolbar-app-icon-text"
1319
- }, title));
1353
+ }, title)), loading && /* @__PURE__ */ React35.createElement("span", {
1354
+ className: "fastboard-toolbar-app-icon-mask"
1355
+ }, /* @__PURE__ */ React35.createElement(Loading, {
1356
+ theme
1357
+ })));
1320
1358
  }
1321
1359
 
1322
1360
  // src/components/Toolbar/components/PencilButton.tsx
1323
1361
  import Tippy6 from "@tippyjs/react";
1324
- import React38, { useCallback as useCallback7, useContext as useContext9 } from "react";
1362
+ import React39, { useCallback as useCallback7, useContext as useContext9 } from "react";
1325
1363
  import { ApplianceNames as ApplianceNames3 } from "white-web-sdk";
1326
1364
 
1327
1365
  // src/components/Toolbar/components/ColorBox.tsx
1328
1366
  import clsx6 from "clsx";
1329
- import React35, { useContext as useContext6 } from "react";
1367
+ import React36, { useContext as useContext6 } from "react";
1330
1368
  var colors = {
1331
1369
  "#E02020": [224, 32, 32],
1332
1370
  "#F7B500": [247, 181, 0],
@@ -1342,17 +1380,17 @@ function ColorBox() {
1342
1380
  const { theme, memberState, setStrokeColor, writable } = useContext6(ToolbarContext);
1343
1381
  const strokeColor = memberState == null ? void 0 : memberState.strokeColor;
1344
1382
  const disabled = !writable;
1345
- return /* @__PURE__ */ React35.createElement("div", {
1383
+ return /* @__PURE__ */ React36.createElement("div", {
1346
1384
  className: clsx6("fastboard-toolbar-color-box", theme)
1347
- }, colorKeys.map((key) => /* @__PURE__ */ React35.createElement("div", {
1385
+ }, colorKeys.map((key) => /* @__PURE__ */ React36.createElement("div", {
1348
1386
  key,
1349
1387
  className: clsx6("fastboard-toolbar-color-item", theme),
1350
1388
  onClick: () => setStrokeColor(colors[key])
1351
- }, /* @__PURE__ */ React35.createElement("div", {
1389
+ }, /* @__PURE__ */ React36.createElement("div", {
1352
1390
  className: clsx6("fastboard-toolbar-color-border", theme, {
1353
1391
  active: strokeColor && isEqualArray(strokeColor, colors[key])
1354
1392
  })
1355
- }, /* @__PURE__ */ React35.createElement("button", {
1393
+ }, /* @__PURE__ */ React36.createElement("button", {
1356
1394
  className: clsx6("fastboard-toolbar-color-btn"),
1357
1395
  style: { background: key },
1358
1396
  disabled,
@@ -1365,10 +1403,10 @@ function ColorBox() {
1365
1403
 
1366
1404
  // src/components/Toolbar/components/CutLine.tsx
1367
1405
  import clsx7 from "clsx";
1368
- import React36, { useContext as useContext7 } from "react";
1406
+ import React37, { useContext as useContext7 } from "react";
1369
1407
  function CutLine() {
1370
1408
  const { theme } = useContext7(ToolbarContext);
1371
- return /* @__PURE__ */ React36.createElement("span", {
1409
+ return /* @__PURE__ */ React37.createElement("span", {
1372
1410
  className: clsx7(`${name4}-cut-line`, theme)
1373
1411
  });
1374
1412
  }
@@ -1376,12 +1414,12 @@ function CutLine() {
1376
1414
  // src/components/Toolbar/components/Slider.tsx
1377
1415
  import clsx8 from "clsx";
1378
1416
  import RcSlider from "rc-slider";
1379
- import React37, { useContext as useContext8 } from "react";
1417
+ import React38, { useContext as useContext8 } from "react";
1380
1418
  function Slider() {
1381
1419
  const { theme, writable, memberState, setStrokeWidth } = useContext8(ToolbarContext);
1382
1420
  const { activeColor } = themes[theme];
1383
1421
  const strokeWidth = (memberState == null ? void 0 : memberState.strokeWidth) || 0;
1384
- return /* @__PURE__ */ React37.createElement(RcSlider, {
1422
+ return /* @__PURE__ */ React38.createElement(RcSlider, {
1385
1423
  disabled: !writable,
1386
1424
  className: clsx8("fastboard-toolbar-slider", theme),
1387
1425
  trackStyle: { background: activeColor },
@@ -1405,9 +1443,9 @@ function PencilButton() {
1405
1443
  const active = appliance === ApplianceNames3.pencil;
1406
1444
  const disabled = !writable;
1407
1445
  const shortcut = ((app == null ? void 0 : app.hotKeys) || defaultHotKeys).changeToPencil;
1408
- return /* @__PURE__ */ React38.createElement("span", {
1446
+ return /* @__PURE__ */ React39.createElement("span", {
1409
1447
  className: "fastboard-toolbar-btn-interactive"
1410
- }, /* @__PURE__ */ React38.createElement(Tippy6, {
1448
+ }, /* @__PURE__ */ React39.createElement(Tippy6, {
1411
1449
  className: "fastboard-tip",
1412
1450
  content: renderPencilButtonContent(),
1413
1451
  theme,
@@ -1416,30 +1454,30 @@ function PencilButton() {
1416
1454
  offset: RightOffset,
1417
1455
  arrow: false,
1418
1456
  interactive: true
1419
- }, /* @__PURE__ */ React38.createElement(Button, {
1457
+ }, /* @__PURE__ */ React39.createElement(Button, {
1420
1458
  content: renderToolTip(t("pencil"), shortcut),
1421
1459
  active,
1422
1460
  onClick: changeAppliance
1423
- }, /* @__PURE__ */ React38.createElement(Icon, {
1424
- fallback: /* @__PURE__ */ React38.createElement(Icons.Pencil, {
1461
+ }, /* @__PURE__ */ React39.createElement(Icon, {
1462
+ fallback: /* @__PURE__ */ React39.createElement(Icons.Pencil, {
1425
1463
  theme,
1426
1464
  active
1427
1465
  }),
1428
1466
  src: disabled ? icons == null ? void 0 : icons.pencilIconDisable : icons == null ? void 0 : icons.pencilIcon,
1429
1467
  alt: "[pencil]"
1430
- }), /* @__PURE__ */ React38.createElement("span", {
1468
+ }), /* @__PURE__ */ React39.createElement("span", {
1431
1469
  className: "fastboard-toolbar-triangle"
1432
1470
  }))));
1433
1471
  }
1434
1472
  function renderPencilButtonContent() {
1435
- return /* @__PURE__ */ React38.createElement("div", {
1473
+ return /* @__PURE__ */ React39.createElement("div", {
1436
1474
  className: "fastboard-toolbar-panel pencil"
1437
- }, /* @__PURE__ */ React38.createElement(Slider, null), /* @__PURE__ */ React38.createElement(CutLine, null), /* @__PURE__ */ React38.createElement(ColorBox, null));
1475
+ }, /* @__PURE__ */ React39.createElement(Slider, null), /* @__PURE__ */ React39.createElement(CutLine, null), /* @__PURE__ */ React39.createElement(ColorBox, null));
1438
1476
  }
1439
1477
 
1440
1478
  // src/components/Toolbar/components/ShapesButton.tsx
1441
1479
  import Tippy7 from "@tippyjs/react";
1442
- import React39, { useCallback as useCallback8, useContext as useContext10 } from "react";
1480
+ import React40, { useCallback as useCallback8, useContext as useContext10 } from "react";
1443
1481
  import { ApplianceNames as ApplianceNames4 } from "white-web-sdk";
1444
1482
  var ShapeTypes = /* @__PURE__ */ new Set([...ApplianceShapes, ...Shapes]);
1445
1483
  function ShapesButton() {
@@ -1457,9 +1495,9 @@ function ShapesButton() {
1457
1495
  setAppliance(ApplianceNames4.shape, lastShape);
1458
1496
  }
1459
1497
  }, [lastShape, setAppliance]);
1460
- return /* @__PURE__ */ React39.createElement("span", {
1498
+ return /* @__PURE__ */ React40.createElement("span", {
1461
1499
  className: "fastboard-toolbar-btn-interactive"
1462
- }, /* @__PURE__ */ React39.createElement(Tippy7, {
1500
+ }, /* @__PURE__ */ React40.createElement(Tippy7, {
1463
1501
  className: "fastboard-tip",
1464
1502
  content: renderShapesButtonContent(),
1465
1503
  theme,
@@ -1468,33 +1506,33 @@ function ShapesButton() {
1468
1506
  offset: RightOffset,
1469
1507
  arrow: false,
1470
1508
  interactive: true
1471
- }, /* @__PURE__ */ React39.createElement(Button, {
1509
+ }, /* @__PURE__ */ React40.createElement(Button, {
1472
1510
  content: t("shape"),
1473
1511
  active,
1474
1512
  disabled: !writable,
1475
1513
  onClick
1476
- }, /* @__PURE__ */ React39.createElement(CurrentIcon, {
1514
+ }, /* @__PURE__ */ React40.createElement(CurrentIcon, {
1477
1515
  theme,
1478
1516
  active
1479
- }), /* @__PURE__ */ React39.createElement("span", {
1517
+ }), /* @__PURE__ */ React40.createElement("span", {
1480
1518
  className: "fastboard-toolbar-triangle"
1481
1519
  }))));
1482
1520
  }
1483
1521
  function renderShapesButtonContent() {
1484
- return /* @__PURE__ */ React39.createElement("div", {
1522
+ return /* @__PURE__ */ React40.createElement("div", {
1485
1523
  className: "fastboard-toolbar-panel shapes"
1486
- }, /* @__PURE__ */ React39.createElement(ShapesBox, null), /* @__PURE__ */ React39.createElement(CutLine, null), /* @__PURE__ */ React39.createElement(Slider, null), /* @__PURE__ */ React39.createElement(CutLine, null), /* @__PURE__ */ React39.createElement(ColorBox, null));
1524
+ }, /* @__PURE__ */ React40.createElement(ShapesBox, null), /* @__PURE__ */ React40.createElement(CutLine, null), /* @__PURE__ */ React40.createElement(Slider, null), /* @__PURE__ */ React40.createElement(CutLine, null), /* @__PURE__ */ React40.createElement(ColorBox, null));
1487
1525
  }
1488
1526
  function ShapesBox() {
1489
1527
  const { t } = useTranslation();
1490
- return /* @__PURE__ */ React39.createElement("div", {
1528
+ return /* @__PURE__ */ React40.createElement("div", {
1491
1529
  className: "fastboard-toolbar-shapes"
1492
- }, ApplianceShapes.map((Appliance) => /* @__PURE__ */ React39.createElement(ApplianceShapeButton, {
1530
+ }, ApplianceShapes.map((Appliance) => /* @__PURE__ */ React40.createElement(ApplianceShapeButton, {
1493
1531
  key: Appliance,
1494
1532
  content: t(Appliance),
1495
1533
  Appliance,
1496
1534
  Icon: ShapesMap[Appliance]
1497
- })), Shapes.map((shape) => /* @__PURE__ */ React39.createElement(ShapeShapeButton, {
1535
+ })), Shapes.map((shape) => /* @__PURE__ */ React40.createElement(ShapeShapeButton, {
1498
1536
  key: shape,
1499
1537
  content: t(shape),
1500
1538
  shape,
@@ -1505,12 +1543,12 @@ function ApplianceShapeButton({ content, Appliance, Icon: Icon2 }) {
1505
1543
  const { theme, writable, setAppliance, memberState } = useContext10(ToolbarContext);
1506
1544
  const current = memberState == null ? void 0 : memberState.currentApplianceName;
1507
1545
  const disabled = !writable;
1508
- return /* @__PURE__ */ React39.createElement(Button, {
1546
+ return /* @__PURE__ */ React40.createElement(Button, {
1509
1547
  content,
1510
1548
  disabled,
1511
1549
  placement: "top",
1512
1550
  onClick: () => setAppliance(Appliance)
1513
- }, /* @__PURE__ */ React39.createElement(Icon2, {
1551
+ }, /* @__PURE__ */ React40.createElement(Icon2, {
1514
1552
  theme,
1515
1553
  active: current === Appliance
1516
1554
  }));
@@ -1520,12 +1558,12 @@ function ShapeShapeButton({ content, shape, Icon: Icon2 }) {
1520
1558
  const appliance = memberState == null ? void 0 : memberState.currentApplianceName;
1521
1559
  const current = appliance === ApplianceNames4.shape && (memberState == null ? void 0 : memberState.shapeType);
1522
1560
  const disabled = !writable;
1523
- return /* @__PURE__ */ React39.createElement(Button, {
1561
+ return /* @__PURE__ */ React40.createElement(Button, {
1524
1562
  content,
1525
1563
  disabled,
1526
1564
  placement: "top",
1527
1565
  onClick: () => setAppliance(ApplianceNames4.shape, shape)
1528
- }, /* @__PURE__ */ React39.createElement(Icon2, {
1566
+ }, /* @__PURE__ */ React40.createElement(Icon2, {
1529
1567
  theme,
1530
1568
  active: current === shape
1531
1569
  }));
@@ -1533,7 +1571,7 @@ function ShapeShapeButton({ content, shape, Icon: Icon2 }) {
1533
1571
 
1534
1572
  // src/components/Toolbar/components/TextButton.tsx
1535
1573
  import Tippy8 from "@tippyjs/react";
1536
- import React40, { useCallback as useCallback9, useContext as useContext11 } from "react";
1574
+ import React41, { useCallback as useCallback9, useContext as useContext11 } from "react";
1537
1575
  import { ApplianceNames as ApplianceNames5 } from "white-web-sdk";
1538
1576
  function TextButton() {
1539
1577
  const app = useFastboardApp();
@@ -1546,9 +1584,9 @@ function TextButton() {
1546
1584
  const active = appliance === ApplianceNames5.text;
1547
1585
  const disabled = !writable;
1548
1586
  const shortcut = ((app == null ? void 0 : app.hotKeys) || defaultHotKeys).changeToText;
1549
- return /* @__PURE__ */ React40.createElement("span", {
1587
+ return /* @__PURE__ */ React41.createElement("span", {
1550
1588
  className: "fastboard-toolbar-btn-interactive"
1551
- }, /* @__PURE__ */ React40.createElement(Tippy8, {
1589
+ }, /* @__PURE__ */ React41.createElement(Tippy8, {
1552
1590
  className: "fastboard-tip",
1553
1591
  content: renderTextButtonContent(),
1554
1592
  theme,
@@ -1557,53 +1595,53 @@ function TextButton() {
1557
1595
  offset: RightOffset,
1558
1596
  arrow: false,
1559
1597
  interactive: true
1560
- }, /* @__PURE__ */ React40.createElement(Button, {
1598
+ }, /* @__PURE__ */ React41.createElement(Button, {
1561
1599
  content: renderToolTip(t("text"), shortcut),
1562
1600
  active,
1563
1601
  onClick: changeAppliance
1564
- }, /* @__PURE__ */ React40.createElement(Icon, {
1565
- fallback: /* @__PURE__ */ React40.createElement(Icons.Text, {
1602
+ }, /* @__PURE__ */ React41.createElement(Icon, {
1603
+ fallback: /* @__PURE__ */ React41.createElement(Icons.Text, {
1566
1604
  theme,
1567
1605
  active
1568
1606
  }),
1569
1607
  src: disabled ? icons == null ? void 0 : icons.textIconDisable : icons == null ? void 0 : icons.textIcon,
1570
1608
  alt: "[text]"
1571
- }), /* @__PURE__ */ React40.createElement("span", {
1609
+ }), /* @__PURE__ */ React41.createElement("span", {
1572
1610
  className: "fastboard-toolbar-triangle"
1573
1611
  }))));
1574
1612
  }
1575
1613
  function renderTextButtonContent() {
1576
- return /* @__PURE__ */ React40.createElement("div", {
1614
+ return /* @__PURE__ */ React41.createElement("div", {
1577
1615
  className: "fastboard-toolbar-panel text"
1578
- }, /* @__PURE__ */ React40.createElement(ColorBox, null));
1616
+ }, /* @__PURE__ */ React41.createElement(ColorBox, null));
1579
1617
  }
1580
1618
 
1581
1619
  // src/components/Toolbar/components/UpDownButtons.tsx
1582
- import React41, { useCallback as useCallback10, useContext as useContext12 } from "react";
1620
+ import React42, { useCallback as useCallback10, useContext as useContext12 } from "react";
1583
1621
  function UpButton({ disabled, scrollTo }) {
1584
1622
  const { theme, icons } = useContext12(ToolbarContext);
1585
1623
  const scrollUp = useCallback10(() => scrollTo(-ItemHeight), [scrollTo]);
1586
- return /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement(Button, {
1624
+ return /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(Button, {
1587
1625
  content: "Up",
1588
1626
  disabled,
1589
1627
  onClick: scrollUp
1590
- }, /* @__PURE__ */ React41.createElement(Icon, {
1591
- fallback: /* @__PURE__ */ React41.createElement(Icons.Up, {
1628
+ }, /* @__PURE__ */ React42.createElement(Icon, {
1629
+ fallback: /* @__PURE__ */ React42.createElement(Icons.Up, {
1592
1630
  theme
1593
1631
  }),
1594
1632
  src: disabled ? icons == null ? void 0 : icons.upIconDisable : icons == null ? void 0 : icons.upIcon,
1595
1633
  alt: "[up]"
1596
- })), /* @__PURE__ */ React41.createElement(CutLine, null));
1634
+ })), /* @__PURE__ */ React42.createElement(CutLine, null));
1597
1635
  }
1598
1636
  function DownButton({ disabled, scrollTo }) {
1599
1637
  const { theme, icons } = useContext12(ToolbarContext);
1600
1638
  const scrollDown = useCallback10(() => scrollTo(ItemHeight), [scrollTo]);
1601
- return /* @__PURE__ */ React41.createElement(React41.Fragment, null, /* @__PURE__ */ React41.createElement(CutLine, null), /* @__PURE__ */ React41.createElement(Button, {
1639
+ return /* @__PURE__ */ React42.createElement(React42.Fragment, null, /* @__PURE__ */ React42.createElement(CutLine, null), /* @__PURE__ */ React42.createElement(Button, {
1602
1640
  content: "Down",
1603
1641
  disabled,
1604
1642
  onClick: scrollDown
1605
- }, /* @__PURE__ */ React41.createElement(Icon, {
1606
- fallback: /* @__PURE__ */ React41.createElement(Icons.Down, {
1643
+ }, /* @__PURE__ */ React42.createElement(Icon, {
1644
+ fallback: /* @__PURE__ */ React42.createElement(Icons.Down, {
1607
1645
  theme
1608
1646
  }),
1609
1647
  src: disabled ? icons == null ? void 0 : icons.downIconDisable : icons == null ? void 0 : icons.downIcon,
@@ -1647,24 +1685,24 @@ function Content({ onCollapse }) {
1647
1685
  return () => resizeObserver.disconnect();
1648
1686
  }
1649
1687
  }, []);
1650
- return /* @__PURE__ */ React42.createElement(React42.Fragment, null, needScroll && /* @__PURE__ */ React42.createElement(UpButton, {
1688
+ return /* @__PURE__ */ React43.createElement(React43.Fragment, null, needScroll && /* @__PURE__ */ React43.createElement(UpButton, {
1651
1689
  scrollTo,
1652
1690
  disabled: disableScrollUp
1653
- }), /* @__PURE__ */ React42.createElement("div", {
1691
+ }), /* @__PURE__ */ React43.createElement("div", {
1654
1692
  ref,
1655
1693
  className: clsx9(`${name4}-section`),
1656
1694
  style: {
1657
1695
  height: `${sectionHeight}px`,
1658
1696
  overflow: needScroll ? "hidden" : "visible"
1659
1697
  }
1660
- }, /* @__PURE__ */ React42.createElement(ClickerButton, null), /* @__PURE__ */ React42.createElement(SelectorButton, null), /* @__PURE__ */ React42.createElement(PencilButton, null), /* @__PURE__ */ React42.createElement(TextButton, null), /* @__PURE__ */ React42.createElement(ShapesButton, null), /* @__PURE__ */ React42.createElement(EraserButton, null), /* @__PURE__ */ React42.createElement(CleanButton, null), /* @__PURE__ */ React42.createElement(AppsButton, null)), needScroll && /* @__PURE__ */ React42.createElement(DownButton, {
1698
+ }, /* @__PURE__ */ React43.createElement(ClickerButton, null), /* @__PURE__ */ React43.createElement(SelectorButton, null), /* @__PURE__ */ React43.createElement(PencilButton, null), /* @__PURE__ */ React43.createElement(TextButton, null), /* @__PURE__ */ React43.createElement(ShapesButton, null), /* @__PURE__ */ React43.createElement(EraserButton, null), /* @__PURE__ */ React43.createElement(CleanButton, null), /* @__PURE__ */ React43.createElement(AppsButton, null)), needScroll && /* @__PURE__ */ React43.createElement(DownButton, {
1661
1699
  scrollTo,
1662
1700
  disabled: disableScrollDown
1663
- }), /* @__PURE__ */ React42.createElement("div", {
1701
+ }), /* @__PURE__ */ React43.createElement("div", {
1664
1702
  className: clsx9("fastboard-toolbar-mask", theme),
1665
1703
  onClick: onCollapse
1666
- }, /* @__PURE__ */ React42.createElement(Icon, {
1667
- fallback: /* @__PURE__ */ React42.createElement("img", {
1704
+ }, /* @__PURE__ */ React43.createElement(Icon, {
1705
+ fallback: /* @__PURE__ */ React43.createElement("img", {
1668
1706
  draggable: false,
1669
1707
  className: clsx9(`${name4}-mask-btn`, theme),
1670
1708
  src: collapsed_default
@@ -1684,9 +1722,9 @@ function Toolbar({ theme, icons }) {
1684
1722
  const [expanded, setExpanded] = useState5(true);
1685
1723
  const [pointerEvents, setPointerEvents] = useState5("auto");
1686
1724
  const disabled = !hook.writable;
1687
- return /* @__PURE__ */ React43.createElement(ToolbarContext.Provider, {
1725
+ return /* @__PURE__ */ React44.createElement(ToolbarContext.Provider, {
1688
1726
  value: __spreadValues({ theme, icons }, hook)
1689
- }, /* @__PURE__ */ React43.createElement(AnimatePresence, null, expanded ? /* @__PURE__ */ React43.createElement(motion.div, {
1727
+ }, /* @__PURE__ */ React44.createElement(AnimatePresence, null, expanded ? /* @__PURE__ */ React44.createElement(motion.div, {
1690
1728
  key: "toolbar",
1691
1729
  className: clsx10(name4, theme),
1692
1730
  initial: { x: -100 },
@@ -1695,16 +1733,16 @@ function Toolbar({ theme, icons }) {
1695
1733
  onAnimationStart: () => setPointerEvents("none"),
1696
1734
  onAnimationComplete: () => setPointerEvents("auto"),
1697
1735
  style: { pointerEvents }
1698
- }, /* @__PURE__ */ React43.createElement(Content, {
1736
+ }, /* @__PURE__ */ React44.createElement(Content, {
1699
1737
  onCollapse: () => setExpanded(false)
1700
- })) : /* @__PURE__ */ React43.createElement(motion.div, {
1738
+ })) : /* @__PURE__ */ React44.createElement(motion.div, {
1701
1739
  className: clsx10(`${name4}-expand-btn`, theme),
1702
1740
  key: "expand",
1703
1741
  onClick: () => setExpanded(true),
1704
1742
  initial: { x: -100 },
1705
1743
  animate: { x: 0, transition: { duration: 0.5 } }
1706
- }, /* @__PURE__ */ React43.createElement(Icon, {
1707
- fallback: /* @__PURE__ */ React43.createElement("img", {
1744
+ }, /* @__PURE__ */ React44.createElement(Icon, {
1745
+ fallback: /* @__PURE__ */ React44.createElement("img", {
1708
1746
  draggable: false,
1709
1747
  src: expanded_default,
1710
1748
  className: clsx10(`${name4}-mask-btn`, theme)
@@ -1785,16 +1823,16 @@ function usePlayerControl(player) {
1785
1823
  import Tippy10 from "@tippyjs/react";
1786
1824
  import clsx12 from "clsx";
1787
1825
  import RcSlider2 from "rc-slider";
1788
- import React48, { useEffect as useEffect5, useState as useState7 } from "react";
1826
+ import React49, { useEffect as useEffect5, useState as useState7 } from "react";
1789
1827
  import { PlayerPhase as PlayerPhase2 } from "white-web-sdk";
1790
1828
 
1791
1829
  // src/components/PlayerControl/components/Button.tsx
1792
1830
  import clsx11 from "clsx";
1793
- import React44, { forwardRef as forwardRef2 } from "react";
1831
+ import React45, { forwardRef as forwardRef2 } from "react";
1794
1832
  import Tippy9 from "@tippyjs/react";
1795
1833
  var Button2 = forwardRef2((props, ref) => {
1796
1834
  const { theme, content, disabled, active, onClick, interactive, placement = "top", children } = props;
1797
- return /* @__PURE__ */ React44.createElement(Tippy9, {
1835
+ return /* @__PURE__ */ React45.createElement(Tippy9, {
1798
1836
  className: "fastboard-tip",
1799
1837
  content,
1800
1838
  interactive,
@@ -1804,7 +1842,7 @@ var Button2 = forwardRef2((props, ref) => {
1804
1842
  offset: TopOffset,
1805
1843
  delay: [1e3, 400],
1806
1844
  duration: 300
1807
- }, /* @__PURE__ */ React44.createElement("button", {
1845
+ }, /* @__PURE__ */ React45.createElement("button", {
1808
1846
  ref,
1809
1847
  className: clsx11("fastboard-player-control-btn", theme, { active }),
1810
1848
  onClick,
@@ -1816,36 +1854,36 @@ var Button2 = forwardRef2((props, ref) => {
1816
1854
  import { memo as memo2 } from "react";
1817
1855
 
1818
1856
  // src/components/PlayerControl/icons/Loading.tsx
1819
- import React45 from "react";
1820
- var Loading = (props) => {
1857
+ import React46 from "react";
1858
+ var Loading2 = (props) => {
1821
1859
  const stroke = getStroke(props);
1822
- return /* @__PURE__ */ React45.createElement("svg", {
1860
+ return /* @__PURE__ */ React46.createElement("svg", {
1823
1861
  viewBox: "0 0 24 24"
1824
- }, /* @__PURE__ */ React45.createElement("path", {
1862
+ }, /* @__PURE__ */ React46.createElement("path", {
1825
1863
  d: "M12 4V2A10 10 0 0 0 2 12h2a8 8 0 0 1 8-8z",
1826
1864
  fill: stroke
1827
1865
  }));
1828
1866
  };
1829
1867
 
1830
1868
  // src/components/PlayerControl/icons/Pause.tsx
1831
- import React46 from "react";
1869
+ import React47 from "react";
1832
1870
  var Pause = (props) => {
1833
1871
  const stroke = getStroke(props);
1834
- return /* @__PURE__ */ React46.createElement("svg", {
1872
+ return /* @__PURE__ */ React47.createElement("svg", {
1835
1873
  viewBox: "0 0 24 24"
1836
- }, /* @__PURE__ */ React46.createElement("path", {
1874
+ }, /* @__PURE__ */ React47.createElement("path", {
1837
1875
  d: "M14 19h4V5h-4M6 19h4V5H6v14z",
1838
1876
  fill: stroke
1839
1877
  }));
1840
1878
  };
1841
1879
 
1842
1880
  // src/components/PlayerControl/icons/Play.tsx
1843
- import React47 from "react";
1881
+ import React48 from "react";
1844
1882
  var Play = (props) => {
1845
1883
  const stroke = getStroke(props);
1846
- return /* @__PURE__ */ React47.createElement("svg", {
1884
+ return /* @__PURE__ */ React48.createElement("svg", {
1847
1885
  viewBox: "0 0 24 24"
1848
- }, /* @__PURE__ */ React47.createElement("path", {
1886
+ }, /* @__PURE__ */ React48.createElement("path", {
1849
1887
  d: "M8 5.14v14l11-7l-11-7z",
1850
1888
  fill: stroke
1851
1889
  }));
@@ -1855,7 +1893,7 @@ var Play = (props) => {
1855
1893
  var Icons2 = {
1856
1894
  Play: memo2(Play),
1857
1895
  Pause: memo2(Pause),
1858
- Loading: memo2(Loading)
1896
+ Loading: memo2(Loading2)
1859
1897
  };
1860
1898
 
1861
1899
  // src/components/PlayerControl/PlayerControl.tsx
@@ -1865,7 +1903,7 @@ function PlayerControl(_a) {
1865
1903
  theme = useTheme(theme);
1866
1904
  const { t } = useTranslation();
1867
1905
  const [currentTime, setCurrentTime] = useState7(0);
1868
- const player = usePlayerControl(player_);
1906
+ const player = usePlayerControl(player_ == null ? void 0 : player_.player);
1869
1907
  useEffect5(() => {
1870
1908
  setCurrentTime(player.currentTime);
1871
1909
  }, [player.currentTime]);
@@ -1877,25 +1915,25 @@ function PlayerControl(_a) {
1877
1915
  const isLoading = player.phase === PlayerPhase2.WaitingFirstFrame || player.phase === PlayerPhase2.Buffering;
1878
1916
  const isPlaying = player.phase === PlayerPhase2.Playing;
1879
1917
  const { activeColor } = themes[theme];
1880
- return /* @__PURE__ */ React48.createElement("div", {
1918
+ return /* @__PURE__ */ React49.createElement("div", {
1881
1919
  className: clsx12(name5, theme, { "auto-hide": autoHide })
1882
- }, /* @__PURE__ */ React48.createElement("button", {
1920
+ }, /* @__PURE__ */ React49.createElement("button", {
1883
1921
  className: clsx12(`${name5}-btn`, isLoading ? "loading" : isPlaying ? "pause" : "play", theme),
1884
1922
  disabled: isLoading,
1885
1923
  onClick: player.togglePlay
1886
- }, /* @__PURE__ */ React48.createElement(Icon, {
1887
- fallback: isLoading ? /* @__PURE__ */ React48.createElement(Icons2.Loading, {
1924
+ }, /* @__PURE__ */ React49.createElement(Icon, {
1925
+ fallback: isLoading ? /* @__PURE__ */ React49.createElement(Icons2.Loading, {
1888
1926
  theme
1889
- }) : isPlaying ? /* @__PURE__ */ React48.createElement(Icons2.Pause, {
1927
+ }) : isPlaying ? /* @__PURE__ */ React49.createElement(Icons2.Pause, {
1890
1928
  theme
1891
- }) : /* @__PURE__ */ React48.createElement(Icons2.Play, {
1929
+ }) : /* @__PURE__ */ React49.createElement(Icons2.Play, {
1892
1930
  theme
1893
1931
  }),
1894
1932
  src: isLoading ? icons.loadingIcon : isPlaying ? icons.pauseIcon : icons.playIcon,
1895
1933
  alt: isLoading ? "[loading]" : isPlaying ? "[pause]" : "[play]"
1896
- })), /* @__PURE__ */ React48.createElement("span", {
1934
+ })), /* @__PURE__ */ React49.createElement("span", {
1897
1935
  className: clsx12(`${name5}-slider`, { loading: isLoading }, theme)
1898
- }, /* @__PURE__ */ React48.createElement(RcSlider2, {
1936
+ }, /* @__PURE__ */ React49.createElement(RcSlider2, {
1899
1937
  disabled: isLoading,
1900
1938
  trackStyle: { background: activeColor },
1901
1939
  handleStyle: { border: `1px solid ${activeColor}` },
@@ -1904,15 +1942,15 @@ function PlayerControl(_a) {
1904
1942
  min: 0,
1905
1943
  max: player.totalTime,
1906
1944
  step: 100
1907
- })), /* @__PURE__ */ React48.createElement("span", {
1945
+ })), /* @__PURE__ */ React49.createElement("span", {
1908
1946
  className: clsx12(`${name5}-current`, theme)
1909
- }, renderTime(player.currentTime)), /* @__PURE__ */ React48.createElement("span", {
1947
+ }, renderTime(player.currentTime)), /* @__PURE__ */ React49.createElement("span", {
1910
1948
  className: clsx12(`${name5}-slash`, theme)
1911
- }, "/"), /* @__PURE__ */ React48.createElement("span", {
1949
+ }, "/"), /* @__PURE__ */ React49.createElement("span", {
1912
1950
  className: clsx12(`${name5}-total`, theme)
1913
- }, renderTime(player.totalTime)), /* @__PURE__ */ React48.createElement("span", {
1951
+ }, renderTime(player.totalTime)), /* @__PURE__ */ React49.createElement("span", {
1914
1952
  className: `${name5}-btn-interactive`
1915
- }, /* @__PURE__ */ React48.createElement(Tippy10, {
1953
+ }, /* @__PURE__ */ React49.createElement(Tippy10, {
1916
1954
  className: "fastboard-tip",
1917
1955
  content: renderSpeeds(player),
1918
1956
  theme,
@@ -1921,11 +1959,11 @@ function PlayerControl(_a) {
1921
1959
  offset: TopOffset,
1922
1960
  arrow: false,
1923
1961
  interactive: true
1924
- }, /* @__PURE__ */ React48.createElement(Button2, {
1962
+ }, /* @__PURE__ */ React49.createElement(Button2, {
1925
1963
  content: t("speed"),
1926
1964
  theme,
1927
1965
  disabled: isLoading
1928
- }, /* @__PURE__ */ React48.createElement("span", {
1966
+ }, /* @__PURE__ */ React49.createElement("span", {
1929
1967
  className: clsx12(`${name5}-speed-text`, theme)
1930
1968
  }, player.speed, "x")))));
1931
1969
  }
@@ -1937,9 +1975,9 @@ function renderTime(ms) {
1937
1975
  }
1938
1976
  var Speeds = [2, 1.5, 1.25, 1, 0.75, 0.5];
1939
1977
  function renderSpeeds({ speed: current, setSpeed }) {
1940
- return /* @__PURE__ */ React48.createElement("div", {
1978
+ return /* @__PURE__ */ React49.createElement("div", {
1941
1979
  className: clsx12(`${name5}-panel`, "speed")
1942
- }, Speeds.map((speed) => /* @__PURE__ */ React48.createElement("button", {
1980
+ }, Speeds.map((speed) => /* @__PURE__ */ React49.createElement("button", {
1943
1981
  className: clsx12(`${name5}-btn`, "speed", {
1944
1982
  active: speed === current
1945
1983
  }),
@@ -1949,91 +1987,2949 @@ function renderSpeeds({ speed: current, setSpeed }) {
1949
1987
  }
1950
1988
 
1951
1989
  // src/components/Fastboard.tsx
1952
- import React49, { forwardRef as forwardRef3, useCallback as useCallback13, useEffect as useEffect6 } from "react";
1953
- var Fastboard = /* @__PURE__ */ forwardRef3(function Fastboard2(_a, ref) {
1954
- var _b = _a, { app, theme, layout, language } = _b, restProps = __objRest(_b, ["app", "theme", "layout", "language"]);
1955
- if (!app) {
1956
- return /* @__PURE__ */ React49.createElement("div", __spreadValues({
1957
- className: "fastboard-root",
1958
- ref
1959
- }, restProps));
1990
+ import React50, { forwardRef as forwardRef3, useCallback as useCallback13, useEffect as useEffect6 } from "react";
1991
+
1992
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/enums.js
1993
+ var top = "top";
1994
+ var bottom = "bottom";
1995
+ var right = "right";
1996
+ var left = "left";
1997
+ var auto = "auto";
1998
+ var basePlacements = [top, bottom, right, left];
1999
+ var start = "start";
2000
+ var end = "end";
2001
+ var clippingParents = "clippingParents";
2002
+ var viewport = "viewport";
2003
+ var popper = "popper";
2004
+ var reference = "reference";
2005
+ var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) {
2006
+ return acc.concat([placement + "-" + start, placement + "-" + end]);
2007
+ }, []);
2008
+ var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) {
2009
+ return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
2010
+ }, []);
2011
+ var beforeRead = "beforeRead";
2012
+ var read = "read";
2013
+ var afterRead = "afterRead";
2014
+ var beforeMain = "beforeMain";
2015
+ var main = "main";
2016
+ var afterMain = "afterMain";
2017
+ var beforeWrite = "beforeWrite";
2018
+ var write = "write";
2019
+ var afterWrite = "afterWrite";
2020
+ var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
2021
+
2022
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js
2023
+ function getNodeName(element) {
2024
+ return element ? (element.nodeName || "").toLowerCase() : null;
2025
+ }
2026
+
2027
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getWindow.js
2028
+ function getWindow(node) {
2029
+ if (node == null) {
2030
+ return window;
1960
2031
  }
1961
- return /* @__PURE__ */ React49.createElement(FastboardAppContext.Provider, {
1962
- value: app
1963
- }, /* @__PURE__ */ React49.createElement(FastboardInternal, __spreadValues(__spreadValues({
1964
- forwardedRef: ref
1965
- }, { theme, layout, language }), restProps)));
1966
- });
1967
- function FastboardInternal(_a) {
1968
- var _b = _a, {
1969
- forwardedRef,
1970
- language,
1971
- layout = {},
1972
- theme = "light",
1973
- children
1974
- } = _b, restProps = __objRest(_b, [
1975
- "forwardedRef",
1976
- "language",
1977
- "layout",
1978
- "theme",
1979
- "children"
1980
- ]);
1981
- const app = useFastboardApp();
1982
- const forceUpdate = useForceUpdate();
1983
- const i18n = useAsyncValue(() => createI18n({ language }));
1984
- useEffect6(() => {
1985
- if (i18n)
1986
- i18n.changeLanguage(language);
1987
- forceUpdate();
1988
- }, [forceUpdate, i18n, language]);
1989
- useEffect6(() => {
1990
- app.manager.setPrefersColorScheme(theme);
1991
- }, [app, theme]);
1992
- const useWhiteboard = useCallback13((container) => {
1993
- if (container && app)
1994
- app.manager.bindContainer(container);
1995
- }, [app]);
1996
- const hideControls = useHideControls();
1997
- const showControls = !hideControls;
1998
- const {
1999
- Toolbar: toolbar = showControls || hideControls === "toolbar-only",
2000
- RedoUndo: redo_undo = showControls,
2001
- ZoomControl: zoom_control = showControls,
2002
- PageControl: page_control = showControls
2003
- } = layout;
2004
- return /* @__PURE__ */ React49.createElement(ThemeContext.Provider, {
2005
- value: theme
2006
- }, /* @__PURE__ */ React49.createElement(I18nContext.Provider, {
2007
- value: i18n
2008
- }, /* @__PURE__ */ React49.createElement("div", __spreadProps(__spreadValues({}, restProps), {
2009
- className: "fastboard-root",
2010
- ref: forwardedRef
2011
- }), /* @__PURE__ */ React49.createElement("div", {
2012
- className: "fastboard-view",
2013
- ref: useWhiteboard,
2014
- onPointerDownCapture: focusThisElementImmediate
2015
- }), children ? children : /* @__PURE__ */ React49.createElement(React49.Fragment, null, toolbar && /* @__PURE__ */ React49.createElement("div", {
2016
- className: "fastboard-left"
2017
- }, /* @__PURE__ */ React49.createElement(Toolbar, null)), (redo_undo || zoom_control) && /* @__PURE__ */ React49.createElement("div", {
2018
- className: "fastboard-bottom-left"
2019
- }, redo_undo && /* @__PURE__ */ React49.createElement(RedoUndo, null), zoom_control && /* @__PURE__ */ React49.createElement(ZoomControl, null)), page_control && /* @__PURE__ */ React49.createElement("div", {
2020
- className: "fastboard-bottom-right"
2021
- }, /* @__PURE__ */ React49.createElement(PageControl, null))))));
2032
+ if (node.toString() !== "[object Window]") {
2033
+ var ownerDocument = node.ownerDocument;
2034
+ return ownerDocument ? ownerDocument.defaultView || window : window;
2035
+ }
2036
+ return node;
2037
+ }
2038
+
2039
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js
2040
+ function isElement(node) {
2041
+ var OwnElement = getWindow(node).Element;
2042
+ return node instanceof OwnElement || node instanceof Element;
2043
+ }
2044
+ function isHTMLElement(node) {
2045
+ var OwnElement = getWindow(node).HTMLElement;
2046
+ return node instanceof OwnElement || node instanceof HTMLElement;
2047
+ }
2048
+ function isShadowRoot(node) {
2049
+ if (typeof ShadowRoot === "undefined") {
2050
+ return false;
2051
+ }
2052
+ var OwnElement = getWindow(node).ShadowRoot;
2053
+ return node instanceof OwnElement || node instanceof ShadowRoot;
2054
+ }
2055
+
2056
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/applyStyles.js
2057
+ function applyStyles2(_ref) {
2058
+ var state = _ref.state;
2059
+ Object.keys(state.elements).forEach(function(name6) {
2060
+ var style = state.styles[name6] || {};
2061
+ var attributes = state.attributes[name6] || {};
2062
+ var element = state.elements[name6];
2063
+ if (!isHTMLElement(element) || !getNodeName(element)) {
2064
+ return;
2065
+ }
2066
+ Object.assign(element.style, style);
2067
+ Object.keys(attributes).forEach(function(name7) {
2068
+ var value = attributes[name7];
2069
+ if (value === false) {
2070
+ element.removeAttribute(name7);
2071
+ } else {
2072
+ element.setAttribute(name7, value === true ? "" : value);
2073
+ }
2074
+ });
2075
+ });
2076
+ }
2077
+ function effect(_ref2) {
2078
+ var state = _ref2.state;
2079
+ var initialStyles = {
2080
+ popper: {
2081
+ position: state.options.strategy,
2082
+ left: "0",
2083
+ top: "0",
2084
+ margin: "0"
2085
+ },
2086
+ arrow: {
2087
+ position: "absolute"
2088
+ },
2089
+ reference: {}
2090
+ };
2091
+ Object.assign(state.elements.popper.style, initialStyles.popper);
2092
+ state.styles = initialStyles;
2093
+ if (state.elements.arrow) {
2094
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
2095
+ }
2096
+ return function() {
2097
+ Object.keys(state.elements).forEach(function(name6) {
2098
+ var element = state.elements[name6];
2099
+ var attributes = state.attributes[name6] || {};
2100
+ var styleProperties = Object.keys(state.styles.hasOwnProperty(name6) ? state.styles[name6] : initialStyles[name6]);
2101
+ var style = styleProperties.reduce(function(style2, property) {
2102
+ style2[property] = "";
2103
+ return style2;
2104
+ }, {});
2105
+ if (!isHTMLElement(element) || !getNodeName(element)) {
2106
+ return;
2107
+ }
2108
+ Object.assign(element.style, style);
2109
+ Object.keys(attributes).forEach(function(attribute) {
2110
+ element.removeAttribute(attribute);
2111
+ });
2112
+ });
2113
+ };
2114
+ }
2115
+ var applyStyles_default = {
2116
+ name: "applyStyles",
2117
+ enabled: true,
2118
+ phase: "write",
2119
+ fn: applyStyles2,
2120
+ effect,
2121
+ requires: ["computeStyles"]
2122
+ };
2123
+
2124
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getBasePlacement.js
2125
+ function getBasePlacement(placement) {
2126
+ return placement.split("-")[0];
2127
+ }
2128
+
2129
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/math.js
2130
+ var max = Math.max;
2131
+ var min = Math.min;
2132
+ var round = Math.round;
2133
+
2134
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
2135
+ function getBoundingClientRect(element, includeScale) {
2136
+ if (includeScale === void 0) {
2137
+ includeScale = false;
2138
+ }
2139
+ var rect = element.getBoundingClientRect();
2140
+ var scaleX = 1;
2141
+ var scaleY = 1;
2142
+ if (isHTMLElement(element) && includeScale) {
2143
+ var offsetHeight = element.offsetHeight;
2144
+ var offsetWidth = element.offsetWidth;
2145
+ if (offsetWidth > 0) {
2146
+ scaleX = round(rect.width) / offsetWidth || 1;
2147
+ }
2148
+ if (offsetHeight > 0) {
2149
+ scaleY = round(rect.height) / offsetHeight || 1;
2150
+ }
2151
+ }
2152
+ return {
2153
+ width: rect.width / scaleX,
2154
+ height: rect.height / scaleY,
2155
+ top: rect.top / scaleY,
2156
+ right: rect.right / scaleX,
2157
+ bottom: rect.bottom / scaleY,
2158
+ left: rect.left / scaleX,
2159
+ x: rect.left / scaleX,
2160
+ y: rect.top / scaleY
2161
+ };
2162
+ }
2163
+
2164
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js
2165
+ function getLayoutRect(element) {
2166
+ var clientRect = getBoundingClientRect(element);
2167
+ var width = element.offsetWidth;
2168
+ var height = element.offsetHeight;
2169
+ if (Math.abs(clientRect.width - width) <= 1) {
2170
+ width = clientRect.width;
2171
+ }
2172
+ if (Math.abs(clientRect.height - height) <= 1) {
2173
+ height = clientRect.height;
2174
+ }
2175
+ return {
2176
+ x: element.offsetLeft,
2177
+ y: element.offsetTop,
2178
+ width,
2179
+ height
2180
+ };
2181
+ }
2182
+
2183
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/contains.js
2184
+ function contains(parent, child) {
2185
+ var rootNode = child.getRootNode && child.getRootNode();
2186
+ if (parent.contains(child)) {
2187
+ return true;
2188
+ } else if (rootNode && isShadowRoot(rootNode)) {
2189
+ var next = child;
2190
+ do {
2191
+ if (next && parent.isSameNode(next)) {
2192
+ return true;
2193
+ }
2194
+ next = next.parentNode || next.host;
2195
+ } while (next);
2196
+ }
2197
+ return false;
2198
+ }
2199
+
2200
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js
2201
+ function getComputedStyle2(element) {
2202
+ return getWindow(element).getComputedStyle(element);
2203
+ }
2204
+
2205
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js
2206
+ function isTableElement(element) {
2207
+ return ["table", "td", "th"].indexOf(getNodeName(element)) >= 0;
2208
+ }
2209
+
2210
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js
2211
+ function getDocumentElement(element) {
2212
+ return ((isElement(element) ? element.ownerDocument : element.document) || window.document).documentElement;
2213
+ }
2214
+
2215
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js
2216
+ function getParentNode(element) {
2217
+ if (getNodeName(element) === "html") {
2218
+ return element;
2219
+ }
2220
+ return element.assignedSlot || element.parentNode || (isShadowRoot(element) ? element.host : null) || getDocumentElement(element);
2221
+ }
2222
+
2223
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js
2224
+ function getTrueOffsetParent(element) {
2225
+ if (!isHTMLElement(element) || getComputedStyle2(element).position === "fixed") {
2226
+ return null;
2227
+ }
2228
+ return element.offsetParent;
2229
+ }
2230
+ function getContainingBlock(element) {
2231
+ var isFirefox = navigator.userAgent.toLowerCase().indexOf("firefox") !== -1;
2232
+ var isIE = navigator.userAgent.indexOf("Trident") !== -1;
2233
+ if (isIE && isHTMLElement(element)) {
2234
+ var elementCss = getComputedStyle2(element);
2235
+ if (elementCss.position === "fixed") {
2236
+ return null;
2237
+ }
2238
+ }
2239
+ var currentNode = getParentNode(element);
2240
+ while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) {
2241
+ var css = getComputedStyle2(currentNode);
2242
+ if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") {
2243
+ return currentNode;
2244
+ } else {
2245
+ currentNode = currentNode.parentNode;
2246
+ }
2247
+ }
2248
+ return null;
2249
+ }
2250
+ function getOffsetParent(element) {
2251
+ var window2 = getWindow(element);
2252
+ var offsetParent = getTrueOffsetParent(element);
2253
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle2(offsetParent).position === "static") {
2254
+ offsetParent = getTrueOffsetParent(offsetParent);
2255
+ }
2256
+ if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle2(offsetParent).position === "static")) {
2257
+ return window2;
2258
+ }
2259
+ return offsetParent || getContainingBlock(element) || window2;
2260
+ }
2261
+
2262
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js
2263
+ function getMainAxisFromPlacement(placement) {
2264
+ return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y";
2265
+ }
2266
+
2267
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/within.js
2268
+ function within(min2, value, max2) {
2269
+ return max(min2, min(value, max2));
2270
+ }
2271
+ function withinMaxClamp(min2, value, max2) {
2272
+ var v = within(min2, value, max2);
2273
+ return v > max2 ? max2 : v;
2274
+ }
2275
+
2276
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js
2277
+ function getFreshSideObject() {
2278
+ return {
2279
+ top: 0,
2280
+ right: 0,
2281
+ bottom: 0,
2282
+ left: 0
2283
+ };
2284
+ }
2285
+
2286
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js
2287
+ function mergePaddingObject(paddingObject) {
2288
+ return Object.assign({}, getFreshSideObject(), paddingObject);
2289
+ }
2290
+
2291
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/expandToHashMap.js
2292
+ function expandToHashMap(value, keys) {
2293
+ return keys.reduce(function(hashMap, key) {
2294
+ hashMap[key] = value;
2295
+ return hashMap;
2296
+ }, {});
2297
+ }
2298
+
2299
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/arrow.js
2300
+ var toPaddingObject = function toPaddingObject2(padding, state) {
2301
+ padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, {
2302
+ placement: state.placement
2303
+ })) : padding;
2304
+ return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
2305
+ };
2306
+ function arrow(_ref) {
2307
+ var _state$modifiersData$;
2308
+ var state = _ref.state, name6 = _ref.name, options = _ref.options;
2309
+ var arrowElement = state.elements.arrow;
2310
+ var popperOffsets2 = state.modifiersData.popperOffsets;
2311
+ var basePlacement = getBasePlacement(state.placement);
2312
+ var axis = getMainAxisFromPlacement(basePlacement);
2313
+ var isVertical = [left, right].indexOf(basePlacement) >= 0;
2314
+ var len = isVertical ? "height" : "width";
2315
+ if (!arrowElement || !popperOffsets2) {
2316
+ return;
2317
+ }
2318
+ var paddingObject = toPaddingObject(options.padding, state);
2319
+ var arrowRect = getLayoutRect(arrowElement);
2320
+ var minProp = axis === "y" ? top : left;
2321
+ var maxProp = axis === "y" ? bottom : right;
2322
+ var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len];
2323
+ var startDiff = popperOffsets2[axis] - state.rects.reference[axis];
2324
+ var arrowOffsetParent = getOffsetParent(arrowElement);
2325
+ var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
2326
+ var centerToReference = endDiff / 2 - startDiff / 2;
2327
+ var min2 = paddingObject[minProp];
2328
+ var max2 = clientSize - arrowRect[len] - paddingObject[maxProp];
2329
+ var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
2330
+ var offset2 = within(min2, center, max2);
2331
+ var axisProp = axis;
2332
+ state.modifiersData[name6] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$);
2333
+ }
2334
+ function effect2(_ref2) {
2335
+ var state = _ref2.state, options = _ref2.options;
2336
+ var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element;
2337
+ if (arrowElement == null) {
2338
+ return;
2339
+ }
2340
+ if (typeof arrowElement === "string") {
2341
+ arrowElement = state.elements.popper.querySelector(arrowElement);
2342
+ if (!arrowElement) {
2343
+ return;
2344
+ }
2345
+ }
2346
+ if (true) {
2347
+ if (!isHTMLElement(arrowElement)) {
2348
+ console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).', "To use an SVG arrow, wrap it in an HTMLElement that will be used as", "the arrow."].join(" "));
2349
+ }
2350
+ }
2351
+ if (!contains(state.elements.popper, arrowElement)) {
2352
+ if (true) {
2353
+ console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper', "element."].join(" "));
2354
+ }
2355
+ return;
2356
+ }
2357
+ state.elements.arrow = arrowElement;
2022
2358
  }
2023
- function focusThisElementImmediate(ev) {
2024
- ev.currentTarget.focus();
2359
+ var arrow_default = {
2360
+ name: "arrow",
2361
+ enabled: true,
2362
+ phase: "main",
2363
+ fn: arrow,
2364
+ effect: effect2,
2365
+ requires: ["popperOffsets"],
2366
+ requiresIfExists: ["preventOverflow"]
2367
+ };
2368
+
2369
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getVariation.js
2370
+ function getVariation(placement) {
2371
+ return placement.split("-")[1];
2025
2372
  }
2026
2373
 
2374
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/computeStyles.js
2375
+ var unsetSides = {
2376
+ top: "auto",
2377
+ right: "auto",
2378
+ bottom: "auto",
2379
+ left: "auto"
2380
+ };
2381
+ function roundOffsetsByDPR(_ref) {
2382
+ var x = _ref.x, y = _ref.y;
2383
+ var win = window;
2384
+ var dpr = win.devicePixelRatio || 1;
2385
+ return {
2386
+ x: round(x * dpr) / dpr || 0,
2387
+ y: round(y * dpr) / dpr || 0
2388
+ };
2389
+ }
2390
+ function mapToStyles(_ref2) {
2391
+ var _Object$assign2;
2392
+ var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed;
2393
+ var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y;
2394
+ var _ref3 = typeof roundOffsets === "function" ? roundOffsets({
2395
+ x,
2396
+ y
2397
+ }) : {
2398
+ x,
2399
+ y
2400
+ };
2401
+ x = _ref3.x;
2402
+ y = _ref3.y;
2403
+ var hasX = offsets.hasOwnProperty("x");
2404
+ var hasY = offsets.hasOwnProperty("y");
2405
+ var sideX = left;
2406
+ var sideY = top;
2407
+ var win = window;
2408
+ if (adaptive) {
2409
+ var offsetParent = getOffsetParent(popper2);
2410
+ var heightProp = "clientHeight";
2411
+ var widthProp = "clientWidth";
2412
+ if (offsetParent === getWindow(popper2)) {
2413
+ offsetParent = getDocumentElement(popper2);
2414
+ if (getComputedStyle2(offsetParent).position !== "static" && position === "absolute") {
2415
+ heightProp = "scrollHeight";
2416
+ widthProp = "scrollWidth";
2417
+ }
2418
+ }
2419
+ offsetParent = offsetParent;
2420
+ if (placement === top || (placement === left || placement === right) && variation === end) {
2421
+ sideY = bottom;
2422
+ var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : offsetParent[heightProp];
2423
+ y -= offsetY - popperRect.height;
2424
+ y *= gpuAcceleration ? 1 : -1;
2425
+ }
2426
+ if (placement === left || (placement === top || placement === bottom) && variation === end) {
2427
+ sideX = right;
2428
+ var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : offsetParent[widthProp];
2429
+ x -= offsetX - popperRect.width;
2430
+ x *= gpuAcceleration ? 1 : -1;
2431
+ }
2432
+ }
2433
+ var commonStyles = Object.assign({
2434
+ position
2435
+ }, adaptive && unsetSides);
2436
+ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
2437
+ x,
2438
+ y
2439
+ }) : {
2440
+ x,
2441
+ y
2442
+ };
2443
+ x = _ref4.x;
2444
+ y = _ref4.y;
2445
+ if (gpuAcceleration) {
2446
+ var _Object$assign;
2447
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
2448
+ }
2449
+ return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2));
2450
+ }
2451
+ function computeStyles(_ref5) {
2452
+ var state = _ref5.state, options = _ref5.options;
2453
+ var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
2454
+ if (true) {
2455
+ var transitionProperty = getComputedStyle2(state.elements.popper).transitionProperty || "";
2456
+ if (adaptive && ["transform", "top", "right", "bottom", "left"].some(function(property) {
2457
+ return transitionProperty.indexOf(property) >= 0;
2458
+ })) {
2459
+ console.warn(["Popper: Detected CSS transitions on at least one of the following", 'CSS properties: "transform", "top", "right", "bottom", "left".', "\n\n", 'Disable the "computeStyles" modifier\'s `adaptive` option to allow', "for smooth transitions, or remove these properties from the CSS", "transition declaration on the popper element if only transitioning", "opacity or background-color for example.", "\n\n", "We recommend using the popper element as a wrapper around an inner", "element that can have any CSS property transitioned for animations."].join(" "));
2460
+ }
2461
+ }
2462
+ var commonStyles = {
2463
+ placement: getBasePlacement(state.placement),
2464
+ variation: getVariation(state.placement),
2465
+ popper: state.elements.popper,
2466
+ popperRect: state.rects.popper,
2467
+ gpuAcceleration,
2468
+ isFixed: state.options.strategy === "fixed"
2469
+ };
2470
+ if (state.modifiersData.popperOffsets != null) {
2471
+ state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
2472
+ offsets: state.modifiersData.popperOffsets,
2473
+ position: state.options.strategy,
2474
+ adaptive,
2475
+ roundOffsets
2476
+ })));
2477
+ }
2478
+ if (state.modifiersData.arrow != null) {
2479
+ state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
2480
+ offsets: state.modifiersData.arrow,
2481
+ position: "absolute",
2482
+ adaptive: false,
2483
+ roundOffsets
2484
+ })));
2485
+ }
2486
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
2487
+ "data-popper-placement": state.placement
2488
+ });
2489
+ }
2490
+ var computeStyles_default = {
2491
+ name: "computeStyles",
2492
+ enabled: true,
2493
+ phase: "beforeWrite",
2494
+ fn: computeStyles,
2495
+ data: {}
2496
+ };
2497
+
2498
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/eventListeners.js
2499
+ var passive = {
2500
+ passive: true
2501
+ };
2502
+ function effect3(_ref) {
2503
+ var state = _ref.state, instance = _ref.instance, options = _ref.options;
2504
+ var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize;
2505
+ var window2 = getWindow(state.elements.popper);
2506
+ var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
2507
+ if (scroll) {
2508
+ scrollParents.forEach(function(scrollParent) {
2509
+ scrollParent.addEventListener("scroll", instance.update, passive);
2510
+ });
2511
+ }
2512
+ if (resize) {
2513
+ window2.addEventListener("resize", instance.update, passive);
2514
+ }
2515
+ return function() {
2516
+ if (scroll) {
2517
+ scrollParents.forEach(function(scrollParent) {
2518
+ scrollParent.removeEventListener("scroll", instance.update, passive);
2519
+ });
2520
+ }
2521
+ if (resize) {
2522
+ window2.removeEventListener("resize", instance.update, passive);
2523
+ }
2524
+ };
2525
+ }
2526
+ var eventListeners_default = {
2527
+ name: "eventListeners",
2528
+ enabled: true,
2529
+ phase: "write",
2530
+ fn: function fn() {
2531
+ },
2532
+ effect: effect3,
2533
+ data: {}
2534
+ };
2535
+
2536
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js
2537
+ var hash = {
2538
+ left: "right",
2539
+ right: "left",
2540
+ bottom: "top",
2541
+ top: "bottom"
2542
+ };
2543
+ function getOppositePlacement(placement) {
2544
+ return placement.replace(/left|right|bottom|top/g, function(matched) {
2545
+ return hash[matched];
2546
+ });
2547
+ }
2548
+
2549
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js
2550
+ var hash2 = {
2551
+ start: "end",
2552
+ end: "start"
2553
+ };
2554
+ function getOppositeVariationPlacement(placement) {
2555
+ return placement.replace(/start|end/g, function(matched) {
2556
+ return hash2[matched];
2557
+ });
2558
+ }
2559
+
2560
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js
2561
+ function getWindowScroll(node) {
2562
+ var win = getWindow(node);
2563
+ var scrollLeft = win.pageXOffset;
2564
+ var scrollTop = win.pageYOffset;
2565
+ return {
2566
+ scrollLeft,
2567
+ scrollTop
2568
+ };
2569
+ }
2570
+
2571
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js
2572
+ function getWindowScrollBarX(element) {
2573
+ return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
2574
+ }
2575
+
2576
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js
2577
+ function getViewportRect(element) {
2578
+ var win = getWindow(element);
2579
+ var html = getDocumentElement(element);
2580
+ var visualViewport = win.visualViewport;
2581
+ var width = html.clientWidth;
2582
+ var height = html.clientHeight;
2583
+ var x = 0;
2584
+ var y = 0;
2585
+ if (visualViewport) {
2586
+ width = visualViewport.width;
2587
+ height = visualViewport.height;
2588
+ if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {
2589
+ x = visualViewport.offsetLeft;
2590
+ y = visualViewport.offsetTop;
2591
+ }
2592
+ }
2593
+ return {
2594
+ width,
2595
+ height,
2596
+ x: x + getWindowScrollBarX(element),
2597
+ y
2598
+ };
2599
+ }
2600
+
2601
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js
2602
+ function getDocumentRect(element) {
2603
+ var _element$ownerDocumen;
2604
+ var html = getDocumentElement(element);
2605
+ var winScroll = getWindowScroll(element);
2606
+ var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
2607
+ var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
2608
+ var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
2609
+ var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
2610
+ var y = -winScroll.scrollTop;
2611
+ if (getComputedStyle2(body || html).direction === "rtl") {
2612
+ x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
2613
+ }
2614
+ return {
2615
+ width,
2616
+ height,
2617
+ x,
2618
+ y
2619
+ };
2620
+ }
2621
+
2622
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js
2623
+ function isScrollParent(element) {
2624
+ var _getComputedStyle = getComputedStyle2(element), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY;
2625
+ return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
2626
+ }
2627
+
2628
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js
2629
+ function getScrollParent(node) {
2630
+ if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) {
2631
+ return node.ownerDocument.body;
2632
+ }
2633
+ if (isHTMLElement(node) && isScrollParent(node)) {
2634
+ return node;
2635
+ }
2636
+ return getScrollParent(getParentNode(node));
2637
+ }
2638
+
2639
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js
2640
+ function listScrollParents(element, list) {
2641
+ var _element$ownerDocumen;
2642
+ if (list === void 0) {
2643
+ list = [];
2644
+ }
2645
+ var scrollParent = getScrollParent(element);
2646
+ var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
2647
+ var win = getWindow(scrollParent);
2648
+ var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
2649
+ var updatedList = list.concat(target);
2650
+ return isBody ? updatedList : updatedList.concat(listScrollParents(getParentNode(target)));
2651
+ }
2652
+
2653
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/rectToClientRect.js
2654
+ function rectToClientRect(rect) {
2655
+ return Object.assign({}, rect, {
2656
+ left: rect.x,
2657
+ top: rect.y,
2658
+ right: rect.x + rect.width,
2659
+ bottom: rect.y + rect.height
2660
+ });
2661
+ }
2662
+
2663
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js
2664
+ function getInnerBoundingClientRect(element) {
2665
+ var rect = getBoundingClientRect(element);
2666
+ rect.top = rect.top + element.clientTop;
2667
+ rect.left = rect.left + element.clientLeft;
2668
+ rect.bottom = rect.top + element.clientHeight;
2669
+ rect.right = rect.left + element.clientWidth;
2670
+ rect.width = element.clientWidth;
2671
+ rect.height = element.clientHeight;
2672
+ rect.x = rect.left;
2673
+ rect.y = rect.top;
2674
+ return rect;
2675
+ }
2676
+ function getClientRectFromMixedType(element, clippingParent) {
2677
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
2678
+ }
2679
+ function getClippingParents(element) {
2680
+ var clippingParents2 = listScrollParents(getParentNode(element));
2681
+ var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle2(element).position) >= 0;
2682
+ var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
2683
+ if (!isElement(clipperElement)) {
2684
+ return [];
2685
+ }
2686
+ return clippingParents2.filter(function(clippingParent) {
2687
+ return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body";
2688
+ });
2689
+ }
2690
+ function getClippingRect(element, boundary, rootBoundary) {
2691
+ var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary);
2692
+ var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]);
2693
+ var firstClippingParent = clippingParents2[0];
2694
+ var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) {
2695
+ var rect = getClientRectFromMixedType(element, clippingParent);
2696
+ accRect.top = max(rect.top, accRect.top);
2697
+ accRect.right = min(rect.right, accRect.right);
2698
+ accRect.bottom = min(rect.bottom, accRect.bottom);
2699
+ accRect.left = max(rect.left, accRect.left);
2700
+ return accRect;
2701
+ }, getClientRectFromMixedType(element, firstClippingParent));
2702
+ clippingRect.width = clippingRect.right - clippingRect.left;
2703
+ clippingRect.height = clippingRect.bottom - clippingRect.top;
2704
+ clippingRect.x = clippingRect.left;
2705
+ clippingRect.y = clippingRect.top;
2706
+ return clippingRect;
2707
+ }
2708
+
2709
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/computeOffsets.js
2710
+ function computeOffsets(_ref) {
2711
+ var reference2 = _ref.reference, element = _ref.element, placement = _ref.placement;
2712
+ var basePlacement = placement ? getBasePlacement(placement) : null;
2713
+ var variation = placement ? getVariation(placement) : null;
2714
+ var commonX = reference2.x + reference2.width / 2 - element.width / 2;
2715
+ var commonY = reference2.y + reference2.height / 2 - element.height / 2;
2716
+ var offsets;
2717
+ switch (basePlacement) {
2718
+ case top:
2719
+ offsets = {
2720
+ x: commonX,
2721
+ y: reference2.y - element.height
2722
+ };
2723
+ break;
2724
+ case bottom:
2725
+ offsets = {
2726
+ x: commonX,
2727
+ y: reference2.y + reference2.height
2728
+ };
2729
+ break;
2730
+ case right:
2731
+ offsets = {
2732
+ x: reference2.x + reference2.width,
2733
+ y: commonY
2734
+ };
2735
+ break;
2736
+ case left:
2737
+ offsets = {
2738
+ x: reference2.x - element.width,
2739
+ y: commonY
2740
+ };
2741
+ break;
2742
+ default:
2743
+ offsets = {
2744
+ x: reference2.x,
2745
+ y: reference2.y
2746
+ };
2747
+ }
2748
+ var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
2749
+ if (mainAxis != null) {
2750
+ var len = mainAxis === "y" ? "height" : "width";
2751
+ switch (variation) {
2752
+ case start:
2753
+ offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element[len] / 2);
2754
+ break;
2755
+ case end:
2756
+ offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element[len] / 2);
2757
+ break;
2758
+ default:
2759
+ }
2760
+ }
2761
+ return offsets;
2762
+ }
2763
+
2764
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/detectOverflow.js
2765
+ function detectOverflow(state, options) {
2766
+ if (options === void 0) {
2767
+ options = {};
2768
+ }
2769
+ var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding;
2770
+ var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
2771
+ var altContext = elementContext === popper ? reference : popper;
2772
+ var popperRect = state.rects.popper;
2773
+ var element = state.elements[altBoundary ? altContext : elementContext];
2774
+ var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);
2775
+ var referenceClientRect = getBoundingClientRect(state.elements.reference);
2776
+ var popperOffsets2 = computeOffsets({
2777
+ reference: referenceClientRect,
2778
+ element: popperRect,
2779
+ strategy: "absolute",
2780
+ placement
2781
+ });
2782
+ var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2));
2783
+ var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect;
2784
+ var overflowOffsets = {
2785
+ top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
2786
+ bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
2787
+ left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
2788
+ right: elementClientRect.right - clippingClientRect.right + paddingObject.right
2789
+ };
2790
+ var offsetData = state.modifiersData.offset;
2791
+ if (elementContext === popper && offsetData) {
2792
+ var offset2 = offsetData[placement];
2793
+ Object.keys(overflowOffsets).forEach(function(key) {
2794
+ var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
2795
+ var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x";
2796
+ overflowOffsets[key] += offset2[axis] * multiply;
2797
+ });
2798
+ }
2799
+ return overflowOffsets;
2800
+ }
2801
+
2802
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js
2803
+ function computeAutoPlacement(state, options) {
2804
+ if (options === void 0) {
2805
+ options = {};
2806
+ }
2807
+ var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
2808
+ var variation = getVariation(placement);
2809
+ var placements2 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) {
2810
+ return getVariation(placement2) === variation;
2811
+ }) : basePlacements;
2812
+ var allowedPlacements = placements2.filter(function(placement2) {
2813
+ return allowedAutoPlacements.indexOf(placement2) >= 0;
2814
+ });
2815
+ if (allowedPlacements.length === 0) {
2816
+ allowedPlacements = placements2;
2817
+ if (true) {
2818
+ console.error(["Popper: The `allowedAutoPlacements` option did not allow any", "placements. Ensure the `placement` option matches the variation", "of the allowed placements.", 'For example, "auto" cannot be used to allow "bottom-start".', 'Use "auto-start" instead.'].join(" "));
2819
+ }
2820
+ }
2821
+ var overflows = allowedPlacements.reduce(function(acc, placement2) {
2822
+ acc[placement2] = detectOverflow(state, {
2823
+ placement: placement2,
2824
+ boundary,
2825
+ rootBoundary,
2826
+ padding
2827
+ })[getBasePlacement(placement2)];
2828
+ return acc;
2829
+ }, {});
2830
+ return Object.keys(overflows).sort(function(a, b) {
2831
+ return overflows[a] - overflows[b];
2832
+ });
2833
+ }
2834
+
2835
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/flip.js
2836
+ function getExpandedFallbackPlacements(placement) {
2837
+ if (getBasePlacement(placement) === auto) {
2838
+ return [];
2839
+ }
2840
+ var oppositePlacement = getOppositePlacement(placement);
2841
+ return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
2842
+ }
2843
+ function flip(_ref) {
2844
+ var state = _ref.state, options = _ref.options, name6 = _ref.name;
2845
+ if (state.modifiersData[name6]._skip) {
2846
+ return;
2847
+ }
2848
+ var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements;
2849
+ var preferredPlacement = state.options.placement;
2850
+ var basePlacement = getBasePlacement(preferredPlacement);
2851
+ var isBasePlacement = basePlacement === preferredPlacement;
2852
+ var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
2853
+ var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) {
2854
+ return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, {
2855
+ placement: placement2,
2856
+ boundary,
2857
+ rootBoundary,
2858
+ padding,
2859
+ flipVariations,
2860
+ allowedAutoPlacements
2861
+ }) : placement2);
2862
+ }, []);
2863
+ var referenceRect = state.rects.reference;
2864
+ var popperRect = state.rects.popper;
2865
+ var checksMap = /* @__PURE__ */ new Map();
2866
+ var makeFallbackChecks = true;
2867
+ var firstFittingPlacement = placements2[0];
2868
+ for (var i = 0; i < placements2.length; i++) {
2869
+ var placement = placements2[i];
2870
+ var _basePlacement = getBasePlacement(placement);
2871
+ var isStartVariation = getVariation(placement) === start;
2872
+ var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;
2873
+ var len = isVertical ? "width" : "height";
2874
+ var overflow = detectOverflow(state, {
2875
+ placement,
2876
+ boundary,
2877
+ rootBoundary,
2878
+ altBoundary,
2879
+ padding
2880
+ });
2881
+ var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;
2882
+ if (referenceRect[len] > popperRect[len]) {
2883
+ mainVariationSide = getOppositePlacement(mainVariationSide);
2884
+ }
2885
+ var altVariationSide = getOppositePlacement(mainVariationSide);
2886
+ var checks = [];
2887
+ if (checkMainAxis) {
2888
+ checks.push(overflow[_basePlacement] <= 0);
2889
+ }
2890
+ if (checkAltAxis) {
2891
+ checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
2892
+ }
2893
+ if (checks.every(function(check) {
2894
+ return check;
2895
+ })) {
2896
+ firstFittingPlacement = placement;
2897
+ makeFallbackChecks = false;
2898
+ break;
2899
+ }
2900
+ checksMap.set(placement, checks);
2901
+ }
2902
+ if (makeFallbackChecks) {
2903
+ var numberOfChecks = flipVariations ? 3 : 1;
2904
+ var _loop = function _loop2(_i2) {
2905
+ var fittingPlacement = placements2.find(function(placement2) {
2906
+ var checks2 = checksMap.get(placement2);
2907
+ if (checks2) {
2908
+ return checks2.slice(0, _i2).every(function(check) {
2909
+ return check;
2910
+ });
2911
+ }
2912
+ });
2913
+ if (fittingPlacement) {
2914
+ firstFittingPlacement = fittingPlacement;
2915
+ return "break";
2916
+ }
2917
+ };
2918
+ for (var _i = numberOfChecks; _i > 0; _i--) {
2919
+ var _ret = _loop(_i);
2920
+ if (_ret === "break")
2921
+ break;
2922
+ }
2923
+ }
2924
+ if (state.placement !== firstFittingPlacement) {
2925
+ state.modifiersData[name6]._skip = true;
2926
+ state.placement = firstFittingPlacement;
2927
+ state.reset = true;
2928
+ }
2929
+ }
2930
+ var flip_default = {
2931
+ name: "flip",
2932
+ enabled: true,
2933
+ phase: "main",
2934
+ fn: flip,
2935
+ requiresIfExists: ["offset"],
2936
+ data: {
2937
+ _skip: false
2938
+ }
2939
+ };
2940
+
2941
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/hide.js
2942
+ function getSideOffsets(overflow, rect, preventedOffsets) {
2943
+ if (preventedOffsets === void 0) {
2944
+ preventedOffsets = {
2945
+ x: 0,
2946
+ y: 0
2947
+ };
2948
+ }
2949
+ return {
2950
+ top: overflow.top - rect.height - preventedOffsets.y,
2951
+ right: overflow.right - rect.width + preventedOffsets.x,
2952
+ bottom: overflow.bottom - rect.height + preventedOffsets.y,
2953
+ left: overflow.left - rect.width - preventedOffsets.x
2954
+ };
2955
+ }
2956
+ function isAnySideFullyClipped(overflow) {
2957
+ return [top, right, bottom, left].some(function(side) {
2958
+ return overflow[side] >= 0;
2959
+ });
2960
+ }
2961
+ function hide(_ref) {
2962
+ var state = _ref.state, name6 = _ref.name;
2963
+ var referenceRect = state.rects.reference;
2964
+ var popperRect = state.rects.popper;
2965
+ var preventedOffsets = state.modifiersData.preventOverflow;
2966
+ var referenceOverflow = detectOverflow(state, {
2967
+ elementContext: "reference"
2968
+ });
2969
+ var popperAltOverflow = detectOverflow(state, {
2970
+ altBoundary: true
2971
+ });
2972
+ var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
2973
+ var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
2974
+ var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
2975
+ var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
2976
+ state.modifiersData[name6] = {
2977
+ referenceClippingOffsets,
2978
+ popperEscapeOffsets,
2979
+ isReferenceHidden,
2980
+ hasPopperEscaped
2981
+ };
2982
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
2983
+ "data-popper-reference-hidden": isReferenceHidden,
2984
+ "data-popper-escaped": hasPopperEscaped
2985
+ });
2986
+ }
2987
+ var hide_default = {
2988
+ name: "hide",
2989
+ enabled: true,
2990
+ phase: "main",
2991
+ requiresIfExists: ["preventOverflow"],
2992
+ fn: hide
2993
+ };
2994
+
2995
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/offset.js
2996
+ function distanceAndSkiddingToXY(placement, rects, offset2) {
2997
+ var basePlacement = getBasePlacement(placement);
2998
+ var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
2999
+ var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, {
3000
+ placement
3001
+ })) : offset2, skidding = _ref[0], distance = _ref[1];
3002
+ skidding = skidding || 0;
3003
+ distance = (distance || 0) * invertDistance;
3004
+ return [left, right].indexOf(basePlacement) >= 0 ? {
3005
+ x: distance,
3006
+ y: skidding
3007
+ } : {
3008
+ x: skidding,
3009
+ y: distance
3010
+ };
3011
+ }
3012
+ function offset(_ref2) {
3013
+ var state = _ref2.state, options = _ref2.options, name6 = _ref2.name;
3014
+ var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset;
3015
+ var data = placements.reduce(function(acc, placement) {
3016
+ acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2);
3017
+ return acc;
3018
+ }, {});
3019
+ var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y;
3020
+ if (state.modifiersData.popperOffsets != null) {
3021
+ state.modifiersData.popperOffsets.x += x;
3022
+ state.modifiersData.popperOffsets.y += y;
3023
+ }
3024
+ state.modifiersData[name6] = data;
3025
+ }
3026
+ var offset_default = {
3027
+ name: "offset",
3028
+ enabled: true,
3029
+ phase: "main",
3030
+ requires: ["popperOffsets"],
3031
+ fn: offset
3032
+ };
3033
+
3034
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js
3035
+ function popperOffsets(_ref) {
3036
+ var state = _ref.state, name6 = _ref.name;
3037
+ state.modifiersData[name6] = computeOffsets({
3038
+ reference: state.rects.reference,
3039
+ element: state.rects.popper,
3040
+ strategy: "absolute",
3041
+ placement: state.placement
3042
+ });
3043
+ }
3044
+ var popperOffsets_default = {
3045
+ name: "popperOffsets",
3046
+ enabled: true,
3047
+ phase: "read",
3048
+ fn: popperOffsets,
3049
+ data: {}
3050
+ };
3051
+
3052
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/getAltAxis.js
3053
+ function getAltAxis(axis) {
3054
+ return axis === "x" ? "y" : "x";
3055
+ }
3056
+
3057
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js
3058
+ function preventOverflow(_ref) {
3059
+ var state = _ref.state, options = _ref.options, name6 = _ref.name;
3060
+ var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
3061
+ var overflow = detectOverflow(state, {
3062
+ boundary,
3063
+ rootBoundary,
3064
+ padding,
3065
+ altBoundary
3066
+ });
3067
+ var basePlacement = getBasePlacement(state.placement);
3068
+ var variation = getVariation(state.placement);
3069
+ var isBasePlacement = !variation;
3070
+ var mainAxis = getMainAxisFromPlacement(basePlacement);
3071
+ var altAxis = getAltAxis(mainAxis);
3072
+ var popperOffsets2 = state.modifiersData.popperOffsets;
3073
+ var referenceRect = state.rects.reference;
3074
+ var popperRect = state.rects.popper;
3075
+ var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, {
3076
+ placement: state.placement
3077
+ })) : tetherOffset;
3078
+ var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? {
3079
+ mainAxis: tetherOffsetValue,
3080
+ altAxis: tetherOffsetValue
3081
+ } : Object.assign({
3082
+ mainAxis: 0,
3083
+ altAxis: 0
3084
+ }, tetherOffsetValue);
3085
+ var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
3086
+ var data = {
3087
+ x: 0,
3088
+ y: 0
3089
+ };
3090
+ if (!popperOffsets2) {
3091
+ return;
3092
+ }
3093
+ if (checkMainAxis) {
3094
+ var _offsetModifierState$;
3095
+ var mainSide = mainAxis === "y" ? top : left;
3096
+ var altSide = mainAxis === "y" ? bottom : right;
3097
+ var len = mainAxis === "y" ? "height" : "width";
3098
+ var offset2 = popperOffsets2[mainAxis];
3099
+ var min2 = offset2 + overflow[mainSide];
3100
+ var max2 = offset2 - overflow[altSide];
3101
+ var additive = tether ? -popperRect[len] / 2 : 0;
3102
+ var minLen = variation === start ? referenceRect[len] : popperRect[len];
3103
+ var maxLen = variation === start ? -popperRect[len] : -referenceRect[len];
3104
+ var arrowElement = state.elements.arrow;
3105
+ var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
3106
+ width: 0,
3107
+ height: 0
3108
+ };
3109
+ var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject();
3110
+ var arrowPaddingMin = arrowPaddingObject[mainSide];
3111
+ var arrowPaddingMax = arrowPaddingObject[altSide];
3112
+ var arrowLen = within(0, referenceRect[len], arrowRect[len]);
3113
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
3114
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
3115
+ var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
3116
+ var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
3117
+ var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
3118
+ var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset;
3119
+ var tetherMax = offset2 + maxOffset - offsetModifierValue;
3120
+ var preventedOffset = within(tether ? min(min2, tetherMin) : min2, offset2, tether ? max(max2, tetherMax) : max2);
3121
+ popperOffsets2[mainAxis] = preventedOffset;
3122
+ data[mainAxis] = preventedOffset - offset2;
3123
+ }
3124
+ if (checkAltAxis) {
3125
+ var _offsetModifierState$2;
3126
+ var _mainSide = mainAxis === "x" ? top : left;
3127
+ var _altSide = mainAxis === "x" ? bottom : right;
3128
+ var _offset = popperOffsets2[altAxis];
3129
+ var _len = altAxis === "y" ? "height" : "width";
3130
+ var _min = _offset + overflow[_mainSide];
3131
+ var _max = _offset - overflow[_altSide];
3132
+ var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
3133
+ var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
3134
+ var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
3135
+ var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
3136
+ var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
3137
+ popperOffsets2[altAxis] = _preventedOffset;
3138
+ data[altAxis] = _preventedOffset - _offset;
3139
+ }
3140
+ state.modifiersData[name6] = data;
3141
+ }
3142
+ var preventOverflow_default = {
3143
+ name: "preventOverflow",
3144
+ enabled: true,
3145
+ phase: "main",
3146
+ fn: preventOverflow,
3147
+ requiresIfExists: ["offset"]
3148
+ };
3149
+
3150
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js
3151
+ function getHTMLElementScroll(element) {
3152
+ return {
3153
+ scrollLeft: element.scrollLeft,
3154
+ scrollTop: element.scrollTop
3155
+ };
3156
+ }
3157
+
3158
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js
3159
+ function getNodeScroll(node) {
3160
+ if (node === getWindow(node) || !isHTMLElement(node)) {
3161
+ return getWindowScroll(node);
3162
+ } else {
3163
+ return getHTMLElementScroll(node);
3164
+ }
3165
+ }
3166
+
3167
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js
3168
+ function isElementScaled(element) {
3169
+ var rect = element.getBoundingClientRect();
3170
+ var scaleX = round(rect.width) / element.offsetWidth || 1;
3171
+ var scaleY = round(rect.height) / element.offsetHeight || 1;
3172
+ return scaleX !== 1 || scaleY !== 1;
3173
+ }
3174
+ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
3175
+ if (isFixed === void 0) {
3176
+ isFixed = false;
3177
+ }
3178
+ var isOffsetParentAnElement = isHTMLElement(offsetParent);
3179
+ var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
3180
+ var documentElement = getDocumentElement(offsetParent);
3181
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);
3182
+ var scroll = {
3183
+ scrollLeft: 0,
3184
+ scrollTop: 0
3185
+ };
3186
+ var offsets = {
3187
+ x: 0,
3188
+ y: 0
3189
+ };
3190
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
3191
+ if (getNodeName(offsetParent) !== "body" || isScrollParent(documentElement)) {
3192
+ scroll = getNodeScroll(offsetParent);
3193
+ }
3194
+ if (isHTMLElement(offsetParent)) {
3195
+ offsets = getBoundingClientRect(offsetParent, true);
3196
+ offsets.x += offsetParent.clientLeft;
3197
+ offsets.y += offsetParent.clientTop;
3198
+ } else if (documentElement) {
3199
+ offsets.x = getWindowScrollBarX(documentElement);
3200
+ }
3201
+ }
3202
+ return {
3203
+ x: rect.left + scroll.scrollLeft - offsets.x,
3204
+ y: rect.top + scroll.scrollTop - offsets.y,
3205
+ width: rect.width,
3206
+ height: rect.height
3207
+ };
3208
+ }
3209
+
3210
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/orderModifiers.js
3211
+ function order(modifiers) {
3212
+ var map = /* @__PURE__ */ new Map();
3213
+ var visited = /* @__PURE__ */ new Set();
3214
+ var result = [];
3215
+ modifiers.forEach(function(modifier) {
3216
+ map.set(modifier.name, modifier);
3217
+ });
3218
+ function sort(modifier) {
3219
+ visited.add(modifier.name);
3220
+ var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
3221
+ requires.forEach(function(dep) {
3222
+ if (!visited.has(dep)) {
3223
+ var depModifier = map.get(dep);
3224
+ if (depModifier) {
3225
+ sort(depModifier);
3226
+ }
3227
+ }
3228
+ });
3229
+ result.push(modifier);
3230
+ }
3231
+ modifiers.forEach(function(modifier) {
3232
+ if (!visited.has(modifier.name)) {
3233
+ sort(modifier);
3234
+ }
3235
+ });
3236
+ return result;
3237
+ }
3238
+ function orderModifiers(modifiers) {
3239
+ var orderedModifiers = order(modifiers);
3240
+ return modifierPhases.reduce(function(acc, phase) {
3241
+ return acc.concat(orderedModifiers.filter(function(modifier) {
3242
+ return modifier.phase === phase;
3243
+ }));
3244
+ }, []);
3245
+ }
3246
+
3247
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/debounce.js
3248
+ function debounce(fn2) {
3249
+ var pending;
3250
+ return function() {
3251
+ if (!pending) {
3252
+ pending = new Promise(function(resolve) {
3253
+ Promise.resolve().then(function() {
3254
+ pending = void 0;
3255
+ resolve(fn2());
3256
+ });
3257
+ });
3258
+ }
3259
+ return pending;
3260
+ };
3261
+ }
3262
+
3263
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/format.js
3264
+ function format(str) {
3265
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
3266
+ args[_key - 1] = arguments[_key];
3267
+ }
3268
+ return [].concat(args).reduce(function(p, c) {
3269
+ return p.replace(/%s/, c);
3270
+ }, str);
3271
+ }
3272
+
3273
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/validateModifiers.js
3274
+ var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s';
3275
+ var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available';
3276
+ var VALID_PROPERTIES = ["name", "enabled", "phase", "fn", "effect", "requires", "options"];
3277
+ function validateModifiers(modifiers) {
3278
+ modifiers.forEach(function(modifier) {
3279
+ [].concat(Object.keys(modifier), VALID_PROPERTIES).filter(function(value, index, self) {
3280
+ return self.indexOf(value) === index;
3281
+ }).forEach(function(key) {
3282
+ switch (key) {
3283
+ case "name":
3284
+ if (typeof modifier.name !== "string") {
3285
+ console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', '"' + String(modifier.name) + '"'));
3286
+ }
3287
+ break;
3288
+ case "enabled":
3289
+ if (typeof modifier.enabled !== "boolean") {
3290
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', '"' + String(modifier.enabled) + '"'));
3291
+ }
3292
+ break;
3293
+ case "phase":
3294
+ if (modifierPhases.indexOf(modifier.phase) < 0) {
3295
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(", "), '"' + String(modifier.phase) + '"'));
3296
+ }
3297
+ break;
3298
+ case "fn":
3299
+ if (typeof modifier.fn !== "function") {
3300
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', '"' + String(modifier.fn) + '"'));
3301
+ }
3302
+ break;
3303
+ case "effect":
3304
+ if (modifier.effect != null && typeof modifier.effect !== "function") {
3305
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', '"' + String(modifier.fn) + '"'));
3306
+ }
3307
+ break;
3308
+ case "requires":
3309
+ if (modifier.requires != null && !Array.isArray(modifier.requires)) {
3310
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', '"' + String(modifier.requires) + '"'));
3311
+ }
3312
+ break;
3313
+ case "requiresIfExists":
3314
+ if (!Array.isArray(modifier.requiresIfExists)) {
3315
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', '"' + String(modifier.requiresIfExists) + '"'));
3316
+ }
3317
+ break;
3318
+ case "options":
3319
+ case "data":
3320
+ break;
3321
+ default:
3322
+ console.error('PopperJS: an invalid property has been provided to the "' + modifier.name + '" modifier, valid properties are ' + VALID_PROPERTIES.map(function(s) {
3323
+ return '"' + s + '"';
3324
+ }).join(", ") + '; but "' + key + '" was provided.');
3325
+ }
3326
+ modifier.requires && modifier.requires.forEach(function(requirement) {
3327
+ if (modifiers.find(function(mod) {
3328
+ return mod.name === requirement;
3329
+ }) == null) {
3330
+ console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));
3331
+ }
3332
+ });
3333
+ });
3334
+ });
3335
+ }
3336
+
3337
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/uniqueBy.js
3338
+ function uniqueBy(arr, fn2) {
3339
+ var identifiers = /* @__PURE__ */ new Set();
3340
+ return arr.filter(function(item) {
3341
+ var identifier = fn2(item);
3342
+ if (!identifiers.has(identifier)) {
3343
+ identifiers.add(identifier);
3344
+ return true;
3345
+ }
3346
+ });
3347
+ }
3348
+
3349
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/utils/mergeByName.js
3350
+ function mergeByName(modifiers) {
3351
+ var merged = modifiers.reduce(function(merged2, current) {
3352
+ var existing = merged2[current.name];
3353
+ merged2[current.name] = existing ? Object.assign({}, existing, current, {
3354
+ options: Object.assign({}, existing.options, current.options),
3355
+ data: Object.assign({}, existing.data, current.data)
3356
+ }) : current;
3357
+ return merged2;
3358
+ }, {});
3359
+ return Object.keys(merged).map(function(key) {
3360
+ return merged[key];
3361
+ });
3362
+ }
3363
+
3364
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/createPopper.js
3365
+ var INVALID_ELEMENT_ERROR = "Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.";
3366
+ var INFINITE_LOOP_ERROR = "Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.";
3367
+ var DEFAULT_OPTIONS = {
3368
+ placement: "bottom",
3369
+ modifiers: [],
3370
+ strategy: "absolute"
3371
+ };
3372
+ function areValidElements() {
3373
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3374
+ args[_key] = arguments[_key];
3375
+ }
3376
+ return !args.some(function(element) {
3377
+ return !(element && typeof element.getBoundingClientRect === "function");
3378
+ });
3379
+ }
3380
+ function popperGenerator(generatorOptions) {
3381
+ if (generatorOptions === void 0) {
3382
+ generatorOptions = {};
3383
+ }
3384
+ var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
3385
+ return function createPopper2(reference2, popper2, options) {
3386
+ if (options === void 0) {
3387
+ options = defaultOptions;
3388
+ }
3389
+ var state = {
3390
+ placement: "bottom",
3391
+ orderedModifiers: [],
3392
+ options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
3393
+ modifiersData: {},
3394
+ elements: {
3395
+ reference: reference2,
3396
+ popper: popper2
3397
+ },
3398
+ attributes: {},
3399
+ styles: {}
3400
+ };
3401
+ var effectCleanupFns = [];
3402
+ var isDestroyed = false;
3403
+ var instance = {
3404
+ state,
3405
+ setOptions: function setOptions(setOptionsAction) {
3406
+ var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction;
3407
+ cleanupModifierEffects();
3408
+ state.options = Object.assign({}, defaultOptions, state.options, options2);
3409
+ state.scrollParents = {
3410
+ reference: isElement(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [],
3411
+ popper: listScrollParents(popper2)
3412
+ };
3413
+ var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers)));
3414
+ state.orderedModifiers = orderedModifiers.filter(function(m) {
3415
+ return m.enabled;
3416
+ });
3417
+ if (true) {
3418
+ var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function(_ref) {
3419
+ var name6 = _ref.name;
3420
+ return name6;
3421
+ });
3422
+ validateModifiers(modifiers);
3423
+ if (getBasePlacement(state.options.placement) === auto) {
3424
+ var flipModifier = state.orderedModifiers.find(function(_ref2) {
3425
+ var name6 = _ref2.name;
3426
+ return name6 === "flip";
3427
+ });
3428
+ if (!flipModifier) {
3429
+ console.error(['Popper: "auto" placements require the "flip" modifier be', "present and enabled to work."].join(" "));
3430
+ }
3431
+ }
3432
+ var _getComputedStyle = getComputedStyle2(popper2), marginTop = _getComputedStyle.marginTop, marginRight = _getComputedStyle.marginRight, marginBottom = _getComputedStyle.marginBottom, marginLeft = _getComputedStyle.marginLeft;
3433
+ if ([marginTop, marginRight, marginBottom, marginLeft].some(function(margin) {
3434
+ return parseFloat(margin);
3435
+ })) {
3436
+ console.warn(['Popper: CSS "margin" styles cannot be used to apply padding', "between the popper and its reference element or boundary.", "To replicate margin, use the `offset` modifier, as well as", "the `padding` option in the `preventOverflow` and `flip`", "modifiers."].join(" "));
3437
+ }
3438
+ }
3439
+ runModifierEffects();
3440
+ return instance.update();
3441
+ },
3442
+ forceUpdate: function forceUpdate() {
3443
+ if (isDestroyed) {
3444
+ return;
3445
+ }
3446
+ var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper;
3447
+ if (!areValidElements(reference3, popper3)) {
3448
+ if (true) {
3449
+ console.error(INVALID_ELEMENT_ERROR);
3450
+ }
3451
+ return;
3452
+ }
3453
+ state.rects = {
3454
+ reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"),
3455
+ popper: getLayoutRect(popper3)
3456
+ };
3457
+ state.reset = false;
3458
+ state.placement = state.options.placement;
3459
+ state.orderedModifiers.forEach(function(modifier) {
3460
+ return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
3461
+ });
3462
+ var __debug_loops__ = 0;
3463
+ for (var index = 0; index < state.orderedModifiers.length; index++) {
3464
+ if (true) {
3465
+ __debug_loops__ += 1;
3466
+ if (__debug_loops__ > 100) {
3467
+ console.error(INFINITE_LOOP_ERROR);
3468
+ break;
3469
+ }
3470
+ }
3471
+ if (state.reset === true) {
3472
+ state.reset = false;
3473
+ index = -1;
3474
+ continue;
3475
+ }
3476
+ var _state$orderedModifie = state.orderedModifiers[index], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name6 = _state$orderedModifie.name;
3477
+ if (typeof fn2 === "function") {
3478
+ state = fn2({
3479
+ state,
3480
+ options: _options,
3481
+ name: name6,
3482
+ instance
3483
+ }) || state;
3484
+ }
3485
+ }
3486
+ },
3487
+ update: debounce(function() {
3488
+ return new Promise(function(resolve) {
3489
+ instance.forceUpdate();
3490
+ resolve(state);
3491
+ });
3492
+ }),
3493
+ destroy: function destroy() {
3494
+ cleanupModifierEffects();
3495
+ isDestroyed = true;
3496
+ }
3497
+ };
3498
+ if (!areValidElements(reference2, popper2)) {
3499
+ if (true) {
3500
+ console.error(INVALID_ELEMENT_ERROR);
3501
+ }
3502
+ return instance;
3503
+ }
3504
+ instance.setOptions(options).then(function(state2) {
3505
+ if (!isDestroyed && options.onFirstUpdate) {
3506
+ options.onFirstUpdate(state2);
3507
+ }
3508
+ });
3509
+ function runModifierEffects() {
3510
+ state.orderedModifiers.forEach(function(_ref3) {
3511
+ var name6 = _ref3.name, _ref3$options = _ref3.options, options2 = _ref3$options === void 0 ? {} : _ref3$options, effect5 = _ref3.effect;
3512
+ if (typeof effect5 === "function") {
3513
+ var cleanupFn = effect5({
3514
+ state,
3515
+ name: name6,
3516
+ instance,
3517
+ options: options2
3518
+ });
3519
+ var noopFn = function noopFn2() {
3520
+ };
3521
+ effectCleanupFns.push(cleanupFn || noopFn);
3522
+ }
3523
+ });
3524
+ }
3525
+ function cleanupModifierEffects() {
3526
+ effectCleanupFns.forEach(function(fn2) {
3527
+ return fn2();
3528
+ });
3529
+ effectCleanupFns = [];
3530
+ }
3531
+ return instance;
3532
+ };
3533
+ }
3534
+
3535
+ // ../../node_modules/.pnpm/@popperjs+core@2.11.2/node_modules/@popperjs/core/lib/popper.js
3536
+ var defaultModifiers = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default, offset_default, flip_default, preventOverflow_default, arrow_default, hide_default];
3537
+ var createPopper = /* @__PURE__ */ popperGenerator({
3538
+ defaultModifiers
3539
+ });
3540
+
3541
+ // ../../node_modules/.pnpm/tippy.js@6.3.7/node_modules/tippy.js/dist/tippy.esm.js
3542
+ var BOX_CLASS = "tippy-box";
3543
+ var CONTENT_CLASS = "tippy-content";
3544
+ var BACKDROP_CLASS = "tippy-backdrop";
3545
+ var ARROW_CLASS = "tippy-arrow";
3546
+ var SVG_ARROW_CLASS = "tippy-svg-arrow";
3547
+ var TOUCH_OPTIONS = {
3548
+ passive: true,
3549
+ capture: true
3550
+ };
3551
+ var TIPPY_DEFAULT_APPEND_TO = function TIPPY_DEFAULT_APPEND_TO2() {
3552
+ return document.body;
3553
+ };
3554
+ function hasOwnProperty(obj, key) {
3555
+ return {}.hasOwnProperty.call(obj, key);
3556
+ }
3557
+ function getValueAtIndexOrReturn(value, index, defaultValue) {
3558
+ if (Array.isArray(value)) {
3559
+ var v = value[index];
3560
+ return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;
3561
+ }
3562
+ return value;
3563
+ }
3564
+ function isType(value, type) {
3565
+ var str = {}.toString.call(value);
3566
+ return str.indexOf("[object") === 0 && str.indexOf(type + "]") > -1;
3567
+ }
3568
+ function invokeWithArgsOrReturn(value, args) {
3569
+ return typeof value === "function" ? value.apply(void 0, args) : value;
3570
+ }
3571
+ function debounce2(fn2, ms) {
3572
+ if (ms === 0) {
3573
+ return fn2;
3574
+ }
3575
+ var timeout;
3576
+ return function(arg) {
3577
+ clearTimeout(timeout);
3578
+ timeout = setTimeout(function() {
3579
+ fn2(arg);
3580
+ }, ms);
3581
+ };
3582
+ }
3583
+ function removeProperties(obj, keys) {
3584
+ var clone = Object.assign({}, obj);
3585
+ keys.forEach(function(key) {
3586
+ delete clone[key];
3587
+ });
3588
+ return clone;
3589
+ }
3590
+ function splitBySpaces(value) {
3591
+ return value.split(/\s+/).filter(Boolean);
3592
+ }
3593
+ function normalizeToArray(value) {
3594
+ return [].concat(value);
3595
+ }
3596
+ function pushIfUnique(arr, value) {
3597
+ if (arr.indexOf(value) === -1) {
3598
+ arr.push(value);
3599
+ }
3600
+ }
3601
+ function unique(arr) {
3602
+ return arr.filter(function(item, index) {
3603
+ return arr.indexOf(item) === index;
3604
+ });
3605
+ }
3606
+ function getBasePlacement2(placement) {
3607
+ return placement.split("-")[0];
3608
+ }
3609
+ function arrayFrom(value) {
3610
+ return [].slice.call(value);
3611
+ }
3612
+ function removeUndefinedProps(obj) {
3613
+ return Object.keys(obj).reduce(function(acc, key) {
3614
+ if (obj[key] !== void 0) {
3615
+ acc[key] = obj[key];
3616
+ }
3617
+ return acc;
3618
+ }, {});
3619
+ }
3620
+ function div() {
3621
+ return document.createElement("div");
3622
+ }
3623
+ function isElement2(value) {
3624
+ return ["Element", "Fragment"].some(function(type) {
3625
+ return isType(value, type);
3626
+ });
3627
+ }
3628
+ function isNodeList(value) {
3629
+ return isType(value, "NodeList");
3630
+ }
3631
+ function isMouseEvent(value) {
3632
+ return isType(value, "MouseEvent");
3633
+ }
3634
+ function isReferenceElement(value) {
3635
+ return !!(value && value._tippy && value._tippy.reference === value);
3636
+ }
3637
+ function getArrayOfElements(value) {
3638
+ if (isElement2(value)) {
3639
+ return [value];
3640
+ }
3641
+ if (isNodeList(value)) {
3642
+ return arrayFrom(value);
3643
+ }
3644
+ if (Array.isArray(value)) {
3645
+ return value;
3646
+ }
3647
+ return arrayFrom(document.querySelectorAll(value));
3648
+ }
3649
+ function setTransitionDuration(els, value) {
3650
+ els.forEach(function(el) {
3651
+ if (el) {
3652
+ el.style.transitionDuration = value + "ms";
3653
+ }
3654
+ });
3655
+ }
3656
+ function setVisibilityState(els, state) {
3657
+ els.forEach(function(el) {
3658
+ if (el) {
3659
+ el.setAttribute("data-state", state);
3660
+ }
3661
+ });
3662
+ }
3663
+ function getOwnerDocument(elementOrElements) {
3664
+ var _element$ownerDocumen;
3665
+ var _normalizeToArray = normalizeToArray(elementOrElements), element = _normalizeToArray[0];
3666
+ return element != null && (_element$ownerDocumen = element.ownerDocument) != null && _element$ownerDocumen.body ? element.ownerDocument : document;
3667
+ }
3668
+ function isCursorOutsideInteractiveBorder(popperTreeData, event) {
3669
+ var clientX = event.clientX, clientY = event.clientY;
3670
+ return popperTreeData.every(function(_ref) {
3671
+ var popperRect = _ref.popperRect, popperState = _ref.popperState, props = _ref.props;
3672
+ var interactiveBorder = props.interactiveBorder;
3673
+ var basePlacement = getBasePlacement2(popperState.placement);
3674
+ var offsetData = popperState.modifiersData.offset;
3675
+ if (!offsetData) {
3676
+ return true;
3677
+ }
3678
+ var topDistance = basePlacement === "bottom" ? offsetData.top.y : 0;
3679
+ var bottomDistance = basePlacement === "top" ? offsetData.bottom.y : 0;
3680
+ var leftDistance = basePlacement === "right" ? offsetData.left.x : 0;
3681
+ var rightDistance = basePlacement === "left" ? offsetData.right.x : 0;
3682
+ var exceedsTop = popperRect.top - clientY + topDistance > interactiveBorder;
3683
+ var exceedsBottom = clientY - popperRect.bottom - bottomDistance > interactiveBorder;
3684
+ var exceedsLeft = popperRect.left - clientX + leftDistance > interactiveBorder;
3685
+ var exceedsRight = clientX - popperRect.right - rightDistance > interactiveBorder;
3686
+ return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;
3687
+ });
3688
+ }
3689
+ function updateTransitionEndListener(box, action, listener) {
3690
+ var method = action + "EventListener";
3691
+ ["transitionend", "webkitTransitionEnd"].forEach(function(event) {
3692
+ box[method](event, listener);
3693
+ });
3694
+ }
3695
+ function actualContains(parent, child) {
3696
+ var target = child;
3697
+ while (target) {
3698
+ var _target$getRootNode;
3699
+ if (parent.contains(target)) {
3700
+ return true;
3701
+ }
3702
+ target = target.getRootNode == null ? void 0 : (_target$getRootNode = target.getRootNode()) == null ? void 0 : _target$getRootNode.host;
3703
+ }
3704
+ return false;
3705
+ }
3706
+ var currentInput = {
3707
+ isTouch: false
3708
+ };
3709
+ var lastMouseMoveTime = 0;
3710
+ function onDocumentTouchStart() {
3711
+ if (currentInput.isTouch) {
3712
+ return;
3713
+ }
3714
+ currentInput.isTouch = true;
3715
+ if (window.performance) {
3716
+ document.addEventListener("mousemove", onDocumentMouseMove);
3717
+ }
3718
+ }
3719
+ function onDocumentMouseMove() {
3720
+ var now = performance.now();
3721
+ if (now - lastMouseMoveTime < 20) {
3722
+ currentInput.isTouch = false;
3723
+ document.removeEventListener("mousemove", onDocumentMouseMove);
3724
+ }
3725
+ lastMouseMoveTime = now;
3726
+ }
3727
+ function onWindowBlur() {
3728
+ var activeElement = document.activeElement;
3729
+ if (isReferenceElement(activeElement)) {
3730
+ var instance = activeElement._tippy;
3731
+ if (activeElement.blur && !instance.state.isVisible) {
3732
+ activeElement.blur();
3733
+ }
3734
+ }
3735
+ }
3736
+ function bindGlobalEventListeners() {
3737
+ document.addEventListener("touchstart", onDocumentTouchStart, TOUCH_OPTIONS);
3738
+ window.addEventListener("blur", onWindowBlur);
3739
+ }
3740
+ var isBrowser = typeof window !== "undefined" && typeof document !== "undefined";
3741
+ var isIE11 = isBrowser ? !!window.msCrypto : false;
3742
+ function createMemoryLeakWarning(method) {
3743
+ var txt = method === "destroy" ? "n already-" : " ";
3744
+ return [method + "() was called on a" + txt + "destroyed instance. This is a no-op but", "indicates a potential memory leak."].join(" ");
3745
+ }
3746
+ function clean(value) {
3747
+ var spacesAndTabs = /[ \t]{2,}/g;
3748
+ var lineStartWithSpaces = /^[ \t]*/gm;
3749
+ return value.replace(spacesAndTabs, " ").replace(lineStartWithSpaces, "").trim();
3750
+ }
3751
+ function getDevMessage(message) {
3752
+ return clean("\n %ctippy.js\n\n %c" + clean(message) + "\n\n %c\u{1F477}\u200D This is a development-only message. It will be removed in production.\n ");
3753
+ }
3754
+ function getFormattedMessage(message) {
3755
+ return [
3756
+ getDevMessage(message),
3757
+ "color: #00C584; font-size: 1.3em; font-weight: bold;",
3758
+ "line-height: 1.5",
3759
+ "color: #a6a095;"
3760
+ ];
3761
+ }
3762
+ var visitedMessages;
3763
+ if (true) {
3764
+ resetVisitedMessages();
3765
+ }
3766
+ function resetVisitedMessages() {
3767
+ visitedMessages = /* @__PURE__ */ new Set();
3768
+ }
3769
+ function warnWhen(condition, message) {
3770
+ if (condition && !visitedMessages.has(message)) {
3771
+ var _console;
3772
+ visitedMessages.add(message);
3773
+ (_console = console).warn.apply(_console, getFormattedMessage(message));
3774
+ }
3775
+ }
3776
+ function errorWhen(condition, message) {
3777
+ if (condition && !visitedMessages.has(message)) {
3778
+ var _console2;
3779
+ visitedMessages.add(message);
3780
+ (_console2 = console).error.apply(_console2, getFormattedMessage(message));
3781
+ }
3782
+ }
3783
+ function validateTargets(targets) {
3784
+ var didPassFalsyValue = !targets;
3785
+ var didPassPlainObject = Object.prototype.toString.call(targets) === "[object Object]" && !targets.addEventListener;
3786
+ errorWhen(didPassFalsyValue, ["tippy() was passed", "`" + String(targets) + "`", "as its targets (first) argument. Valid types are: String, Element,", "Element[], or NodeList."].join(" "));
3787
+ errorWhen(didPassPlainObject, ["tippy() was passed a plain object which is not supported as an argument", "for virtual positioning. Use props.getReferenceClientRect instead."].join(" "));
3788
+ }
3789
+ var pluginProps = {
3790
+ animateFill: false,
3791
+ followCursor: false,
3792
+ inlinePositioning: false,
3793
+ sticky: false
3794
+ };
3795
+ var renderProps = {
3796
+ allowHTML: false,
3797
+ animation: "fade",
3798
+ arrow: true,
3799
+ content: "",
3800
+ inertia: false,
3801
+ maxWidth: 350,
3802
+ role: "tooltip",
3803
+ theme: "",
3804
+ zIndex: 9999
3805
+ };
3806
+ var defaultProps = Object.assign({
3807
+ appendTo: TIPPY_DEFAULT_APPEND_TO,
3808
+ aria: {
3809
+ content: "auto",
3810
+ expanded: "auto"
3811
+ },
3812
+ delay: 0,
3813
+ duration: [300, 250],
3814
+ getReferenceClientRect: null,
3815
+ hideOnClick: true,
3816
+ ignoreAttributes: false,
3817
+ interactive: false,
3818
+ interactiveBorder: 2,
3819
+ interactiveDebounce: 0,
3820
+ moveTransition: "",
3821
+ offset: [0, 10],
3822
+ onAfterUpdate: function onAfterUpdate() {
3823
+ },
3824
+ onBeforeUpdate: function onBeforeUpdate() {
3825
+ },
3826
+ onCreate: function onCreate() {
3827
+ },
3828
+ onDestroy: function onDestroy() {
3829
+ },
3830
+ onHidden: function onHidden() {
3831
+ },
3832
+ onHide: function onHide() {
3833
+ },
3834
+ onMount: function onMount() {
3835
+ },
3836
+ onShow: function onShow() {
3837
+ },
3838
+ onShown: function onShown() {
3839
+ },
3840
+ onTrigger: function onTrigger() {
3841
+ },
3842
+ onUntrigger: function onUntrigger() {
3843
+ },
3844
+ onClickOutside: function onClickOutside() {
3845
+ },
3846
+ placement: "top",
3847
+ plugins: [],
3848
+ popperOptions: {},
3849
+ render: null,
3850
+ showOnCreate: false,
3851
+ touch: true,
3852
+ trigger: "mouseenter focus",
3853
+ triggerTarget: null
3854
+ }, pluginProps, renderProps);
3855
+ var defaultKeys = Object.keys(defaultProps);
3856
+ var setDefaultProps = function setDefaultProps2(partialProps) {
3857
+ if (true) {
3858
+ validateProps(partialProps, []);
3859
+ }
3860
+ var keys = Object.keys(partialProps);
3861
+ keys.forEach(function(key) {
3862
+ defaultProps[key] = partialProps[key];
3863
+ });
3864
+ };
3865
+ function getExtendedPassedProps(passedProps) {
3866
+ var plugins = passedProps.plugins || [];
3867
+ var pluginProps2 = plugins.reduce(function(acc, plugin) {
3868
+ var name6 = plugin.name, defaultValue = plugin.defaultValue;
3869
+ if (name6) {
3870
+ var _name;
3871
+ acc[name6] = passedProps[name6] !== void 0 ? passedProps[name6] : (_name = defaultProps[name6]) != null ? _name : defaultValue;
3872
+ }
3873
+ return acc;
3874
+ }, {});
3875
+ return Object.assign({}, passedProps, pluginProps2);
3876
+ }
3877
+ function getDataAttributeProps(reference2, plugins) {
3878
+ var propKeys = plugins ? Object.keys(getExtendedPassedProps(Object.assign({}, defaultProps, {
3879
+ plugins
3880
+ }))) : defaultKeys;
3881
+ var props = propKeys.reduce(function(acc, key) {
3882
+ var valueAsString = (reference2.getAttribute("data-tippy-" + key) || "").trim();
3883
+ if (!valueAsString) {
3884
+ return acc;
3885
+ }
3886
+ if (key === "content") {
3887
+ acc[key] = valueAsString;
3888
+ } else {
3889
+ try {
3890
+ acc[key] = JSON.parse(valueAsString);
3891
+ } catch (e) {
3892
+ acc[key] = valueAsString;
3893
+ }
3894
+ }
3895
+ return acc;
3896
+ }, {});
3897
+ return props;
3898
+ }
3899
+ function evaluateProps(reference2, props) {
3900
+ var out = Object.assign({}, props, {
3901
+ content: invokeWithArgsOrReturn(props.content, [reference2])
3902
+ }, props.ignoreAttributes ? {} : getDataAttributeProps(reference2, props.plugins));
3903
+ out.aria = Object.assign({}, defaultProps.aria, out.aria);
3904
+ out.aria = {
3905
+ expanded: out.aria.expanded === "auto" ? props.interactive : out.aria.expanded,
3906
+ content: out.aria.content === "auto" ? props.interactive ? null : "describedby" : out.aria.content
3907
+ };
3908
+ return out;
3909
+ }
3910
+ function validateProps(partialProps, plugins) {
3911
+ if (partialProps === void 0) {
3912
+ partialProps = {};
3913
+ }
3914
+ if (plugins === void 0) {
3915
+ plugins = [];
3916
+ }
3917
+ var keys = Object.keys(partialProps);
3918
+ keys.forEach(function(prop) {
3919
+ var nonPluginProps = removeProperties(defaultProps, Object.keys(pluginProps));
3920
+ var didPassUnknownProp = !hasOwnProperty(nonPluginProps, prop);
3921
+ if (didPassUnknownProp) {
3922
+ didPassUnknownProp = plugins.filter(function(plugin) {
3923
+ return plugin.name === prop;
3924
+ }).length === 0;
3925
+ }
3926
+ warnWhen(didPassUnknownProp, ["`" + prop + "`", "is not a valid prop. You may have spelled it incorrectly, or if it's", "a plugin, forgot to pass it in an array as props.plugins.", "\n\n", "All props: https://atomiks.github.io/tippyjs/v6/all-props/\n", "Plugins: https://atomiks.github.io/tippyjs/v6/plugins/"].join(" "));
3927
+ });
3928
+ }
3929
+ var innerHTML = function innerHTML2() {
3930
+ return "innerHTML";
3931
+ };
3932
+ function dangerouslySetInnerHTML(element, html) {
3933
+ element[innerHTML()] = html;
3934
+ }
3935
+ function createArrowElement(value) {
3936
+ var arrow2 = div();
3937
+ if (value === true) {
3938
+ arrow2.className = ARROW_CLASS;
3939
+ } else {
3940
+ arrow2.className = SVG_ARROW_CLASS;
3941
+ if (isElement2(value)) {
3942
+ arrow2.appendChild(value);
3943
+ } else {
3944
+ dangerouslySetInnerHTML(arrow2, value);
3945
+ }
3946
+ }
3947
+ return arrow2;
3948
+ }
3949
+ function setContent(content, props) {
3950
+ if (isElement2(props.content)) {
3951
+ dangerouslySetInnerHTML(content, "");
3952
+ content.appendChild(props.content);
3953
+ } else if (typeof props.content !== "function") {
3954
+ if (props.allowHTML) {
3955
+ dangerouslySetInnerHTML(content, props.content);
3956
+ } else {
3957
+ content.textContent = props.content;
3958
+ }
3959
+ }
3960
+ }
3961
+ function getChildren(popper2) {
3962
+ var box = popper2.firstElementChild;
3963
+ var boxChildren = arrayFrom(box.children);
3964
+ return {
3965
+ box,
3966
+ content: boxChildren.find(function(node) {
3967
+ return node.classList.contains(CONTENT_CLASS);
3968
+ }),
3969
+ arrow: boxChildren.find(function(node) {
3970
+ return node.classList.contains(ARROW_CLASS) || node.classList.contains(SVG_ARROW_CLASS);
3971
+ }),
3972
+ backdrop: boxChildren.find(function(node) {
3973
+ return node.classList.contains(BACKDROP_CLASS);
3974
+ })
3975
+ };
3976
+ }
3977
+ function render(instance) {
3978
+ var popper2 = div();
3979
+ var box = div();
3980
+ box.className = BOX_CLASS;
3981
+ box.setAttribute("data-state", "hidden");
3982
+ box.setAttribute("tabindex", "-1");
3983
+ var content = div();
3984
+ content.className = CONTENT_CLASS;
3985
+ content.setAttribute("data-state", "hidden");
3986
+ setContent(content, instance.props);
3987
+ popper2.appendChild(box);
3988
+ box.appendChild(content);
3989
+ onUpdate(instance.props, instance.props);
3990
+ function onUpdate(prevProps, nextProps) {
3991
+ var _getChildren = getChildren(popper2), box2 = _getChildren.box, content2 = _getChildren.content, arrow2 = _getChildren.arrow;
3992
+ if (nextProps.theme) {
3993
+ box2.setAttribute("data-theme", nextProps.theme);
3994
+ } else {
3995
+ box2.removeAttribute("data-theme");
3996
+ }
3997
+ if (typeof nextProps.animation === "string") {
3998
+ box2.setAttribute("data-animation", nextProps.animation);
3999
+ } else {
4000
+ box2.removeAttribute("data-animation");
4001
+ }
4002
+ if (nextProps.inertia) {
4003
+ box2.setAttribute("data-inertia", "");
4004
+ } else {
4005
+ box2.removeAttribute("data-inertia");
4006
+ }
4007
+ box2.style.maxWidth = typeof nextProps.maxWidth === "number" ? nextProps.maxWidth + "px" : nextProps.maxWidth;
4008
+ if (nextProps.role) {
4009
+ box2.setAttribute("role", nextProps.role);
4010
+ } else {
4011
+ box2.removeAttribute("role");
4012
+ }
4013
+ if (prevProps.content !== nextProps.content || prevProps.allowHTML !== nextProps.allowHTML) {
4014
+ setContent(content2, instance.props);
4015
+ }
4016
+ if (nextProps.arrow) {
4017
+ if (!arrow2) {
4018
+ box2.appendChild(createArrowElement(nextProps.arrow));
4019
+ } else if (prevProps.arrow !== nextProps.arrow) {
4020
+ box2.removeChild(arrow2);
4021
+ box2.appendChild(createArrowElement(nextProps.arrow));
4022
+ }
4023
+ } else if (arrow2) {
4024
+ box2.removeChild(arrow2);
4025
+ }
4026
+ }
4027
+ return {
4028
+ popper: popper2,
4029
+ onUpdate
4030
+ };
4031
+ }
4032
+ render.$$tippy = true;
4033
+ var idCounter = 1;
4034
+ var mouseMoveListeners = [];
4035
+ var mountedInstances = [];
4036
+ function createTippy(reference2, passedProps) {
4037
+ var props = evaluateProps(reference2, Object.assign({}, defaultProps, getExtendedPassedProps(removeUndefinedProps(passedProps))));
4038
+ var showTimeout;
4039
+ var hideTimeout;
4040
+ var scheduleHideAnimationFrame;
4041
+ var isVisibleFromClick = false;
4042
+ var didHideDueToDocumentMouseDown = false;
4043
+ var didTouchMove = false;
4044
+ var ignoreOnFirstUpdate = false;
4045
+ var lastTriggerEvent;
4046
+ var currentTransitionEndListener;
4047
+ var onFirstUpdate;
4048
+ var listeners = [];
4049
+ var debouncedOnMouseMove = debounce2(onMouseMove, props.interactiveDebounce);
4050
+ var currentTarget;
4051
+ var id = idCounter++;
4052
+ var popperInstance = null;
4053
+ var plugins = unique(props.plugins);
4054
+ var state = {
4055
+ isEnabled: true,
4056
+ isVisible: false,
4057
+ isDestroyed: false,
4058
+ isMounted: false,
4059
+ isShown: false
4060
+ };
4061
+ var instance = {
4062
+ id,
4063
+ reference: reference2,
4064
+ popper: div(),
4065
+ popperInstance,
4066
+ props,
4067
+ state,
4068
+ plugins,
4069
+ clearDelayTimeouts,
4070
+ setProps,
4071
+ setContent: setContent2,
4072
+ show,
4073
+ hide: hide2,
4074
+ hideWithInteractivity,
4075
+ enable,
4076
+ disable,
4077
+ unmount,
4078
+ destroy
4079
+ };
4080
+ if (!props.render) {
4081
+ if (true) {
4082
+ errorWhen(true, "render() function has not been supplied.");
4083
+ }
4084
+ return instance;
4085
+ }
4086
+ var _props$render = props.render(instance), popper2 = _props$render.popper, onUpdate = _props$render.onUpdate;
4087
+ popper2.setAttribute("data-tippy-root", "");
4088
+ popper2.id = "tippy-" + instance.id;
4089
+ instance.popper = popper2;
4090
+ reference2._tippy = instance;
4091
+ popper2._tippy = instance;
4092
+ var pluginsHooks = plugins.map(function(plugin) {
4093
+ return plugin.fn(instance);
4094
+ });
4095
+ var hasAriaExpanded = reference2.hasAttribute("aria-expanded");
4096
+ addListeners();
4097
+ handleAriaExpandedAttribute();
4098
+ handleStyles();
4099
+ invokeHook("onCreate", [instance]);
4100
+ if (props.showOnCreate) {
4101
+ scheduleShow();
4102
+ }
4103
+ popper2.addEventListener("mouseenter", function() {
4104
+ if (instance.props.interactive && instance.state.isVisible) {
4105
+ instance.clearDelayTimeouts();
4106
+ }
4107
+ });
4108
+ popper2.addEventListener("mouseleave", function() {
4109
+ if (instance.props.interactive && instance.props.trigger.indexOf("mouseenter") >= 0) {
4110
+ getDocument().addEventListener("mousemove", debouncedOnMouseMove);
4111
+ }
4112
+ });
4113
+ return instance;
4114
+ function getNormalizedTouchSettings() {
4115
+ var touch = instance.props.touch;
4116
+ return Array.isArray(touch) ? touch : [touch, 0];
4117
+ }
4118
+ function getIsCustomTouchBehavior() {
4119
+ return getNormalizedTouchSettings()[0] === "hold";
4120
+ }
4121
+ function getIsDefaultRenderFn() {
4122
+ var _instance$props$rende;
4123
+ return !!((_instance$props$rende = instance.props.render) != null && _instance$props$rende.$$tippy);
4124
+ }
4125
+ function getCurrentTarget() {
4126
+ return currentTarget || reference2;
4127
+ }
4128
+ function getDocument() {
4129
+ var parent = getCurrentTarget().parentNode;
4130
+ return parent ? getOwnerDocument(parent) : document;
4131
+ }
4132
+ function getDefaultTemplateChildren() {
4133
+ return getChildren(popper2);
4134
+ }
4135
+ function getDelay(isShow) {
4136
+ if (instance.state.isMounted && !instance.state.isVisible || currentInput.isTouch || lastTriggerEvent && lastTriggerEvent.type === "focus") {
4137
+ return 0;
4138
+ }
4139
+ return getValueAtIndexOrReturn(instance.props.delay, isShow ? 0 : 1, defaultProps.delay);
4140
+ }
4141
+ function handleStyles(fromHide) {
4142
+ if (fromHide === void 0) {
4143
+ fromHide = false;
4144
+ }
4145
+ popper2.style.pointerEvents = instance.props.interactive && !fromHide ? "" : "none";
4146
+ popper2.style.zIndex = "" + instance.props.zIndex;
4147
+ }
4148
+ function invokeHook(hook, args, shouldInvokePropsHook) {
4149
+ if (shouldInvokePropsHook === void 0) {
4150
+ shouldInvokePropsHook = true;
4151
+ }
4152
+ pluginsHooks.forEach(function(pluginHooks) {
4153
+ if (pluginHooks[hook]) {
4154
+ pluginHooks[hook].apply(pluginHooks, args);
4155
+ }
4156
+ });
4157
+ if (shouldInvokePropsHook) {
4158
+ var _instance$props;
4159
+ (_instance$props = instance.props)[hook].apply(_instance$props, args);
4160
+ }
4161
+ }
4162
+ function handleAriaContentAttribute() {
4163
+ var aria = instance.props.aria;
4164
+ if (!aria.content) {
4165
+ return;
4166
+ }
4167
+ var attr = "aria-" + aria.content;
4168
+ var id2 = popper2.id;
4169
+ var nodes = normalizeToArray(instance.props.triggerTarget || reference2);
4170
+ nodes.forEach(function(node) {
4171
+ var currentValue = node.getAttribute(attr);
4172
+ if (instance.state.isVisible) {
4173
+ node.setAttribute(attr, currentValue ? currentValue + " " + id2 : id2);
4174
+ } else {
4175
+ var nextValue = currentValue && currentValue.replace(id2, "").trim();
4176
+ if (nextValue) {
4177
+ node.setAttribute(attr, nextValue);
4178
+ } else {
4179
+ node.removeAttribute(attr);
4180
+ }
4181
+ }
4182
+ });
4183
+ }
4184
+ function handleAriaExpandedAttribute() {
4185
+ if (hasAriaExpanded || !instance.props.aria.expanded) {
4186
+ return;
4187
+ }
4188
+ var nodes = normalizeToArray(instance.props.triggerTarget || reference2);
4189
+ nodes.forEach(function(node) {
4190
+ if (instance.props.interactive) {
4191
+ node.setAttribute("aria-expanded", instance.state.isVisible && node === getCurrentTarget() ? "true" : "false");
4192
+ } else {
4193
+ node.removeAttribute("aria-expanded");
4194
+ }
4195
+ });
4196
+ }
4197
+ function cleanupInteractiveMouseListeners() {
4198
+ getDocument().removeEventListener("mousemove", debouncedOnMouseMove);
4199
+ mouseMoveListeners = mouseMoveListeners.filter(function(listener) {
4200
+ return listener !== debouncedOnMouseMove;
4201
+ });
4202
+ }
4203
+ function onDocumentPress(event) {
4204
+ if (currentInput.isTouch) {
4205
+ if (didTouchMove || event.type === "mousedown") {
4206
+ return;
4207
+ }
4208
+ }
4209
+ var actualTarget = event.composedPath && event.composedPath()[0] || event.target;
4210
+ if (instance.props.interactive && actualContains(popper2, actualTarget)) {
4211
+ return;
4212
+ }
4213
+ if (normalizeToArray(instance.props.triggerTarget || reference2).some(function(el) {
4214
+ return actualContains(el, actualTarget);
4215
+ })) {
4216
+ if (currentInput.isTouch) {
4217
+ return;
4218
+ }
4219
+ if (instance.state.isVisible && instance.props.trigger.indexOf("click") >= 0) {
4220
+ return;
4221
+ }
4222
+ } else {
4223
+ invokeHook("onClickOutside", [instance, event]);
4224
+ }
4225
+ if (instance.props.hideOnClick === true) {
4226
+ instance.clearDelayTimeouts();
4227
+ instance.hide();
4228
+ didHideDueToDocumentMouseDown = true;
4229
+ setTimeout(function() {
4230
+ didHideDueToDocumentMouseDown = false;
4231
+ });
4232
+ if (!instance.state.isMounted) {
4233
+ removeDocumentPress();
4234
+ }
4235
+ }
4236
+ }
4237
+ function onTouchMove() {
4238
+ didTouchMove = true;
4239
+ }
4240
+ function onTouchStart() {
4241
+ didTouchMove = false;
4242
+ }
4243
+ function addDocumentPress() {
4244
+ var doc = getDocument();
4245
+ doc.addEventListener("mousedown", onDocumentPress, true);
4246
+ doc.addEventListener("touchend", onDocumentPress, TOUCH_OPTIONS);
4247
+ doc.addEventListener("touchstart", onTouchStart, TOUCH_OPTIONS);
4248
+ doc.addEventListener("touchmove", onTouchMove, TOUCH_OPTIONS);
4249
+ }
4250
+ function removeDocumentPress() {
4251
+ var doc = getDocument();
4252
+ doc.removeEventListener("mousedown", onDocumentPress, true);
4253
+ doc.removeEventListener("touchend", onDocumentPress, TOUCH_OPTIONS);
4254
+ doc.removeEventListener("touchstart", onTouchStart, TOUCH_OPTIONS);
4255
+ doc.removeEventListener("touchmove", onTouchMove, TOUCH_OPTIONS);
4256
+ }
4257
+ function onTransitionedOut(duration, callback) {
4258
+ onTransitionEnd(duration, function() {
4259
+ if (!instance.state.isVisible && popper2.parentNode && popper2.parentNode.contains(popper2)) {
4260
+ callback();
4261
+ }
4262
+ });
4263
+ }
4264
+ function onTransitionedIn(duration, callback) {
4265
+ onTransitionEnd(duration, callback);
4266
+ }
4267
+ function onTransitionEnd(duration, callback) {
4268
+ var box = getDefaultTemplateChildren().box;
4269
+ function listener(event) {
4270
+ if (event.target === box) {
4271
+ updateTransitionEndListener(box, "remove", listener);
4272
+ callback();
4273
+ }
4274
+ }
4275
+ if (duration === 0) {
4276
+ return callback();
4277
+ }
4278
+ updateTransitionEndListener(box, "remove", currentTransitionEndListener);
4279
+ updateTransitionEndListener(box, "add", listener);
4280
+ currentTransitionEndListener = listener;
4281
+ }
4282
+ function on(eventType, handler, options) {
4283
+ if (options === void 0) {
4284
+ options = false;
4285
+ }
4286
+ var nodes = normalizeToArray(instance.props.triggerTarget || reference2);
4287
+ nodes.forEach(function(node) {
4288
+ node.addEventListener(eventType, handler, options);
4289
+ listeners.push({
4290
+ node,
4291
+ eventType,
4292
+ handler,
4293
+ options
4294
+ });
4295
+ });
4296
+ }
4297
+ function addListeners() {
4298
+ if (getIsCustomTouchBehavior()) {
4299
+ on("touchstart", onTrigger2, {
4300
+ passive: true
4301
+ });
4302
+ on("touchend", onMouseLeave, {
4303
+ passive: true
4304
+ });
4305
+ }
4306
+ splitBySpaces(instance.props.trigger).forEach(function(eventType) {
4307
+ if (eventType === "manual") {
4308
+ return;
4309
+ }
4310
+ on(eventType, onTrigger2);
4311
+ switch (eventType) {
4312
+ case "mouseenter":
4313
+ on("mouseleave", onMouseLeave);
4314
+ break;
4315
+ case "focus":
4316
+ on(isIE11 ? "focusout" : "blur", onBlurOrFocusOut);
4317
+ break;
4318
+ case "focusin":
4319
+ on("focusout", onBlurOrFocusOut);
4320
+ break;
4321
+ }
4322
+ });
4323
+ }
4324
+ function removeListeners() {
4325
+ listeners.forEach(function(_ref) {
4326
+ var node = _ref.node, eventType = _ref.eventType, handler = _ref.handler, options = _ref.options;
4327
+ node.removeEventListener(eventType, handler, options);
4328
+ });
4329
+ listeners = [];
4330
+ }
4331
+ function onTrigger2(event) {
4332
+ var _lastTriggerEvent;
4333
+ var shouldScheduleClickHide = false;
4334
+ if (!instance.state.isEnabled || isEventListenerStopped(event) || didHideDueToDocumentMouseDown) {
4335
+ return;
4336
+ }
4337
+ var wasFocused = ((_lastTriggerEvent = lastTriggerEvent) == null ? void 0 : _lastTriggerEvent.type) === "focus";
4338
+ lastTriggerEvent = event;
4339
+ currentTarget = event.currentTarget;
4340
+ handleAriaExpandedAttribute();
4341
+ if (!instance.state.isVisible && isMouseEvent(event)) {
4342
+ mouseMoveListeners.forEach(function(listener) {
4343
+ return listener(event);
4344
+ });
4345
+ }
4346
+ if (event.type === "click" && (instance.props.trigger.indexOf("mouseenter") < 0 || isVisibleFromClick) && instance.props.hideOnClick !== false && instance.state.isVisible) {
4347
+ shouldScheduleClickHide = true;
4348
+ } else {
4349
+ scheduleShow(event);
4350
+ }
4351
+ if (event.type === "click") {
4352
+ isVisibleFromClick = !shouldScheduleClickHide;
4353
+ }
4354
+ if (shouldScheduleClickHide && !wasFocused) {
4355
+ scheduleHide(event);
4356
+ }
4357
+ }
4358
+ function onMouseMove(event) {
4359
+ var target = event.target;
4360
+ var isCursorOverReferenceOrPopper = getCurrentTarget().contains(target) || popper2.contains(target);
4361
+ if (event.type === "mousemove" && isCursorOverReferenceOrPopper) {
4362
+ return;
4363
+ }
4364
+ var popperTreeData = getNestedPopperTree().concat(popper2).map(function(popper3) {
4365
+ var _instance$popperInsta;
4366
+ var instance2 = popper3._tippy;
4367
+ var state2 = (_instance$popperInsta = instance2.popperInstance) == null ? void 0 : _instance$popperInsta.state;
4368
+ if (state2) {
4369
+ return {
4370
+ popperRect: popper3.getBoundingClientRect(),
4371
+ popperState: state2,
4372
+ props
4373
+ };
4374
+ }
4375
+ return null;
4376
+ }).filter(Boolean);
4377
+ if (isCursorOutsideInteractiveBorder(popperTreeData, event)) {
4378
+ cleanupInteractiveMouseListeners();
4379
+ scheduleHide(event);
4380
+ }
4381
+ }
4382
+ function onMouseLeave(event) {
4383
+ var shouldBail = isEventListenerStopped(event) || instance.props.trigger.indexOf("click") >= 0 && isVisibleFromClick;
4384
+ if (shouldBail) {
4385
+ return;
4386
+ }
4387
+ if (instance.props.interactive) {
4388
+ instance.hideWithInteractivity(event);
4389
+ return;
4390
+ }
4391
+ scheduleHide(event);
4392
+ }
4393
+ function onBlurOrFocusOut(event) {
4394
+ if (instance.props.trigger.indexOf("focusin") < 0 && event.target !== getCurrentTarget()) {
4395
+ return;
4396
+ }
4397
+ if (instance.props.interactive && event.relatedTarget && popper2.contains(event.relatedTarget)) {
4398
+ return;
4399
+ }
4400
+ scheduleHide(event);
4401
+ }
4402
+ function isEventListenerStopped(event) {
4403
+ return currentInput.isTouch ? getIsCustomTouchBehavior() !== event.type.indexOf("touch") >= 0 : false;
4404
+ }
4405
+ function createPopperInstance() {
4406
+ destroyPopperInstance();
4407
+ var _instance$props2 = instance.props, popperOptions = _instance$props2.popperOptions, placement = _instance$props2.placement, offset2 = _instance$props2.offset, getReferenceClientRect = _instance$props2.getReferenceClientRect, moveTransition = _instance$props2.moveTransition;
4408
+ var arrow2 = getIsDefaultRenderFn() ? getChildren(popper2).arrow : null;
4409
+ var computedReference = getReferenceClientRect ? {
4410
+ getBoundingClientRect: getReferenceClientRect,
4411
+ contextElement: getReferenceClientRect.contextElement || getCurrentTarget()
4412
+ } : reference2;
4413
+ var tippyModifier = {
4414
+ name: "$$tippy",
4415
+ enabled: true,
4416
+ phase: "beforeWrite",
4417
+ requires: ["computeStyles"],
4418
+ fn: function fn2(_ref2) {
4419
+ var state2 = _ref2.state;
4420
+ if (getIsDefaultRenderFn()) {
4421
+ var _getDefaultTemplateCh = getDefaultTemplateChildren(), box = _getDefaultTemplateCh.box;
4422
+ ["placement", "reference-hidden", "escaped"].forEach(function(attr) {
4423
+ if (attr === "placement") {
4424
+ box.setAttribute("data-placement", state2.placement);
4425
+ } else {
4426
+ if (state2.attributes.popper["data-popper-" + attr]) {
4427
+ box.setAttribute("data-" + attr, "");
4428
+ } else {
4429
+ box.removeAttribute("data-" + attr);
4430
+ }
4431
+ }
4432
+ });
4433
+ state2.attributes.popper = {};
4434
+ }
4435
+ }
4436
+ };
4437
+ var modifiers = [{
4438
+ name: "offset",
4439
+ options: {
4440
+ offset: offset2
4441
+ }
4442
+ }, {
4443
+ name: "preventOverflow",
4444
+ options: {
4445
+ padding: {
4446
+ top: 2,
4447
+ bottom: 2,
4448
+ left: 5,
4449
+ right: 5
4450
+ }
4451
+ }
4452
+ }, {
4453
+ name: "flip",
4454
+ options: {
4455
+ padding: 5
4456
+ }
4457
+ }, {
4458
+ name: "computeStyles",
4459
+ options: {
4460
+ adaptive: !moveTransition
4461
+ }
4462
+ }, tippyModifier];
4463
+ if (getIsDefaultRenderFn() && arrow2) {
4464
+ modifiers.push({
4465
+ name: "arrow",
4466
+ options: {
4467
+ element: arrow2,
4468
+ padding: 3
4469
+ }
4470
+ });
4471
+ }
4472
+ modifiers.push.apply(modifiers, (popperOptions == null ? void 0 : popperOptions.modifiers) || []);
4473
+ instance.popperInstance = createPopper(computedReference, popper2, Object.assign({}, popperOptions, {
4474
+ placement,
4475
+ onFirstUpdate,
4476
+ modifiers
4477
+ }));
4478
+ }
4479
+ function destroyPopperInstance() {
4480
+ if (instance.popperInstance) {
4481
+ instance.popperInstance.destroy();
4482
+ instance.popperInstance = null;
4483
+ }
4484
+ }
4485
+ function mount2() {
4486
+ var appendTo = instance.props.appendTo;
4487
+ var parentNode;
4488
+ var node = getCurrentTarget();
4489
+ if (instance.props.interactive && appendTo === TIPPY_DEFAULT_APPEND_TO || appendTo === "parent") {
4490
+ parentNode = node.parentNode;
4491
+ } else {
4492
+ parentNode = invokeWithArgsOrReturn(appendTo, [node]);
4493
+ }
4494
+ if (!parentNode.contains(popper2)) {
4495
+ parentNode.appendChild(popper2);
4496
+ }
4497
+ instance.state.isMounted = true;
4498
+ createPopperInstance();
4499
+ if (true) {
4500
+ warnWhen(instance.props.interactive && appendTo === defaultProps.appendTo && node.nextElementSibling !== popper2, ["Interactive tippy element may not be accessible via keyboard", "navigation because it is not directly after the reference element", "in the DOM source order.", "\n\n", "Using a wrapper <div> or <span> tag around the reference element", "solves this by creating a new parentNode context.", "\n\n", "Specifying `appendTo: document.body` silences this warning, but it", "assumes you are using a focus management solution to handle", "keyboard navigation.", "\n\n", "See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity"].join(" "));
4501
+ }
4502
+ }
4503
+ function getNestedPopperTree() {
4504
+ return arrayFrom(popper2.querySelectorAll("[data-tippy-root]"));
4505
+ }
4506
+ function scheduleShow(event) {
4507
+ instance.clearDelayTimeouts();
4508
+ if (event) {
4509
+ invokeHook("onTrigger", [instance, event]);
4510
+ }
4511
+ addDocumentPress();
4512
+ var delay = getDelay(true);
4513
+ var _getNormalizedTouchSe = getNormalizedTouchSettings(), touchValue = _getNormalizedTouchSe[0], touchDelay = _getNormalizedTouchSe[1];
4514
+ if (currentInput.isTouch && touchValue === "hold" && touchDelay) {
4515
+ delay = touchDelay;
4516
+ }
4517
+ if (delay) {
4518
+ showTimeout = setTimeout(function() {
4519
+ instance.show();
4520
+ }, delay);
4521
+ } else {
4522
+ instance.show();
4523
+ }
4524
+ }
4525
+ function scheduleHide(event) {
4526
+ instance.clearDelayTimeouts();
4527
+ invokeHook("onUntrigger", [instance, event]);
4528
+ if (!instance.state.isVisible) {
4529
+ removeDocumentPress();
4530
+ return;
4531
+ }
4532
+ if (instance.props.trigger.indexOf("mouseenter") >= 0 && instance.props.trigger.indexOf("click") >= 0 && ["mouseleave", "mousemove"].indexOf(event.type) >= 0 && isVisibleFromClick) {
4533
+ return;
4534
+ }
4535
+ var delay = getDelay(false);
4536
+ if (delay) {
4537
+ hideTimeout = setTimeout(function() {
4538
+ if (instance.state.isVisible) {
4539
+ instance.hide();
4540
+ }
4541
+ }, delay);
4542
+ } else {
4543
+ scheduleHideAnimationFrame = requestAnimationFrame(function() {
4544
+ instance.hide();
4545
+ });
4546
+ }
4547
+ }
4548
+ function enable() {
4549
+ instance.state.isEnabled = true;
4550
+ }
4551
+ function disable() {
4552
+ instance.hide();
4553
+ instance.state.isEnabled = false;
4554
+ }
4555
+ function clearDelayTimeouts() {
4556
+ clearTimeout(showTimeout);
4557
+ clearTimeout(hideTimeout);
4558
+ cancelAnimationFrame(scheduleHideAnimationFrame);
4559
+ }
4560
+ function setProps(partialProps) {
4561
+ if (true) {
4562
+ warnWhen(instance.state.isDestroyed, createMemoryLeakWarning("setProps"));
4563
+ }
4564
+ if (instance.state.isDestroyed) {
4565
+ return;
4566
+ }
4567
+ invokeHook("onBeforeUpdate", [instance, partialProps]);
4568
+ removeListeners();
4569
+ var prevProps = instance.props;
4570
+ var nextProps = evaluateProps(reference2, Object.assign({}, prevProps, removeUndefinedProps(partialProps), {
4571
+ ignoreAttributes: true
4572
+ }));
4573
+ instance.props = nextProps;
4574
+ addListeners();
4575
+ if (prevProps.interactiveDebounce !== nextProps.interactiveDebounce) {
4576
+ cleanupInteractiveMouseListeners();
4577
+ debouncedOnMouseMove = debounce2(onMouseMove, nextProps.interactiveDebounce);
4578
+ }
4579
+ if (prevProps.triggerTarget && !nextProps.triggerTarget) {
4580
+ normalizeToArray(prevProps.triggerTarget).forEach(function(node) {
4581
+ node.removeAttribute("aria-expanded");
4582
+ });
4583
+ } else if (nextProps.triggerTarget) {
4584
+ reference2.removeAttribute("aria-expanded");
4585
+ }
4586
+ handleAriaExpandedAttribute();
4587
+ handleStyles();
4588
+ if (onUpdate) {
4589
+ onUpdate(prevProps, nextProps);
4590
+ }
4591
+ if (instance.popperInstance) {
4592
+ createPopperInstance();
4593
+ getNestedPopperTree().forEach(function(nestedPopper) {
4594
+ requestAnimationFrame(nestedPopper._tippy.popperInstance.forceUpdate);
4595
+ });
4596
+ }
4597
+ invokeHook("onAfterUpdate", [instance, partialProps]);
4598
+ }
4599
+ function setContent2(content) {
4600
+ instance.setProps({
4601
+ content
4602
+ });
4603
+ }
4604
+ function show() {
4605
+ if (true) {
4606
+ warnWhen(instance.state.isDestroyed, createMemoryLeakWarning("show"));
4607
+ }
4608
+ var isAlreadyVisible = instance.state.isVisible;
4609
+ var isDestroyed = instance.state.isDestroyed;
4610
+ var isDisabled = !instance.state.isEnabled;
4611
+ var isTouchAndTouchDisabled = currentInput.isTouch && !instance.props.touch;
4612
+ var duration = getValueAtIndexOrReturn(instance.props.duration, 0, defaultProps.duration);
4613
+ if (isAlreadyVisible || isDestroyed || isDisabled || isTouchAndTouchDisabled) {
4614
+ return;
4615
+ }
4616
+ if (getCurrentTarget().hasAttribute("disabled")) {
4617
+ return;
4618
+ }
4619
+ invokeHook("onShow", [instance], false);
4620
+ if (instance.props.onShow(instance) === false) {
4621
+ return;
4622
+ }
4623
+ instance.state.isVisible = true;
4624
+ if (getIsDefaultRenderFn()) {
4625
+ popper2.style.visibility = "visible";
4626
+ }
4627
+ handleStyles();
4628
+ addDocumentPress();
4629
+ if (!instance.state.isMounted) {
4630
+ popper2.style.transition = "none";
4631
+ }
4632
+ if (getIsDefaultRenderFn()) {
4633
+ var _getDefaultTemplateCh2 = getDefaultTemplateChildren(), box = _getDefaultTemplateCh2.box, content = _getDefaultTemplateCh2.content;
4634
+ setTransitionDuration([box, content], 0);
4635
+ }
4636
+ onFirstUpdate = function onFirstUpdate2() {
4637
+ var _instance$popperInsta2;
4638
+ if (!instance.state.isVisible || ignoreOnFirstUpdate) {
4639
+ return;
4640
+ }
4641
+ ignoreOnFirstUpdate = true;
4642
+ void popper2.offsetHeight;
4643
+ popper2.style.transition = instance.props.moveTransition;
4644
+ if (getIsDefaultRenderFn() && instance.props.animation) {
4645
+ var _getDefaultTemplateCh3 = getDefaultTemplateChildren(), _box = _getDefaultTemplateCh3.box, _content = _getDefaultTemplateCh3.content;
4646
+ setTransitionDuration([_box, _content], duration);
4647
+ setVisibilityState([_box, _content], "visible");
4648
+ }
4649
+ handleAriaContentAttribute();
4650
+ handleAriaExpandedAttribute();
4651
+ pushIfUnique(mountedInstances, instance);
4652
+ (_instance$popperInsta2 = instance.popperInstance) == null ? void 0 : _instance$popperInsta2.forceUpdate();
4653
+ invokeHook("onMount", [instance]);
4654
+ if (instance.props.animation && getIsDefaultRenderFn()) {
4655
+ onTransitionedIn(duration, function() {
4656
+ instance.state.isShown = true;
4657
+ invokeHook("onShown", [instance]);
4658
+ });
4659
+ }
4660
+ };
4661
+ mount2();
4662
+ }
4663
+ function hide2() {
4664
+ if (true) {
4665
+ warnWhen(instance.state.isDestroyed, createMemoryLeakWarning("hide"));
4666
+ }
4667
+ var isAlreadyHidden = !instance.state.isVisible;
4668
+ var isDestroyed = instance.state.isDestroyed;
4669
+ var isDisabled = !instance.state.isEnabled;
4670
+ var duration = getValueAtIndexOrReturn(instance.props.duration, 1, defaultProps.duration);
4671
+ if (isAlreadyHidden || isDestroyed || isDisabled) {
4672
+ return;
4673
+ }
4674
+ invokeHook("onHide", [instance], false);
4675
+ if (instance.props.onHide(instance) === false) {
4676
+ return;
4677
+ }
4678
+ instance.state.isVisible = false;
4679
+ instance.state.isShown = false;
4680
+ ignoreOnFirstUpdate = false;
4681
+ isVisibleFromClick = false;
4682
+ if (getIsDefaultRenderFn()) {
4683
+ popper2.style.visibility = "hidden";
4684
+ }
4685
+ cleanupInteractiveMouseListeners();
4686
+ removeDocumentPress();
4687
+ handleStyles(true);
4688
+ if (getIsDefaultRenderFn()) {
4689
+ var _getDefaultTemplateCh4 = getDefaultTemplateChildren(), box = _getDefaultTemplateCh4.box, content = _getDefaultTemplateCh4.content;
4690
+ if (instance.props.animation) {
4691
+ setTransitionDuration([box, content], duration);
4692
+ setVisibilityState([box, content], "hidden");
4693
+ }
4694
+ }
4695
+ handleAriaContentAttribute();
4696
+ handleAriaExpandedAttribute();
4697
+ if (instance.props.animation) {
4698
+ if (getIsDefaultRenderFn()) {
4699
+ onTransitionedOut(duration, instance.unmount);
4700
+ }
4701
+ } else {
4702
+ instance.unmount();
4703
+ }
4704
+ }
4705
+ function hideWithInteractivity(event) {
4706
+ if (true) {
4707
+ warnWhen(instance.state.isDestroyed, createMemoryLeakWarning("hideWithInteractivity"));
4708
+ }
4709
+ getDocument().addEventListener("mousemove", debouncedOnMouseMove);
4710
+ pushIfUnique(mouseMoveListeners, debouncedOnMouseMove);
4711
+ debouncedOnMouseMove(event);
4712
+ }
4713
+ function unmount() {
4714
+ if (true) {
4715
+ warnWhen(instance.state.isDestroyed, createMemoryLeakWarning("unmount"));
4716
+ }
4717
+ if (instance.state.isVisible) {
4718
+ instance.hide();
4719
+ }
4720
+ if (!instance.state.isMounted) {
4721
+ return;
4722
+ }
4723
+ destroyPopperInstance();
4724
+ getNestedPopperTree().forEach(function(nestedPopper) {
4725
+ nestedPopper._tippy.unmount();
4726
+ });
4727
+ if (popper2.parentNode) {
4728
+ popper2.parentNode.removeChild(popper2);
4729
+ }
4730
+ mountedInstances = mountedInstances.filter(function(i) {
4731
+ return i !== instance;
4732
+ });
4733
+ instance.state.isMounted = false;
4734
+ invokeHook("onHidden", [instance]);
4735
+ }
4736
+ function destroy() {
4737
+ if (true) {
4738
+ warnWhen(instance.state.isDestroyed, createMemoryLeakWarning("destroy"));
4739
+ }
4740
+ if (instance.state.isDestroyed) {
4741
+ return;
4742
+ }
4743
+ instance.clearDelayTimeouts();
4744
+ instance.unmount();
4745
+ removeListeners();
4746
+ delete reference2._tippy;
4747
+ instance.state.isDestroyed = true;
4748
+ invokeHook("onDestroy", [instance]);
4749
+ }
4750
+ }
4751
+ function tippy(targets, optionalProps) {
4752
+ if (optionalProps === void 0) {
4753
+ optionalProps = {};
4754
+ }
4755
+ var plugins = defaultProps.plugins.concat(optionalProps.plugins || []);
4756
+ if (true) {
4757
+ validateTargets(targets);
4758
+ validateProps(optionalProps, plugins);
4759
+ }
4760
+ bindGlobalEventListeners();
4761
+ var passedProps = Object.assign({}, optionalProps, {
4762
+ plugins
4763
+ });
4764
+ var elements = getArrayOfElements(targets);
4765
+ if (true) {
4766
+ var isSingleContentElement = isElement2(passedProps.content);
4767
+ var isMoreThanOneReferenceElement = elements.length > 1;
4768
+ warnWhen(isSingleContentElement && isMoreThanOneReferenceElement, ["tippy() was passed an Element as the `content` prop, but more than", "one tippy instance was created by this invocation. This means the", "content element will only be appended to the last tippy instance.", "\n\n", "Instead, pass the .innerHTML of the element, or use a function that", "returns a cloned version of the element instead.", "\n\n", "1) content: element.innerHTML\n", "2) content: () => element.cloneNode(true)"].join(" "));
4769
+ }
4770
+ var instances2 = elements.reduce(function(acc, reference2) {
4771
+ var instance = reference2 && createTippy(reference2, passedProps);
4772
+ if (instance) {
4773
+ acc.push(instance);
4774
+ }
4775
+ return acc;
4776
+ }, []);
4777
+ return isElement2(targets) ? instances2[0] : instances2;
4778
+ }
4779
+ tippy.defaultProps = defaultProps;
4780
+ tippy.setDefaultProps = setDefaultProps;
4781
+ tippy.currentInput = currentInput;
4782
+ var applyStylesModifier = Object.assign({}, applyStyles_default, {
4783
+ effect: function effect4(_ref) {
4784
+ var state = _ref.state;
4785
+ var initialStyles = {
4786
+ popper: {
4787
+ position: state.options.strategy,
4788
+ left: "0",
4789
+ top: "0",
4790
+ margin: "0"
4791
+ },
4792
+ arrow: {
4793
+ position: "absolute"
4794
+ },
4795
+ reference: {}
4796
+ };
4797
+ Object.assign(state.elements.popper.style, initialStyles.popper);
4798
+ state.styles = initialStyles;
4799
+ if (state.elements.arrow) {
4800
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
4801
+ }
4802
+ }
4803
+ });
4804
+ tippy.setDefaultProps({
4805
+ render
4806
+ });
4807
+ var tippy_esm_default = tippy;
4808
+
4809
+ // src/components/tippy-util.ts
4810
+ var instances = /* @__PURE__ */ new Set();
4811
+ function onCreate2(instance) {
4812
+ instances.add(instance);
4813
+ }
4814
+ function onDestroy2(instance) {
4815
+ instances.delete(instance);
4816
+ }
4817
+ tippy_esm_default.setDefaultProps({ onCreate: onCreate2, onDestroy: onDestroy2 });
4818
+ function hideAll() {
4819
+ instances.forEach((instance) => instance.hide());
4820
+ }
4821
+
4822
+ // src/components/Fastboard.tsx
4823
+ var Fastboard = /* @__PURE__ */ forwardRef3(function Fastboard2(_a, ref) {
4824
+ var _b = _a, { app, theme, layout, language } = _b, restProps = __objRest(_b, ["app", "theme", "layout", "language"]);
4825
+ if (!app) {
4826
+ return /* @__PURE__ */ React50.createElement("div", __spreadValues({
4827
+ className: "fastboard-root",
4828
+ ref
4829
+ }, restProps));
4830
+ }
4831
+ return /* @__PURE__ */ React50.createElement(FastboardAppContext.Provider, {
4832
+ value: app
4833
+ }, /* @__PURE__ */ React50.createElement(FastboardInternal, __spreadValues(__spreadValues({
4834
+ forwardedRef: ref
4835
+ }, { theme, layout, language }), restProps)));
4836
+ });
4837
+ function FastboardInternal(_a) {
4838
+ var _b = _a, {
4839
+ forwardedRef,
4840
+ language,
4841
+ layout = {},
4842
+ theme = "light",
4843
+ children
4844
+ } = _b, restProps = __objRest(_b, [
4845
+ "forwardedRef",
4846
+ "language",
4847
+ "layout",
4848
+ "theme",
4849
+ "children"
4850
+ ]);
4851
+ const app = useFastboardApp();
4852
+ const forceUpdate = useForceUpdate();
4853
+ const i18n = useAsyncValue(() => createI18n({ language }));
4854
+ useEffect6(() => {
4855
+ if (i18n)
4856
+ i18n.changeLanguage(language);
4857
+ forceUpdate();
4858
+ }, [forceUpdate, i18n, language]);
4859
+ useEffect6(() => {
4860
+ app.manager.setPrefersColorScheme(theme);
4861
+ }, [app, theme]);
4862
+ const useWhiteboard = useCallback13((container) => {
4863
+ if (container && app)
4864
+ app.bindContainer(container);
4865
+ }, [app]);
4866
+ const hideControls = useHideControls();
4867
+ const showControls = !hideControls;
4868
+ const {
4869
+ Toolbar: toolbar = showControls || hideControls === "toolbar-only",
4870
+ RedoUndo: redo_undo = showControls,
4871
+ ZoomControl: zoom_control = showControls,
4872
+ PageControl: page_control = showControls
4873
+ } = layout;
4874
+ return /* @__PURE__ */ React50.createElement(ThemeContext.Provider, {
4875
+ value: theme
4876
+ }, /* @__PURE__ */ React50.createElement(I18nContext.Provider, {
4877
+ value: i18n
4878
+ }, /* @__PURE__ */ React50.createElement("div", __spreadProps(__spreadValues({}, restProps), {
4879
+ className: "fastboard-root",
4880
+ ref: forwardedRef
4881
+ }), /* @__PURE__ */ React50.createElement("div", {
4882
+ className: "fastboard-view",
4883
+ ref: useWhiteboard,
4884
+ onTouchStartCapture: hideAll
4885
+ }), children ? children : /* @__PURE__ */ React50.createElement(React50.Fragment, null, toolbar && /* @__PURE__ */ React50.createElement("div", {
4886
+ className: "fastboard-left"
4887
+ }, /* @__PURE__ */ React50.createElement(Toolbar, null)), (redo_undo || zoom_control) && /* @__PURE__ */ React50.createElement("div", {
4888
+ className: "fastboard-bottom-left"
4889
+ }, redo_undo && /* @__PURE__ */ React50.createElement(RedoUndo, null), zoom_control && /* @__PURE__ */ React50.createElement(ZoomControl, null)), page_control && /* @__PURE__ */ React50.createElement("div", {
4890
+ className: "fastboard-bottom-right"
4891
+ }, /* @__PURE__ */ React50.createElement(PageControl, null))))));
4892
+ }
4893
+
4894
+ // src/components/ReplayFastboard.tsx
4895
+ import React51, { forwardRef as forwardRef4, useCallback as useCallback14 } from "react";
4896
+ var ReplayFastboard = /* @__PURE__ */ forwardRef4(function ReplayFastboard2(_a, ref) {
4897
+ var _b = _a, { player, theme = "light", autoHideControl = false } = _b, restProps = __objRest(_b, ["player", "theme", "autoHideControl"]);
4898
+ const useWhiteboard = useCallback14((container) => {
4899
+ if (container && player)
4900
+ player.bindContainer(container);
4901
+ }, [player]);
4902
+ if (!player) {
4903
+ return /* @__PURE__ */ React51.createElement("div", __spreadValues({
4904
+ className: "fastboard-root",
4905
+ ref
4906
+ }, restProps));
4907
+ }
4908
+ return /* @__PURE__ */ React51.createElement("div", __spreadValues({
4909
+ className: "fastboard-root",
4910
+ ref
4911
+ }, restProps), /* @__PURE__ */ React51.createElement("div", {
4912
+ className: "fastboard-view",
4913
+ ref: useWhiteboard
4914
+ }), /* @__PURE__ */ React51.createElement("div", {
4915
+ className: "fastboard-bottom"
4916
+ }, /* @__PURE__ */ React51.createElement(PlayerControl, {
4917
+ player,
4918
+ theme,
4919
+ autoHide: autoHideControl
4920
+ })));
4921
+ });
4922
+
2027
4923
  // src/vanilla/index.tsx
2028
- import React50 from "react";
4924
+ import React52 from "react";
2029
4925
  import ReactDOM from "react-dom";
2030
4926
  function mount(app, dom, props) {
2031
- ReactDOM.render(/* @__PURE__ */ React50.createElement(Fastboard, __spreadValues({
4927
+ ReactDOM.render(/* @__PURE__ */ React52.createElement(Fastboard, __spreadValues({
2032
4928
  app
2033
4929
  }, props)), dom);
2034
4930
  return {
2035
4931
  update(props2) {
2036
- ReactDOM.render(/* @__PURE__ */ React50.createElement(Fastboard, __spreadValues({
4932
+ ReactDOM.render(/* @__PURE__ */ React52.createElement(Fastboard, __spreadValues({
2037
4933
  app
2038
4934
  }, props2)), dom);
2039
4935
  },
@@ -2049,6 +4945,7 @@ export {
2049
4945
  PageControl,
2050
4946
  PlayerControl,
2051
4947
  RedoUndo,
4948
+ ReplayFastboard,
2052
4949
  ScalePoints,
2053
4950
  ThemeContext,
2054
4951
  Toolbar,