@apple-pie/slice 0.1.31 → 0.1.33
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/README.md +35 -284
- package/dist/cjs/chunks/{AudioBubble-k7qS53g6.js → AudioBubble-_eYM1QMu.js} +4 -3
- package/dist/cjs/chunks/{Avatar-hP8GuwvD.js → Avatar-DTro_MXZ.js} +1 -1
- package/dist/cjs/chunks/{AvatarGroup-DMy34q7_.js → AvatarGroup-OPJJ_Te5.js} +1 -1
- package/dist/cjs/chunks/{Badge-D2TbyfJS.js → Badge-DWUeXxm2.js} +1 -1
- package/dist/cjs/chunks/{Button-CTsHZBEB.js → Button-CuGvPAkH.js} +1 -1
- package/dist/cjs/chunks/{ButtonBar-BRb1PTmw.js → ButtonBar-CbXToyfD.js} +1 -1
- package/dist/cjs/chunks/{Camera-CKv087kr.js → Camera-DjENiyud.js} +5 -4
- package/dist/cjs/chunks/{CheckBox-VRIL1FHh.js → CheckBox-DiJpbdy5.js} +1 -1
- package/dist/cjs/chunks/{Chip-Dr3vKvRY.js → Chip-kzOvEo0P.js} +1 -1
- package/dist/cjs/chunks/{DivInput-Ci0gaCWL.js → DivInput-B917fKB9.js} +1 -1
- package/dist/cjs/chunks/{Dot-C0MvSJOl.js → Dot-DaRF2JyO.js} +1 -1
- package/dist/cjs/chunks/{DrggablePanel-DflouLUs.js → DrggablePanel-CJTEmYW6.js} +4 -3
- package/dist/cjs/chunks/{DropDown-BS1H62yj.js → DropDown-DRSQvXCC.js} +1 -1
- package/dist/cjs/chunks/{ErrorSummary-B3tof7ir.js → ErrorSummary-ltiIsgJ6.js} +4 -3
- package/dist/cjs/chunks/{FileIcon-Te8MaqTs.js → FileIcon-WIVOTJLa.js} +5 -3
- package/dist/cjs/chunks/{FileList-CDcfKIV6.js → FileList-CzQZZErI.js} +1 -1
- package/dist/cjs/chunks/{FlexDiv-wO8IY0Zf.js → FlexDiv-CBENyLT4.js} +1 -1
- package/dist/cjs/chunks/{Grouper-DyGkzdvz.js → Grouper-Cd3AJEFv.js} +4 -3
- package/dist/cjs/chunks/{Icon-BFZ_5Qv3.js → Icon-DjvProjz.js} +4 -3
- package/dist/cjs/chunks/{IconButton-CgsuJIuF.js → IconButton-BuwQLUuj.js} +1 -1
- package/dist/cjs/chunks/{IndexedDB-Dgwal8na.js → IndexedDB-Ddhq6Gjd.js} +1 -1
- package/dist/cjs/chunks/{Label-BuyhcJbF.js → Label-d32ENzwL.js} +1 -1
- package/dist/cjs/chunks/Level-B8eT8XyV.js +58 -0
- package/dist/cjs/chunks/{MdStreamBuffer-CbG_VeRI.js → MdStreamBuffer-Chwibu07.js} +38 -16
- package/dist/cjs/chunks/{Modal-ByRyv3wy.js → Modal-CUAj4e6x.js} +34 -8
- package/dist/cjs/chunks/ModalController-BwFAVI5G.js +80 -0
- package/dist/cjs/chunks/{Overlay-FooE9M_s.js → Overlay-CaAA3ey5.js} +1 -1
- package/dist/cjs/chunks/{Pager-B-cuwffo.js → Pager-uExZ5E3x.js} +1 -1
- package/dist/cjs/chunks/{ProgressIndicator-ByZ_aYAZ.js → ProgressIndicator-DwqslY4o.js} +4 -3
- package/dist/cjs/chunks/{PromptInput--grtHPvy.js → PromptInput-Dl8l8cZv.js} +34 -30
- package/dist/cjs/chunks/{RadioButton-DP2X1dA_.js → RadioButton-DPpAOFQt.js} +1 -1
- package/dist/cjs/chunks/{RadioButtonList-COGNW5y3.js → RadioButtonList-IbPA6A3y.js} +1 -1
- package/dist/cjs/chunks/{Slider-G1a8UKef.js → Slider-D5oa7NGy.js} +1 -1
- package/dist/cjs/chunks/{Spacer-CsRCleXv.js → Spacer-DtUh2VLv.js} +1 -1
- package/dist/cjs/chunks/{Switch-OBVHKn_D.js → Switch-Bs0r5va5.js} +1 -1
- package/dist/cjs/chunks/{TabBar-C1HkBaxE.js → TabBar-BCSTg_Uc.js} +4 -3
- package/dist/cjs/chunks/{TextArea-BEmNI_HZ.js → TextArea-Dj7jsvVr.js} +1 -1
- package/dist/cjs/chunks/{TextField-D9_COA9H.js → TextField-DNP0wJla.js} +5 -4
- package/dist/cjs/chunks/{Tip-2W0u_oQN.js → Tip-awq6PDZa.js} +1 -1
- package/dist/cjs/chunks/{Toast-B9jX6ioq.js → Toast-xS1TC3Ba.js} +7 -6
- package/dist/cjs/chunks/{ToggleButton-C_Gu5dYR.js → ToggleButton-CqD5c6JA.js} +4 -3
- package/dist/cjs/chunks/{UploadArea-ENFAf4tE.js → UploadArea-CvWqk8YK.js} +1 -1
- package/dist/cjs/chunks/{WSConnection-CZ22tcLz.js → WSConnection-BACWw4TS.js} +1 -1
- package/dist/cjs/chunks/WebRTCConnection-DBeyg4j9.js +252 -0
- package/dist/cjs/chunks/{localDBStore-Ca73jeFf.js → localDBStore-wgCc1SmV.js} +1 -1
- package/dist/cjs/chunks/{microphoneStore-lxYIvhN8.js → microphoneStore-Dy5TwE2I.js} +27 -4
- package/dist/cjs/chunks/{misc-DZAbObFp.js → misc-BwQIEIuF.js} +1 -1
- package/dist/cjs/chunks/{sseStore-Bq7sVvyA.js → sseStore-CFFaYonG.js} +2 -2
- package/dist/cjs/chunks/{uploads-worker-CD-annza.js → uploads-worker-DWvOe9F8.js} +1 -1
- package/dist/cjs/chunks/{uploadsStore-CUeB10zx.js → uploadsStore-BCmts7Ie.js} +2 -2
- package/dist/cjs/chunks/{volumeStore-roYTyKJ2.js → volumeStore-BXFAQhvS.js} +5 -4
- package/dist/cjs/chunks/webRTCStore-DRjvbnve.js +55 -0
- package/dist/cjs/chunks/{windowStore-BdJv-RF0.js → windowStore-C4Bg6I9i.js} +1 -1
- package/dist/cjs/components/AudioBubble/index.js +6 -4
- package/dist/cjs/components/Avatar/index.js +3 -3
- package/dist/cjs/components/AvatarGroup/index.js +3 -3
- package/dist/cjs/components/Badge/index.js +2 -2
- package/dist/cjs/components/Button/index.js +9 -7
- package/dist/cjs/components/ButtonBar/index.js +6 -4
- package/dist/cjs/components/Camera/index.js +7 -5
- package/dist/cjs/components/CheckBox/index.js +6 -4
- package/dist/cjs/components/Chip/index.js +7 -5
- package/dist/cjs/components/DivInput/index.js +3 -3
- package/dist/cjs/components/Dot/index.js +2 -2
- package/dist/cjs/components/DraggablePanel/index.js +5 -3
- package/dist/cjs/components/DropDown/index.js +6 -4
- package/dist/cjs/components/ErrorSummary/index.js +5 -3
- package/dist/cjs/components/FileIcon/index.js +5 -3
- package/dist/cjs/components/FileList/index.js +7 -5
- package/dist/cjs/components/FlexDiv/index.js +2 -2
- package/dist/cjs/components/Grouper/index.js +7 -5
- package/dist/cjs/components/Icon/index.js +5 -3
- package/dist/cjs/components/IconButton/index.js +8 -6
- package/dist/cjs/components/Label/index.js +3 -3
- package/dist/cjs/components/Level/index.js +7 -0
- package/dist/cjs/components/Modal/index.js +10 -8
- package/dist/cjs/components/ModalController/index.js +6 -4
- package/dist/cjs/components/Overlay/index.js +2 -2
- package/dist/cjs/components/Pager/index.js +3 -3
- package/dist/cjs/components/Progress/index.js +5 -3
- package/dist/cjs/components/PromptInput/index.js +9 -7
- package/dist/cjs/components/RadioButton/index.js +6 -4
- package/dist/cjs/components/RadioButtonList/index.js +7 -5
- package/dist/cjs/components/Slider/index.js +4 -4
- package/dist/cjs/components/Spacer/index.js +2 -2
- package/dist/cjs/components/Switch/index.js +2 -2
- package/dist/cjs/components/TabBar/index.js +8 -6
- package/dist/cjs/components/TextArea/index.js +9 -7
- package/dist/cjs/components/Textfield/index.js +9 -7
- package/dist/cjs/components/Tip/index.js +3 -3
- package/dist/cjs/components/Toast/index.js +6 -4
- package/dist/cjs/components/ToggleButton/index.js +9 -7
- package/dist/cjs/components/UploadArea/index.js +11 -10
- package/dist/cjs/hooks/useAudioRecorder.js +1 -1
- package/dist/cjs/hooks/useBindWebRTC.js +60 -0
- package/dist/cjs/hooks/useLocalStore.js +3 -3
- package/dist/cjs/hooks/useMdStreamBuffer.js +55 -30
- package/dist/cjs/hooks/useMicrophone.js +1 -1
- package/dist/cjs/hooks/useTrackRenders.js +2 -2
- package/dist/cjs/hooks.js +7 -4
- package/dist/cjs/index.js +19 -18
- package/dist/cjs/providers/ThemeProvider.js +5 -4
- package/dist/cjs/providers/themeServer.js +15 -9
- package/dist/cjs/stores/LocalDB.js +3 -3
- package/dist/cjs/stores/SSE.js +2 -2
- package/dist/cjs/stores/WS.js +2 -2
- package/dist/cjs/stores/WebRTC.js +9 -0
- package/dist/cjs/stores/microphone.js +5 -4
- package/dist/cjs/stores/modal.js +1 -1
- package/dist/cjs/stores/tip.js +1 -1
- package/dist/cjs/stores/toast.js +1 -1
- package/dist/cjs/stores/uploads.js +2 -2
- package/dist/cjs/stores/volume.js +2 -2
- package/dist/cjs/stores/window.js +2 -2
- package/dist/cjs/stores.js +24 -19
- package/dist/cjs/utils/index.js +4 -3
- package/dist/cjs/utils/objects/index.js +4 -3
- package/dist/cjs/workers/uploads/uploads.js +2 -2
- package/dist/esm/chunks/{AudioBubble-DfrxyTX_.mjs → AudioBubble-SB1LCBlJ.mjs} +9 -3
- package/dist/esm/chunks/{Avatar-pA41Pcyl.mjs → Avatar-B6PcVOmT.mjs} +2 -2
- package/dist/esm/chunks/{AvatarGroup-CZBtWjnj.mjs → AvatarGroup-DEb3j2IZ.mjs} +2 -2
- package/dist/esm/chunks/{Badge-pLwG0zm7.mjs → Badge-bh5UVUnt.mjs} +1 -1
- package/dist/esm/chunks/{Button-BJoMLZIs.mjs → Button-CWKs3uAV.mjs} +6 -6
- package/dist/esm/chunks/{ButtonBar-BO2RUJ8R.mjs → ButtonBar-CWeMhkSb.mjs} +3 -3
- package/dist/esm/chunks/{Camera-4MNA52HG.mjs → Camera-BmuMA9xY.mjs} +11 -5
- package/dist/esm/chunks/{CheckBox-7KAsvZld.mjs → CheckBox-BR6a2n0j.mjs} +3 -3
- package/dist/esm/chunks/{Chip-BuGvCLLU.mjs → Chip-DXW0jxKf.mjs} +4 -4
- package/dist/esm/chunks/{DivInput-D0YzSWjJ.mjs → DivInput-BWO1EJXA.mjs} +2 -2
- package/dist/esm/chunks/{Dot-h26m47Z-.mjs → Dot-DMst-5Q2.mjs} +1 -1
- package/dist/esm/chunks/{DrggablePanel-Bh6HLPMX.mjs → DrggablePanel-qxrCS7Ot.mjs} +8 -2
- package/dist/esm/chunks/{DropDown-NgMYjjXn.mjs → DropDown-DlO2J4QP.mjs} +3 -3
- package/dist/esm/chunks/{ErrorSummary-nNm9qymE.mjs → ErrorSummary-BplQFunJ.mjs} +8 -2
- package/dist/esm/chunks/{FileIcon-BqyV1wut.mjs → FileIcon-iFmAF7_a.mjs} +8 -2
- package/dist/esm/chunks/{FileList-C1tOvoc0.mjs → FileList-CztHFCJe.mjs} +5 -5
- package/dist/esm/chunks/{FlexDiv-CkK-DAyg.mjs → FlexDiv-DGmDZL7M.mjs} +1 -1
- package/dist/esm/chunks/{Grouper-CyrOkuu2.mjs → Grouper-DxOISLzH.mjs} +9 -3
- package/dist/esm/chunks/{Icon-DjW0Krm8.mjs → Icon-L8B35JN1.mjs} +8 -2
- package/dist/esm/chunks/{IconButton-DdLhTUl0.mjs → IconButton-DxwJemEK.mjs} +5 -5
- package/dist/esm/chunks/{IndexedDB-DVoDikoA.mjs → IndexedDB-DA5oZXju.mjs} +1 -1
- package/dist/esm/chunks/{Label-DhmJ_Sln.mjs → Label-wDPtyK4h.mjs} +2 -2
- package/dist/esm/chunks/Level-B9JayinM.mjs +63 -0
- package/dist/esm/chunks/{MdStreamBuffer-4AJH8WaN.mjs → MdStreamBuffer-Cyon3ytf.mjs} +38 -16
- package/dist/esm/chunks/{Modal-FztrJsQo.mjs → Modal-C-Q2A_RY.mjs} +39 -13
- package/dist/esm/chunks/ModalController-ClAjHLPb.mjs +91 -0
- package/dist/esm/chunks/{Overlay-Dsy55Bxm.mjs → Overlay-Dr9YYxJ6.mjs} +1 -1
- package/dist/esm/chunks/{Pager-BqSdwL0L.mjs → Pager-DPbTCMNe.mjs} +2 -2
- package/dist/esm/chunks/{ProgressIndicator-BnqZFATV.mjs → ProgressIndicator-HaJJDZ-m.mjs} +8 -2
- package/dist/esm/chunks/{PromptInput-CRkcPXJu.mjs → PromptInput-wGhpXw-h.mjs} +38 -31
- package/dist/esm/chunks/{RadioButton-DXq3yniV.mjs → RadioButton-oOGgTDhg.mjs} +3 -3
- package/dist/esm/chunks/{RadioButtonList-BgOskHCP.mjs → RadioButtonList-CDWKVvyL.mjs} +3 -3
- package/dist/esm/chunks/{Slider-DPOy9uNI.mjs → Slider-ioPGftDY.mjs} +3 -3
- package/dist/esm/chunks/{Spacer-BJd_D0Fn.mjs → Spacer-VJBjxVlr.mjs} +1 -1
- package/dist/esm/chunks/{Switch-DHqlyizo.mjs → Switch-BCk2sTh3.mjs} +1 -1
- package/dist/esm/chunks/{TabBar-RBXExqMK.mjs → TabBar-C1DYnCRx.mjs} +11 -5
- package/dist/esm/chunks/{TextArea-CIlx_P26.mjs → TextArea-CF3r5m2G.mjs} +2 -2
- package/dist/esm/chunks/{TextField-CX72ybwH.mjs → TextField-BNfTj9v2.mjs} +11 -5
- package/dist/esm/chunks/{Tip-COBSyEjm.mjs → Tip-DIKQvxxO.mjs} +2 -2
- package/dist/esm/chunks/{Toast-BTm3HxDD.mjs → Toast-CkXPrDpp.mjs} +12 -6
- package/dist/esm/chunks/{ToggleButton-DujsCKF3.mjs → ToggleButton-Dvy8fc4t.mjs} +5 -4
- package/dist/esm/chunks/{UploadArea-D--Nt8Ed.mjs → UploadArea-D_xGzR2e.mjs} +4 -4
- package/dist/esm/chunks/{WSConnection-BMXcuW3f.mjs → WSConnection-TiYLENWB.mjs} +1 -1
- package/dist/esm/chunks/WebRTCConnection-d0Yvd66q.mjs +252 -0
- package/dist/esm/chunks/{localDBStore-36E3160Z.mjs → localDBStore-C-5y16uv.mjs} +2 -2
- package/dist/esm/chunks/{microphoneStore-Cexu82zH.mjs → microphoneStore-Cbx9nV4R.mjs} +26 -3
- package/dist/esm/chunks/{misc-CTGTuM2J.mjs → misc-zecH7-IH.mjs} +1 -1
- package/dist/esm/chunks/{sseStore-Dow4NXkZ.mjs → sseStore-DIquUNpm.mjs} +2 -2
- package/dist/esm/chunks/{tslib.es6-BX2F90pK.mjs → tslib.es6-CVvvNSPr.mjs} +1 -1
- package/dist/esm/chunks/{uploads-worker-Dhyp4ot3.mjs → uploads-worker-CUggKU9b.mjs} +1 -1
- package/dist/esm/chunks/{uploadsStore-DT4lFybE.mjs → uploadsStore-9QngohOe.mjs} +1 -1
- package/dist/esm/chunks/{volumeStore-RAxdmQ60.mjs → volumeStore-BrgZCRKF.mjs} +5 -4
- package/dist/esm/chunks/webRTCStore-DhFE9-bb.mjs +57 -0
- package/dist/esm/chunks/{windowStore-C4AZexIa.mjs → windowStore-BKW7HyoD.mjs} +1 -1
- package/dist/esm/components/AudioBubble/index.mjs +14 -4
- package/dist/esm/components/Avatar/index.mjs +3 -3
- package/dist/esm/components/AvatarGroup/index.mjs +4 -4
- package/dist/esm/components/Badge/index.mjs +2 -2
- package/dist/esm/components/Button/index.mjs +18 -8
- package/dist/esm/components/ButtonBar/index.mjs +14 -4
- package/dist/esm/components/Camera/index.mjs +16 -6
- package/dist/esm/components/CheckBox/index.mjs +14 -4
- package/dist/esm/components/Chip/index.mjs +15 -5
- package/dist/esm/components/DivInput/index.mjs +3 -3
- package/dist/esm/components/Dot/index.mjs +2 -2
- package/dist/esm/components/DraggablePanel/index.mjs +13 -3
- package/dist/esm/components/DropDown/index.mjs +14 -4
- package/dist/esm/components/ErrorSummary/index.mjs +13 -3
- package/dist/esm/components/FileIcon/index.mjs +13 -3
- package/dist/esm/components/FileList/index.mjs +16 -6
- package/dist/esm/components/FlexDiv/index.mjs +2 -2
- package/dist/esm/components/Grouper/index.mjs +15 -5
- package/dist/esm/components/Icon/index.mjs +14 -4
- package/dist/esm/components/IconButton/index.mjs +17 -7
- package/dist/esm/components/Label/index.mjs +3 -3
- package/dist/esm/components/Level/index.mjs +11 -0
- package/dist/esm/components/Modal/index.mjs +20 -10
- package/dist/esm/components/ModalController/index.mjs +14 -6
- package/dist/esm/components/Overlay/index.mjs +2 -2
- package/dist/esm/components/Pager/index.mjs +3 -3
- package/dist/esm/components/Progress/index.mjs +14 -4
- package/dist/esm/components/PromptInput/index.mjs +22 -12
- package/dist/esm/components/RadioButton/index.mjs +14 -4
- package/dist/esm/components/RadioButtonList/index.mjs +15 -5
- package/dist/esm/components/Slider/index.mjs +4 -4
- package/dist/esm/components/Spacer/index.mjs +2 -2
- package/dist/esm/components/Switch/index.mjs +2 -2
- package/dist/esm/components/TabBar/index.mjs +18 -8
- package/dist/esm/components/TextArea/index.mjs +19 -9
- package/dist/esm/components/Textfield/index.mjs +20 -10
- package/dist/esm/components/Tip/index.mjs +3 -3
- package/dist/esm/components/Toast/index.mjs +15 -5
- package/dist/esm/components/ToggleButton/index.mjs +19 -9
- package/dist/esm/components/UploadArea/index.mjs +19 -9
- package/dist/esm/hooks/useAudioRecorder.mjs +1 -1
- package/dist/esm/hooks/useBindWebRTC.mjs +72 -0
- package/dist/esm/hooks/useLocalStore.mjs +3 -3
- package/dist/esm/hooks/useMdStreamBuffer.mjs +56 -28
- package/dist/esm/hooks/useMicrophone.mjs +1 -1
- package/dist/esm/hooks/useTrackRenders.mjs +2 -2
- package/dist/esm/hooks.mjs +14 -2
- package/dist/esm/index.mjs +62 -50
- package/dist/esm/providers/ThemeProvider.mjs +6 -5
- package/dist/esm/providers/themeServer.mjs +11 -6
- package/dist/esm/stores/LocalDB.mjs +3 -3
- package/dist/esm/stores/SSE.mjs +3 -3
- package/dist/esm/stores/WS.mjs +2 -2
- package/dist/esm/stores/WebRTC.mjs +7 -0
- package/dist/esm/stores/microphone.mjs +2 -2
- package/dist/esm/stores/modal.mjs +1 -1
- package/dist/esm/stores/tip.mjs +1 -1
- package/dist/esm/stores/toast.mjs +1 -1
- package/dist/esm/stores/uploads.mjs +3 -3
- package/dist/esm/stores/volume.mjs +2 -2
- package/dist/esm/stores/window.mjs +2 -2
- package/dist/esm/stores.mjs +18 -14
- package/dist/esm/utils/index.mjs +11 -9
- package/dist/esm/utils/objects/index.mjs +8 -6
- package/dist/esm/workers/uploads/uploads.mjs +2 -2
- package/dist/styles.css +76 -13
- package/dist/types/components/Level/Level.d.ts +5 -0
- package/dist/types/components/Level/_types.d.ts +21 -0
- package/dist/types/components/Level/index.d.ts +2 -0
- package/dist/types/components/Modal/_types.d.ts +3 -0
- package/dist/types/components/PromptInput/PromptInput.d.ts +10 -2
- package/dist/types/components/PromptInput/_types.d.ts +5 -1
- package/dist/types/components/Toast/_types.d.ts +1 -0
- package/dist/types/components/ToggleButton/_types.d.ts +1 -0
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/useBindWebRTC/index.d.ts +1 -0
- package/dist/types/hooks/useBindWebRTC/useBindWebRTC.d.ts +15 -0
- package/dist/types/hooks/useLocalStore/useLocalStore.d.ts +1 -1
- package/dist/types/hooks/useMdStreamBuffer/useMdStreamBuffer.d.ts +6 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/providers/ThemeProvider.d.ts +1 -0
- package/dist/types/providers/themeServer.d.ts +7 -3
- package/dist/types/stores/WebRTC/_types.d.ts +16 -0
- package/dist/types/stores/WebRTC/index.d.ts +2 -0
- package/dist/types/stores/WebRTC/webRTCStore.d.ts +21 -0
- package/dist/types/stores/index.d.ts +1 -0
- package/dist/types/stores/microphone/index.d.ts +1 -1
- package/dist/types/stores/microphone/microphoneStore.d.ts +14 -1
- package/dist/types/stores/toast/_types.d.ts +1 -0
- package/dist/types/stores/volume/_types.d.ts +3 -1
- package/dist/types/stores/volume/volumeStore.d.ts +6 -2
- package/dist/types/utils/functions/files.d.ts +1 -1
- package/dist/types/utils/index.d.ts +2 -2
- package/dist/types/utils/objects/MDStreamBuffer/MdStreamBuffer.d.ts +10 -0
- package/dist/types/utils/objects/MDStreamBuffer/_types.d.ts +2 -0
- package/dist/types/utils/objects/WebRTCConnection/WebRTCConnection.d.ts +37 -3
- package/dist/types/utils/objects/WebRTCConnection/_types.d.ts +13 -4
- package/dist/types/utils/objects/index.d.ts +2 -0
- package/package.json +1 -1
- package/dist/cjs/chunks/ModalController-xjflFsjF.js +0 -68
- package/dist/esm/chunks/ModalController-C1BnM5Dz.mjs +0 -76
- /package/dist/cjs/chunks/{SSEConnection-ACoOeeTO.js → SSEConnection-CF5WZG9b.js} +0 -0
- /package/dist/cjs/chunks/{_types-k-3V1fz_.js → _types-BTdDWVYI.js} +0 -0
- /package/dist/cjs/chunks/{audioVisualizer-MOSbvvnZ.js → audioVisualizer-C7fMG0WH.js} +0 -0
- /package/dist/cjs/chunks/{colors-B0_3srZN.js → colors-CmOkcjB3.js} +0 -0
- /package/dist/cjs/chunks/{debounce-CaoYvh12.js → debounce-BtCCTkbG.js} +0 -0
- /package/dist/cjs/chunks/{modalStore-D4bOjuWd.js → modalStore-CaQkdY5_.js} +0 -0
- /package/dist/cjs/chunks/{sharedTypes-CthHPjrO.js → sharedTypes-BOieqpQy.js} +0 -0
- /package/dist/cjs/chunks/{tipStore-CPB7RHKY.js → tipStore-4Bs9v2sg.js} +0 -0
- /package/dist/cjs/chunks/{toastStore-6eHe6esp.js → toastStore-CyCE9-lr.js} +0 -0
- /package/dist/cjs/chunks/{tslib.es6-CzpRaW14.js → tslib.es6-DqjaJVC3.js} +0 -0
- /package/dist/esm/chunks/{SSEConnection-qNnkZUOe.mjs → SSEConnection-g0GBGAqe.mjs} +0 -0
- /package/dist/esm/chunks/{_types-CEStVWlB.mjs → _types-9ekyeJYl.mjs} +0 -0
- /package/dist/esm/chunks/{audioVisualizer-BUNbarKP.mjs → audioVisualizer-nMo67yOW.mjs} +0 -0
- /package/dist/esm/chunks/{colors-D-qeA9gU.mjs → colors-v5b8_oYV.mjs} +0 -0
- /package/dist/esm/chunks/{debounce-D5b6tZ5a.mjs → debounce-DFxAyrPi.mjs} +0 -0
- /package/dist/esm/chunks/{modalStore-Crg_QmSJ.mjs → modalStore-D6_oc47l.mjs} +0 -0
- /package/dist/esm/chunks/{sharedTypes-U5H1I85x.mjs → sharedTypes-CdmzhKXN.mjs} +0 -0
- /package/dist/esm/chunks/{tipStore-pvswaezx.mjs → tipStore-C2M6zBzd.mjs} +0 -0
- /package/dist/esm/chunks/{toastStore-80oOTYsj.mjs → toastStore-B-6kdNHw.mjs} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var tslib_es6 = require("./tslib.es6-
|
|
4
|
+
var tslib_es6 = require("./tslib.es6-DqjaJVC3.js"), jsxRuntime = require("react/jsx-runtime"), react = require("motion/react"), React = require("react"), css_wrapper = "Switch-module_wrapper__kudO9 flexBox-module_row__z24tF", css_knob = "Switch-module_knob__vKNOc flexBox-module_row__z24tF";
|
|
5
5
|
|
|
6
6
|
function SwitchComponent(props) {
|
|
7
7
|
const {fieldName: fieldName, state: state = !1, value: value, height: height = 22, width: width = 44, padding: padding = 3, backgroundColorOn: backgroundColorOn, backgroundColorOff: backgroundColorOff, bgColorOn: bgColorOn = "var(--feedback-positive)", bgColorOff: bgColorOff = "var(--core-text-disabled)", knobColor: knobColor = "var(--core-surface-primary)", onChange: onChange = () => null} = props, divAttributes = tslib_es6.__rest(props, [ "fieldName", "state", "value", "height", "width", "padding", "backgroundColorOn", "backgroundColorOff", "bgColorOn", "bgColorOff", "knobColor", "onChange" ]), {id: divId, className: className, style: style} = divAttributes, rest = tslib_es6.__rest(divAttributes, [ "id", "className", "style" ]), divStyle = null != style ? style : {}, divClass = className ? ` ${className}` : "", [on, setOn] = React.useState(state), resolvedBackgroundColorOn = null != backgroundColorOn ? backgroundColorOn : bgColorOn, resolvedBackgroundColorOff = null != backgroundColorOff ? backgroundColorOff : bgColorOff;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var tslib_es6 = require("./tslib.es6-
|
|
4
|
+
var tslib_es6 = require("./tslib.es6-DqjaJVC3.js"), jsxRuntime = require("react/jsx-runtime"), React = require("react"), hooks_useTheme = require("../hooks/useTheme.js");
|
|
5
5
|
|
|
6
|
-
require("../theme/colors.js"), require("
|
|
6
|
+
require("../theme/colors.js"), require("./webRTCStore-DRjvbnve.js"), require("./microphoneStore-Dy5TwE2I.js"),
|
|
7
|
+
require("./volumeStore-BXFAQhvS.js"), require("../hooks/useWindow.js");
|
|
7
8
|
|
|
8
|
-
var Badge = require("./Badge-
|
|
9
|
+
var Badge = require("./Badge-DWUeXxm2.js"), Icon = require("./Icon-DjvProjz.js"), IconButton = require("./IconButton-BuwQLUuj.js"), sharedTypes = require("./sharedTypes-BOieqpQy.js"), css_wrapper = "TabBar-module_wrapper__cyOR1 flexBox-module_rowStart__4tcxS", css_option = "TabBar-module_option__gYjDf flexBox-module_row__z24tF type-module_body-m-regular__LuQBA", css_icon = "TabBar-module_icon__JDgG3 flexBox-module_row__z24tF", css_close = "TabBar-module_close__bvSBh flexBox-module_row__z24tF";
|
|
9
10
|
|
|
10
11
|
const placeholderOptions = [ {
|
|
11
12
|
name: "Light",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var tslib_es6 = require("./tslib.es6-
|
|
4
|
+
var tslib_es6 = require("./tslib.es6-DqjaJVC3.js"), jsxRuntime = require("react/jsx-runtime"), React = require("react"), Button = require("./Button-CuGvPAkH.js"), css_wrapper = "TextArea-module_wrapper__O0sWP flexBox-module_columnStart__C7P44", css_textarea = "TextArea-module_textarea__-R2n0", css_send = "TextArea-module_send__Cub13", css_xs = "TextArea-module_xs__5e748 type-module_body-xs-regular__ZAFft", css_s = "TextArea-module_s__Ac-fq type-module_body-s-regular__vRHSP", css_m = "TextArea-module_m__dod4R type-module_body-m-regular__LuQBA", css_l = "TextArea-module_l__-uLCG type-module_body-l-regular__lOYbg";
|
|
5
5
|
|
|
6
6
|
const TextArea = React.memo(props => {
|
|
7
7
|
const {value: value = "", name: name = "text_area", width: width = "100%", focused: focused = !1, placeholder: placeholder = "Enter text here...", rows: rows = 6, border: border = !0, borderRadius: borderRadius = 4, padding: padding = "16px 4px 16px 16px", error: error = !1, resizable: resizable = !0, hasSend: hasSend = !1, sendOffset: sendOffset = {
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var tslib_es6 = require("./tslib.es6-
|
|
4
|
+
var tslib_es6 = require("./tslib.es6-DqjaJVC3.js"), jsxRuntime = require("react/jsx-runtime"), react = require("motion/react"), React = require("react"), hooks_useTheme = require("../hooks/useTheme.js");
|
|
5
5
|
|
|
6
6
|
require("../theme/colors.js");
|
|
7
7
|
|
|
8
|
-
var misc = require("./misc-
|
|
8
|
+
var misc = require("./misc-BwQIEIuF.js");
|
|
9
9
|
|
|
10
|
-
require("
|
|
10
|
+
require("./webRTCStore-DRjvbnve.js"), require("./microphoneStore-Dy5TwE2I.js"),
|
|
11
|
+
require("./volumeStore-BXFAQhvS.js"), require("../hooks/useWindow.js");
|
|
11
12
|
|
|
12
|
-
var Button = require("./Button-
|
|
13
|
+
var Button = require("./Button-CuGvPAkH.js"), Icon = require("./Icon-DjvProjz.js"), IconButton = require("./IconButton-BuwQLUuj.js"), css = {
|
|
13
14
|
wrapper: "TextField-module_wrapper__qZ-p- flexBox-module_rowStart__4tcxS",
|
|
14
15
|
container: "TextField-module_container__5U9yK flexBox-module_rowStart__4tcxS",
|
|
15
16
|
label: "TextField-module_label__jD8MR flexBox-module_rowStart__4tcxS",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var tslib_es6 = require("./tslib.es6-
|
|
4
|
+
var tslib_es6 = require("./tslib.es6-DqjaJVC3.js"), jsxRuntime = require("react/jsx-runtime"), react = require("motion/react"), React = require("react"), misc = require("./misc-BwQIEIuF.js"), css = {
|
|
5
5
|
wrapper: "Tip-module_wrapper__D7ACT flexBox-module_rowStart__4tcxS",
|
|
6
6
|
xs: "Tip-module_xs__wsz9y type-module_body-xs-regular__ZAFft",
|
|
7
7
|
s: "Tip-module_s__Wvz3q type-module_body-s-regular__vRHSP",
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var tslib_es6 = require("./tslib.es6-
|
|
4
|
+
var tslib_es6 = require("./tslib.es6-DqjaJVC3.js"), jsxRuntime = require("react/jsx-runtime"), react = require("motion/react"), React = require("react"), hooks_useTheme = require("../hooks/useTheme.js");
|
|
5
5
|
|
|
6
6
|
require("../theme/colors.js");
|
|
7
7
|
|
|
8
|
-
var misc = require("./misc-
|
|
8
|
+
var misc = require("./misc-BwQIEIuF.js");
|
|
9
9
|
|
|
10
|
-
require("
|
|
10
|
+
require("./webRTCStore-DRjvbnve.js"), require("./microphoneStore-Dy5TwE2I.js"),
|
|
11
|
+
require("./volumeStore-BXFAQhvS.js"), require("../hooks/useWindow.js");
|
|
11
12
|
|
|
12
|
-
var ToastType, Icon = require("./Icon-
|
|
13
|
+
var ToastType, Icon = require("./Icon-DjvProjz.js"), ProgressIndicator = require("./ProgressIndicator-DwqslY4o.js"), css = {
|
|
13
14
|
wrapper: "Toast-module_wrapper__1uj9O flexBox-module_rowBetween__5FEvi",
|
|
14
15
|
close: "Toast-module_close__i10-s flexBox-module_row__z24tF",
|
|
15
16
|
message: "Toast-module_message__3dP0P flexBox-module_rowStart__4tcxS",
|
|
@@ -23,7 +24,7 @@ exports.ToastType = void 0, (ToastType = exports.ToastType || (exports.ToastType
|
|
|
23
24
|
ToastType.Error = "error", ToastType.Warning = "warning", ToastType.Info = "info";
|
|
24
25
|
|
|
25
26
|
const ToastBase = React.forwardRef((props, ref) => {
|
|
26
|
-
const {message: message = null, size: size = "m", border: border = !0, padding: padding, radius: radius = 8, container: container = "window", showDelay: showDelay = 0, duration: duration = 5e3, position: position = "bottom", offset: offset = 24, close: close = !0, progress: progress, type: type = exports.ToastType.Info, didHide: didHide = () => null} = props, divAttributes = tslib_es6.__rest(props, [ "message", "size", "border", "padding", "radius", "container", "showDelay", "duration", "position", "offset", "close", "progress", "type", "didHide" ]), theme = hooks_useTheme.useTheme(), {id: divId, className: className, style: style} = divAttributes, rest = tslib_es6.__rest(divAttributes, [ "id", "className", "style" ]), divStyle = null != style ? style : {}, divClass = className ? `${className}` : "", [ready, setReady] = React.useState(!1), [content, setContent] = React.useState(null), timer = React.useRef(null);
|
|
27
|
+
const {notifId: notifId, message: message = null, size: size = "m", border: border = !0, padding: padding, radius: radius = 8, container: container = "window", showDelay: showDelay = 0, duration: duration = 5e3, position: position = "bottom", offset: offset = 24, close: close = !0, progress: progress, type: type = exports.ToastType.Info, didHide: didHide = () => null} = props, divAttributes = tslib_es6.__rest(props, [ "notifId", "message", "size", "border", "padding", "radius", "container", "showDelay", "duration", "position", "offset", "close", "progress", "type", "didHide" ]), theme = hooks_useTheme.useTheme(), {id: divId, className: className, style: style} = divAttributes, rest = tslib_es6.__rest(divAttributes, [ "id", "className", "style" ]), divStyle = null != style ? style : {}, divClass = className ? `${className}` : "", [ready, setReady] = React.useState(!1), [content, setContent] = React.useState(null), timer = React.useRef(null);
|
|
27
28
|
React.useEffect(() => {
|
|
28
29
|
timer.current && clearTimeout(timer.current);
|
|
29
30
|
return message && message.length > 0 ? timer.current = setTimeout(() => {
|
|
@@ -166,7 +167,7 @@ const ToastBase = React.forwardRef((props, ref) => {
|
|
|
166
167
|
strokeColor: iconColor
|
|
167
168
|
})
|
|
168
169
|
}) ]
|
|
169
|
-
}))
|
|
170
|
+
}), notifId)
|
|
170
171
|
});
|
|
171
172
|
});
|
|
172
173
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var jsxRuntime = require("react/jsx-runtime"), React = require("react"), IconButton = require("./IconButton-
|
|
3
|
+
var jsxRuntime = require("react/jsx-runtime"), React = require("react"), IconButton = require("./IconButton-BuwQLUuj.js"), Label = require("./Label-d32ENzwL.js"), css_toggleButton = "ToggleButton-module_toggleButton__H7KgI flexBox-module_rowStart__4tcxS";
|
|
4
4
|
|
|
5
5
|
exports.ToggleButton = function(props) {
|
|
6
|
-
const {label: label, textSize: textSize, icon: icon, selected: selected = !1, iconColor: iconColor = "var(--core-text-primary)", iconColorOn: iconColorOn = "var(--core-surface-primary)", bgColor: bgColor = "var(--core-surface-secondary)", bgColorOn: bgColorOn = "var(--core-text-special)", iconSize: iconSize = 20, buttonSize: buttonSize = "m", tooltip: tooltip, gap: gap = 4, unselect: unselect = !0, fill: fill = !1, disabled: disabled = !1, onChange: onChange, onSelect: onSelect, onToolTip: onToolTip, children: children} = props, handleClick = () => {
|
|
6
|
+
const {label: label, textSize: textSize, icon: icon, selected: selected = !1, iconColor: iconColor = "var(--core-text-primary)", iconColorOn: iconColorOn = "var(--core-surface-primary)", bgColor: bgColor = "var(--core-surface-secondary)", bgColorOn: bgColorOn = "var(--core-text-special)", iconSize: iconSize = 20, buttonSize: buttonSize = "m", tooltip: tooltip, gap: gap = 4, unselect: unselect = !0, fill: fill = !1, disabled: disabled = !1, border: border = !1, onChange: onChange, onSelect: onSelect, onToolTip: onToolTip, children: children} = props, handleClick = () => {
|
|
7
7
|
if (!unselect && selected) return;
|
|
8
8
|
const newState = !selected;
|
|
9
9
|
null == onChange || onChange(newState), newState && (null == onSelect || onSelect());
|
|
@@ -27,7 +27,8 @@ exports.ToggleButton = function(props) {
|
|
|
27
27
|
iconSize: iconSize,
|
|
28
28
|
iconFill: fill,
|
|
29
29
|
disabled: disabled,
|
|
30
|
-
onToolTip: onToolTip
|
|
30
|
+
onToolTip: onToolTip,
|
|
31
|
+
border: border
|
|
31
32
|
}), (children || label) && jsxRuntime.jsx(Label.Label, {
|
|
32
33
|
textSize: textSize,
|
|
33
34
|
borderSize: 0,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var jsxRuntime = require("react/jsx-runtime"), React = require("react"), misc = require("./misc-
|
|
4
|
+
var jsxRuntime = require("react/jsx-runtime"), React = require("react"), misc = require("./misc-BwQIEIuF.js"), FileList = require("./FileList-CzQZZErI.js"), Icon = require("./Icon-DjvProjz.js"), ProgressIndicator = require("./ProgressIndicator-DwqslY4o.js"), css = {
|
|
5
5
|
wrapper: "UploadArea-module_wrapper__aircC flexBox-module_column__ezvMq",
|
|
6
6
|
icon: "UploadArea-module_icon__M7n-m flexBox-module_row__z24tF",
|
|
7
7
|
title: "UploadArea-module_title__VbNGq type-module_body-l-bold__Fh2dt",
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var tslib_es6 = require("./tslib.es6-DqjaJVC3.js");
|
|
4
|
+
|
|
5
|
+
exports.WebRTCConnection = class {
|
|
6
|
+
/**
|
|
7
|
+
* Report whether the peer connection is currently connected
|
|
8
|
+
*/
|
|
9
|
+
get connected() {
|
|
10
|
+
return "connected" === this.peerConnection.connectionState;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Report whether the connection currently has an audio path attached
|
|
14
|
+
*/ get audioConnected() {
|
|
15
|
+
var _a, _b;
|
|
16
|
+
const hasLocalAudioTrack = "live" === (null === (_b = null === (_a = this.RTCSenderAudioSender) || void 0 === _a ? void 0 : _a.track) || void 0 === _b ? void 0 : _b.readyState), hasRemoteAudioTrack = this.RTCReceiverAudioTracks.size > 0;
|
|
17
|
+
return Boolean(hasLocalAudioTrack || hasRemoteAudioTrack);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Report whether the connection currently has a video path attached
|
|
21
|
+
*/ get videoConnected() {
|
|
22
|
+
var _a, _b;
|
|
23
|
+
const hasLocalVideoTrack = "live" === (null === (_a = this.RTCSenderVideoTrack) || void 0 === _a ? void 0 : _a.readyState) || "live" === (null === (_b = this.RTCScreenShareTrack) || void 0 === _b ? void 0 : _b.readyState), hasRemoteVideoTrack = this.RTCReceiverVideoTracks.size > 0;
|
|
24
|
+
return Boolean(hasLocalVideoTrack || hasRemoteVideoTrack);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Report whether any data channel is currently open
|
|
28
|
+
*/ get dataConnected() {
|
|
29
|
+
return this.RTCDataChannels.some(channel => "open" === channel.readyState);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create the base instance
|
|
33
|
+
*/ constructor(rtcConnectionInfo) {
|
|
34
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
35
|
+
if (this.RTCSenderAudioTrack = null, this.RTCSenderVideoTrack = null, this.RTCSenderAudioSender = null,
|
|
36
|
+
this.RTCSenderAudioStream = new MediaStream, this.RTCScreenShareTrack = null, this.RTCScreenShareSender = null,
|
|
37
|
+
this.RTCReceiverAudioStream = new MediaStream, this.RTCReceiverVideoTracks = new Map,
|
|
38
|
+
this.RTCReceiverAudioTracks = new Map, this.RTCDataChannels = [], this.connectionUrl = "",
|
|
39
|
+
this.connectionOffer = null, this.autoPlayAudio = !0, this.iceTimer = null, !globalThis.document) throw new Error("RTC needs a valid browser environment");
|
|
40
|
+
if (this.connectionUrl = null !== (_a = rtcConnectionInfo.connectionUrl) && void 0 !== _a ? _a : "",
|
|
41
|
+
this.peerConnection = new RTCPeerConnection, this.RTCSenderAudioTrack = null !== (_d = null !== (_c = null === (_b = rtcConnectionInfo.micStream) || void 0 === _b ? void 0 : _b.getAudioTracks()[0]) && void 0 !== _c ? _c : rtcConnectionInfo.micTrack) && void 0 !== _d ? _d : null,
|
|
42
|
+
!this.RTCSenderAudioTrack) throw new Error("WebRTCConnection requires a microphone stream or track");
|
|
43
|
+
this.RTCSenderVideoTrack = rtcConnectionInfo.videoTrack, this.audioElement = null !== (_e = rtcConnectionInfo.audioElement) && void 0 !== _e ? _e : document.createElement("audio"),
|
|
44
|
+
this.autoPlayAudio = null === (_f = rtcConnectionInfo.autoPlayAudio) || void 0 === _f || _f;
|
|
45
|
+
const channels = null !== (_g = rtcConnectionInfo.dataChannels) && void 0 !== _g ? _g : [];
|
|
46
|
+
this.onRemoteVideoStream = rtcConnectionInfo.onRemoteVideoStream, this.onRemoteAudioStream = rtcConnectionInfo.onRemoteAudioStream,
|
|
47
|
+
this.onDataChannelEvent = rtcConnectionInfo.onDataChannelEvent, this.setupIncomingAudioStream(),
|
|
48
|
+
"number" == typeof rtcConnectionInfo.volume && this.setVolume(rtcConnectionInfo.volume),
|
|
49
|
+
this.setupOutgoingMediaStream(), this.setupDataChannels(channels), this.setupDataChannelEventListeners(),
|
|
50
|
+
this.peerConnection.ontrack = this.onTrack.bind(this);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Initialize the RTC connection
|
|
54
|
+
*/ initialize(offerOptions, bearerToken) {
|
|
55
|
+
return tslib_es6.__awaiter(this, void 0, void 0, function*() {
|
|
56
|
+
this.offerOptions = offerOptions, this.bearerToken = bearerToken, yield this.negotiate();
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Start an optional screen share stream and renegotiate if already connected
|
|
61
|
+
*/ startScreenShare() {
|
|
62
|
+
return tslib_es6.__awaiter(this, void 0, void 0, function*() {
|
|
63
|
+
var _a, _b;
|
|
64
|
+
if (!(null === (_b = null === (_a = globalThis.navigator) || void 0 === _a ? void 0 : _a.mediaDevices) || void 0 === _b ? void 0 : _b.getDisplayMedia)) throw new Error("Screen share is not supported in this browser");
|
|
65
|
+
if (this.RTCScreenShareSender) return;
|
|
66
|
+
const screenTrack = (yield navigator.mediaDevices.getDisplayMedia({
|
|
67
|
+
video: !0,
|
|
68
|
+
audio: !1
|
|
69
|
+
})).getVideoTracks()[0];
|
|
70
|
+
if (!screenTrack) throw new Error("No screen share video track was provided");
|
|
71
|
+
const screenShareStream = new MediaStream([ screenTrack ]);
|
|
72
|
+
this.RTCScreenShareTrack = screenTrack, this.RTCScreenShareSender = this.peerConnection.addTrack(screenTrack, screenShareStream),
|
|
73
|
+
screenTrack.addEventListener("ended", () => {
|
|
74
|
+
this.stopScreenShare(!1);
|
|
75
|
+
}), this.peerConnection.remoteDescription && (yield this.negotiate());
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Stop the optional screen share stream and renegotiate if already connected
|
|
80
|
+
*/ stopScreenShare() {
|
|
81
|
+
return tslib_es6.__awaiter(this, arguments, void 0, function*(stopTrack = !0) {
|
|
82
|
+
this.RTCScreenShareSender && (this.peerConnection.removeTrack(this.RTCScreenShareSender),
|
|
83
|
+
this.RTCScreenShareSender = null), stopTrack && this.RTCScreenShareTrack && this.RTCScreenShareTrack.stop(),
|
|
84
|
+
this.RTCScreenShareTrack = null, this.peerConnection.remoteDescription && (yield this.negotiate());
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Create an offer, wait for ICE gathering, POST SDP, and apply the answer
|
|
89
|
+
*/ negotiate() {
|
|
90
|
+
return tslib_es6.__awaiter(this, void 0, void 0, function*() {
|
|
91
|
+
var _a;
|
|
92
|
+
if (!this.peerConnection) throw new Error("Peer connection not initialized");
|
|
93
|
+
if (!this.connectionUrl) throw new Error("Peer connection url not provided");
|
|
94
|
+
this.connectionOffer = yield this.peerConnection.createOffer(this.offerOptions),
|
|
95
|
+
yield this.peerConnection.setLocalDescription(this.connectionOffer), yield this.waitForIceGathering();
|
|
96
|
+
const headers = {
|
|
97
|
+
"Content-Type": "application/sdp"
|
|
98
|
+
};
|
|
99
|
+
this.bearerToken && "" !== this.bearerToken && (headers.Authorization = `Bearer ${this.bearerToken}`);
|
|
100
|
+
const sdpResponse = yield fetch(this.connectionUrl, {
|
|
101
|
+
method: "POST",
|
|
102
|
+
body: null === (_a = this.connectionOffer) || void 0 === _a ? void 0 : _a.sdp,
|
|
103
|
+
headers: headers
|
|
104
|
+
});
|
|
105
|
+
if (!sdpResponse.ok) throw new Error(`Failed to send connection offer to ${this.connectionUrl}. Status: ${sdpResponse.status} ${sdpResponse.statusText}`);
|
|
106
|
+
const sdpReply = {
|
|
107
|
+
type: "answer",
|
|
108
|
+
sdp: yield sdpResponse.text()
|
|
109
|
+
};
|
|
110
|
+
yield this.peerConnection.setRemoteDescription(sdpReply);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Send a JSON-serializable payload over a named data channel
|
|
115
|
+
*/ sendMessage(channelName, data) {
|
|
116
|
+
const channel = this.RTCDataChannels.find(dataChannel => dataChannel.label === channelName);
|
|
117
|
+
if (!channel) throw new Error(`Data channel "${channelName}" not found`);
|
|
118
|
+
if ("open" !== channel.readyState) throw new Error(`Data channel "${channelName}" is not open. Current state: ${channel.readyState}`);
|
|
119
|
+
channel.send(JSON.stringify(data));
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Mute or unmute all incoming audio playback
|
|
123
|
+
*/ muteAllAudio(muted) {
|
|
124
|
+
this.audioElement.muted = muted;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Mute or unmute a specific incoming audio track
|
|
128
|
+
*/ muteAudioTrack(trackId, muted) {
|
|
129
|
+
const track = this.RTCReceiverAudioTracks.get(trackId);
|
|
130
|
+
if (!track) throw new Error(`Audio track "${trackId}" not found`);
|
|
131
|
+
track.enabled = !muted;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Set the playback volume for the incoming audio element
|
|
135
|
+
*/ setVolume(volume) {
|
|
136
|
+
this.audioElement.volume = Math.max(0, Math.min(1, volume));
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Replace the outgoing audio source with the first track from a stream
|
|
140
|
+
*/ setOutgoingAudioStream(stream) {
|
|
141
|
+
return tslib_es6.__awaiter(this, void 0, void 0, function*() {
|
|
142
|
+
var _a;
|
|
143
|
+
yield this.replaceAudioTrack(null !== (_a = null == stream ? void 0 : stream.getAudioTracks()[0]) && void 0 !== _a ? _a : null);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Replace the outgoing audio track without rebuilding the peer connection
|
|
148
|
+
*/ replaceAudioTrack(track) {
|
|
149
|
+
return tslib_es6.__awaiter(this, void 0, void 0, function*() {
|
|
150
|
+
this.RTCSenderAudioTrack = track, this.syncSenderAudioStream(track), this.RTCSenderAudioSender ? yield this.RTCSenderAudioSender.replaceTrack(track) : track && (this.RTCSenderAudioSender = this.peerConnection.addTrack(track, this.RTCSenderAudioStream),
|
|
151
|
+
this.peerConnection.remoteDescription && (yield this.negotiate()));
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Close the peer connection and release local media bindings
|
|
156
|
+
*/ close() {
|
|
157
|
+
this.iceTimer && (clearTimeout(this.iceTimer), this.iceTimer = null), this.RTCScreenShareSender && (this.peerConnection.removeTrack(this.RTCScreenShareSender),
|
|
158
|
+
this.RTCScreenShareSender = null), this.RTCSenderAudioSender && (this.peerConnection.removeTrack(this.RTCSenderAudioSender),
|
|
159
|
+
this.RTCSenderAudioSender = null), this.RTCScreenShareTrack = null, this.RTCSenderAudioTrack = null,
|
|
160
|
+
this.audioElement.srcObject = null, this.peerConnection.close();
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Create an audio source node from the unified incoming audio stream
|
|
164
|
+
*/ createIncomingAudioSource(audioContext) {
|
|
165
|
+
return audioContext.createMediaStreamSource(this.RTCReceiverAudioStream);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Handle track events adding them to the unified audio and video streams
|
|
169
|
+
*/ onTrack(event) {
|
|
170
|
+
var _a, _b;
|
|
171
|
+
if (event.streams[0]) {
|
|
172
|
+
if ("video" === event.track.kind) {
|
|
173
|
+
const stream = event.streams[0], id = stream.id;
|
|
174
|
+
this.RTCReceiverVideoTracks.has(id) || (this.RTCReceiverVideoTracks.set(id, stream),
|
|
175
|
+
null === (_a = this.onRemoteVideoStream) || void 0 === _a || _a.call(this, this.RTCReceiverVideoTracks));
|
|
176
|
+
}
|
|
177
|
+
if ("audio" === event.track.kind) {
|
|
178
|
+
const id = event.track.id;
|
|
179
|
+
this.RTCReceiverAudioTracks.has(id) || (this.RTCReceiverAudioStream.addTrack(event.track),
|
|
180
|
+
this.RTCReceiverAudioTracks.set(id, event.track), null === (_b = this.onRemoteAudioStream) || void 0 === _b || _b.call(this, new Map([ [ this.RTCReceiverAudioStream.id, this.RTCReceiverAudioStream ] ])));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Create a local audio element and set its source to the rtc incoming media stream
|
|
186
|
+
*/ setupIncomingAudioStream() {
|
|
187
|
+
this.audioElement.autoplay = this.autoPlayAudio, this.audioElement.srcObject = this.RTCReceiverAudioStream;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Set up a local stream with mic and video tracks and add to peer connection
|
|
191
|
+
*/ setupOutgoingMediaStream() {
|
|
192
|
+
if (this.RTCSenderAudioTrack && (this.syncSenderAudioStream(this.RTCSenderAudioTrack),
|
|
193
|
+
this.RTCSenderAudioSender = this.peerConnection.addTrack(this.RTCSenderAudioTrack, this.RTCSenderAudioStream)),
|
|
194
|
+
this.RTCSenderVideoTrack) {
|
|
195
|
+
const senderStream = new MediaStream([ this.RTCSenderVideoTrack ]);
|
|
196
|
+
this.peerConnection.addTrack(this.RTCSenderVideoTrack, senderStream);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Keep the sender stream aligned to the current local audio track
|
|
201
|
+
*/ syncSenderAudioStream(track) {
|
|
202
|
+
for (const currentTrack of this.RTCSenderAudioStream.getAudioTracks()) this.RTCSenderAudioStream.removeTrack(currentTrack);
|
|
203
|
+
track && this.RTCSenderAudioStream.addTrack(track);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Setup data channels
|
|
207
|
+
*/ setupDataChannels(channels) {
|
|
208
|
+
const channelsArray = Array.isArray(channels) ? channels : [ channels ];
|
|
209
|
+
if (channelsArray.length > 0) for (const channel of channelsArray) {
|
|
210
|
+
const dataChannel = this.peerConnection.createDataChannel(channel);
|
|
211
|
+
this.RTCDataChannels.push(dataChannel);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Add listeners for data events and push through callback
|
|
216
|
+
*/ setupDataChannelEventListeners() {
|
|
217
|
+
for (const channel of this.RTCDataChannels) {
|
|
218
|
+
const channelName = channel.label;
|
|
219
|
+
channel.addEventListener("message", event => {
|
|
220
|
+
var _a;
|
|
221
|
+
null === (_a = this.onDataChannelEvent) || void 0 === _a || _a.call(this, channelName, "message", event);
|
|
222
|
+
}), channel.addEventListener("open", event => {
|
|
223
|
+
var _a;
|
|
224
|
+
null === (_a = this.onDataChannelEvent) || void 0 === _a || _a.call(this, channelName, "open", event);
|
|
225
|
+
}), channel.addEventListener("close", event => {
|
|
226
|
+
var _a;
|
|
227
|
+
null === (_a = this.onDataChannelEvent) || void 0 === _a || _a.call(this, channelName, "close", event);
|
|
228
|
+
}), channel.addEventListener("error", event => {
|
|
229
|
+
var _a;
|
|
230
|
+
null === (_a = this.onDataChannelEvent) || void 0 === _a || _a.call(this, channelName, "error", event);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Wait for the ICE gathering to be complete
|
|
236
|
+
*/ waitForIceGathering() {
|
|
237
|
+
return tslib_es6.__awaiter(this, void 0, void 0, function*() {
|
|
238
|
+
if ("complete" !== this.peerConnection.iceGatheringState) return new Promise((resolve, reject) => {
|
|
239
|
+
const handleStateChange = () => {
|
|
240
|
+
"complete" === this.peerConnection.iceGatheringState && (this.iceTimer && clearTimeout(this.iceTimer),
|
|
241
|
+
this.iceTimer = null, this.peerConnection.removeEventListener("icegatheringstatechange", handleStateChange),
|
|
242
|
+
resolve());
|
|
243
|
+
};
|
|
244
|
+
this.peerConnection.addEventListener("icegatheringstatechange", handleStateChange),
|
|
245
|
+
this.iceTimer = setTimeout(() => {
|
|
246
|
+
this.peerConnection.removeEventListener("icegatheringstatechange", handleStateChange),
|
|
247
|
+
this.iceTimer = null, reject(new Error("ICE gathering timed out"));
|
|
248
|
+
}, 5e3);
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require("./tslib.es6-
|
|
3
|
+
var tslib_es6 = require("./tslib.es6-DqjaJVC3.js"), React = require("react"), zustand = require("zustand"), shallow = require("zustand/react/shallow"), IndexedDB = require("./IndexedDB-Ddhq6Gjd.js");
|
|
4
4
|
|
|
5
5
|
function isValidIDBKey(key) {
|
|
6
6
|
return "string" == typeof key || "number" == typeof key || key instanceof Date || key instanceof ArrayBuffer || (Array.isArray(key) ? key.every(entry => isValidIDBKey(entry)) : ArrayBuffer.isView(key));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
-
var tslib_es6 = require("./tslib.es6-
|
|
4
|
+
var tslib_es6 = require("./tslib.es6-DqjaJVC3.js"), React = require("react"), zustand = require("zustand");
|
|
5
5
|
|
|
6
6
|
const emptyMicStreamRef = {
|
|
7
7
|
current: null
|
|
@@ -95,11 +95,34 @@ function createBoundActions(microphone, clearState) {
|
|
|
95
95
|
|
|
96
96
|
/**
|
|
97
97
|
* Bind the value of useMicrophone hook to the useMicrophoneStore. Use this to update the store with a new mic object.
|
|
98
|
-
*/ const microphoneActions =
|
|
98
|
+
*/ const microphoneActions = {
|
|
99
|
+
sync: microphone => useMicrophoneStore.getState().actions.sync(microphone),
|
|
100
|
+
clear: () => useMicrophoneStore.getState().actions.clear(),
|
|
101
|
+
requestMicrophone: () => useMicrophoneStore.getState().actions.requestMicrophone(),
|
|
102
|
+
stopMicrophone: () => useMicrophoneStore.getState().actions.stopMicrophone(),
|
|
103
|
+
muteMic: () => useMicrophoneStore.getState().actions.muteMic(),
|
|
104
|
+
unmuteMic: () => useMicrophoneStore.getState().actions.unmuteMic(),
|
|
105
|
+
toggleMute: () => useMicrophoneStore.getState().actions.toggleMute(),
|
|
106
|
+
setInputVolume: volume => useMicrophoneStore.getState().actions.setInputVolume(volume),
|
|
107
|
+
refreshMicrophones: () => useMicrophoneStore.getState().actions.refreshMicrophones(),
|
|
108
|
+
setMicrophone: deviceId => useMicrophoneStore.getState().actions.setMicrophone(deviceId)
|
|
109
|
+
};
|
|
99
110
|
|
|
100
|
-
exports.
|
|
111
|
+
exports.getCurrentMicDeviceLabel = () => {
|
|
112
|
+
var _a, _b, _c;
|
|
113
|
+
const state = useMicrophoneStore.getState(), liveTrackLabel = null === (_a = state.micTrack.current) || void 0 === _a ? void 0 : _a.label;
|
|
114
|
+
if (liveTrackLabel) return liveTrackLabel;
|
|
115
|
+
const currentDeviceId = state.currentDeviceId;
|
|
116
|
+
return currentDeviceId && null !== (_c = null === (_b = state.microphones.find(device => device.deviceId === currentDeviceId)) || void 0 === _b ? void 0 : _b.label) && void 0 !== _c ? _c : null;
|
|
117
|
+
}, exports.getMicrophoneState = () => useMicrophoneStore.getState(), exports.microphoneActions = microphoneActions,
|
|
101
118
|
exports.useCurrentMicDeviceId = () => useMicrophoneStore(state => state.currentDeviceId),
|
|
102
|
-
exports.
|
|
119
|
+
exports.useCurrentMicDeviceLabel = () => useMicrophoneStore(state => {
|
|
120
|
+
var _a, _b, _c;
|
|
121
|
+
const liveTrackLabel = null === (_a = state.micTrack.current) || void 0 === _a ? void 0 : _a.label;
|
|
122
|
+
if (liveTrackLabel) return liveTrackLabel;
|
|
123
|
+
const currentDeviceId = state.currentDeviceId;
|
|
124
|
+
return currentDeviceId && null !== (_c = null === (_b = state.microphones.find(device => device.deviceId === currentDeviceId)) || void 0 === _b ? void 0 : _b.label) && void 0 !== _c ? _c : null;
|
|
125
|
+
}), exports.useMicActive = () => useMicrophoneStore(state => state.isActive), exports.useMicError = () => useMicrophoneStore(state => state.error),
|
|
103
126
|
exports.useMicInputVolume = () => useMicrophoneStore(state => state.inputVolume),
|
|
104
127
|
exports.useMicMuted = () => useMicrophoneStore(state => state.muted), exports.useMicOptions = () => useMicrophoneStore(state => state.micOptions),
|
|
105
128
|
exports.useMicRequesting = () => useMicrophoneStore(state => state.isRequesting),
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var zustand = require("zustand");
|
|
4
4
|
|
|
5
|
-
require("./tslib.es6-
|
|
5
|
+
require("./tslib.es6-DqjaJVC3.js");
|
|
6
6
|
|
|
7
|
-
var SSEConnection = require("./SSEConnection-
|
|
7
|
+
var SSEConnection = require("./SSEConnection-CF5WZG9b.js");
|
|
8
8
|
|
|
9
9
|
const useSSEStore = zustand.create((set, get) => ({
|
|
10
10
|
connections: [],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var FileUploadStatus, UploadError, WorkerStatus, tslib_es6 = require("./tslib.es6-
|
|
3
|
+
var FileUploadStatus, UploadError, WorkerStatus, tslib_es6 = require("./tslib.es6-DqjaJVC3.js");
|
|
4
4
|
|
|
5
5
|
!function(FileUploadStatus) {
|
|
6
6
|
FileUploadStatus.queued = "pending", FileUploadStatus.uploading = "uploading", FileUploadStatus.completed = "completed",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var zustand = require("zustand"), uploadsWorker$1 = require("./uploads-worker-
|
|
3
|
+
var zustand = require("zustand"), uploadsWorker$1 = require("./uploads-worker-DWvOe9F8.js"), _documentCurrentScript = "undefined" != typeof document ? document.currentScript : null;
|
|
4
4
|
|
|
5
5
|
let uploadsWorker = null;
|
|
6
6
|
|
|
@@ -64,7 +64,7 @@ function handleWorkerMessage(event) {
|
|
|
64
64
|
const uploadsActions = useUploadsStore.getState().actions;
|
|
65
65
|
|
|
66
66
|
exports.createUploadsWorker = function(workerUrl) {
|
|
67
|
-
return new Worker(null != workerUrl ? workerUrl : new URL("../../workers/uploads/uploads.ts", "undefined" == typeof document ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && "SCRIPT" === _documentCurrentScript.tagName.toUpperCase() && _documentCurrentScript.src || new URL("chunks/uploadsStore-
|
|
67
|
+
return new Worker(null != workerUrl ? workerUrl : new URL("../../workers/uploads/uploads.ts", "undefined" == typeof document ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && "SCRIPT" === _documentCurrentScript.tagName.toUpperCase() && _documentCurrentScript.src || new URL("chunks/uploadsStore-BCmts7Ie.js", document.baseURI).href), {
|
|
68
68
|
type: "module"
|
|
69
69
|
});
|
|
70
70
|
}, exports.getUploads = () => useUploadsStore.getState().uploads, exports.getUploadsError = () => useUploadsStore.getState().error,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require("./tslib.es6-
|
|
3
|
+
var tslib_es6 = require("./tslib.es6-DqjaJVC3.js");
|
|
4
4
|
|
|
5
5
|
const useVolumeStore = require("zustand").create((set, get) => ({
|
|
6
6
|
volume: 1,
|
|
@@ -26,12 +26,13 @@ const useVolumeStore = require("zustand").create((set, get) => ({
|
|
|
26
26
|
feedbackElement: null
|
|
27
27
|
});
|
|
28
28
|
},
|
|
29
|
-
setVolume: volume => {
|
|
30
|
-
|
|
29
|
+
setVolume: (volume, options) => {
|
|
30
|
+
var _a;
|
|
31
|
+
const muted = get().muted, currentVolume = muted ? 0 : volume, attachedMedia = get().elements, feedbackElement = get().feedbackElement, newStored = volume > 0 ? volume : get().storedVolume;
|
|
31
32
|
attachedMedia.size > 0 && adjustMediaVolume(attachedMedia, currentVolume), set({
|
|
32
33
|
volume: currentVolume,
|
|
33
34
|
storedVolume: newStored
|
|
34
|
-
});
|
|
35
|
+
}), muted || null !== (_a = null == options ? void 0 : options.playFeedback) && void 0 !== _a && !_a || playFeedbackSound(feedbackElement, currentVolume);
|
|
35
36
|
},
|
|
36
37
|
playFeedback: volume => tslib_es6.__awaiter(void 0, void 0, void 0, function*() {
|
|
37
38
|
if (get().muted) return;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var tslib_es6 = require("./tslib.es6-DqjaJVC3.js"), zustand = require("zustand"), WebRTCConnection = require("./WebRTCConnection-DBeyg4j9.js");
|
|
4
|
+
|
|
5
|
+
const useWebRTCStore = zustand.create((set, get) => ({
|
|
6
|
+
connections: [],
|
|
7
|
+
actions: {
|
|
8
|
+
addConnection: (name, options) => {
|
|
9
|
+
const existingConnection = get().connections.find(c => c.name === name);
|
|
10
|
+
null == existingConnection || existingConnection.connection.close();
|
|
11
|
+
const connection = new WebRTCConnection.WebRTCConnection(options), nextConnection = {
|
|
12
|
+
name: name,
|
|
13
|
+
connection: connection
|
|
14
|
+
};
|
|
15
|
+
return set(state => ({
|
|
16
|
+
connections: [ ...state.connections.filter(connection => connection.name !== name), nextConnection ]
|
|
17
|
+
})), nextConnection;
|
|
18
|
+
},
|
|
19
|
+
initializeConnection: (name, offerOptions, bearerToken) => tslib_es6.__awaiter(void 0, void 0, void 0, function*() {
|
|
20
|
+
var _a;
|
|
21
|
+
const connection = null === (_a = get().connections.find(c => c.name === name)) || void 0 === _a ? void 0 : _a.connection;
|
|
22
|
+
connection && (yield connection.initialize(offerOptions, bearerToken));
|
|
23
|
+
}),
|
|
24
|
+
removeConnection: name => {
|
|
25
|
+
const existingConnection = get().connections.find(c => c.name === name);
|
|
26
|
+
existingConnection && (existingConnection.connection.close(), set(state => ({
|
|
27
|
+
connections: state.connections.filter(connection => connection.name !== name)
|
|
28
|
+
})));
|
|
29
|
+
},
|
|
30
|
+
setMicStream: (name, stream) => tslib_es6.__awaiter(void 0, void 0, void 0, function*() {
|
|
31
|
+
var _a;
|
|
32
|
+
const connection = null === (_a = get().connections.find(c => c.name === name)) || void 0 === _a ? void 0 : _a.connection;
|
|
33
|
+
connection && (yield connection.setOutgoingAudioStream(stream));
|
|
34
|
+
}),
|
|
35
|
+
setVolume: (name, volume) => {
|
|
36
|
+
var _a;
|
|
37
|
+
const connection = null === (_a = get().connections.find(c => c.name === name)) || void 0 === _a ? void 0 : _a.connection;
|
|
38
|
+
connection && connection.setVolume(volume);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
})), useWebRTCActions = useWebRTCStore.getState().actions;
|
|
42
|
+
|
|
43
|
+
exports.getWebRTCConnections = function(name) {
|
|
44
|
+
var _a;
|
|
45
|
+
const connections = useWebRTCStore.getState().connections;
|
|
46
|
+
return name ? null !== (_a = connections.find(connection => connection.name === name)) && void 0 !== _a ? _a : null : connections;
|
|
47
|
+
}, exports.useWebRTC = () => useWebRTCStore(state => state.actions), exports.useWebRTCActions = useWebRTCActions,
|
|
48
|
+
exports.useWebRTCConnected = name => useWebRTCStore(state => {
|
|
49
|
+
var _a, _b;
|
|
50
|
+
return name ? null !== (_b = null === (_a = state.connections.find(entry => entry.name === name)) || void 0 === _a ? void 0 : _a.connection.connected) && void 0 !== _b && _b : state.connections.some(entry => entry.connection.connected);
|
|
51
|
+
}), exports.useWebRTCConnection = name => useWebRTCStore(state => {
|
|
52
|
+
var _a;
|
|
53
|
+
return null !== (_a = state.connections.find(connection => connection.name === name)) && void 0 !== _a ? _a : null;
|
|
54
|
+
}), exports.useWebRTCConnections = () => useWebRTCStore(state => state.connections),
|
|
55
|
+
exports.useWebRTCStore = useWebRTCStore;
|