softbuilders-react-video-player 1.1.62 → 1.1.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
 - package/dist/components/ChapterTooltip/index.tsx +65 -65
 - package/dist/components/ControlBar/index.js +5 -2
 - package/dist/components/ControlBar/index.js.map +1 -1
 - package/dist/components/ControlBar/index.tsx +6 -3
 - package/dist/components/CurrentTimeLabel/index.tsx +13 -13
 - package/dist/components/Menu/index.tsx +49 -49
 - package/dist/components/MenuButton/index.js +1 -1
 - package/dist/components/MenuButton/index.js.map +1 -1
 - package/dist/components/MenuButton/index.tsx +1 -1
 - package/dist/components/NoteTooltip/index.tsx +46 -46
 - package/dist/components/Tooltip/index.tsx +16 -16
 - package/dist/components/VideoPlayerComponent/provider.tsx +82 -82
 - package/dist/index.mjs +6 -3
 - package/dist/styles/tailwind.css +126 -126
 - package/package.json +1 -1
 
    
        package/LICENSE
    CHANGED
    
    | 
         @@ -1,21 +1,21 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            MIT License
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            Copyright (c) 2024 masri-softbuilders
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            Permission is hereby granted, free of charge, to any person obtaining a copy
         
     | 
| 
       6 
     | 
    
         
            -
            of this software and associated documentation files (the "Software"), to deal
         
     | 
| 
       7 
     | 
    
         
            -
            in the Software without restriction, including without limitation the rights
         
     | 
| 
       8 
     | 
    
         
            -
            to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         
     | 
| 
       9 
     | 
    
         
            -
            copies of the Software, and to permit persons to whom the Software is
         
     | 
| 
       10 
     | 
    
         
            -
            furnished to do so, subject to the following conditions:
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            The above copyright notice and this permission notice shall be included in all
         
     | 
| 
       13 
     | 
    
         
            -
            copies or substantial portions of the Software.
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         
     | 
| 
       16 
     | 
    
         
            -
            IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         
     | 
| 
       17 
     | 
    
         
            -
            FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         
     | 
| 
       18 
     | 
    
         
            -
            AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         
     | 
| 
       19 
     | 
    
         
            -
            LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         
     | 
| 
       20 
     | 
    
         
            -
            OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
         
     | 
| 
       21 
     | 
    
         
            -
            SOFTWARE.
         
     | 
| 
      
 1 
     | 
    
         
            +
            MIT License
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            Copyright (c) 2024 masri-softbuilders
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Permission is hereby granted, free of charge, to any person obtaining a copy
         
     | 
| 
      
 6 
     | 
    
         
            +
            of this software and associated documentation files (the "Software"), to deal
         
     | 
| 
      
 7 
     | 
    
         
            +
            in the Software without restriction, including without limitation the rights
         
     | 
| 
      
 8 
     | 
    
         
            +
            to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         
     | 
| 
      
 9 
     | 
    
         
            +
            copies of the Software, and to permit persons to whom the Software is
         
     | 
| 
      
 10 
     | 
    
         
            +
            furnished to do so, subject to the following conditions:
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            The above copyright notice and this permission notice shall be included in all
         
     | 
| 
      
 13 
     | 
    
         
            +
            copies or substantial portions of the Software.
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         
     | 
| 
      
 16 
     | 
    
         
            +
            IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         
     | 
| 
      
 17 
     | 
    
         
            +
            FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         
     | 
| 
      
 18 
     | 
    
         
            +
            AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         
     | 
| 
      
 19 
     | 
    
         
            +
            LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         
     | 
| 
      
 20 
     | 
    
         
            +
            OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
         
     | 
| 
      
 21 
     | 
    
         
            +
            SOFTWARE.
         
     | 
| 
         @@ -1,65 +1,65 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import React, { useEffect, useState } from "react";
         
     | 
| 
       2 
     | 
    
         
            -
            import Tooltip from "../Tooltip";
         
     | 
| 
       3 
     | 
    
         
            -
            import { durationFormater } from "../../utils";
         
     | 
| 
       4 
     | 
    
         
            -
            import { SoftBuildersVideoPlayerChapter } from "../../types";
         
     | 
| 
       5 
     | 
    
         
            -
            import { useSoftBuildersVideoPlayerContext } from "../VideoPlayerComponent/provider";
         
     | 
| 
       6 
     | 
    
         
            -
            type Chapter = SoftBuildersVideoPlayerChapter & {
         
     | 
| 
       7 
     | 
    
         
            -
              startPercentage: number;
         
     | 
| 
       8 
     | 
    
         
            -
              endPercentage: number;
         
     | 
| 
       9 
     | 
    
         
            -
            };
         
     | 
| 
       10 
     | 
    
         
            -
            type Props = {
         
     | 
| 
       11 
     | 
    
         
            -
              chapter: Chapter;
         
     | 
| 
       12 
     | 
    
         
            -
            };
         
     | 
| 
       13 
     | 
    
         
            -
            const ChapterTooltip = ({ chapter }: Props) => {
         
     | 
| 
       14 
     | 
    
         
            -
              const { player } = useSoftBuildersVideoPlayerContext();
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              const [open, setOpen] = useState(false);
         
     | 
| 
       17 
     | 
    
         
            -
              const { currentTime } = useSoftBuildersVideoPlayerContext();
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
              useEffect(() => {
         
     | 
| 
       20 
     | 
    
         
            -
                if (currentTime === Math.floor(chapter.startTime)) {
         
     | 
| 
       21 
     | 
    
         
            -
                  setOpen(true);
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                  setTimeout(() => {
         
     | 
| 
       24 
     | 
    
         
            -
                    setOpen(false);
         
     | 
| 
       25 
     | 
    
         
            -
                  }, 5000);
         
     | 
| 
       26 
     | 
    
         
            -
                }
         
     | 
| 
       27 
     | 
    
         
            -
              }, [currentTime, chapter.startTime]);
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
              const handleClickChapter = () => {
         
     | 
| 
       30 
     | 
    
         
            -
                player?.currentTime(chapter.startTime);
         
     | 
| 
       31 
     | 
    
         
            -
              };
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
              return (
         
     | 
| 
       34 
     | 
    
         
            -
                <div
         
     | 
| 
       35 
     | 
    
         
            -
                  id={`ii-section-${chapter.title}`}
         
     | 
| 
       36 
     | 
    
         
            -
                  className="sb-flex sb-items-center sb-w-full sb-h-full sb-absolute sb-z-20"
         
     | 
| 
       37 
     | 
    
         
            -
                  style={{
         
     | 
| 
       38 
     | 
    
         
            -
                    left: `${chapter.startPercentage}%`,
         
     | 
| 
       39 
     | 
    
         
            -
                    width: `${chapter.endPercentage - chapter.startPercentage}%`,
         
     | 
| 
       40 
     | 
    
         
            -
                  }}
         
     | 
| 
       41 
     | 
    
         
            -
                  onMouseEnter={() => setOpen(true)}
         
     | 
| 
       42 
     | 
    
         
            -
                  onMouseLeave={() => setOpen(false)}
         
     | 
| 
       43 
     | 
    
         
            -
                >
         
     | 
| 
       44 
     | 
    
         
            -
                  <button
         
     | 
| 
       45 
     | 
    
         
            -
                    id={`section-${chapter.title}`}
         
     | 
| 
       46 
     | 
    
         
            -
                    className="sb-h-full sb-w-full"
         
     | 
| 
       47 
     | 
    
         
            -
                    onClick={handleClickChapter}
         
     | 
| 
       48 
     | 
    
         
            -
                  >
         
     | 
| 
       49 
     | 
    
         
            -
                    <div className="sb-relative sb-flex sb-h-full sb-w-full sb-justify-between sb-items-center">
         
     | 
| 
       50 
     | 
    
         
            -
                      <Tooltip open={open}>
         
     | 
| 
       51 
     | 
    
         
            -
                        <div className="sb-flex sb-flex-col sb-gap-2 sb-items-center">
         
     | 
| 
       52 
     | 
    
         
            -
                          <p>{chapter.title}</p>
         
     | 
| 
       53 
     | 
    
         
            -
                          <p className="sb-p-2 sb-bg-[#303030] sb-bg-opacity-50 sb-rounded-md">
         
     | 
| 
       54 
     | 
    
         
            -
                            {durationFormater(chapter.startTime)} -{" "}
         
     | 
| 
       55 
     | 
    
         
            -
                            {durationFormater(chapter.endTime)}
         
     | 
| 
       56 
     | 
    
         
            -
                          </p>
         
     | 
| 
       57 
     | 
    
         
            -
                        </div>
         
     | 
| 
       58 
     | 
    
         
            -
                      </Tooltip>
         
     | 
| 
       59 
     | 
    
         
            -
                    </div>
         
     | 
| 
       60 
     | 
    
         
            -
                  </button>
         
     | 
| 
       61 
     | 
    
         
            -
                </div>
         
     | 
| 
       62 
     | 
    
         
            -
              );
         
     | 
| 
       63 
     | 
    
         
            -
            };
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
            export default ChapterTooltip;
         
     | 
| 
      
 1 
     | 
    
         
            +
            import React, { useEffect, useState } from "react";
         
     | 
| 
      
 2 
     | 
    
         
            +
            import Tooltip from "../Tooltip";
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { durationFormater } from "../../utils";
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { SoftBuildersVideoPlayerChapter } from "../../types";
         
     | 
| 
      
 5 
     | 
    
         
            +
            import { useSoftBuildersVideoPlayerContext } from "../VideoPlayerComponent/provider";
         
     | 
| 
      
 6 
     | 
    
         
            +
            type Chapter = SoftBuildersVideoPlayerChapter & {
         
     | 
| 
      
 7 
     | 
    
         
            +
              startPercentage: number;
         
     | 
| 
      
 8 
     | 
    
         
            +
              endPercentage: number;
         
     | 
| 
      
 9 
     | 
    
         
            +
            };
         
     | 
| 
      
 10 
     | 
    
         
            +
            type Props = {
         
     | 
| 
      
 11 
     | 
    
         
            +
              chapter: Chapter;
         
     | 
| 
      
 12 
     | 
    
         
            +
            };
         
     | 
| 
      
 13 
     | 
    
         
            +
            const ChapterTooltip = ({ chapter }: Props) => {
         
     | 
| 
      
 14 
     | 
    
         
            +
              const { player } = useSoftBuildersVideoPlayerContext();
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              const [open, setOpen] = useState(false);
         
     | 
| 
      
 17 
     | 
    
         
            +
              const { currentTime } = useSoftBuildersVideoPlayerContext();
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              useEffect(() => {
         
     | 
| 
      
 20 
     | 
    
         
            +
                if (currentTime === Math.floor(chapter.startTime)) {
         
     | 
| 
      
 21 
     | 
    
         
            +
                  setOpen(true);
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                  setTimeout(() => {
         
     | 
| 
      
 24 
     | 
    
         
            +
                    setOpen(false);
         
     | 
| 
      
 25 
     | 
    
         
            +
                  }, 5000);
         
     | 
| 
      
 26 
     | 
    
         
            +
                }
         
     | 
| 
      
 27 
     | 
    
         
            +
              }, [currentTime, chapter.startTime]);
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              const handleClickChapter = () => {
         
     | 
| 
      
 30 
     | 
    
         
            +
                player?.currentTime(chapter.startTime);
         
     | 
| 
      
 31 
     | 
    
         
            +
              };
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
              return (
         
     | 
| 
      
 34 
     | 
    
         
            +
                <div
         
     | 
| 
      
 35 
     | 
    
         
            +
                  id={`ii-section-${chapter.title}`}
         
     | 
| 
      
 36 
     | 
    
         
            +
                  className="sb-flex sb-items-center sb-w-full sb-h-full sb-absolute sb-z-20"
         
     | 
| 
      
 37 
     | 
    
         
            +
                  style={{
         
     | 
| 
      
 38 
     | 
    
         
            +
                    left: `${chapter.startPercentage}%`,
         
     | 
| 
      
 39 
     | 
    
         
            +
                    width: `${chapter.endPercentage - chapter.startPercentage}%`,
         
     | 
| 
      
 40 
     | 
    
         
            +
                  }}
         
     | 
| 
      
 41 
     | 
    
         
            +
                  onMouseEnter={() => setOpen(true)}
         
     | 
| 
      
 42 
     | 
    
         
            +
                  onMouseLeave={() => setOpen(false)}
         
     | 
| 
      
 43 
     | 
    
         
            +
                >
         
     | 
| 
      
 44 
     | 
    
         
            +
                  <button
         
     | 
| 
      
 45 
     | 
    
         
            +
                    id={`section-${chapter.title}`}
         
     | 
| 
      
 46 
     | 
    
         
            +
                    className="sb-h-full sb-w-full"
         
     | 
| 
      
 47 
     | 
    
         
            +
                    onClick={handleClickChapter}
         
     | 
| 
      
 48 
     | 
    
         
            +
                  >
         
     | 
| 
      
 49 
     | 
    
         
            +
                    <div className="sb-relative sb-flex sb-h-full sb-w-full sb-justify-between sb-items-center">
         
     | 
| 
      
 50 
     | 
    
         
            +
                      <Tooltip open={open}>
         
     | 
| 
      
 51 
     | 
    
         
            +
                        <div className="sb-flex sb-flex-col sb-gap-2 sb-items-center">
         
     | 
| 
      
 52 
     | 
    
         
            +
                          <p>{chapter.title}</p>
         
     | 
| 
      
 53 
     | 
    
         
            +
                          <p className="sb-p-2 sb-bg-[#303030] sb-bg-opacity-50 sb-rounded-md">
         
     | 
| 
      
 54 
     | 
    
         
            +
                            {durationFormater(chapter.startTime)} -{" "}
         
     | 
| 
      
 55 
     | 
    
         
            +
                            {durationFormater(chapter.endTime)}
         
     | 
| 
      
 56 
     | 
    
         
            +
                          </p>
         
     | 
| 
      
 57 
     | 
    
         
            +
                        </div>
         
     | 
| 
      
 58 
     | 
    
         
            +
                      </Tooltip>
         
     | 
| 
      
 59 
     | 
    
         
            +
                    </div>
         
     | 
| 
      
 60 
     | 
    
         
            +
                  </button>
         
     | 
| 
      
 61 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 62 
     | 
    
         
            +
              );
         
     | 
| 
      
 63 
     | 
    
         
            +
            };
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
            export default ChapterTooltip;
         
     | 
| 
         @@ -66,8 +66,11 @@ const ControlBar = ({ player, isPaused, setIsPaused, duration, notes, chapters, 
     | 
|
| 
       66 
66 
     | 
    
         
             
                                    : { width: "98%" }, className: `flex gap-2 ${width < 400 ? "absolute sb-top-1" : "-sb-translate-y-0 sb-w-full"} hover:sb-w-[45%] `, children: [_jsx(CurrentTimeLabel, {}), _jsx(TimeSliderContainer, { chapters: chapters, notes: notes }), _jsx("p", { children: durationFormater(duration) })] }) }), _jsx("div", { className: "sb-h-full", children: _jsx(VolumeSlider, { volumeSliderToggler: volumeSliderToggler, width: width, setIsSeeking: (val) => setIsSeeking(val), handleControlDisplayTimer: handleControlDisplayTimer }) }), _jsx(QualityMenu, { width: width, onClick: (e, isOpen) => {
         
     | 
| 
       67 
67 
     | 
    
         
             
                                setVolumeToggler(!volumeSliderToggler);
         
     | 
| 
       68 
68 
     | 
    
         
             
                                setIsQualityMenuOpen && setIsQualityMenuOpen(isOpen);
         
     | 
| 
       69 
     | 
    
         
            -
                            } }), disableNote && (_jsx(CreateNoteMenu, { handleSaveNoteAction: handleSaveNoteAction, width: width, setNoteOpen: setNoteOpen, noteButtonClick: () => {
         
     | 
| 
       70 
     | 
    
         
            -
                                noteButtonClick( 
     | 
| 
      
 69 
     | 
    
         
            +
                            } }), disableNote && (_jsx(CreateNoteMenu, { handleSaveNoteAction: handleSaveNoteAction, width: width, setNoteOpen: setNoteOpen, noteButtonClick: (e) => {
         
     | 
| 
      
 70 
     | 
    
         
            +
                                noteButtonClick({
         
     | 
| 
      
 71 
     | 
    
         
            +
                                    time: Number((player === null || player === void 0 ? void 0 : player.currentTime()) || 0),
         
     | 
| 
      
 72 
     | 
    
         
            +
                                    isOpen: e,
         
     | 
| 
      
 73 
     | 
    
         
            +
                                });
         
     | 
| 
       71 
74 
     | 
    
         
             
                            } })), _jsx(SubtitleMenu, { width: width, onClick: (e, isOpen) => {
         
     | 
| 
       72 
75 
     | 
    
         
             
                                setVolumeToggler(!volumeSliderToggler);
         
     | 
| 
       73 
76 
     | 
    
         
             
                                setIsSubtitleMenuOpen && setIsSubtitleMenuOpen(isOpen);
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ControlBar/index.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAKvD,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,SAAS,EACT,QAAQ,GACT,MAAM,cAAc,CAAC; 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ControlBar/index.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AAKvD,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,SAAS,EACT,QAAQ,GACT,MAAM,cAAc,CAAC;AAsBtB,MAAM,UAAU,GAAG,CAAK,EACtB,MAAM,EACN,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,CAAC,EACZ,EAAE,EACF,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,eAAe,GACN,EAAE,EAAE;IACb,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,iCAAiC,EAAE,CAAC;IACvE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,CAAC,QAAgB,EAAE,EAAE;QAChC,MAAM,WAAW,GAAG,MAAM,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,EAAE,KAAI,CAAC,CAAC,CAAC;QACvD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC;IACF,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACnE,SAAS,iBAAiB,CAAC,KAAU;QACnC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;QACpD,KAAK,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;YAC7C,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC,qCAAqC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,SAAS,IAAI,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,CAAC,CAAM,EAAE,EAAE;QAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QAEpB,IAAI,QAAQ;YAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAE,CAAC;;YACxB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE,CAAC;QAErB,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,eACE,SAAS,EAAE,6EACT,KAAK,GAAG,GAAG;YACT,CAAC,CAAC,uDAAuD;YACzD,CAAC,CAAC,gBACN,UAAU,aAGV,KAAC,aAAa,KAAG,EAEjB,KAAC,kBAAkB,KAAG,EAEtB,iBACE,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;gBAClB,CAAC,YAED,KAAC,YAAY,IAAC,SAAS,EAAC,eAAe,GAAG,GACnC,EACT,iBAAQ,OAAO,EAAE,UAAU,YACxB,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,QAAQ,IAAC,SAAS,EAAC,eAAe,GAAG,CACvC,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,IAAC,SAAS,EAAC,eAAe,GAAG,CACxC,GACM,EACT,iBACE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACjB,CAAC,YAED,KAAC,WAAW,IAAC,SAAS,EAAC,eAAe,GAAG,GAClC;YAGP,eAAe;YACf,iBAAiB;YACjB,cACE,SAAS,EAAE,GACT,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,WAC9C,EAAE,YAEF,eACE,KAAK,EACH,KAAK,GAAG,GAAG;wBACT,CAAC,CAAC;4BACE,KAAK,EAAE,GAAG,KAAK,GAAG,GAAG,IAAI;4BACzB,IAAI,EAAE,IAAI;4BACV,GAAG,EAAE,KAAK;yBACX;wBACH,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAEtB,SAAS,EAAE,cACT,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,6BACtC,oBAAoB,aAGpB,KAAC,gBAAgB,KAAG,EAEpB,KAAC,mBAAmB,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAI,EACzD,sBAAI,gBAAgB,CAAC,QAAQ,CAAC,GAAK,IAC/B,GACF,EAGR,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,YAAY,IACX,mBAAmB,EAAE,mBAAmB,EACxC,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EACxC,yBAAyB,EAAE,yBAAyB,GACpD,GACE,EAEN,KAAC,WAAW,IACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,CAAM,EAAE,MAAe,EAAE,EAAE;oBACnC,gBAAgB,CAAC,CAAC,mBAAmB,CAAC,CAAC;oBACvC,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBACvD,CAAC,GACD,EAED,WAAW,IAAI,CACd,KAAC,cAAc,IACb,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE;oBACrB,eAAe,CAAC;wBACd,IAAI,EAAE,MAAM,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,EAAE,KAAI,CAAC,CAAC;wBACxC,MAAM,EAAE,CAAC;qBACV,CAAC,CAAC;gBACL,CAAC,GACD,CACH,EACD,KAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,CAAM,EAAE,MAAe,EAAE,EAAE;oBACnC,gBAAgB,CAAC,CAAC,mBAAmB,CAAC,CAAC;oBACvC,qBAAqB,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;gBACzD,CAAC,GACD,EACF,iBACE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;oBACb,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;oBAEpB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,EAAE,EAAE,CAAC;wBAC3B,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,EAAE,CAAC;oBAC3B,CAAC;yBAAM,CAAC;wBACN,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,EAAE,CAAC;oBAC9B,CAAC;gBACH,CAAC,YAED,KAAC,cAAc,IAAC,SAAS,EAAC,eAAe,GAAG,GACrC,IACL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
         
     | 
| 
         @@ -22,6 +22,7 @@ import { 
     | 
|
| 
       22 
22 
     | 
    
         
             
              PlayIcon,
         
     | 
| 
       23 
23 
     | 
    
         
             
            } from "../../images";
         
     | 
| 
       24 
24 
     | 
    
         
             
            import { set } from "video.js/dist/types/tech/middleware";
         
     | 
| 
      
 25 
     | 
    
         
            +
            import Tooltip from "../Tooltip";
         
     | 
| 
       25 
26 
     | 
    
         | 
| 
       26 
27 
     | 
    
         
             
            type Props<T> = {
         
     | 
| 
       27 
28 
     | 
    
         
             
              player: Player | undefined;
         
     | 
| 
         @@ -188,12 +189,14 @@ const ControlBar = <T,>({ 
     | 
|
| 
       188 
189 
     | 
    
         
             
                      handleSaveNoteAction={handleSaveNoteAction}
         
     | 
| 
       189 
190 
     | 
    
         
             
                      width={width}
         
     | 
| 
       190 
191 
     | 
    
         
             
                      setNoteOpen={setNoteOpen}
         
     | 
| 
       191 
     | 
    
         
            -
                      noteButtonClick={() => {
         
     | 
| 
       192 
     | 
    
         
            -
                        noteButtonClick( 
     | 
| 
      
 192 
     | 
    
         
            +
                      noteButtonClick={(e) => {
         
     | 
| 
      
 193 
     | 
    
         
            +
                        noteButtonClick({
         
     | 
| 
      
 194 
     | 
    
         
            +
                          time: Number(player?.currentTime() || 0),
         
     | 
| 
      
 195 
     | 
    
         
            +
                          isOpen: e,
         
     | 
| 
      
 196 
     | 
    
         
            +
                        });
         
     | 
| 
       193 
197 
     | 
    
         
             
                      }}
         
     | 
| 
       194 
198 
     | 
    
         
             
                    />
         
     | 
| 
       195 
199 
     | 
    
         
             
                  )}
         
     | 
| 
       196 
     | 
    
         
            -
             
     | 
| 
       197 
200 
     | 
    
         
             
                  <SubtitleMenu
         
     | 
| 
       198 
201 
     | 
    
         
             
                    width={width}
         
     | 
| 
       199 
202 
     | 
    
         
             
                    onClick={(e: any, isOpen: boolean) => {
         
     | 
| 
         @@ -1,13 +1,13 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            "use client";
         
     | 
| 
       2 
     | 
    
         
            -
            import React, { useEffect } from "react";
         
     | 
| 
       3 
     | 
    
         
            -
            import { durationFormater } from "../../utils";
         
     | 
| 
       4 
     | 
    
         
            -
            import { useSoftBuildersVideoPlayerContext } from "../VideoPlayerComponent/provider";
         
     | 
| 
       5 
     | 
    
         
            -
            type Props = {};
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
            const CurrentTimeLabel = ({}: Props) => {
         
     | 
| 
       8 
     | 
    
         
            -
              const { currentTime } = useSoftBuildersVideoPlayerContext();
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
              return <p>{durationFormater(currentTime)}</p>;
         
     | 
| 
       11 
     | 
    
         
            -
            };
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            export default CurrentTimeLabel;
         
     | 
| 
      
 1 
     | 
    
         
            +
            "use client";
         
     | 
| 
      
 2 
     | 
    
         
            +
            import React, { useEffect } from "react";
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { durationFormater } from "../../utils";
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { useSoftBuildersVideoPlayerContext } from "../VideoPlayerComponent/provider";
         
     | 
| 
      
 5 
     | 
    
         
            +
            type Props = {};
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            const CurrentTimeLabel = ({}: Props) => {
         
     | 
| 
      
 8 
     | 
    
         
            +
              const { currentTime } = useSoftBuildersVideoPlayerContext();
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              return <p>{durationFormater(currentTime)}</p>;
         
     | 
| 
      
 11 
     | 
    
         
            +
            };
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            export default CurrentTimeLabel;
         
     | 
| 
         @@ -1,49 +1,49 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import React from "react";
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            type Props = {
         
     | 
| 
       4 
     | 
    
         
            -
              name: string;
         
     | 
| 
       5 
     | 
    
         
            -
            };
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
            const Menu = ({ name }: Props) => {
         
     | 
| 
       8 
     | 
    
         
            -
              return (
         
     | 
| 
       9 
     | 
    
         
            -
                <div className="absolute right-0 z-10 w-48 mt-2 origin-top-right bg-white border border-gray-300 rounded-md shadow-lg focus:outline-none">
         
     | 
| 
       10 
     | 
    
         
            -
                  <div
         
     | 
| 
       11 
     | 
    
         
            -
                    className="py-1"
         
     | 
| 
       12 
     | 
    
         
            -
                    role="menu"
         
     | 
| 
       13 
     | 
    
         
            -
                    aria-orientation="vertical"
         
     | 
| 
       14 
     | 
    
         
            -
                    aria-labelledby={`${name}-button`}
         
     | 
| 
       15 
     | 
    
         
            -
                  >
         
     | 
| 
       16 
     | 
    
         
            -
                    <a
         
     | 
| 
       17 
     | 
    
         
            -
                      href="#"
         
     | 
| 
       18 
     | 
    
         
            -
                      className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900"
         
     | 
| 
       19 
     | 
    
         
            -
                      role="menuitem"
         
     | 
| 
       20 
     | 
    
         
            -
                    >
         
     | 
| 
       21 
     | 
    
         
            -
                      Dashboard
         
     | 
| 
       22 
     | 
    
         
            -
                    </a>
         
     | 
| 
       23 
     | 
    
         
            -
                    <a
         
     | 
| 
       24 
     | 
    
         
            -
                      href="#"
         
     | 
| 
       25 
     | 
    
         
            -
                      className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900"
         
     | 
| 
       26 
     | 
    
         
            -
                      role="menuitem"
         
     | 
| 
       27 
     | 
    
         
            -
                    >
         
     | 
| 
       28 
     | 
    
         
            -
                      Settings
         
     | 
| 
       29 
     | 
    
         
            -
                    </a>
         
     | 
| 
       30 
     | 
    
         
            -
                    <a
         
     | 
| 
       31 
     | 
    
         
            -
                      href="#"
         
     | 
| 
       32 
     | 
    
         
            -
                      className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900"
         
     | 
| 
       33 
     | 
    
         
            -
                      role="menuitem"
         
     | 
| 
       34 
     | 
    
         
            -
                    >
         
     | 
| 
       35 
     | 
    
         
            -
                      Profile
         
     | 
| 
       36 
     | 
    
         
            -
                    </a>
         
     | 
| 
       37 
     | 
    
         
            -
                    <a
         
     | 
| 
       38 
     | 
    
         
            -
                      href="#"
         
     | 
| 
       39 
     | 
    
         
            -
                      className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900"
         
     | 
| 
       40 
     | 
    
         
            -
                      role="menuitem"
         
     | 
| 
       41 
     | 
    
         
            -
                    >
         
     | 
| 
       42 
     | 
    
         
            -
                      Logout
         
     | 
| 
       43 
     | 
    
         
            -
                    </a>
         
     | 
| 
       44 
     | 
    
         
            -
                  </div>
         
     | 
| 
       45 
     | 
    
         
            -
                </div>
         
     | 
| 
       46 
     | 
    
         
            -
              );
         
     | 
| 
       47 
     | 
    
         
            -
            };
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
            export default Menu;
         
     | 
| 
      
 1 
     | 
    
         
            +
            import React from "react";
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            type Props = {
         
     | 
| 
      
 4 
     | 
    
         
            +
              name: string;
         
     | 
| 
      
 5 
     | 
    
         
            +
            };
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            const Menu = ({ name }: Props) => {
         
     | 
| 
      
 8 
     | 
    
         
            +
              return (
         
     | 
| 
      
 9 
     | 
    
         
            +
                <div className="absolute right-0 z-10 w-48 mt-2 origin-top-right bg-white border border-gray-300 rounded-md shadow-lg focus:outline-none">
         
     | 
| 
      
 10 
     | 
    
         
            +
                  <div
         
     | 
| 
      
 11 
     | 
    
         
            +
                    className="py-1"
         
     | 
| 
      
 12 
     | 
    
         
            +
                    role="menu"
         
     | 
| 
      
 13 
     | 
    
         
            +
                    aria-orientation="vertical"
         
     | 
| 
      
 14 
     | 
    
         
            +
                    aria-labelledby={`${name}-button`}
         
     | 
| 
      
 15 
     | 
    
         
            +
                  >
         
     | 
| 
      
 16 
     | 
    
         
            +
                    <a
         
     | 
| 
      
 17 
     | 
    
         
            +
                      href="#"
         
     | 
| 
      
 18 
     | 
    
         
            +
                      className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900"
         
     | 
| 
      
 19 
     | 
    
         
            +
                      role="menuitem"
         
     | 
| 
      
 20 
     | 
    
         
            +
                    >
         
     | 
| 
      
 21 
     | 
    
         
            +
                      Dashboard
         
     | 
| 
      
 22 
     | 
    
         
            +
                    </a>
         
     | 
| 
      
 23 
     | 
    
         
            +
                    <a
         
     | 
| 
      
 24 
     | 
    
         
            +
                      href="#"
         
     | 
| 
      
 25 
     | 
    
         
            +
                      className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900"
         
     | 
| 
      
 26 
     | 
    
         
            +
                      role="menuitem"
         
     | 
| 
      
 27 
     | 
    
         
            +
                    >
         
     | 
| 
      
 28 
     | 
    
         
            +
                      Settings
         
     | 
| 
      
 29 
     | 
    
         
            +
                    </a>
         
     | 
| 
      
 30 
     | 
    
         
            +
                    <a
         
     | 
| 
      
 31 
     | 
    
         
            +
                      href="#"
         
     | 
| 
      
 32 
     | 
    
         
            +
                      className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900"
         
     | 
| 
      
 33 
     | 
    
         
            +
                      role="menuitem"
         
     | 
| 
      
 34 
     | 
    
         
            +
                    >
         
     | 
| 
      
 35 
     | 
    
         
            +
                      Profile
         
     | 
| 
      
 36 
     | 
    
         
            +
                    </a>
         
     | 
| 
      
 37 
     | 
    
         
            +
                    <a
         
     | 
| 
      
 38 
     | 
    
         
            +
                      href="#"
         
     | 
| 
      
 39 
     | 
    
         
            +
                      className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 hover:text-gray-900"
         
     | 
| 
      
 40 
     | 
    
         
            +
                      role="menuitem"
         
     | 
| 
      
 41 
     | 
    
         
            +
                    >
         
     | 
| 
      
 42 
     | 
    
         
            +
                      Logout
         
     | 
| 
      
 43 
     | 
    
         
            +
                    </a>
         
     | 
| 
      
 44 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 45 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 46 
     | 
    
         
            +
              );
         
     | 
| 
      
 47 
     | 
    
         
            +
            };
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
            export default Menu;
         
     | 
| 
         @@ -33,7 +33,7 @@ const MenuButton = ({ buttonContent, menuContent, close, classContainer, onClick 
     | 
|
| 
       33 
33 
     | 
    
         
             
                                    toggleMenu();
         
     | 
| 
       34 
34 
     | 
    
         
             
                                    onClick && onClick(e, !isOpen);
         
     | 
| 
       35 
35 
     | 
    
         
             
                                }
         
     | 
| 
       36 
     | 
    
         
            -
                                noteButtonClick && noteButtonClick( 
     | 
| 
      
 36 
     | 
    
         
            +
                                noteButtonClick && noteButtonClick(isOpen);
         
     | 
| 
       37 
37 
     | 
    
         
             
                            }, "aria-haspopup": "true", "aria-expanded": isOpen, "aria-label": "Open menu", children: buttonContent }), isOpen && (_jsx("div", { ref: menuRef, role: "menu", "aria-orientation": "vertical", "aria-labelledby": "Open menu", className: `sb-absolute sb-shadow-lg sb-right-0 sb-bottom-10 ${classContainer}`, children: menuContent }))] }));
         
     | 
| 
       38 
38 
     | 
    
         
             
            };
         
     | 
| 
       39 
39 
     | 
    
         
             
            export default MenuButton;
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MenuButton/index.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAcxE,MAAM,UAAU,GAAG,CAAC,EAClB,aAAa,EACb,WAAW,EACX,KAAK,EACL,cAAc,EACd,OAAO,EACP,WAAW,EACX,eAAe,EACf,YAAY,GAAG,KAAK,GACd,EAAE,EAAE;IACV,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAE,EAAE;YAC/C,IACE,SAAS,CAAC,OAAO;gBACjB,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;gBACjD,OAAO,CAAC,OAAO;gBACf,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAC/C,CAAC;gBACD,SAAS,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3D,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC7E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK;YAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IACvB,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,OAAO,CACL,eAAK,SAAS,EAAC,mCAAmC,aAChD,iBACE,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE;oBAClB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,YAAY,EAAE,CAAC;wBAClB,UAAU,EAAE,CAAC;wBACb,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACjC,CAAC;oBAED,eAAe,IAAI,eAAe,CAAC, 
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/MenuButton/index.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAcxE,MAAM,UAAU,GAAG,CAAC,EAClB,aAAa,EACb,WAAW,EACX,KAAK,EACL,cAAc,EACd,OAAO,EACP,WAAW,EACX,eAAe,EACf,YAAY,GAAG,KAAK,GACd,EAAE,EAAE;IACV,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,kBAAkB,GAAG,CAAC,KAAiB,EAAE,EAAE;YAC/C,IACE,SAAS,CAAC,OAAO;gBACjB,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;gBACjD,OAAO,CAAC,OAAO;gBACf,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAC/C,CAAC;gBACD,SAAS,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAC3D,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC7E,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK;YAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IACvB,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,OAAO,CACL,eAAK,SAAS,EAAC,mCAAmC,aAChD,iBACE,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE;oBAClB,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpB,IAAI,CAAC,YAAY,EAAE,CAAC;wBAClB,UAAU,EAAE,CAAC;wBACb,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;oBACjC,CAAC;oBAED,eAAe,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC7C,CAAC,mBACa,MAAM,mBACL,MAAM,gBACV,WAAW,YAErB,aAAa,GACP,EAER,MAAM,IAAI,CACT,cACE,GAAG,EAAE,OAAO,EACZ,IAAI,EAAC,MAAM,sBACM,UAAU,qBACX,WAAW,EAC3B,SAAS,EAAE,oDAAoD,cAAc,EAAE,YAE9E,WAAW,GACR,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
         
     | 
| 
         @@ -1,46 +1,46 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import React, { useEffect, useState } from "react";
         
     | 
| 
       2 
     | 
    
         
            -
            import Tooltip from "../Tooltip";
         
     | 
| 
       3 
     | 
    
         
            -
            import { durationFormater } from "../../utils";
         
     | 
| 
       4 
     | 
    
         
            -
            import { useSoftBuildersVideoPlayerContext } from "../VideoPlayerComponent/provider";
         
     | 
| 
       5 
     | 
    
         
            -
            import { SoftBuildersVideoPlayerNote } from "../../types";
         
     | 
| 
       6 
     | 
    
         
            -
            type Note = SoftBuildersVideoPlayerNote & { percentage: number };
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
            type Props = {
         
     | 
| 
       9 
     | 
    
         
            -
              note: Note;
         
     | 
| 
       10 
     | 
    
         
            -
            };
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            const NoteTooltip = ({ note }: Props) => {
         
     | 
| 
       13 
     | 
    
         
            -
              const [open, setOpen] = useState(false);
         
     | 
| 
       14 
     | 
    
         
            -
              const { currentTime } = useSoftBuildersVideoPlayerContext();
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              useEffect(() => {
         
     | 
| 
       17 
     | 
    
         
            -
                if (currentTime === Math.floor(note.time)) {
         
     | 
| 
       18 
     | 
    
         
            -
                  setOpen(true);
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                  setTimeout(() => {
         
     | 
| 
       21 
     | 
    
         
            -
                    setOpen(false);
         
     | 
| 
       22 
     | 
    
         
            -
                  }, 5000);
         
     | 
| 
       23 
     | 
    
         
            -
                }
         
     | 
| 
       24 
     | 
    
         
            -
              }, [currentTime, note.time]);
         
     | 
| 
       25 
     | 
    
         
            -
              return (
         
     | 
| 
       26 
     | 
    
         
            -
                <div
         
     | 
| 
       27 
     | 
    
         
            -
                  className="sb-w-1 sb-h-1 sb-rounded-full sb-bg-white sb-absolute sb-z-30"
         
     | 
| 
       28 
     | 
    
         
            -
                  style={{ left: `${note.percentage}%` }}
         
     | 
| 
       29 
     | 
    
         
            -
                  onMouseEnter={() => setOpen(true)}
         
     | 
| 
       30 
     | 
    
         
            -
                  onMouseLeave={() => setOpen(false)}
         
     | 
| 
       31 
     | 
    
         
            -
                >
         
     | 
| 
       32 
     | 
    
         
            -
                  <div className="sb-relative">
         
     | 
| 
       33 
     | 
    
         
            -
                    <Tooltip open={open}>
         
     | 
| 
       34 
     | 
    
         
            -
                      <div className="sb-flex sb-flex-col sb-gap-2 sb-items-center">
         
     | 
| 
       35 
     | 
    
         
            -
                        <p>{note.label}</p>
         
     | 
| 
       36 
     | 
    
         
            -
                        <p className="sb-p-2 sb-bg-[#303030] sb-bg-opacity-50 sb-rounded-md">
         
     | 
| 
       37 
     | 
    
         
            -
                          {durationFormater(note.time)}
         
     | 
| 
       38 
     | 
    
         
            -
                        </p>
         
     | 
| 
       39 
     | 
    
         
            -
                      </div>
         
     | 
| 
       40 
     | 
    
         
            -
                    </Tooltip>
         
     | 
| 
       41 
     | 
    
         
            -
                  </div>
         
     | 
| 
       42 
     | 
    
         
            -
                </div>
         
     | 
| 
       43 
     | 
    
         
            -
              );
         
     | 
| 
       44 
     | 
    
         
            -
            };
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
            export default NoteTooltip;
         
     | 
| 
      
 1 
     | 
    
         
            +
            import React, { useEffect, useState } from "react";
         
     | 
| 
      
 2 
     | 
    
         
            +
            import Tooltip from "../Tooltip";
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { durationFormater } from "../../utils";
         
     | 
| 
      
 4 
     | 
    
         
            +
            import { useSoftBuildersVideoPlayerContext } from "../VideoPlayerComponent/provider";
         
     | 
| 
      
 5 
     | 
    
         
            +
            import { SoftBuildersVideoPlayerNote } from "../../types";
         
     | 
| 
      
 6 
     | 
    
         
            +
            type Note = SoftBuildersVideoPlayerNote & { percentage: number };
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            type Props = {
         
     | 
| 
      
 9 
     | 
    
         
            +
              note: Note;
         
     | 
| 
      
 10 
     | 
    
         
            +
            };
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            const NoteTooltip = ({ note }: Props) => {
         
     | 
| 
      
 13 
     | 
    
         
            +
              const [open, setOpen] = useState(false);
         
     | 
| 
      
 14 
     | 
    
         
            +
              const { currentTime } = useSoftBuildersVideoPlayerContext();
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
              useEffect(() => {
         
     | 
| 
      
 17 
     | 
    
         
            +
                if (currentTime === Math.floor(note.time)) {
         
     | 
| 
      
 18 
     | 
    
         
            +
                  setOpen(true);
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  setTimeout(() => {
         
     | 
| 
      
 21 
     | 
    
         
            +
                    setOpen(false);
         
     | 
| 
      
 22 
     | 
    
         
            +
                  }, 5000);
         
     | 
| 
      
 23 
     | 
    
         
            +
                }
         
     | 
| 
      
 24 
     | 
    
         
            +
              }, [currentTime, note.time]);
         
     | 
| 
      
 25 
     | 
    
         
            +
              return (
         
     | 
| 
      
 26 
     | 
    
         
            +
                <div
         
     | 
| 
      
 27 
     | 
    
         
            +
                  className="sb-w-1 sb-h-1 sb-rounded-full sb-bg-white sb-absolute sb-z-30"
         
     | 
| 
      
 28 
     | 
    
         
            +
                  style={{ left: `${note.percentage}%` }}
         
     | 
| 
      
 29 
     | 
    
         
            +
                  onMouseEnter={() => setOpen(true)}
         
     | 
| 
      
 30 
     | 
    
         
            +
                  onMouseLeave={() => setOpen(false)}
         
     | 
| 
      
 31 
     | 
    
         
            +
                >
         
     | 
| 
      
 32 
     | 
    
         
            +
                  <div className="sb-relative">
         
     | 
| 
      
 33 
     | 
    
         
            +
                    <Tooltip open={open}>
         
     | 
| 
      
 34 
     | 
    
         
            +
                      <div className="sb-flex sb-flex-col sb-gap-2 sb-items-center">
         
     | 
| 
      
 35 
     | 
    
         
            +
                        <p>{note.label}</p>
         
     | 
| 
      
 36 
     | 
    
         
            +
                        <p className="sb-p-2 sb-bg-[#303030] sb-bg-opacity-50 sb-rounded-md">
         
     | 
| 
      
 37 
     | 
    
         
            +
                          {durationFormater(note.time)}
         
     | 
| 
      
 38 
     | 
    
         
            +
                        </p>
         
     | 
| 
      
 39 
     | 
    
         
            +
                      </div>
         
     | 
| 
      
 40 
     | 
    
         
            +
                    </Tooltip>
         
     | 
| 
      
 41 
     | 
    
         
            +
                  </div>
         
     | 
| 
      
 42 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 43 
     | 
    
         
            +
              );
         
     | 
| 
      
 44 
     | 
    
         
            +
            };
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            export default NoteTooltip;
         
     | 
| 
         @@ -1,16 +1,16 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import React from "react";
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            type Props = {
         
     | 
| 
       4 
     | 
    
         
            -
              open: boolean;
         
     | 
| 
       5 
     | 
    
         
            -
              children: React.ReactNode;
         
     | 
| 
       6 
     | 
    
         
            -
            };
         
     | 
| 
       7 
     | 
    
         
            -
            const Tooltip = ({ open, children }: Props) => {
         
     | 
| 
       8 
     | 
    
         
            -
              if (!open) return null;
         
     | 
| 
       9 
     | 
    
         
            -
              return (
         
     | 
| 
       10 
     | 
    
         
            -
                <div className="sb-absolute sb-bottom-full sb-mb-2 sb-left-1/2 sb-transform sb--translate-x-1/2 sb-z-10 sb-whitespace-nowrap">
         
     | 
| 
       11 
     | 
    
         
            -
                  {children}
         
     | 
| 
       12 
     | 
    
         
            -
                </div>
         
     | 
| 
       13 
     | 
    
         
            -
              );
         
     | 
| 
       14 
     | 
    
         
            -
            };
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
            export default Tooltip;
         
     | 
| 
      
 1 
     | 
    
         
            +
            import React from "react";
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            type Props = {
         
     | 
| 
      
 4 
     | 
    
         
            +
              open: boolean;
         
     | 
| 
      
 5 
     | 
    
         
            +
              children: React.ReactNode;
         
     | 
| 
      
 6 
     | 
    
         
            +
            };
         
     | 
| 
      
 7 
     | 
    
         
            +
            const Tooltip = ({ open, children }: Props) => {
         
     | 
| 
      
 8 
     | 
    
         
            +
              if (!open) return null;
         
     | 
| 
      
 9 
     | 
    
         
            +
              return (
         
     | 
| 
      
 10 
     | 
    
         
            +
                <div className="sb-absolute sb-bottom-full sb-mb-2 sb-left-1/2 sb-transform sb--translate-x-1/2 sb-z-10 sb-whitespace-nowrap">
         
     | 
| 
      
 11 
     | 
    
         
            +
                  {children}
         
     | 
| 
      
 12 
     | 
    
         
            +
                </div>
         
     | 
| 
      
 13 
     | 
    
         
            +
              );
         
     | 
| 
      
 14 
     | 
    
         
            +
            };
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            export default Tooltip;
         
     | 
| 
         @@ -1,82 +1,82 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import React, {
         
     | 
| 
       2 
     | 
    
         
            -
              createContext,
         
     | 
| 
       3 
     | 
    
         
            -
              useContext,
         
     | 
| 
       4 
     | 
    
         
            -
              useState,
         
     | 
| 
       5 
     | 
    
         
            -
              ReactNode,
         
     | 
| 
       6 
     | 
    
         
            -
              useEffect,
         
     | 
| 
       7 
     | 
    
         
            -
            } from "react";
         
     | 
| 
       8 
     | 
    
         
            -
            import Player from "video.js/dist/types/player";
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
            interface SoftBuildersVideoPlayerContextType {
         
     | 
| 
       11 
     | 
    
         
            -
              player: Player | undefined;
         
     | 
| 
       12 
     | 
    
         
            -
              setPlayer: React.Dispatch<React.SetStateAction<Player | undefined>>;
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
              currentTime: number;
         
     | 
| 
       15 
     | 
    
         
            -
              setCurrentTime: (value: number) => void;
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
              duration: number;
         
     | 
| 
       18 
     | 
    
         
            -
              setDuration: React.Dispatch<React.SetStateAction<number>>;
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
              // isPaused: boolean;
         
     | 
| 
       21 
     | 
    
         
            -
              // setIsPaused: React.Dispatch<React.SetStateAction<boolean>>;
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
              downloadedBufferPercentage: number;
         
     | 
| 
       24 
     | 
    
         
            -
              downloadedBufferTime: number;
         
     | 
| 
       25 
     | 
    
         
            -
              setDownloadedBufferTimeufferTime: React.Dispatch<
         
     | 
| 
       26 
     | 
    
         
            -
                React.SetStateAction<number>
         
     | 
| 
       27 
     | 
    
         
            -
              >;
         
     | 
| 
       28 
     | 
    
         
            -
            }
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
            const SoftBuildersVideoPlayerContext = createContext<
         
     | 
| 
       31 
     | 
    
         
            -
              SoftBuildersVideoPlayerContextType | undefined
         
     | 
| 
       32 
     | 
    
         
            -
            >(undefined);
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
            // Create a provider component
         
     | 
| 
       35 
     | 
    
         
            -
            export const SoftBuildersVideoPlayerProvider = ({
         
     | 
| 
       36 
     | 
    
         
            -
              children,
         
     | 
| 
       37 
     | 
    
         
            -
            }: {
         
     | 
| 
       38 
     | 
    
         
            -
              children: ReactNode;
         
     | 
| 
       39 
     | 
    
         
            -
            }) => {
         
     | 
| 
       40 
     | 
    
         
            -
              const [player, setPlayer] = useState<Player | undefined>(undefined);
         
     | 
| 
       41 
     | 
    
         
            -
              const [currentTime, setCurrentTime] = useState<number>(0);
         
     | 
| 
       42 
     | 
    
         
            -
              const [duration, setDuration] = useState<number>(1);
         
     | 
| 
       43 
     | 
    
         
            -
              // const [isPaused, setIsPaused] = useState(false);
         
     | 
| 
       44 
     | 
    
         
            -
              const [downloadedBufferTime, setDownloadedBufferTimeufferTime] = useState(0);
         
     | 
| 
       45 
     | 
    
         
            -
              const [downloadedBufferPercentage, setDownloadedBufferPercentage] =
         
     | 
| 
       46 
     | 
    
         
            -
                useState(0);
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
              useEffect(() => {
         
     | 
| 
       49 
     | 
    
         
            -
                setDownloadedBufferPercentage((downloadedBufferTime * 100) / duration);
         
     | 
| 
       50 
     | 
    
         
            -
              }, [downloadedBufferTime]);
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
              return (
         
     | 
| 
       53 
     | 
    
         
            -
                <SoftBuildersVideoPlayerContext.Provider
         
     | 
| 
       54 
     | 
    
         
            -
                  value={{
         
     | 
| 
       55 
     | 
    
         
            -
                    player,
         
     | 
| 
       56 
     | 
    
         
            -
                    setPlayer,
         
     | 
| 
       57 
     | 
    
         
            -
                    duration,
         
     | 
| 
       58 
     | 
    
         
            -
                    setDuration,
         
     | 
| 
       59 
     | 
    
         
            -
                    currentTime,
         
     | 
| 
       60 
     | 
    
         
            -
                    setCurrentTime: (value) => setCurrentTime(Math.floor(value)),
         
     | 
| 
       61 
     | 
    
         
            -
                    // isPaused,
         
     | 
| 
       62 
     | 
    
         
            -
                    // setIsPaused,
         
     | 
| 
       63 
     | 
    
         
            -
                    downloadedBufferTime,
         
     | 
| 
       64 
     | 
    
         
            -
                    setDownloadedBufferTimeufferTime,
         
     | 
| 
       65 
     | 
    
         
            -
                    downloadedBufferPercentage,
         
     | 
| 
       66 
     | 
    
         
            -
                  }}
         
     | 
| 
       67 
     | 
    
         
            -
                >
         
     | 
| 
       68 
     | 
    
         
            -
                  {children}
         
     | 
| 
       69 
     | 
    
         
            -
                </SoftBuildersVideoPlayerContext.Provider>
         
     | 
| 
       70 
     | 
    
         
            -
              );
         
     | 
| 
       71 
     | 
    
         
            -
            };
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
            // Custom hook to use the context
         
     | 
| 
       74 
     | 
    
         
            -
            export const useSoftBuildersVideoPlayerContext = () => {
         
     | 
| 
       75 
     | 
    
         
            -
              const context = useContext(SoftBuildersVideoPlayerContext);
         
     | 
| 
       76 
     | 
    
         
            -
              if (!context) {
         
     | 
| 
       77 
     | 
    
         
            -
                throw new Error(
         
     | 
| 
       78 
     | 
    
         
            -
                  "useSoftBuildersVideoPlayerContext must be used within an SoftBuildersVideoPlayerProvider"
         
     | 
| 
       79 
     | 
    
         
            -
                );
         
     | 
| 
       80 
     | 
    
         
            -
              }
         
     | 
| 
       81 
     | 
    
         
            -
              return context;
         
     | 
| 
       82 
     | 
    
         
            -
            };
         
     | 
| 
      
 1 
     | 
    
         
            +
            import React, {
         
     | 
| 
      
 2 
     | 
    
         
            +
              createContext,
         
     | 
| 
      
 3 
     | 
    
         
            +
              useContext,
         
     | 
| 
      
 4 
     | 
    
         
            +
              useState,
         
     | 
| 
      
 5 
     | 
    
         
            +
              ReactNode,
         
     | 
| 
      
 6 
     | 
    
         
            +
              useEffect,
         
     | 
| 
      
 7 
     | 
    
         
            +
            } from "react";
         
     | 
| 
      
 8 
     | 
    
         
            +
            import Player from "video.js/dist/types/player";
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            interface SoftBuildersVideoPlayerContextType {
         
     | 
| 
      
 11 
     | 
    
         
            +
              player: Player | undefined;
         
     | 
| 
      
 12 
     | 
    
         
            +
              setPlayer: React.Dispatch<React.SetStateAction<Player | undefined>>;
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              currentTime: number;
         
     | 
| 
      
 15 
     | 
    
         
            +
              setCurrentTime: (value: number) => void;
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              duration: number;
         
     | 
| 
      
 18 
     | 
    
         
            +
              setDuration: React.Dispatch<React.SetStateAction<number>>;
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              // isPaused: boolean;
         
     | 
| 
      
 21 
     | 
    
         
            +
              // setIsPaused: React.Dispatch<React.SetStateAction<boolean>>;
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
              downloadedBufferPercentage: number;
         
     | 
| 
      
 24 
     | 
    
         
            +
              downloadedBufferTime: number;
         
     | 
| 
      
 25 
     | 
    
         
            +
              setDownloadedBufferTimeufferTime: React.Dispatch<
         
     | 
| 
      
 26 
     | 
    
         
            +
                React.SetStateAction<number>
         
     | 
| 
      
 27 
     | 
    
         
            +
              >;
         
     | 
| 
      
 28 
     | 
    
         
            +
            }
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            const SoftBuildersVideoPlayerContext = createContext<
         
     | 
| 
      
 31 
     | 
    
         
            +
              SoftBuildersVideoPlayerContextType | undefined
         
     | 
| 
      
 32 
     | 
    
         
            +
            >(undefined);
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            // Create a provider component
         
     | 
| 
      
 35 
     | 
    
         
            +
            export const SoftBuildersVideoPlayerProvider = ({
         
     | 
| 
      
 36 
     | 
    
         
            +
              children,
         
     | 
| 
      
 37 
     | 
    
         
            +
            }: {
         
     | 
| 
      
 38 
     | 
    
         
            +
              children: ReactNode;
         
     | 
| 
      
 39 
     | 
    
         
            +
            }) => {
         
     | 
| 
      
 40 
     | 
    
         
            +
              const [player, setPlayer] = useState<Player | undefined>(undefined);
         
     | 
| 
      
 41 
     | 
    
         
            +
              const [currentTime, setCurrentTime] = useState<number>(0);
         
     | 
| 
      
 42 
     | 
    
         
            +
              const [duration, setDuration] = useState<number>(1);
         
     | 
| 
      
 43 
     | 
    
         
            +
              // const [isPaused, setIsPaused] = useState(false);
         
     | 
| 
      
 44 
     | 
    
         
            +
              const [downloadedBufferTime, setDownloadedBufferTimeufferTime] = useState(0);
         
     | 
| 
      
 45 
     | 
    
         
            +
              const [downloadedBufferPercentage, setDownloadedBufferPercentage] =
         
     | 
| 
      
 46 
     | 
    
         
            +
                useState(0);
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
              useEffect(() => {
         
     | 
| 
      
 49 
     | 
    
         
            +
                setDownloadedBufferPercentage((downloadedBufferTime * 100) / duration);
         
     | 
| 
      
 50 
     | 
    
         
            +
              }, [downloadedBufferTime]);
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
              return (
         
     | 
| 
      
 53 
     | 
    
         
            +
                <SoftBuildersVideoPlayerContext.Provider
         
     | 
| 
      
 54 
     | 
    
         
            +
                  value={{
         
     | 
| 
      
 55 
     | 
    
         
            +
                    player,
         
     | 
| 
      
 56 
     | 
    
         
            +
                    setPlayer,
         
     | 
| 
      
 57 
     | 
    
         
            +
                    duration,
         
     | 
| 
      
 58 
     | 
    
         
            +
                    setDuration,
         
     | 
| 
      
 59 
     | 
    
         
            +
                    currentTime,
         
     | 
| 
      
 60 
     | 
    
         
            +
                    setCurrentTime: (value) => setCurrentTime(Math.floor(value)),
         
     | 
| 
      
 61 
     | 
    
         
            +
                    // isPaused,
         
     | 
| 
      
 62 
     | 
    
         
            +
                    // setIsPaused,
         
     | 
| 
      
 63 
     | 
    
         
            +
                    downloadedBufferTime,
         
     | 
| 
      
 64 
     | 
    
         
            +
                    setDownloadedBufferTimeufferTime,
         
     | 
| 
      
 65 
     | 
    
         
            +
                    downloadedBufferPercentage,
         
     | 
| 
      
 66 
     | 
    
         
            +
                  }}
         
     | 
| 
      
 67 
     | 
    
         
            +
                >
         
     | 
| 
      
 68 
     | 
    
         
            +
                  {children}
         
     | 
| 
      
 69 
     | 
    
         
            +
                </SoftBuildersVideoPlayerContext.Provider>
         
     | 
| 
      
 70 
     | 
    
         
            +
              );
         
     | 
| 
      
 71 
     | 
    
         
            +
            };
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
            // Custom hook to use the context
         
     | 
| 
      
 74 
     | 
    
         
            +
            export const useSoftBuildersVideoPlayerContext = () => {
         
     | 
| 
      
 75 
     | 
    
         
            +
              const context = useContext(SoftBuildersVideoPlayerContext);
         
     | 
| 
      
 76 
     | 
    
         
            +
              if (!context) {
         
     | 
| 
      
 77 
     | 
    
         
            +
                throw new Error(
         
     | 
| 
      
 78 
     | 
    
         
            +
                  "useSoftBuildersVideoPlayerContext must be used within an SoftBuildersVideoPlayerProvider"
         
     | 
| 
      
 79 
     | 
    
         
            +
                );
         
     | 
| 
      
 80 
     | 
    
         
            +
              }
         
     | 
| 
      
 81 
     | 
    
         
            +
              return context;
         
     | 
| 
      
 82 
     | 
    
         
            +
            };
         
     | 
    
        package/dist/index.mjs
    CHANGED
    
    | 
         @@ -645,7 +645,7 @@ var MenuButton = ({ 
     | 
|
| 
       645 
645 
     | 
    
         
             
                        toggleMenu();
         
     | 
| 
       646 
646 
     | 
    
         
             
                        onClick && onClick(e, !isOpen);
         
     | 
| 
       647 
647 
     | 
    
         
             
                      }
         
     | 
| 
       648 
     | 
    
         
            -
                      noteButtonClick && noteButtonClick( 
     | 
| 
      
 648 
     | 
    
         
            +
                      noteButtonClick && noteButtonClick(isOpen);
         
     | 
| 
       649 
649 
     | 
    
         
             
                    },
         
     | 
| 
       650 
650 
     | 
    
         
             
                    "aria-haspopup": "true",
         
     | 
| 
       651 
651 
     | 
    
         
             
                    "aria-expanded": isOpen,
         
     | 
| 
         @@ -1354,8 +1354,11 @@ var ControlBar = ({ 
     | 
|
| 
       1354 
1354 
     | 
    
         
             
                        handleSaveNoteAction,
         
     | 
| 
       1355 
1355 
     | 
    
         
             
                        width,
         
     | 
| 
       1356 
1356 
     | 
    
         
             
                        setNoteOpen,
         
     | 
| 
       1357 
     | 
    
         
            -
                        noteButtonClick: () => {
         
     | 
| 
       1358 
     | 
    
         
            -
                          noteButtonClick( 
     | 
| 
      
 1357 
     | 
    
         
            +
                        noteButtonClick: (e) => {
         
     | 
| 
      
 1358 
     | 
    
         
            +
                          noteButtonClick({
         
     | 
| 
      
 1359 
     | 
    
         
            +
                            time: Number((player == null ? void 0 : player.currentTime()) || 0),
         
     | 
| 
      
 1360 
     | 
    
         
            +
                            isOpen: e
         
     | 
| 
      
 1361 
     | 
    
         
            +
                          });
         
     | 
| 
       1359 
1362 
     | 
    
         
             
                        }
         
     | 
| 
       1360 
1363 
     | 
    
         
             
                      }
         
     | 
| 
       1361 
1364 
     | 
    
         
             
                    ),
         
     | 
    
        package/dist/styles/tailwind.css
    CHANGED
    
    | 
         @@ -498,417 +498,417 @@ video { 
     | 
|
| 
       498 
498 
     | 
    
         
             
            /* Make elements with the HTML hidden attribute stay hidden by default */
         
     | 
| 
       499 
499 
     | 
    
         
             
            [hidden] {
         
     | 
| 
       500 
500 
     | 
    
         
             
              display: none;
         
     | 
| 
       501 
     | 
    
         
            -
            }
         
     | 
| 
      
 501 
     | 
    
         
            +
            }
         
     | 
| 
       502 
502 
     | 
    
         
             
            .sb-visible {
         
     | 
| 
       503 
503 
     | 
    
         
             
              visibility: visible;
         
     | 
| 
       504 
     | 
    
         
            -
            }
         
     | 
| 
      
 504 
     | 
    
         
            +
            }
         
     | 
| 
       505 
505 
     | 
    
         
             
            .sb-invisible {
         
     | 
| 
       506 
506 
     | 
    
         
             
              visibility: hidden;
         
     | 
| 
       507 
     | 
    
         
            -
            }
         
     | 
| 
      
 507 
     | 
    
         
            +
            }
         
     | 
| 
       508 
508 
     | 
    
         
             
            .sb-static {
         
     | 
| 
       509 
509 
     | 
    
         
             
              position: static;
         
     | 
| 
       510 
     | 
    
         
            -
            }
         
     | 
| 
      
 510 
     | 
    
         
            +
            }
         
     | 
| 
       511 
511 
     | 
    
         
             
            .sb-absolute {
         
     | 
| 
       512 
512 
     | 
    
         
             
              position: absolute;
         
     | 
| 
       513 
     | 
    
         
            -
            }
         
     | 
| 
      
 513 
     | 
    
         
            +
            }
         
     | 
| 
       514 
514 
     | 
    
         
             
            .sb-relative {
         
     | 
| 
       515 
515 
     | 
    
         
             
              position: relative;
         
     | 
| 
       516 
     | 
    
         
            -
            }
         
     | 
| 
      
 516 
     | 
    
         
            +
            }
         
     | 
| 
       517 
517 
     | 
    
         
             
            .\!sb-top-8 {
         
     | 
| 
       518 
518 
     | 
    
         
             
              top: 2rem !important;
         
     | 
| 
       519 
     | 
    
         
            -
            }
         
     | 
| 
      
 519 
     | 
    
         
            +
            }
         
     | 
| 
       520 
520 
     | 
    
         
             
            .-sb-left-9 {
         
     | 
| 
       521 
521 
     | 
    
         
             
              left: -2.25rem;
         
     | 
| 
       522 
     | 
    
         
            -
            }
         
     | 
| 
      
 522 
     | 
    
         
            +
            }
         
     | 
| 
       523 
523 
     | 
    
         
             
            .-sb-left-\[9\.75rem\] {
         
     | 
| 
       524 
524 
     | 
    
         
             
              left: -9.75rem;
         
     | 
| 
       525 
     | 
    
         
            -
            }
         
     | 
| 
      
 525 
     | 
    
         
            +
            }
         
     | 
| 
       526 
526 
     | 
    
         
             
            .-sb-top-1 {
         
     | 
| 
       527 
527 
     | 
    
         
             
              top: -0.25rem;
         
     | 
| 
       528 
     | 
    
         
            -
            }
         
     | 
| 
      
 528 
     | 
    
         
            +
            }
         
     | 
| 
       529 
529 
     | 
    
         
             
            .sb-bottom-0 {
         
     | 
| 
       530 
530 
     | 
    
         
             
              bottom: 0px;
         
     | 
| 
       531 
     | 
    
         
            -
            }
         
     | 
| 
      
 531 
     | 
    
         
            +
            }
         
     | 
| 
       532 
532 
     | 
    
         
             
            .sb-bottom-1 {
         
     | 
| 
       533 
533 
     | 
    
         
             
              bottom: 0.25rem;
         
     | 
| 
       534 
     | 
    
         
            -
            }
         
     | 
| 
      
 534 
     | 
    
         
            +
            }
         
     | 
| 
       535 
535 
     | 
    
         
             
            .sb-bottom-10 {
         
     | 
| 
       536 
536 
     | 
    
         
             
              bottom: 2.5rem;
         
     | 
| 
       537 
     | 
    
         
            -
            }
         
     | 
| 
      
 537 
     | 
    
         
            +
            }
         
     | 
| 
       538 
538 
     | 
    
         
             
            .sb-bottom-2 {
         
     | 
| 
       539 
539 
     | 
    
         
             
              bottom: 0.5rem;
         
     | 
| 
       540 
     | 
    
         
            -
            }
         
     | 
| 
      
 540 
     | 
    
         
            +
            }
         
     | 
| 
       541 
541 
     | 
    
         
             
            .sb-bottom-full {
         
     | 
| 
       542 
542 
     | 
    
         
             
              bottom: 100%;
         
     | 
| 
       543 
     | 
    
         
            -
            }
         
     | 
| 
      
 543 
     | 
    
         
            +
            }
         
     | 
| 
       544 
544 
     | 
    
         
             
            .sb-left-0 {
         
     | 
| 
       545 
545 
     | 
    
         
             
              left: 0px;
         
     | 
| 
       546 
     | 
    
         
            -
            }
         
     | 
| 
      
 546 
     | 
    
         
            +
            }
         
     | 
| 
       547 
547 
     | 
    
         
             
            .sb-left-1\/2 {
         
     | 
| 
       548 
548 
     | 
    
         
             
              left: 50%;
         
     | 
| 
       549 
     | 
    
         
            -
            }
         
     | 
| 
      
 549 
     | 
    
         
            +
            }
         
     | 
| 
       550 
550 
     | 
    
         
             
            .sb-right-0 {
         
     | 
| 
       551 
551 
     | 
    
         
             
              right: 0px;
         
     | 
| 
       552 
     | 
    
         
            -
            }
         
     | 
| 
      
 552 
     | 
    
         
            +
            }
         
     | 
| 
       553 
553 
     | 
    
         
             
            .sb-top-0 {
         
     | 
| 
       554 
554 
     | 
    
         
             
              top: 0px;
         
     | 
| 
       555 
     | 
    
         
            -
            }
         
     | 
| 
      
 555 
     | 
    
         
            +
            }
         
     | 
| 
       556 
556 
     | 
    
         
             
            .sb-top-1 {
         
     | 
| 
       557 
557 
     | 
    
         
             
              top: 0.25rem;
         
     | 
| 
       558 
     | 
    
         
            -
            }
         
     | 
| 
      
 558 
     | 
    
         
            +
            }
         
     | 
| 
       559 
559 
     | 
    
         
             
            .sb-top-2 {
         
     | 
| 
       560 
560 
     | 
    
         
             
              top: 0.5rem;
         
     | 
| 
       561 
     | 
    
         
            -
            }
         
     | 
| 
      
 561 
     | 
    
         
            +
            }
         
     | 
| 
       562 
562 
     | 
    
         
             
            .sb-top-\[27\%\] {
         
     | 
| 
       563 
563 
     | 
    
         
             
              top: 27%;
         
     | 
| 
       564 
     | 
    
         
            -
            }
         
     | 
| 
      
 564 
     | 
    
         
            +
            }
         
     | 
| 
       565 
565 
     | 
    
         
             
            .sb-z-10 {
         
     | 
| 
       566 
566 
     | 
    
         
             
              z-index: 10;
         
     | 
| 
       567 
     | 
    
         
            -
            }
         
     | 
| 
      
 567 
     | 
    
         
            +
            }
         
     | 
| 
       568 
568 
     | 
    
         
             
            .sb-z-20 {
         
     | 
| 
       569 
569 
     | 
    
         
             
              z-index: 20;
         
     | 
| 
       570 
     | 
    
         
            -
            }
         
     | 
| 
      
 570 
     | 
    
         
            +
            }
         
     | 
| 
       571 
571 
     | 
    
         
             
            .sb-z-30 {
         
     | 
| 
       572 
572 
     | 
    
         
             
              z-index: 30;
         
     | 
| 
       573 
     | 
    
         
            -
            }
         
     | 
| 
      
 573 
     | 
    
         
            +
            }
         
     | 
| 
       574 
574 
     | 
    
         
             
            .sb-col-span-3 {
         
     | 
| 
       575 
575 
     | 
    
         
             
              grid-column: span 3 / span 3;
         
     | 
| 
       576 
     | 
    
         
            -
            }
         
     | 
| 
      
 576 
     | 
    
         
            +
            }
         
     | 
| 
       577 
577 
     | 
    
         
             
            .sb-col-span-9 {
         
     | 
| 
       578 
578 
     | 
    
         
             
              grid-column: span 9 / span 9;
         
     | 
| 
       579 
     | 
    
         
            -
            }
         
     | 
| 
      
 579 
     | 
    
         
            +
            }
         
     | 
| 
       580 
580 
     | 
    
         
             
            .sb-mb-1 {
         
     | 
| 
       581 
581 
     | 
    
         
             
              margin-bottom: 0.25rem;
         
     | 
| 
       582 
     | 
    
         
            -
            }
         
     | 
| 
      
 582 
     | 
    
         
            +
            }
         
     | 
| 
       583 
583 
     | 
    
         
             
            .sb-mb-2 {
         
     | 
| 
       584 
584 
     | 
    
         
             
              margin-bottom: 0.5rem;
         
     | 
| 
       585 
     | 
    
         
            -
            }
         
     | 
| 
      
 585 
     | 
    
         
            +
            }
         
     | 
| 
       586 
586 
     | 
    
         
             
            .sb-ml-0 {
         
     | 
| 
       587 
587 
     | 
    
         
             
              margin-left: 0px;
         
     | 
| 
       588 
     | 
    
         
            -
            }
         
     | 
| 
      
 588 
     | 
    
         
            +
            }
         
     | 
| 
       589 
589 
     | 
    
         
             
            .sb-mr-0 {
         
     | 
| 
       590 
590 
     | 
    
         
             
              margin-right: 0px;
         
     | 
| 
       591 
     | 
    
         
            -
            }
         
     | 
| 
      
 591 
     | 
    
         
            +
            }
         
     | 
| 
       592 
592 
     | 
    
         
             
            .sb-flex {
         
     | 
| 
       593 
593 
     | 
    
         
             
              display: flex;
         
     | 
| 
       594 
     | 
    
         
            -
            }
         
     | 
| 
      
 594 
     | 
    
         
            +
            }
         
     | 
| 
       595 
595 
     | 
    
         
             
            .sb-grid {
         
     | 
| 
       596 
596 
     | 
    
         
             
              display: grid;
         
     | 
| 
       597 
     | 
    
         
            -
            }
         
     | 
| 
      
 597 
     | 
    
         
            +
            }
         
     | 
| 
       598 
598 
     | 
    
         
             
            .sb-h-1 {
         
     | 
| 
       599 
599 
     | 
    
         
             
              height: 0.25rem;
         
     | 
| 
       600 
     | 
    
         
            -
            }
         
     | 
| 
      
 600 
     | 
    
         
            +
            }
         
     | 
| 
       601 
601 
     | 
    
         
             
            .sb-h-16 {
         
     | 
| 
       602 
602 
     | 
    
         
             
              height: 4rem;
         
     | 
| 
       603 
     | 
    
         
            -
            }
         
     | 
| 
      
 603 
     | 
    
         
            +
            }
         
     | 
| 
       604 
604 
     | 
    
         
             
            .sb-h-2 {
         
     | 
| 
       605 
605 
     | 
    
         
             
              height: 0.5rem;
         
     | 
| 
       606 
     | 
    
         
            -
            }
         
     | 
| 
      
 606 
     | 
    
         
            +
            }
         
     | 
| 
       607 
607 
     | 
    
         
             
            .sb-h-3 {
         
     | 
| 
       608 
608 
     | 
    
         
             
              height: 0.75rem;
         
     | 
| 
       609 
     | 
    
         
            -
            }
         
     | 
| 
      
 609 
     | 
    
         
            +
            }
         
     | 
| 
       610 
610 
     | 
    
         
             
            .sb-h-4 {
         
     | 
| 
       611 
611 
     | 
    
         
             
              height: 1rem;
         
     | 
| 
       612 
     | 
    
         
            -
            }
         
     | 
| 
      
 612 
     | 
    
         
            +
            }
         
     | 
| 
       613 
613 
     | 
    
         
             
            .sb-h-5 {
         
     | 
| 
       614 
614 
     | 
    
         
             
              height: 1.25rem;
         
     | 
| 
       615 
     | 
    
         
            -
            }
         
     | 
| 
      
 615 
     | 
    
         
            +
            }
         
     | 
| 
       616 
616 
     | 
    
         
             
            .sb-h-\[\.1px\] {
         
     | 
| 
       617 
617 
     | 
    
         
             
              height: .1px;
         
     | 
| 
       618 
     | 
    
         
            -
            }
         
     | 
| 
      
 618 
     | 
    
         
            +
            }
         
     | 
| 
       619 
619 
     | 
    
         
             
            .sb-h-\[3px\] {
         
     | 
| 
       620 
620 
     | 
    
         
             
              height: 3px;
         
     | 
| 
       621 
     | 
    
         
            -
            }
         
     | 
| 
      
 621 
     | 
    
         
            +
            }
         
     | 
| 
       622 
622 
     | 
    
         
             
            .sb-h-full {
         
     | 
| 
       623 
623 
     | 
    
         
             
              height: 100%;
         
     | 
| 
       624 
     | 
    
         
            -
            }
         
     | 
| 
      
 624 
     | 
    
         
            +
            }
         
     | 
| 
       625 
625 
     | 
    
         
             
            .\!sb-w-16 {
         
     | 
| 
       626 
626 
     | 
    
         
             
              width: 4rem !important;
         
     | 
| 
       627 
     | 
    
         
            -
            }
         
     | 
| 
      
 627 
     | 
    
         
            +
            }
         
     | 
| 
       628 
628 
     | 
    
         
             
            .sb-w-1 {
         
     | 
| 
       629 
629 
     | 
    
         
             
              width: 0.25rem;
         
     | 
| 
       630 
     | 
    
         
            -
            }
         
     | 
| 
      
 630 
     | 
    
         
            +
            }
         
     | 
| 
       631 
631 
     | 
    
         
             
            .sb-w-16 {
         
     | 
| 
       632 
632 
     | 
    
         
             
              width: 4rem;
         
     | 
| 
       633 
     | 
    
         
            -
            }
         
     | 
| 
      
 633 
     | 
    
         
            +
            }
         
     | 
| 
       634 
634 
     | 
    
         
             
            .sb-w-3 {
         
     | 
| 
       635 
635 
     | 
    
         
             
              width: 0.75rem;
         
     | 
| 
       636 
     | 
    
         
            -
            }
         
     | 
| 
      
 636 
     | 
    
         
            +
            }
         
     | 
| 
       637 
637 
     | 
    
         
             
            .sb-w-4 {
         
     | 
| 
       638 
638 
     | 
    
         
             
              width: 1rem;
         
     | 
| 
       639 
     | 
    
         
            -
            }
         
     | 
| 
      
 639 
     | 
    
         
            +
            }
         
     | 
| 
       640 
640 
     | 
    
         
             
            .sb-w-5 {
         
     | 
| 
       641 
641 
     | 
    
         
             
              width: 1.25rem;
         
     | 
| 
       642 
     | 
    
         
            -
            }
         
     | 
| 
      
 642 
     | 
    
         
            +
            }
         
     | 
| 
       643 
643 
     | 
    
         
             
            .sb-w-\[150px\] {
         
     | 
| 
       644 
644 
     | 
    
         
             
              width: 150px;
         
     | 
| 
       645 
     | 
    
         
            -
            }
         
     | 
| 
      
 645 
     | 
    
         
            +
            }
         
     | 
| 
       646 
646 
     | 
    
         
             
            .sb-w-\[220px\] {
         
     | 
| 
       647 
647 
     | 
    
         
             
              width: 220px;
         
     | 
| 
       648 
     | 
    
         
            -
            }
         
     | 
| 
      
 648 
     | 
    
         
            +
            }
         
     | 
| 
       649 
649 
     | 
    
         
             
            .sb-w-\[22px\] {
         
     | 
| 
       650 
650 
     | 
    
         
             
              width: 22px;
         
     | 
| 
       651 
     | 
    
         
            -
            }
         
     | 
| 
      
 651 
     | 
    
         
            +
            }
         
     | 
| 
       652 
652 
     | 
    
         
             
            .sb-w-\[90px\] {
         
     | 
| 
       653 
653 
     | 
    
         
             
              width: 90px;
         
     | 
| 
       654 
     | 
    
         
            -
            }
         
     | 
| 
      
 654 
     | 
    
         
            +
            }
         
     | 
| 
       655 
655 
     | 
    
         
             
            .sb-w-full {
         
     | 
| 
       656 
656 
     | 
    
         
             
              width: 100%;
         
     | 
| 
       657 
     | 
    
         
            -
            }
         
     | 
| 
      
 657 
     | 
    
         
            +
            }
         
     | 
| 
       658 
658 
     | 
    
         
             
            .sb-flex-1 {
         
     | 
| 
       659 
659 
     | 
    
         
             
              flex: 1 1 0%;
         
     | 
| 
       660 
     | 
    
         
            -
            }
         
     | 
| 
      
 660 
     | 
    
         
            +
            }
         
     | 
| 
       661 
661 
     | 
    
         
             
            .sb-border-spacing-x-2 {
         
     | 
| 
       662 
662 
     | 
    
         
             
              --tw-border-spacing-x: 0.5rem;
         
     | 
| 
       663 
663 
     | 
    
         
             
              border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y);
         
     | 
| 
       664 
     | 
    
         
            -
            }
         
     | 
| 
      
 664 
     | 
    
         
            +
            }
         
     | 
| 
       665 
665 
     | 
    
         
             
            .-sb-translate-y-0 {
         
     | 
| 
       666 
666 
     | 
    
         
             
              --tw-translate-y: -0px;
         
     | 
| 
       667 
667 
     | 
    
         
             
              transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
         
     | 
| 
       668 
     | 
    
         
            -
            }
         
     | 
| 
      
 668 
     | 
    
         
            +
            }
         
     | 
| 
       669 
669 
     | 
    
         
             
            .-sb-translate-y-1 {
         
     | 
| 
       670 
670 
     | 
    
         
             
              --tw-translate-y: -0.25rem;
         
     | 
| 
       671 
671 
     | 
    
         
             
              transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
         
     | 
| 
       672 
     | 
    
         
            -
            }
         
     | 
| 
      
 672 
     | 
    
         
            +
            }
         
     | 
| 
       673 
673 
     | 
    
         
             
            .sb--translate-x-1\/2 {
         
     | 
| 
       674 
674 
     | 
    
         
             
              --tw-translate-x: -50%;
         
     | 
| 
       675 
675 
     | 
    
         
             
              transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
         
     | 
| 
       676 
     | 
    
         
            -
            }
         
     | 
| 
      
 676 
     | 
    
         
            +
            }
         
     | 
| 
       677 
677 
     | 
    
         
             
            .sb-translate-y-0 {
         
     | 
| 
       678 
678 
     | 
    
         
             
              --tw-translate-y: 0px;
         
     | 
| 
       679 
679 
     | 
    
         
             
              transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
         
     | 
| 
       680 
     | 
    
         
            -
            }
         
     | 
| 
      
 680 
     | 
    
         
            +
            }
         
     | 
| 
       681 
681 
     | 
    
         
             
            .sb-translate-y-1 {
         
     | 
| 
       682 
682 
     | 
    
         
             
              --tw-translate-y: 0.25rem;
         
     | 
| 
       683 
683 
     | 
    
         
             
              transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
         
     | 
| 
       684 
     | 
    
         
            -
            }
         
     | 
| 
      
 684 
     | 
    
         
            +
            }
         
     | 
| 
       685 
685 
     | 
    
         
             
            .-sb-rotate-90 {
         
     | 
| 
       686 
686 
     | 
    
         
             
              --tw-rotate: -90deg;
         
     | 
| 
       687 
687 
     | 
    
         
             
              transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
         
     | 
| 
       688 
     | 
    
         
            -
            }
         
     | 
| 
      
 688 
     | 
    
         
            +
            }
         
     | 
| 
       689 
689 
     | 
    
         
             
            .sb-rotate-0 {
         
     | 
| 
       690 
690 
     | 
    
         
             
              --tw-rotate: 0deg;
         
     | 
| 
       691 
691 
     | 
    
         
             
              transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
         
     | 
| 
       692 
     | 
    
         
            -
            }
         
     | 
| 
      
 692 
     | 
    
         
            +
            }
         
     | 
| 
       693 
693 
     | 
    
         
             
            .sb-rotate-90 {
         
     | 
| 
       694 
694 
     | 
    
         
             
              --tw-rotate: 90deg;
         
     | 
| 
       695 
695 
     | 
    
         
             
              transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
         
     | 
| 
       696 
     | 
    
         
            -
            }
         
     | 
| 
      
 696 
     | 
    
         
            +
            }
         
     | 
| 
       697 
697 
     | 
    
         
             
            .sb-transform {
         
     | 
| 
       698 
698 
     | 
    
         
             
              transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
         
     | 
| 
       699 
     | 
    
         
            -
            }
         
     | 
| 
      
 699 
     | 
    
         
            +
            }
         
     | 
| 
       700 
700 
     | 
    
         
             
            .sb-cursor-pointer {
         
     | 
| 
       701 
701 
     | 
    
         
             
              cursor: pointer;
         
     | 
| 
       702 
     | 
    
         
            -
            }
         
     | 
| 
      
 702 
     | 
    
         
            +
            }
         
     | 
| 
       703 
703 
     | 
    
         
             
            .sb-appearance-none {
         
     | 
| 
       704 
704 
     | 
    
         
             
              -webkit-appearance: none;
         
     | 
| 
       705 
705 
     | 
    
         
             
                 -moz-appearance: none;
         
     | 
| 
       706 
706 
     | 
    
         
             
                      appearance: none;
         
     | 
| 
       707 
     | 
    
         
            -
            }
         
     | 
| 
      
 707 
     | 
    
         
            +
            }
         
     | 
| 
       708 
708 
     | 
    
         
             
            .sb-grid-cols-12 {
         
     | 
| 
       709 
709 
     | 
    
         
             
              grid-template-columns: repeat(12, minmax(0, 1fr));
         
     | 
| 
       710 
     | 
    
         
            -
            }
         
     | 
| 
      
 710 
     | 
    
         
            +
            }
         
     | 
| 
       711 
711 
     | 
    
         
             
            .\!sb-flex-row {
         
     | 
| 
       712 
712 
     | 
    
         
             
              flex-direction: row !important;
         
     | 
| 
       713 
     | 
    
         
            -
            }
         
     | 
| 
      
 713 
     | 
    
         
            +
            }
         
     | 
| 
       714 
714 
     | 
    
         
             
            .sb-flex-row {
         
     | 
| 
       715 
715 
     | 
    
         
             
              flex-direction: row;
         
     | 
| 
       716 
     | 
    
         
            -
            }
         
     | 
| 
      
 716 
     | 
    
         
            +
            }
         
     | 
| 
       717 
717 
     | 
    
         
             
            .sb-flex-col {
         
     | 
| 
       718 
718 
     | 
    
         
             
              flex-direction: column;
         
     | 
| 
       719 
     | 
    
         
            -
            }
         
     | 
| 
      
 719 
     | 
    
         
            +
            }
         
     | 
| 
       720 
720 
     | 
    
         
             
            .sb-flex-col-reverse {
         
     | 
| 
       721 
721 
     | 
    
         
             
              flex-direction: column-reverse;
         
     | 
| 
       722 
     | 
    
         
            -
            }
         
     | 
| 
      
 722 
     | 
    
         
            +
            }
         
     | 
| 
       723 
723 
     | 
    
         
             
            .\!sb-items-start {
         
     | 
| 
       724 
724 
     | 
    
         
             
              align-items: flex-start !important;
         
     | 
| 
       725 
     | 
    
         
            -
            }
         
     | 
| 
      
 725 
     | 
    
         
            +
            }
         
     | 
| 
       726 
726 
     | 
    
         
             
            .sb-items-start {
         
     | 
| 
       727 
727 
     | 
    
         
             
              align-items: flex-start;
         
     | 
| 
       728 
     | 
    
         
            -
            }
         
     | 
| 
      
 728 
     | 
    
         
            +
            }
         
     | 
| 
       729 
729 
     | 
    
         
             
            .sb-items-end {
         
     | 
| 
       730 
730 
     | 
    
         
             
              align-items: flex-end;
         
     | 
| 
       731 
     | 
    
         
            -
            }
         
     | 
| 
      
 731 
     | 
    
         
            +
            }
         
     | 
| 
       732 
732 
     | 
    
         
             
            .sb-items-center {
         
     | 
| 
       733 
733 
     | 
    
         
             
              align-items: center;
         
     | 
| 
       734 
     | 
    
         
            -
            }
         
     | 
| 
      
 734 
     | 
    
         
            +
            }
         
     | 
| 
       735 
735 
     | 
    
         
             
            .\!sb-justify-start {
         
     | 
| 
       736 
736 
     | 
    
         
             
              justify-content: flex-start !important;
         
     | 
| 
       737 
     | 
    
         
            -
            }
         
     | 
| 
      
 737 
     | 
    
         
            +
            }
         
     | 
| 
       738 
738 
     | 
    
         
             
            .sb-justify-center {
         
     | 
| 
       739 
739 
     | 
    
         
             
              justify-content: center;
         
     | 
| 
       740 
     | 
    
         
            -
            }
         
     | 
| 
      
 740 
     | 
    
         
            +
            }
         
     | 
| 
       741 
741 
     | 
    
         
             
            .sb-justify-between {
         
     | 
| 
       742 
742 
     | 
    
         
             
              justify-content: space-between;
         
     | 
| 
       743 
     | 
    
         
            -
            }
         
     | 
| 
      
 743 
     | 
    
         
            +
            }
         
     | 
| 
       744 
744 
     | 
    
         
             
            .sb-gap-1 {
         
     | 
| 
       745 
745 
     | 
    
         
             
              gap: 0.25rem;
         
     | 
| 
       746 
     | 
    
         
            -
            }
         
     | 
| 
      
 746 
     | 
    
         
            +
            }
         
     | 
| 
       747 
747 
     | 
    
         
             
            .sb-gap-2 {
         
     | 
| 
       748 
748 
     | 
    
         
             
              gap: 0.5rem;
         
     | 
| 
       749 
     | 
    
         
            -
            }
         
     | 
| 
      
 749 
     | 
    
         
            +
            }
         
     | 
| 
       750 
750 
     | 
    
         
             
            .sb-gap-3 {
         
     | 
| 
       751 
751 
     | 
    
         
             
              gap: 0.75rem;
         
     | 
| 
       752 
     | 
    
         
            -
            }
         
     | 
| 
      
 752 
     | 
    
         
            +
            }
         
     | 
| 
       753 
753 
     | 
    
         
             
            .sb-gap-4 {
         
     | 
| 
       754 
754 
     | 
    
         
             
              gap: 1rem;
         
     | 
| 
       755 
     | 
    
         
            -
            }
         
     | 
| 
      
 755 
     | 
    
         
            +
            }
         
     | 
| 
       756 
756 
     | 
    
         
             
            .sb-overflow-hidden {
         
     | 
| 
       757 
757 
     | 
    
         
             
              overflow: hidden;
         
     | 
| 
       758 
     | 
    
         
            -
            }
         
     | 
| 
      
 758 
     | 
    
         
            +
            }
         
     | 
| 
       759 
759 
     | 
    
         
             
            .sb-whitespace-nowrap {
         
     | 
| 
       760 
760 
     | 
    
         
             
              white-space: nowrap;
         
     | 
| 
       761 
     | 
    
         
            -
            }
         
     | 
| 
      
 761 
     | 
    
         
            +
            }
         
     | 
| 
       762 
762 
     | 
    
         
             
            .sb-rounded-full {
         
     | 
| 
       763 
763 
     | 
    
         
             
              border-radius: 9999px;
         
     | 
| 
       764 
     | 
    
         
            -
            }
         
     | 
| 
      
 764 
     | 
    
         
            +
            }
         
     | 
| 
       765 
765 
     | 
    
         
             
            .sb-rounded-lg {
         
     | 
| 
       766 
766 
     | 
    
         
             
              border-radius: 0.5rem;
         
     | 
| 
       767 
     | 
    
         
            -
            }
         
     | 
| 
      
 767 
     | 
    
         
            +
            }
         
     | 
| 
       768 
768 
     | 
    
         
             
            .sb-rounded-md {
         
     | 
| 
       769 
769 
     | 
    
         
             
              border-radius: 0.375rem;
         
     | 
| 
       770 
     | 
    
         
            -
            }
         
     | 
| 
      
 770 
     | 
    
         
            +
            }
         
     | 
| 
       771 
771 
     | 
    
         
             
            .sb-border {
         
     | 
| 
       772 
772 
     | 
    
         
             
              border-width: 1px;
         
     | 
| 
       773 
     | 
    
         
            -
            }
         
     | 
| 
      
 773 
     | 
    
         
            +
            }
         
     | 
| 
       774 
774 
     | 
    
         
             
            .sb-border-\[\#AAAAAA\] {
         
     | 
| 
       775 
775 
     | 
    
         
             
              --tw-border-opacity: 1;
         
     | 
| 
       776 
776 
     | 
    
         
             
              border-color: rgb(170 170 170 / var(--tw-border-opacity));
         
     | 
| 
       777 
     | 
    
         
            -
            }
         
     | 
| 
      
 777 
     | 
    
         
            +
            }
         
     | 
| 
       778 
778 
     | 
    
         
             
            .sb-bg-\[\#303030\] {
         
     | 
| 
       779 
779 
     | 
    
         
             
              --tw-bg-opacity: 1;
         
     | 
| 
       780 
780 
     | 
    
         
             
              background-color: rgb(48 48 48 / var(--tw-bg-opacity));
         
     | 
| 
       781 
     | 
    
         
            -
            }
         
     | 
| 
      
 781 
     | 
    
         
            +
            }
         
     | 
| 
       782 
782 
     | 
    
         
             
            .sb-bg-\[\#AAAAAA\] {
         
     | 
| 
       783 
783 
     | 
    
         
             
              --tw-bg-opacity: 1;
         
     | 
| 
       784 
784 
     | 
    
         
             
              background-color: rgb(170 170 170 / var(--tw-bg-opacity));
         
     | 
| 
       785 
     | 
    
         
            -
            }
         
     | 
| 
      
 785 
     | 
    
         
            +
            }
         
     | 
| 
       786 
786 
     | 
    
         
             
            .sb-bg-\[red\] {
         
     | 
| 
       787 
787 
     | 
    
         
             
              --tw-bg-opacity: 1;
         
     | 
| 
       788 
788 
     | 
    
         
             
              background-color: rgb(255 0 0 / var(--tw-bg-opacity));
         
     | 
| 
       789 
     | 
    
         
            -
            }
         
     | 
| 
      
 789 
     | 
    
         
            +
            }
         
     | 
| 
       790 
790 
     | 
    
         
             
            .sb-bg-orange-500 {
         
     | 
| 
       791 
791 
     | 
    
         
             
              --tw-bg-opacity: 1;
         
     | 
| 
       792 
792 
     | 
    
         
             
              background-color: rgb(249 115 22 / var(--tw-bg-opacity));
         
     | 
| 
       793 
     | 
    
         
            -
            }
         
     | 
| 
      
 793 
     | 
    
         
            +
            }
         
     | 
| 
       794 
794 
     | 
    
         
             
            .sb-bg-slate-400 {
         
     | 
| 
       795 
795 
     | 
    
         
             
              --tw-bg-opacity: 1;
         
     | 
| 
       796 
796 
     | 
    
         
             
              background-color: rgb(148 163 184 / var(--tw-bg-opacity));
         
     | 
| 
       797 
     | 
    
         
            -
            }
         
     | 
| 
      
 797 
     | 
    
         
            +
            }
         
     | 
| 
       798 
798 
     | 
    
         
             
            .sb-bg-transparent {
         
     | 
| 
       799 
799 
     | 
    
         
             
              background-color: transparent;
         
     | 
| 
       800 
     | 
    
         
            -
            }
         
     | 
| 
      
 800 
     | 
    
         
            +
            }
         
     | 
| 
       801 
801 
     | 
    
         
             
            .sb-bg-white {
         
     | 
| 
       802 
802 
     | 
    
         
             
              --tw-bg-opacity: 1;
         
     | 
| 
       803 
803 
     | 
    
         
             
              background-color: rgb(255 255 255 / var(--tw-bg-opacity));
         
     | 
| 
       804 
     | 
    
         
            -
            }
         
     | 
| 
      
 804 
     | 
    
         
            +
            }
         
     | 
| 
       805 
805 
     | 
    
         
             
            .sb-bg-white\/30 {
         
     | 
| 
       806 
806 
     | 
    
         
             
              background-color: rgb(255 255 255 / 0.3);
         
     | 
| 
       807 
     | 
    
         
            -
            }
         
     | 
| 
      
 807 
     | 
    
         
            +
            }
         
     | 
| 
       808 
808 
     | 
    
         
             
            .sb-bg-opacity-50 {
         
     | 
| 
       809 
809 
     | 
    
         
             
              --tw-bg-opacity: 0.5;
         
     | 
| 
       810 
     | 
    
         
            -
            }
         
     | 
| 
      
 810 
     | 
    
         
            +
            }
         
     | 
| 
       811 
811 
     | 
    
         
             
            .sb-bg-opacity-70 {
         
     | 
| 
       812 
812 
     | 
    
         
             
              --tw-bg-opacity: 0.7;
         
     | 
| 
       813 
     | 
    
         
            -
            }
         
     | 
| 
      
 813 
     | 
    
         
            +
            }
         
     | 
| 
       814 
814 
     | 
    
         
             
            .sb-p-2 {
         
     | 
| 
       815 
815 
     | 
    
         
             
              padding: 0.5rem;
         
     | 
| 
       816 
     | 
    
         
            -
            }
         
     | 
| 
      
 816 
     | 
    
         
            +
            }
         
     | 
| 
       817 
817 
     | 
    
         
             
            .\!sb-px-4 {
         
     | 
| 
       818 
818 
     | 
    
         
             
              padding-left: 1rem !important;
         
     | 
| 
       819 
819 
     | 
    
         
             
              padding-right: 1rem !important;
         
     | 
| 
       820 
     | 
    
         
            -
            }
         
     | 
| 
      
 820 
     | 
    
         
            +
            }
         
     | 
| 
       821 
821 
     | 
    
         
             
            .sb-px-4 {
         
     | 
| 
       822 
822 
     | 
    
         
             
              padding-left: 1rem;
         
     | 
| 
       823 
823 
     | 
    
         
             
              padding-right: 1rem;
         
     | 
| 
       824 
     | 
    
         
            -
            }
         
     | 
| 
      
 824 
     | 
    
         
            +
            }
         
     | 
| 
       825 
825 
     | 
    
         
             
            .sb-px-5 {
         
     | 
| 
       826 
826 
     | 
    
         
             
              padding-left: 1.25rem;
         
     | 
| 
       827 
827 
     | 
    
         
             
              padding-right: 1.25rem;
         
     | 
| 
       828 
     | 
    
         
            -
            }
         
     | 
| 
      
 828 
     | 
    
         
            +
            }
         
     | 
| 
       829 
829 
     | 
    
         
             
            .sb-py-1 {
         
     | 
| 
       830 
830 
     | 
    
         
             
              padding-top: 0.25rem;
         
     | 
| 
       831 
831 
     | 
    
         
             
              padding-bottom: 0.25rem;
         
     | 
| 
       832 
     | 
    
         
            -
            }
         
     | 
| 
      
 832 
     | 
    
         
            +
            }
         
     | 
| 
       833 
833 
     | 
    
         
             
            .sb-py-3 {
         
     | 
| 
       834 
834 
     | 
    
         
             
              padding-top: 0.75rem;
         
     | 
| 
       835 
835 
     | 
    
         
             
              padding-bottom: 0.75rem;
         
     | 
| 
       836 
     | 
    
         
            -
            }
         
     | 
| 
      
 836 
     | 
    
         
            +
            }
         
     | 
| 
       837 
837 
     | 
    
         
             
            .sb-py-5 {
         
     | 
| 
       838 
838 
     | 
    
         
             
              padding-top: 1.25rem;
         
     | 
| 
       839 
839 
     | 
    
         
             
              padding-bottom: 1.25rem;
         
     | 
| 
       840 
     | 
    
         
            -
            }
         
     | 
| 
      
 840 
     | 
    
         
            +
            }
         
     | 
| 
       841 
841 
     | 
    
         
             
            .sb-pb-2 {
         
     | 
| 
       842 
842 
     | 
    
         
             
              padding-bottom: 0.5rem;
         
     | 
| 
       843 
     | 
    
         
            -
            }
         
     | 
| 
      
 843 
     | 
    
         
            +
            }
         
     | 
| 
       844 
844 
     | 
    
         
             
            .sb-pt-2 {
         
     | 
| 
       845 
845 
     | 
    
         
             
              padding-top: 0.5rem;
         
     | 
| 
       846 
     | 
    
         
            -
            }
         
     | 
| 
      
 846 
     | 
    
         
            +
            }
         
     | 
| 
       847 
847 
     | 
    
         
             
            .sb-text-left {
         
     | 
| 
       848 
848 
     | 
    
         
             
              text-align: left;
         
     | 
| 
       849 
     | 
    
         
            -
            }
         
     | 
| 
      
 849 
     | 
    
         
            +
            }
         
     | 
| 
       850 
850 
     | 
    
         
             
            .sb-text-center {
         
     | 
| 
       851 
851 
     | 
    
         
             
              text-align: center;
         
     | 
| 
       852 
     | 
    
         
            -
            }
         
     | 
| 
      
 852 
     | 
    
         
            +
            }
         
     | 
| 
       853 
853 
     | 
    
         
             
            .sb-font-bold {
         
     | 
| 
       854 
854 
     | 
    
         
             
              font-weight: 700;
         
     | 
| 
       855 
     | 
    
         
            -
            }
         
     | 
| 
      
 855 
     | 
    
         
            +
            }
         
     | 
| 
       856 
856 
     | 
    
         
             
            .sb-text-white {
         
     | 
| 
       857 
857 
     | 
    
         
             
              --tw-text-opacity: 1;
         
     | 
| 
       858 
858 
     | 
    
         
             
              color: rgb(255 255 255 / var(--tw-text-opacity));
         
     | 
| 
       859 
     | 
    
         
            -
            }
         
     | 
| 
      
 859 
     | 
    
         
            +
            }
         
     | 
| 
       860 
860 
     | 
    
         
             
            .sb-opacity-0 {
         
     | 
| 
       861 
861 
     | 
    
         
             
              opacity: 0;
         
     | 
| 
       862 
     | 
    
         
            -
            }
         
     | 
| 
      
 862 
     | 
    
         
            +
            }
         
     | 
| 
       863 
863 
     | 
    
         
             
            .sb-opacity-100 {
         
     | 
| 
       864 
864 
     | 
    
         
             
              opacity: 1;
         
     | 
| 
       865 
     | 
    
         
            -
            }
         
     | 
| 
      
 865 
     | 
    
         
            +
            }
         
     | 
| 
       866 
866 
     | 
    
         
             
            .sb-shadow-lg {
         
     | 
| 
       867 
867 
     | 
    
         
             
              --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
         
     | 
| 
       868 
868 
     | 
    
         
             
              --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
         
     | 
| 
       869 
869 
     | 
    
         
             
              box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
         
     | 
| 
       870 
     | 
    
         
            -
            }
         
     | 
| 
      
 870 
     | 
    
         
            +
            }
         
     | 
| 
       871 
871 
     | 
    
         
             
            .sb-backdrop-blur-lg {
         
     | 
| 
       872 
872 
     | 
    
         
             
              --tw-backdrop-blur: blur(16px);
         
     | 
| 
       873 
873 
     | 
    
         
             
              -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
         
     | 
| 
       874 
874 
     | 
    
         
             
              backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
         
     | 
| 
       875 
     | 
    
         
            -
            }
         
     | 
| 
      
 875 
     | 
    
         
            +
            }
         
     | 
| 
       876 
876 
     | 
    
         
             
            .sb-transition-all {
         
     | 
| 
       877 
877 
     | 
    
         
             
              transition-property: all;
         
     | 
| 
       878 
878 
     | 
    
         
             
              transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
         
     | 
| 
       879 
879 
     | 
    
         
             
              transition-duration: 150ms;
         
     | 
| 
       880 
     | 
    
         
            -
            }
         
     | 
| 
      
 880 
     | 
    
         
            +
            }
         
     | 
| 
       881 
881 
     | 
    
         
             
            .sb-transition-opacity {
         
     | 
| 
       882 
882 
     | 
    
         
             
              transition-property: opacity;
         
     | 
| 
       883 
883 
     | 
    
         
             
              transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
         
     | 
| 
       884 
884 
     | 
    
         
             
              transition-duration: 150ms;
         
     | 
| 
       885 
     | 
    
         
            -
            }
         
     | 
| 
      
 885 
     | 
    
         
            +
            }
         
     | 
| 
       886 
886 
     | 
    
         
             
            .sb-duration-500 {
         
     | 
| 
       887 
887 
     | 
    
         
             
              transition-duration: 500ms;
         
     | 
| 
       888 
     | 
    
         
            -
            }
         
     | 
| 
      
 888 
     | 
    
         
            +
            }
         
     | 
| 
       889 
889 
     | 
    
         
             
            .sb-ease-in-out {
         
     | 
| 
       890 
890 
     | 
    
         
             
              transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
         
     | 
| 
       891 
     | 
    
         
            -
            }
         
     | 
| 
      
 891 
     | 
    
         
            +
            }
         
     | 
| 
       892 
892 
     | 
    
         
             
            .placeholder\:sb-text-white::-moz-placeholder {
         
     | 
| 
       893 
893 
     | 
    
         
             
              --tw-text-opacity: 1;
         
     | 
| 
       894 
894 
     | 
    
         
             
              color: rgb(255 255 255 / var(--tw-text-opacity));
         
     | 
| 
       895 
     | 
    
         
            -
            }
         
     | 
| 
      
 895 
     | 
    
         
            +
            }
         
     | 
| 
       896 
896 
     | 
    
         
             
            .placeholder\:sb-text-white::placeholder {
         
     | 
| 
       897 
897 
     | 
    
         
             
              --tw-text-opacity: 1;
         
     | 
| 
       898 
898 
     | 
    
         
             
              color: rgb(255 255 255 / var(--tw-text-opacity));
         
     | 
| 
       899 
     | 
    
         
            -
            }
         
     | 
| 
      
 899 
     | 
    
         
            +
            }
         
     | 
| 
       900 
900 
     | 
    
         
             
            .hover\:sb-w-\[45\%\]:hover {
         
     | 
| 
       901 
901 
     | 
    
         
             
              width: 45%;
         
     | 
| 
       902 
     | 
    
         
            -
            }
         
     | 
| 
      
 902 
     | 
    
         
            +
            }
         
     | 
| 
       903 
903 
     | 
    
         
             
            .hover\:sb-scale-150:hover {
         
     | 
| 
       904 
904 
     | 
    
         
             
              --tw-scale-x: 1.5;
         
     | 
| 
       905 
905 
     | 
    
         
             
              --tw-scale-y: 1.5;
         
     | 
| 
       906 
906 
     | 
    
         
             
              transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
         
     | 
| 
       907 
     | 
    
         
            -
            }
         
     | 
| 
      
 907 
     | 
    
         
            +
            }
         
     | 
| 
       908 
908 
     | 
    
         
             
            .hover\:sb-cursor-pointer:hover {
         
     | 
| 
       909 
909 
     | 
    
         
             
              cursor: pointer;
         
     | 
| 
       910 
     | 
    
         
            -
            }
         
     | 
| 
      
 910 
     | 
    
         
            +
            }
         
     | 
| 
       911 
911 
     | 
    
         
             
            .hover\:sb-text-orange-500:hover {
         
     | 
| 
       912 
912 
     | 
    
         
             
              --tw-text-opacity: 1;
         
     | 
| 
       913 
913 
     | 
    
         
             
              color: rgb(249 115 22 / var(--tw-text-opacity));
         
     | 
| 
       914 
     | 
    
         
            -
            }
         
     | 
| 
      
 914 
     | 
    
         
            +
            }
         
     |