@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.
Files changed (293) hide show
  1. package/README.md +35 -284
  2. package/dist/cjs/chunks/{AudioBubble-k7qS53g6.js → AudioBubble-_eYM1QMu.js} +4 -3
  3. package/dist/cjs/chunks/{Avatar-hP8GuwvD.js → Avatar-DTro_MXZ.js} +1 -1
  4. package/dist/cjs/chunks/{AvatarGroup-DMy34q7_.js → AvatarGroup-OPJJ_Te5.js} +1 -1
  5. package/dist/cjs/chunks/{Badge-D2TbyfJS.js → Badge-DWUeXxm2.js} +1 -1
  6. package/dist/cjs/chunks/{Button-CTsHZBEB.js → Button-CuGvPAkH.js} +1 -1
  7. package/dist/cjs/chunks/{ButtonBar-BRb1PTmw.js → ButtonBar-CbXToyfD.js} +1 -1
  8. package/dist/cjs/chunks/{Camera-CKv087kr.js → Camera-DjENiyud.js} +5 -4
  9. package/dist/cjs/chunks/{CheckBox-VRIL1FHh.js → CheckBox-DiJpbdy5.js} +1 -1
  10. package/dist/cjs/chunks/{Chip-Dr3vKvRY.js → Chip-kzOvEo0P.js} +1 -1
  11. package/dist/cjs/chunks/{DivInput-Ci0gaCWL.js → DivInput-B917fKB9.js} +1 -1
  12. package/dist/cjs/chunks/{Dot-C0MvSJOl.js → Dot-DaRF2JyO.js} +1 -1
  13. package/dist/cjs/chunks/{DrggablePanel-DflouLUs.js → DrggablePanel-CJTEmYW6.js} +4 -3
  14. package/dist/cjs/chunks/{DropDown-BS1H62yj.js → DropDown-DRSQvXCC.js} +1 -1
  15. package/dist/cjs/chunks/{ErrorSummary-B3tof7ir.js → ErrorSummary-ltiIsgJ6.js} +4 -3
  16. package/dist/cjs/chunks/{FileIcon-Te8MaqTs.js → FileIcon-WIVOTJLa.js} +5 -3
  17. package/dist/cjs/chunks/{FileList-CDcfKIV6.js → FileList-CzQZZErI.js} +1 -1
  18. package/dist/cjs/chunks/{FlexDiv-wO8IY0Zf.js → FlexDiv-CBENyLT4.js} +1 -1
  19. package/dist/cjs/chunks/{Grouper-DyGkzdvz.js → Grouper-Cd3AJEFv.js} +4 -3
  20. package/dist/cjs/chunks/{Icon-BFZ_5Qv3.js → Icon-DjvProjz.js} +4 -3
  21. package/dist/cjs/chunks/{IconButton-CgsuJIuF.js → IconButton-BuwQLUuj.js} +1 -1
  22. package/dist/cjs/chunks/{IndexedDB-Dgwal8na.js → IndexedDB-Ddhq6Gjd.js} +1 -1
  23. package/dist/cjs/chunks/{Label-BuyhcJbF.js → Label-d32ENzwL.js} +1 -1
  24. package/dist/cjs/chunks/Level-B8eT8XyV.js +58 -0
  25. package/dist/cjs/chunks/{MdStreamBuffer-CbG_VeRI.js → MdStreamBuffer-Chwibu07.js} +38 -16
  26. package/dist/cjs/chunks/{Modal-ByRyv3wy.js → Modal-CUAj4e6x.js} +34 -8
  27. package/dist/cjs/chunks/ModalController-BwFAVI5G.js +80 -0
  28. package/dist/cjs/chunks/{Overlay-FooE9M_s.js → Overlay-CaAA3ey5.js} +1 -1
  29. package/dist/cjs/chunks/{Pager-B-cuwffo.js → Pager-uExZ5E3x.js} +1 -1
  30. package/dist/cjs/chunks/{ProgressIndicator-ByZ_aYAZ.js → ProgressIndicator-DwqslY4o.js} +4 -3
  31. package/dist/cjs/chunks/{PromptInput--grtHPvy.js → PromptInput-Dl8l8cZv.js} +34 -30
  32. package/dist/cjs/chunks/{RadioButton-DP2X1dA_.js → RadioButton-DPpAOFQt.js} +1 -1
  33. package/dist/cjs/chunks/{RadioButtonList-COGNW5y3.js → RadioButtonList-IbPA6A3y.js} +1 -1
  34. package/dist/cjs/chunks/{Slider-G1a8UKef.js → Slider-D5oa7NGy.js} +1 -1
  35. package/dist/cjs/chunks/{Spacer-CsRCleXv.js → Spacer-DtUh2VLv.js} +1 -1
  36. package/dist/cjs/chunks/{Switch-OBVHKn_D.js → Switch-Bs0r5va5.js} +1 -1
  37. package/dist/cjs/chunks/{TabBar-C1HkBaxE.js → TabBar-BCSTg_Uc.js} +4 -3
  38. package/dist/cjs/chunks/{TextArea-BEmNI_HZ.js → TextArea-Dj7jsvVr.js} +1 -1
  39. package/dist/cjs/chunks/{TextField-D9_COA9H.js → TextField-DNP0wJla.js} +5 -4
  40. package/dist/cjs/chunks/{Tip-2W0u_oQN.js → Tip-awq6PDZa.js} +1 -1
  41. package/dist/cjs/chunks/{Toast-B9jX6ioq.js → Toast-xS1TC3Ba.js} +7 -6
  42. package/dist/cjs/chunks/{ToggleButton-C_Gu5dYR.js → ToggleButton-CqD5c6JA.js} +4 -3
  43. package/dist/cjs/chunks/{UploadArea-ENFAf4tE.js → UploadArea-CvWqk8YK.js} +1 -1
  44. package/dist/cjs/chunks/{WSConnection-CZ22tcLz.js → WSConnection-BACWw4TS.js} +1 -1
  45. package/dist/cjs/chunks/WebRTCConnection-DBeyg4j9.js +252 -0
  46. package/dist/cjs/chunks/{localDBStore-Ca73jeFf.js → localDBStore-wgCc1SmV.js} +1 -1
  47. package/dist/cjs/chunks/{microphoneStore-lxYIvhN8.js → microphoneStore-Dy5TwE2I.js} +27 -4
  48. package/dist/cjs/chunks/{misc-DZAbObFp.js → misc-BwQIEIuF.js} +1 -1
  49. package/dist/cjs/chunks/{sseStore-Bq7sVvyA.js → sseStore-CFFaYonG.js} +2 -2
  50. package/dist/cjs/chunks/{uploads-worker-CD-annza.js → uploads-worker-DWvOe9F8.js} +1 -1
  51. package/dist/cjs/chunks/{uploadsStore-CUeB10zx.js → uploadsStore-BCmts7Ie.js} +2 -2
  52. package/dist/cjs/chunks/{volumeStore-roYTyKJ2.js → volumeStore-BXFAQhvS.js} +5 -4
  53. package/dist/cjs/chunks/webRTCStore-DRjvbnve.js +55 -0
  54. package/dist/cjs/chunks/{windowStore-BdJv-RF0.js → windowStore-C4Bg6I9i.js} +1 -1
  55. package/dist/cjs/components/AudioBubble/index.js +6 -4
  56. package/dist/cjs/components/Avatar/index.js +3 -3
  57. package/dist/cjs/components/AvatarGroup/index.js +3 -3
  58. package/dist/cjs/components/Badge/index.js +2 -2
  59. package/dist/cjs/components/Button/index.js +9 -7
  60. package/dist/cjs/components/ButtonBar/index.js +6 -4
  61. package/dist/cjs/components/Camera/index.js +7 -5
  62. package/dist/cjs/components/CheckBox/index.js +6 -4
  63. package/dist/cjs/components/Chip/index.js +7 -5
  64. package/dist/cjs/components/DivInput/index.js +3 -3
  65. package/dist/cjs/components/Dot/index.js +2 -2
  66. package/dist/cjs/components/DraggablePanel/index.js +5 -3
  67. package/dist/cjs/components/DropDown/index.js +6 -4
  68. package/dist/cjs/components/ErrorSummary/index.js +5 -3
  69. package/dist/cjs/components/FileIcon/index.js +5 -3
  70. package/dist/cjs/components/FileList/index.js +7 -5
  71. package/dist/cjs/components/FlexDiv/index.js +2 -2
  72. package/dist/cjs/components/Grouper/index.js +7 -5
  73. package/dist/cjs/components/Icon/index.js +5 -3
  74. package/dist/cjs/components/IconButton/index.js +8 -6
  75. package/dist/cjs/components/Label/index.js +3 -3
  76. package/dist/cjs/components/Level/index.js +7 -0
  77. package/dist/cjs/components/Modal/index.js +10 -8
  78. package/dist/cjs/components/ModalController/index.js +6 -4
  79. package/dist/cjs/components/Overlay/index.js +2 -2
  80. package/dist/cjs/components/Pager/index.js +3 -3
  81. package/dist/cjs/components/Progress/index.js +5 -3
  82. package/dist/cjs/components/PromptInput/index.js +9 -7
  83. package/dist/cjs/components/RadioButton/index.js +6 -4
  84. package/dist/cjs/components/RadioButtonList/index.js +7 -5
  85. package/dist/cjs/components/Slider/index.js +4 -4
  86. package/dist/cjs/components/Spacer/index.js +2 -2
  87. package/dist/cjs/components/Switch/index.js +2 -2
  88. package/dist/cjs/components/TabBar/index.js +8 -6
  89. package/dist/cjs/components/TextArea/index.js +9 -7
  90. package/dist/cjs/components/Textfield/index.js +9 -7
  91. package/dist/cjs/components/Tip/index.js +3 -3
  92. package/dist/cjs/components/Toast/index.js +6 -4
  93. package/dist/cjs/components/ToggleButton/index.js +9 -7
  94. package/dist/cjs/components/UploadArea/index.js +11 -10
  95. package/dist/cjs/hooks/useAudioRecorder.js +1 -1
  96. package/dist/cjs/hooks/useBindWebRTC.js +60 -0
  97. package/dist/cjs/hooks/useLocalStore.js +3 -3
  98. package/dist/cjs/hooks/useMdStreamBuffer.js +55 -30
  99. package/dist/cjs/hooks/useMicrophone.js +1 -1
  100. package/dist/cjs/hooks/useTrackRenders.js +2 -2
  101. package/dist/cjs/hooks.js +7 -4
  102. package/dist/cjs/index.js +19 -18
  103. package/dist/cjs/providers/ThemeProvider.js +5 -4
  104. package/dist/cjs/providers/themeServer.js +15 -9
  105. package/dist/cjs/stores/LocalDB.js +3 -3
  106. package/dist/cjs/stores/SSE.js +2 -2
  107. package/dist/cjs/stores/WS.js +2 -2
  108. package/dist/cjs/stores/WebRTC.js +9 -0
  109. package/dist/cjs/stores/microphone.js +5 -4
  110. package/dist/cjs/stores/modal.js +1 -1
  111. package/dist/cjs/stores/tip.js +1 -1
  112. package/dist/cjs/stores/toast.js +1 -1
  113. package/dist/cjs/stores/uploads.js +2 -2
  114. package/dist/cjs/stores/volume.js +2 -2
  115. package/dist/cjs/stores/window.js +2 -2
  116. package/dist/cjs/stores.js +24 -19
  117. package/dist/cjs/utils/index.js +4 -3
  118. package/dist/cjs/utils/objects/index.js +4 -3
  119. package/dist/cjs/workers/uploads/uploads.js +2 -2
  120. package/dist/esm/chunks/{AudioBubble-DfrxyTX_.mjs → AudioBubble-SB1LCBlJ.mjs} +9 -3
  121. package/dist/esm/chunks/{Avatar-pA41Pcyl.mjs → Avatar-B6PcVOmT.mjs} +2 -2
  122. package/dist/esm/chunks/{AvatarGroup-CZBtWjnj.mjs → AvatarGroup-DEb3j2IZ.mjs} +2 -2
  123. package/dist/esm/chunks/{Badge-pLwG0zm7.mjs → Badge-bh5UVUnt.mjs} +1 -1
  124. package/dist/esm/chunks/{Button-BJoMLZIs.mjs → Button-CWKs3uAV.mjs} +6 -6
  125. package/dist/esm/chunks/{ButtonBar-BO2RUJ8R.mjs → ButtonBar-CWeMhkSb.mjs} +3 -3
  126. package/dist/esm/chunks/{Camera-4MNA52HG.mjs → Camera-BmuMA9xY.mjs} +11 -5
  127. package/dist/esm/chunks/{CheckBox-7KAsvZld.mjs → CheckBox-BR6a2n0j.mjs} +3 -3
  128. package/dist/esm/chunks/{Chip-BuGvCLLU.mjs → Chip-DXW0jxKf.mjs} +4 -4
  129. package/dist/esm/chunks/{DivInput-D0YzSWjJ.mjs → DivInput-BWO1EJXA.mjs} +2 -2
  130. package/dist/esm/chunks/{Dot-h26m47Z-.mjs → Dot-DMst-5Q2.mjs} +1 -1
  131. package/dist/esm/chunks/{DrggablePanel-Bh6HLPMX.mjs → DrggablePanel-qxrCS7Ot.mjs} +8 -2
  132. package/dist/esm/chunks/{DropDown-NgMYjjXn.mjs → DropDown-DlO2J4QP.mjs} +3 -3
  133. package/dist/esm/chunks/{ErrorSummary-nNm9qymE.mjs → ErrorSummary-BplQFunJ.mjs} +8 -2
  134. package/dist/esm/chunks/{FileIcon-BqyV1wut.mjs → FileIcon-iFmAF7_a.mjs} +8 -2
  135. package/dist/esm/chunks/{FileList-C1tOvoc0.mjs → FileList-CztHFCJe.mjs} +5 -5
  136. package/dist/esm/chunks/{FlexDiv-CkK-DAyg.mjs → FlexDiv-DGmDZL7M.mjs} +1 -1
  137. package/dist/esm/chunks/{Grouper-CyrOkuu2.mjs → Grouper-DxOISLzH.mjs} +9 -3
  138. package/dist/esm/chunks/{Icon-DjW0Krm8.mjs → Icon-L8B35JN1.mjs} +8 -2
  139. package/dist/esm/chunks/{IconButton-DdLhTUl0.mjs → IconButton-DxwJemEK.mjs} +5 -5
  140. package/dist/esm/chunks/{IndexedDB-DVoDikoA.mjs → IndexedDB-DA5oZXju.mjs} +1 -1
  141. package/dist/esm/chunks/{Label-DhmJ_Sln.mjs → Label-wDPtyK4h.mjs} +2 -2
  142. package/dist/esm/chunks/Level-B9JayinM.mjs +63 -0
  143. package/dist/esm/chunks/{MdStreamBuffer-4AJH8WaN.mjs → MdStreamBuffer-Cyon3ytf.mjs} +38 -16
  144. package/dist/esm/chunks/{Modal-FztrJsQo.mjs → Modal-C-Q2A_RY.mjs} +39 -13
  145. package/dist/esm/chunks/ModalController-ClAjHLPb.mjs +91 -0
  146. package/dist/esm/chunks/{Overlay-Dsy55Bxm.mjs → Overlay-Dr9YYxJ6.mjs} +1 -1
  147. package/dist/esm/chunks/{Pager-BqSdwL0L.mjs → Pager-DPbTCMNe.mjs} +2 -2
  148. package/dist/esm/chunks/{ProgressIndicator-BnqZFATV.mjs → ProgressIndicator-HaJJDZ-m.mjs} +8 -2
  149. package/dist/esm/chunks/{PromptInput-CRkcPXJu.mjs → PromptInput-wGhpXw-h.mjs} +38 -31
  150. package/dist/esm/chunks/{RadioButton-DXq3yniV.mjs → RadioButton-oOGgTDhg.mjs} +3 -3
  151. package/dist/esm/chunks/{RadioButtonList-BgOskHCP.mjs → RadioButtonList-CDWKVvyL.mjs} +3 -3
  152. package/dist/esm/chunks/{Slider-DPOy9uNI.mjs → Slider-ioPGftDY.mjs} +3 -3
  153. package/dist/esm/chunks/{Spacer-BJd_D0Fn.mjs → Spacer-VJBjxVlr.mjs} +1 -1
  154. package/dist/esm/chunks/{Switch-DHqlyizo.mjs → Switch-BCk2sTh3.mjs} +1 -1
  155. package/dist/esm/chunks/{TabBar-RBXExqMK.mjs → TabBar-C1DYnCRx.mjs} +11 -5
  156. package/dist/esm/chunks/{TextArea-CIlx_P26.mjs → TextArea-CF3r5m2G.mjs} +2 -2
  157. package/dist/esm/chunks/{TextField-CX72ybwH.mjs → TextField-BNfTj9v2.mjs} +11 -5
  158. package/dist/esm/chunks/{Tip-COBSyEjm.mjs → Tip-DIKQvxxO.mjs} +2 -2
  159. package/dist/esm/chunks/{Toast-BTm3HxDD.mjs → Toast-CkXPrDpp.mjs} +12 -6
  160. package/dist/esm/chunks/{ToggleButton-DujsCKF3.mjs → ToggleButton-Dvy8fc4t.mjs} +5 -4
  161. package/dist/esm/chunks/{UploadArea-D--Nt8Ed.mjs → UploadArea-D_xGzR2e.mjs} +4 -4
  162. package/dist/esm/chunks/{WSConnection-BMXcuW3f.mjs → WSConnection-TiYLENWB.mjs} +1 -1
  163. package/dist/esm/chunks/WebRTCConnection-d0Yvd66q.mjs +252 -0
  164. package/dist/esm/chunks/{localDBStore-36E3160Z.mjs → localDBStore-C-5y16uv.mjs} +2 -2
  165. package/dist/esm/chunks/{microphoneStore-Cexu82zH.mjs → microphoneStore-Cbx9nV4R.mjs} +26 -3
  166. package/dist/esm/chunks/{misc-CTGTuM2J.mjs → misc-zecH7-IH.mjs} +1 -1
  167. package/dist/esm/chunks/{sseStore-Dow4NXkZ.mjs → sseStore-DIquUNpm.mjs} +2 -2
  168. package/dist/esm/chunks/{tslib.es6-BX2F90pK.mjs → tslib.es6-CVvvNSPr.mjs} +1 -1
  169. package/dist/esm/chunks/{uploads-worker-Dhyp4ot3.mjs → uploads-worker-CUggKU9b.mjs} +1 -1
  170. package/dist/esm/chunks/{uploadsStore-DT4lFybE.mjs → uploadsStore-9QngohOe.mjs} +1 -1
  171. package/dist/esm/chunks/{volumeStore-RAxdmQ60.mjs → volumeStore-BrgZCRKF.mjs} +5 -4
  172. package/dist/esm/chunks/webRTCStore-DhFE9-bb.mjs +57 -0
  173. package/dist/esm/chunks/{windowStore-C4AZexIa.mjs → windowStore-BKW7HyoD.mjs} +1 -1
  174. package/dist/esm/components/AudioBubble/index.mjs +14 -4
  175. package/dist/esm/components/Avatar/index.mjs +3 -3
  176. package/dist/esm/components/AvatarGroup/index.mjs +4 -4
  177. package/dist/esm/components/Badge/index.mjs +2 -2
  178. package/dist/esm/components/Button/index.mjs +18 -8
  179. package/dist/esm/components/ButtonBar/index.mjs +14 -4
  180. package/dist/esm/components/Camera/index.mjs +16 -6
  181. package/dist/esm/components/CheckBox/index.mjs +14 -4
  182. package/dist/esm/components/Chip/index.mjs +15 -5
  183. package/dist/esm/components/DivInput/index.mjs +3 -3
  184. package/dist/esm/components/Dot/index.mjs +2 -2
  185. package/dist/esm/components/DraggablePanel/index.mjs +13 -3
  186. package/dist/esm/components/DropDown/index.mjs +14 -4
  187. package/dist/esm/components/ErrorSummary/index.mjs +13 -3
  188. package/dist/esm/components/FileIcon/index.mjs +13 -3
  189. package/dist/esm/components/FileList/index.mjs +16 -6
  190. package/dist/esm/components/FlexDiv/index.mjs +2 -2
  191. package/dist/esm/components/Grouper/index.mjs +15 -5
  192. package/dist/esm/components/Icon/index.mjs +14 -4
  193. package/dist/esm/components/IconButton/index.mjs +17 -7
  194. package/dist/esm/components/Label/index.mjs +3 -3
  195. package/dist/esm/components/Level/index.mjs +11 -0
  196. package/dist/esm/components/Modal/index.mjs +20 -10
  197. package/dist/esm/components/ModalController/index.mjs +14 -6
  198. package/dist/esm/components/Overlay/index.mjs +2 -2
  199. package/dist/esm/components/Pager/index.mjs +3 -3
  200. package/dist/esm/components/Progress/index.mjs +14 -4
  201. package/dist/esm/components/PromptInput/index.mjs +22 -12
  202. package/dist/esm/components/RadioButton/index.mjs +14 -4
  203. package/dist/esm/components/RadioButtonList/index.mjs +15 -5
  204. package/dist/esm/components/Slider/index.mjs +4 -4
  205. package/dist/esm/components/Spacer/index.mjs +2 -2
  206. package/dist/esm/components/Switch/index.mjs +2 -2
  207. package/dist/esm/components/TabBar/index.mjs +18 -8
  208. package/dist/esm/components/TextArea/index.mjs +19 -9
  209. package/dist/esm/components/Textfield/index.mjs +20 -10
  210. package/dist/esm/components/Tip/index.mjs +3 -3
  211. package/dist/esm/components/Toast/index.mjs +15 -5
  212. package/dist/esm/components/ToggleButton/index.mjs +19 -9
  213. package/dist/esm/components/UploadArea/index.mjs +19 -9
  214. package/dist/esm/hooks/useAudioRecorder.mjs +1 -1
  215. package/dist/esm/hooks/useBindWebRTC.mjs +72 -0
  216. package/dist/esm/hooks/useLocalStore.mjs +3 -3
  217. package/dist/esm/hooks/useMdStreamBuffer.mjs +56 -28
  218. package/dist/esm/hooks/useMicrophone.mjs +1 -1
  219. package/dist/esm/hooks/useTrackRenders.mjs +2 -2
  220. package/dist/esm/hooks.mjs +14 -2
  221. package/dist/esm/index.mjs +62 -50
  222. package/dist/esm/providers/ThemeProvider.mjs +6 -5
  223. package/dist/esm/providers/themeServer.mjs +11 -6
  224. package/dist/esm/stores/LocalDB.mjs +3 -3
  225. package/dist/esm/stores/SSE.mjs +3 -3
  226. package/dist/esm/stores/WS.mjs +2 -2
  227. package/dist/esm/stores/WebRTC.mjs +7 -0
  228. package/dist/esm/stores/microphone.mjs +2 -2
  229. package/dist/esm/stores/modal.mjs +1 -1
  230. package/dist/esm/stores/tip.mjs +1 -1
  231. package/dist/esm/stores/toast.mjs +1 -1
  232. package/dist/esm/stores/uploads.mjs +3 -3
  233. package/dist/esm/stores/volume.mjs +2 -2
  234. package/dist/esm/stores/window.mjs +2 -2
  235. package/dist/esm/stores.mjs +18 -14
  236. package/dist/esm/utils/index.mjs +11 -9
  237. package/dist/esm/utils/objects/index.mjs +8 -6
  238. package/dist/esm/workers/uploads/uploads.mjs +2 -2
  239. package/dist/styles.css +76 -13
  240. package/dist/types/components/Level/Level.d.ts +5 -0
  241. package/dist/types/components/Level/_types.d.ts +21 -0
  242. package/dist/types/components/Level/index.d.ts +2 -0
  243. package/dist/types/components/Modal/_types.d.ts +3 -0
  244. package/dist/types/components/PromptInput/PromptInput.d.ts +10 -2
  245. package/dist/types/components/PromptInput/_types.d.ts +5 -1
  246. package/dist/types/components/Toast/_types.d.ts +1 -0
  247. package/dist/types/components/ToggleButton/_types.d.ts +1 -0
  248. package/dist/types/hooks/index.d.ts +2 -0
  249. package/dist/types/hooks/useBindWebRTC/index.d.ts +1 -0
  250. package/dist/types/hooks/useBindWebRTC/useBindWebRTC.d.ts +15 -0
  251. package/dist/types/hooks/useLocalStore/useLocalStore.d.ts +1 -1
  252. package/dist/types/hooks/useMdStreamBuffer/useMdStreamBuffer.d.ts +6 -1
  253. package/dist/types/index.d.ts +3 -1
  254. package/dist/types/providers/ThemeProvider.d.ts +1 -0
  255. package/dist/types/providers/themeServer.d.ts +7 -3
  256. package/dist/types/stores/WebRTC/_types.d.ts +16 -0
  257. package/dist/types/stores/WebRTC/index.d.ts +2 -0
  258. package/dist/types/stores/WebRTC/webRTCStore.d.ts +21 -0
  259. package/dist/types/stores/index.d.ts +1 -0
  260. package/dist/types/stores/microphone/index.d.ts +1 -1
  261. package/dist/types/stores/microphone/microphoneStore.d.ts +14 -1
  262. package/dist/types/stores/toast/_types.d.ts +1 -0
  263. package/dist/types/stores/volume/_types.d.ts +3 -1
  264. package/dist/types/stores/volume/volumeStore.d.ts +6 -2
  265. package/dist/types/utils/functions/files.d.ts +1 -1
  266. package/dist/types/utils/index.d.ts +2 -2
  267. package/dist/types/utils/objects/MDStreamBuffer/MdStreamBuffer.d.ts +10 -0
  268. package/dist/types/utils/objects/MDStreamBuffer/_types.d.ts +2 -0
  269. package/dist/types/utils/objects/WebRTCConnection/WebRTCConnection.d.ts +37 -3
  270. package/dist/types/utils/objects/WebRTCConnection/_types.d.ts +13 -4
  271. package/dist/types/utils/objects/index.d.ts +2 -0
  272. package/package.json +1 -1
  273. package/dist/cjs/chunks/ModalController-xjflFsjF.js +0 -68
  274. package/dist/esm/chunks/ModalController-C1BnM5Dz.mjs +0 -76
  275. /package/dist/cjs/chunks/{SSEConnection-ACoOeeTO.js → SSEConnection-CF5WZG9b.js} +0 -0
  276. /package/dist/cjs/chunks/{_types-k-3V1fz_.js → _types-BTdDWVYI.js} +0 -0
  277. /package/dist/cjs/chunks/{audioVisualizer-MOSbvvnZ.js → audioVisualizer-C7fMG0WH.js} +0 -0
  278. /package/dist/cjs/chunks/{colors-B0_3srZN.js → colors-CmOkcjB3.js} +0 -0
  279. /package/dist/cjs/chunks/{debounce-CaoYvh12.js → debounce-BtCCTkbG.js} +0 -0
  280. /package/dist/cjs/chunks/{modalStore-D4bOjuWd.js → modalStore-CaQkdY5_.js} +0 -0
  281. /package/dist/cjs/chunks/{sharedTypes-CthHPjrO.js → sharedTypes-BOieqpQy.js} +0 -0
  282. /package/dist/cjs/chunks/{tipStore-CPB7RHKY.js → tipStore-4Bs9v2sg.js} +0 -0
  283. /package/dist/cjs/chunks/{toastStore-6eHe6esp.js → toastStore-CyCE9-lr.js} +0 -0
  284. /package/dist/cjs/chunks/{tslib.es6-CzpRaW14.js → tslib.es6-DqjaJVC3.js} +0 -0
  285. /package/dist/esm/chunks/{SSEConnection-qNnkZUOe.mjs → SSEConnection-g0GBGAqe.mjs} +0 -0
  286. /package/dist/esm/chunks/{_types-CEStVWlB.mjs → _types-9ekyeJYl.mjs} +0 -0
  287. /package/dist/esm/chunks/{audioVisualizer-BUNbarKP.mjs → audioVisualizer-nMo67yOW.mjs} +0 -0
  288. /package/dist/esm/chunks/{colors-D-qeA9gU.mjs → colors-v5b8_oYV.mjs} +0 -0
  289. /package/dist/esm/chunks/{debounce-D5b6tZ5a.mjs → debounce-DFxAyrPi.mjs} +0 -0
  290. /package/dist/esm/chunks/{modalStore-Crg_QmSJ.mjs → modalStore-D6_oc47l.mjs} +0 -0
  291. /package/dist/esm/chunks/{sharedTypes-U5H1I85x.mjs → sharedTypes-CdmzhKXN.mjs} +0 -0
  292. /package/dist/esm/chunks/{tipStore-pvswaezx.mjs → tipStore-C2M6zBzd.mjs} +0 -0
  293. /package/dist/esm/chunks/{toastStore-80oOTYsj.mjs → toastStore-B-6kdNHw.mjs} +0 -0
@@ -1,11 +1,13 @@
1
- export { I as IndexedDB } from "../../chunks/IndexedDB-DVoDikoA.mjs";
1
+ export { I as IndexedDB } from "../../chunks/IndexedDB-DA5oZXju.mjs";
2
2
 
3
- export { A as AudioVisualizer } from "../../chunks/audioVisualizer-BUNbarKP.mjs";
3
+ export { A as AudioVisualizer } from "../../chunks/audioVisualizer-nMo67yOW.mjs";
4
4
 
5
- export { M as MdBuffer } from "../../chunks/MdStreamBuffer-4AJH8WaN.mjs";
5
+ export { M as MdBuffer } from "../../chunks/MdStreamBuffer-Cyon3ytf.mjs";
6
6
 
7
- export { S as SSEConnection } from "../../chunks/SSEConnection-qNnkZUOe.mjs";
7
+ export { S as SSEConnection } from "../../chunks/SSEConnection-g0GBGAqe.mjs";
8
8
 
9
- export { W as WSConnection } from "../../chunks/WSConnection-BMXcuW3f.mjs";
9
+ export { W as WSConnection } from "../../chunks/WSConnection-TiYLENWB.mjs";
10
10
 
11
- import "../../chunks/tslib.es6-BX2F90pK.mjs";
11
+ export { W as WebRTCConnection } from "../../chunks/WebRTCConnection-d0Yvd66q.mjs";
12
+
13
+ import "../../chunks/tslib.es6-CVvvNSPr.mjs";
@@ -1,5 +1,5 @@
1
- import { r as registerUploadsWorker } from "../../chunks/uploads-worker-Dhyp4ot3.mjs";
1
+ import { r as registerUploadsWorker } from "../../chunks/uploads-worker-CUggKU9b.mjs";
2
2
 
3
- import "../../chunks/tslib.es6-BX2F90pK.mjs";
3
+ import "../../chunks/tslib.es6-CVvvNSPr.mjs";
4
4
 
5
5
  registerUploadsWorker();
package/dist/styles.css CHANGED
@@ -4375,37 +4375,43 @@ line {
4375
4375
  -webkit-user-select: none;
4376
4376
  }
4377
4377
 
4378
- .Modal-module_content__dWO-B {
4379
- padding-right: var(--modal-padding) !important;
4380
- padding-left: var(--modal-padding) !important;
4378
+ .Modal-module_contentWrapper__Swyjx {
4381
4379
  width: 100%;
4382
4380
  flex: 1;
4383
4381
  overflow: hidden;
4384
4382
  overflow-y: auto;
4383
+ margin-right: 4px !important;
4385
4384
  }
4386
4385
 
4387
- .Modal-module_content__dWO-B::-webkit-scrollbar {
4388
- background-color: var(--modal-background);
4386
+ .Modal-module_contentWrapper__Swyjx::-webkit-scrollbar {
4387
+ background-color: var(--modal-background-color);
4389
4388
  width: 6px;
4390
4389
  }
4391
4390
 
4392
- .Modal-module_content__dWO-B::-webkit-scrollbar-track {
4393
- background-color: var(--modal-background);
4391
+ .Modal-module_contentWrapper__Swyjx::-webkit-scrollbar-track {
4392
+ background-color: var(--modal-background-color);
4394
4393
  width: 6px;
4395
4394
  }
4396
4395
 
4397
- .Modal-module_content__dWO-B::-webkit-scrollbar-thumb {
4396
+ .Modal-module_contentWrapper__Swyjx::-webkit-scrollbar-thumb {
4398
4397
  background-color: var(--modal-scroll-handle);
4399
4398
  border-radius: 20px;
4400
- border: 1px solid var(--modal-background);
4399
+ border: 1px solid var(--modal-background-color);
4401
4400
  }
4402
4401
 
4403
- .Modal-module_content__dWO-B::-webkit-scrollbar-thumb:hover {
4402
+ .Modal-module_contentWrapper__Swyjx::-webkit-scrollbar-thumb:hover {
4404
4403
  background-color: var(--modal-scroll-handle-hover);
4405
4404
  border-radius: 20px;
4406
- border: 1px solid var(--modal-background);
4405
+ border: 1px solid var(--modal-background-color);
4407
4406
  }
4408
4407
 
4408
+ .Modal-module_content__dWO-B {
4409
+ padding: var(--modal-padding) !important;
4410
+ padding-top: 0 !important;
4411
+ padding-bottom: var(--modal-content-padding-tops) !important;
4412
+ width: 100%;
4413
+ }
4414
+
4409
4415
  .Modal-module_actions__hY6zi {
4410
4416
  padding: var(--modal-padding) !important;
4411
4417
  width: 100%;
@@ -4506,7 +4512,28 @@ line {
4506
4512
  box-sizing: border-box;
4507
4513
  padding: 0;
4508
4514
  margin: 0;
4509
- }.ModalController-module_wrapper__HkOoX {
4515
+ }
4516
+
4517
+ .ModalController-module_container__3cSaO {
4518
+ position: fixed;
4519
+ inset: 0;
4520
+ overflow: hidden;
4521
+ z-index: var(--elevation-confirm);
4522
+ }
4523
+
4524
+ .ModalController-module_box__cPzOz {
4525
+ position: relative;
4526
+ display: flex;
4527
+ justify-content: center;
4528
+ align-items: center;
4529
+ background: transparent;
4530
+ width: 100%;
4531
+ height: 100%;
4532
+ overflow: visible;
4533
+ z-index: var(--elevation-confirm);
4534
+ }
4535
+
4536
+ .ModalController-module_wrapper__HkOoX {
4510
4537
  position: absolute;
4511
4538
  z-index: var(--elevation-confirm);
4512
4539
  }
@@ -5387,7 +5414,9 @@ line {
5387
5414
  z-index: 0;
5388
5415
  height: auto;
5389
5416
  max-height: var(--prompt-max-height);
5390
- width: 100%;
5417
+ width: var(--prompt-width);
5418
+ max-width: var(--prompt-max-width);
5419
+ min-width: var(--prompt-min-width);
5391
5420
  border-radius: var(--prompt-border-radius);
5392
5421
  overflow: hidden;
5393
5422
  padding: var(--prompt-border-width) !important;
@@ -8156,6 +8185,40 @@ line {
8156
8185
  color: var(--core-link-primary);
8157
8186
  }
8158
8187
 
8188
+ .Level-module_wrapper__yOfXw {
8189
+ display: flex;
8190
+ align-items: center;
8191
+ justify-content: flex-start;
8192
+ flex-direction: row;
8193
+ box-sizing: border-box;
8194
+ padding: 0;
8195
+ margin: 0;
8196
+ width: var(--level-width);
8197
+ height: var(--level-height);
8198
+ min-height: var(--level-height);
8199
+ gap: var(--level-gap);
8200
+ border-radius: var(--level-bar-border-radius);
8201
+ overflow: hidden;
8202
+ }
8203
+
8204
+ .Level-module_barContainer__QMUdv {
8205
+ flex: 1 1 0;
8206
+ height: var(--level-height);
8207
+ min-height: var(--level-height);
8208
+
8209
+ border: var(--level-border-width) solid var(--level-border-color);
8210
+ background-color: var(--level-bg-color);
8211
+ overflow: hidden;
8212
+ }
8213
+
8214
+ .Level-module_bar__MnApX {
8215
+ display: block;
8216
+ min-width: 100%;
8217
+ min-height: 100%;
8218
+ background-color: var(--level-color);
8219
+ transition: background-color 120ms linear;
8220
+ }
8221
+
8159
8222
  .flexBox-module_row__z24tF {
8160
8223
  display: flex;
8161
8224
  justify-content: center;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { LevelProps } from './_types';
3
+ declare function BaseLevel(props: Readonly<LevelProps>): import("react/jsx-runtime").JSX.Element;
4
+ export declare const Level: React.MemoExoticComponent<typeof BaseLevel>;
5
+ export {};
@@ -0,0 +1,21 @@
1
+ import type React from 'react';
2
+ export type LevelBaseProps = {
3
+ audioStream?: MediaStream | MediaStreamTrack | null;
4
+ playing?: boolean;
5
+ backgroundColor?: string;
6
+ colorActive?: string;
7
+ borderRadius?: number | string;
8
+ borderColor?: string;
9
+ borderWidth?: number;
10
+ width?: number | string;
11
+ gap?: number;
12
+ height?: number;
13
+ minIntensity?: number;
14
+ maxIntensity?: number;
15
+ intensity?: number;
16
+ peakIntensity?: number;
17
+ risePerSeconds?: number;
18
+ releasePerSeconds?: number;
19
+ ReleasePerSeconds?: number;
20
+ };
21
+ export type LevelProps = Omit<React.HTMLAttributes<HTMLDivElement>, keyof LevelBaseProps> & LevelBaseProps;
@@ -0,0 +1,2 @@
1
+ export { Level } from './Level';
2
+ export type { LevelProps } from './_types';
@@ -35,6 +35,9 @@ type ModalBaseProps<T = string> = {
35
35
  actions?: ModalAction<T>[];
36
36
  actionsBorderColor?: string;
37
37
  actionsBorderWidth?: number;
38
+ autoBorderBottom?: boolean;
39
+ scrollHandleColor?: string;
40
+ scrollHandleColorHover?: string;
38
41
  onAction?: (value?: T) => void;
39
42
  onResolve?: (value?: T) => void;
40
43
  onReject?: (value?: Error) => void;
@@ -6,6 +6,9 @@ export declare const PromptInput: React.NamedExoticComponent<Omit<React.HTMLAttr
6
6
  value?: string;
7
7
  maxHeight?: string | number;
8
8
  working?: boolean;
9
+ width?: string | number;
10
+ maxWidth?: string | number;
11
+ minWidth?: string | number;
9
12
  borderStyle?: "solid" | "gradient" | "none";
10
13
  borderWidth?: number;
11
14
  borderColor?: string | number;
@@ -16,13 +19,14 @@ export declare const PromptInput: React.NamedExoticComponent<Omit<React.HTMLAttr
16
19
  placeholderWorking?: string;
17
20
  focused?: boolean;
18
21
  submitClears?: boolean;
19
- submitEnablesStop?: boolean;
20
22
  enterSubmits?: boolean;
21
23
  sendButton?: boolean;
22
24
  attachButton?: boolean;
23
25
  stopEnabled?: boolean;
24
26
  maxLength?: number;
25
27
  toolbarGap?: number;
28
+ attachmentsDisabled?: boolean;
29
+ submitWorking?: boolean;
26
30
  textSize?: "s" | "m" | "l";
27
31
  onChange?: (value: string | undefined, attachments?: FileItem[]) => void;
28
32
  onSubmit?: (value: string | undefined, attachments?: FileItem[]) => void;
@@ -36,6 +40,9 @@ export declare const PromptInput: React.NamedExoticComponent<Omit<React.HTMLAttr
36
40
  value?: string;
37
41
  maxHeight?: string | number;
38
42
  working?: boolean;
43
+ width?: string | number;
44
+ maxWidth?: string | number;
45
+ minWidth?: string | number;
39
46
  borderStyle?: "solid" | "gradient" | "none";
40
47
  borderWidth?: number;
41
48
  borderColor?: string | number;
@@ -46,13 +53,14 @@ export declare const PromptInput: React.NamedExoticComponent<Omit<React.HTMLAttr
46
53
  placeholderWorking?: string;
47
54
  focused?: boolean;
48
55
  submitClears?: boolean;
49
- submitEnablesStop?: boolean;
50
56
  enterSubmits?: boolean;
51
57
  sendButton?: boolean;
52
58
  attachButton?: boolean;
53
59
  stopEnabled?: boolean;
54
60
  maxLength?: number;
55
61
  toolbarGap?: number;
62
+ attachmentsDisabled?: boolean;
63
+ submitWorking?: boolean;
56
64
  textSize?: "s" | "m" | "l";
57
65
  onChange?: (value: string | undefined, attachments?: FileItem[]) => void;
58
66
  onSubmit?: (value: string | undefined, attachments?: FileItem[]) => void;
@@ -6,6 +6,9 @@ type BasePromptProps = {
6
6
  value?: string;
7
7
  maxHeight?: string | number;
8
8
  working?: boolean;
9
+ width?: string | number;
10
+ maxWidth?: string | number;
11
+ minWidth?: string | number;
9
12
  borderStyle?: 'solid' | 'gradient' | 'none';
10
13
  borderWidth?: number;
11
14
  borderColor?: string | number;
@@ -16,13 +19,14 @@ type BasePromptProps = {
16
19
  placeholderWorking?: string;
17
20
  focused?: boolean;
18
21
  submitClears?: boolean;
19
- submitEnablesStop?: boolean;
20
22
  enterSubmits?: boolean;
21
23
  sendButton?: boolean;
22
24
  attachButton?: boolean;
23
25
  stopEnabled?: boolean;
24
26
  maxLength?: number;
25
27
  toolbarGap?: number;
28
+ attachmentsDisabled?: boolean;
29
+ submitWorking?: boolean;
26
30
  textSize?: 's' | 'm' | 'l';
27
31
  onChange?: (value: string | undefined, attachments?: FileItem[]) => void;
28
32
  onSubmit?: (value: string | undefined, attachments?: FileItem[]) => void;
@@ -6,6 +6,7 @@ export declare enum ToastType {
6
6
  Info = "info"
7
7
  }
8
8
  type ToastBaseProps = {
9
+ notifId?: string;
9
10
  message?: string | null;
10
11
  size?: 's' | 'm' | 'l';
11
12
  border?: boolean;
@@ -16,6 +16,7 @@ export interface ToggleButtonProps {
16
16
  onSelect?: () => void;
17
17
  onToolTip?: (tip: ToolTip | null) => void;
18
18
  gap?: number;
19
+ border?: boolean;
19
20
  iconSize?: number;
20
21
  tooltip?: string;
21
22
  fill?: boolean;
@@ -6,6 +6,8 @@ export { type KeyboardShortcut, type KeyboardShortcuts, useKeyboardShortcuts, }
6
6
  export { useLastUpdated } from './useLastUpdated/useLastUpdated';
7
7
  export { useLocalStore } from './useLocalStore/useLocalStore';
8
8
  export { useMDStreamBuffer } from './useMdStreamBuffer/useMdStreamBuffer';
9
+ export type { UseMDStreamBufferOptions } from './useMdStreamBuffer/useMdStreamBuffer';
10
+ export { useBindWebRTC, type UseBindWebRTCOptions, type UseBindWebRTCReturn, } from './useBindWebRTC/useBindWebRTC';
9
11
  export { useMicrophone } from './useMicrophone/useMicrophone';
10
12
  export type { MicOption, UseMicrophoneReturn, } from './useMicrophone/useMicrophone';
11
13
  export { useAudioRecorder } from './useAudioRecorder/useAudioRecorder';
@@ -0,0 +1 @@
1
+ export * from './useBindWebRTC';
@@ -0,0 +1,15 @@
1
+ import type { WebRTCStoreConnectionOptions } from '../../stores/WebRTC';
2
+ import type { WebRTCConnection } from '../../utils';
3
+ export type UseBindWebRTCOptions = {
4
+ connectionName: string;
5
+ offerOptions?: RTCOfferOptions;
6
+ bearerToken?: string;
7
+ } & Omit<WebRTCStoreConnectionOptions, 'micStream' | 'micTrack' | 'volume'>;
8
+ export type UseBindWebRTCReturn = {
9
+ connection: WebRTCConnection | null;
10
+ error: Error | null;
11
+ bind: () => Promise<WebRTCConnection | null>;
12
+ unbind: () => void;
13
+ bound: boolean;
14
+ };
15
+ export declare function useBindWebRTC(options: UseBindWebRTCOptions): UseBindWebRTCReturn;
@@ -1 +1 @@
1
- export declare function useLocalStore<T>(key: string, value: T): readonly [T, (data: T) => void];
1
+ export declare function useLocalStore<T>(key: string, value: T): readonly [T, (data: T) => void, boolean];
@@ -1,8 +1,13 @@
1
1
  import type { MarkdownStreamBufferOptions, MarkdownStreamBufferSnapshot } from '../../utils';
2
- export declare function useMDStreamBuffer(options?: MarkdownStreamBufferOptions): {
2
+ export type UseMDStreamBufferOptions = MarkdownStreamBufferOptions & {
3
+ paceDelayMs?: number;
4
+ paceChunkSize?: number;
5
+ };
6
+ export declare function useMDStreamBuffer(options?: UseMDStreamBufferOptions): {
3
7
  raw: string;
4
8
  healthy: string;
5
9
  isComplete: boolean;
10
+ pendingCharacters: number;
6
11
  append: (value: string) => void;
7
12
  flush: () => MarkdownStreamBufferSnapshot | undefined;
8
13
  complete: () => MarkdownStreamBufferSnapshot | undefined;
@@ -3,7 +3,7 @@ export type { ToolTip, ToolTipInfo } from './components/sharedTypes';
3
3
  export { ToolTipType } from './components/sharedTypes';
4
4
  export { light, dark, lightTheme, darkTheme, motion, elevations, Elevation, } from './theme';
5
5
  export type { SliceTheme, Colors, Type, Corners, Elevations, } from './theme';
6
- export { type KeyboardShortcut, type KeyboardShortcuts, type BreakPoints, type WindowGeolocation, type WindowGeolocationError, type MicOption, type UseMicrophoneReturn, useKeyboardShortcuts, useTheme, useObserveTheme, useToolTip, useLastUpdated, useLocalStore, useMDStreamBuffer, useAudioRecorder, useMicrophone, useWindow, useDoubleClick, useObserveResize, } from './hooks';
6
+ export { type KeyboardShortcut, type KeyboardShortcuts, type BreakPoints, type WindowGeolocation, type WindowGeolocationError, type MicOption, type UseBindWebRTCOptions, type UseBindWebRTCReturn, type UseMDStreamBufferOptions, type UseMicrophoneReturn, useBindWebRTC, useKeyboardShortcuts, useTheme, useObserveTheme, useToolTip, useLastUpdated, useLocalStore, useMDStreamBuffer, useAudioRecorder, useMicrophone, useWindow, useDoubleClick, useObserveResize, } from './hooks';
7
7
  export { AudioBubble } from './components/AudioBubble/index';
8
8
  export type { AudioBubbleProps } from './components/AudioBubble/index';
9
9
  export { Avatar } from './components/Avatar/index';
@@ -79,6 +79,8 @@ export type { BarButton, ButtonBarProps } from './components/ButtonBar/_types';
79
79
  export { Label } from './components/Label';
80
80
  export { LabelBackground } from './components/Label';
81
81
  export type { LabelProps } from './components/Label';
82
+ export { Level } from './components/Level';
83
+ export type { LevelProps } from './components/Level';
82
84
  export { UploadArea } from './components/UploadArea';
83
85
  export type { UploadAreaProps } from './components/UploadArea/_types';
84
86
  export { imageTypes, videoTypes, documentTypes, audioTypes, textTypes, allTypes, } from './components/UploadArea/_types';
@@ -3,6 +3,7 @@ interface ThemeProviderProps {
3
3
  children?: React.ReactNode;
4
4
  theme?: string;
5
5
  initialTheme?: string;
6
+ initialSystem?: boolean;
6
7
  system?: boolean;
7
8
  global?: boolean;
8
9
  }
@@ -1,14 +1,18 @@
1
1
  export type SliceThemeName = 'lightMode' | 'darkMode';
2
2
  type ResolveInitialThemeOptions = {
3
3
  theme?: string | null;
4
- cookieTheme?: string | null;
4
+ systemTheme?: boolean;
5
+ activeTheme?: string | null;
5
6
  fallbackTheme?: SliceThemeName;
6
7
  };
7
8
  /**
8
9
  * Resolve the startup Slice theme from an explicit theme value, cookie value,
9
- * or fallback theme in that order.
10
+ * or fallback theme in that order. Resolves a system to true if undefined.
10
11
  */
11
- export declare function resolveInitialTheme(options?: ResolveInitialThemeOptions): SliceThemeName;
12
+ export declare function resolveInitialTheme(options?: ResolveInitialThemeOptions): {
13
+ initialTheme: SliceThemeName;
14
+ initialSystem: boolean;
15
+ };
12
16
  /**
13
17
  * Return the root HTML attributes needed to render the active Slice theme
14
18
  * before client hydration.
@@ -0,0 +1,16 @@
1
+ import type { WebRTCConnection, WebRTCConnectionOptions } from '../../utils';
2
+ export type WebRTCStoreConnectionOptions = WebRTCConnectionOptions;
3
+ export interface WebRTCStoreConnection {
4
+ name: string;
5
+ connection: WebRTCConnection;
6
+ }
7
+ export interface WebRTCStore {
8
+ connections: WebRTCStoreConnection[];
9
+ actions: {
10
+ addConnection: (name: string, options: WebRTCStoreConnectionOptions) => WebRTCStoreConnection;
11
+ initializeConnection: (name: string, offerOptions?: RTCOfferOptions, bearerToken?: string) => Promise<void>;
12
+ removeConnection: (name: string) => void;
13
+ setMicStream: (name: string, stream: MediaStream | null) => Promise<void>;
14
+ setVolume: (name: string, volume: number) => void;
15
+ };
16
+ }
@@ -0,0 +1,2 @@
1
+ export * from './_types';
2
+ export * from './webRTCStore';
@@ -0,0 +1,21 @@
1
+ import type { WebRTCStore, WebRTCStoreConnectionOptions } from './_types';
2
+ export declare const useWebRTCStore: import("zustand").UseBoundStore<import("zustand").StoreApi<WebRTCStore>>;
3
+ export declare const useWebRTC: () => {
4
+ addConnection: (name: string, options: WebRTCStoreConnectionOptions) => import("./_types").WebRTCStoreConnection;
5
+ initializeConnection: (name: string, offerOptions?: RTCOfferOptions, bearerToken?: string) => Promise<void>;
6
+ removeConnection: (name: string) => void;
7
+ setMicStream: (name: string, stream: MediaStream | null) => Promise<void>;
8
+ setVolume: (name: string, volume: number) => void;
9
+ };
10
+ export declare const useWebRTCConnections: () => import("./_types").WebRTCStoreConnection[];
11
+ export declare const useWebRTCConnection: (name: string) => import("./_types").WebRTCStoreConnection | null;
12
+ export declare const useWebRTCConnected: (name?: string) => boolean;
13
+ export declare const useWebRTCActions: {
14
+ addConnection: (name: string, options: WebRTCStoreConnectionOptions) => import("./_types").WebRTCStoreConnection;
15
+ initializeConnection: (name: string, offerOptions?: RTCOfferOptions, bearerToken?: string) => Promise<void>;
16
+ removeConnection: (name: string) => void;
17
+ setMicStream: (name: string, stream: MediaStream | null) => Promise<void>;
18
+ setVolume: (name: string, volume: number) => void;
19
+ };
20
+ export declare function getWebRTCConnections(): ReturnType<typeof useWebRTCStore.getState>['connections'];
21
+ export declare function getWebRTCConnections(name: string): ReturnType<typeof useWebRTCStore.getState>['connections'][number] | null;
@@ -6,4 +6,5 @@ export * from './toast';
6
6
  export * from './tip';
7
7
  export * from './uploads';
8
8
  export * from './volume';
9
+ export * from './WebRTC';
9
10
  export * from './window';
@@ -1,2 +1,2 @@
1
- export { useMicrophoneStore, useSyncMicrophoneStore, useMicStream, useProcessedMicStream, useMicTrack, useCurrentMicDeviceId, useMicActive, useMicInputVolume, useMicMuted, useMicSupported, useMicRequesting, useMicError, useMicrophones, useMicOptions, useMicrophoneStoreActions, microphoneActions, getMicrophoneState, } from './microphoneStore';
1
+ export { useMicrophoneStore, useSyncMicrophoneStore, useMicStream, useProcessedMicStream, useMicTrack, useCurrentMicDeviceId, useCurrentMicDeviceLabel, useMicActive, useMicInputVolume, useMicMuted, useMicSupported, useMicRequesting, useMicError, useMicrophones, useMicOptions, useMicrophoneStoreActions, microphoneActions, getMicrophoneState, getCurrentMicDeviceLabel, } from './microphoneStore';
2
2
  export type { MicrophoneStore, MicrophoneStoreActions, MicrophoneStoreState, } from './_types';
@@ -14,6 +14,7 @@ export declare const useMicStream: () => RefObject<MediaStream | null>;
14
14
  export declare const useProcessedMicStream: () => RefObject<MediaStream | null>;
15
15
  export declare const useMicTrack: () => RefObject<MediaStreamTrack | null>;
16
16
  export declare const useCurrentMicDeviceId: () => string | null;
17
+ export declare const useCurrentMicDeviceLabel: () => string | null;
17
18
  export declare const useMicActive: () => boolean;
18
19
  export declare const useMicInputVolume: () => number;
19
20
  export declare const useMicMuted: () => boolean;
@@ -23,5 +24,17 @@ export declare const useMicError: () => Error | null;
23
24
  export declare const useMicrophones: () => MediaDeviceInfo[];
24
25
  export declare const useMicOptions: () => DropDownOption<MicOption>[];
25
26
  export declare const useMicrophoneStoreActions: () => MicrophoneStoreActions;
26
- export declare const microphoneActions: MicrophoneStoreActions;
27
+ export declare const microphoneActions: {
28
+ sync: (microphone: UseMicrophoneReturn | null) => void;
29
+ clear: () => void;
30
+ requestMicrophone: () => Promise<MediaStream | null>;
31
+ stopMicrophone: () => void;
32
+ muteMic: () => boolean;
33
+ unmuteMic: () => boolean;
34
+ toggleMute: () => void;
35
+ setInputVolume: (volume: number) => number;
36
+ refreshMicrophones: () => Promise<MediaDeviceInfo[]>;
37
+ setMicrophone: (deviceId: string | DropDownOption<MicOption>) => Promise<void>;
38
+ };
27
39
  export declare const getMicrophoneState: () => MicrophoneStore;
40
+ export declare const getCurrentMicDeviceLabel: () => string | null;
@@ -1,5 +1,6 @@
1
1
  import type { ToastType } from '../../components/Toast';
2
2
  export type Toast = {
3
+ notifId?: string;
3
4
  message: string | null;
4
5
  duration?: number | 'Infinite';
5
6
  type?: ToastType;
@@ -10,7 +10,9 @@ export type VolumeStore = {
10
10
  attachFeedbackElement: (element: AudioElement) => void;
11
11
  detachFeedbackElement: (element: AudioElement) => void;
12
12
  playFeedback: (volume?: number) => Promise<void>;
13
- setVolume: (volume: number) => void;
13
+ setVolume: (volume: number, options?: {
14
+ playFeedback?: boolean;
15
+ }) => void;
14
16
  mute: () => Promise<void>;
15
17
  unmute: () => Promise<void>;
16
18
  clearMedia: () => void;
@@ -10,7 +10,9 @@ export declare const useVolumeActions: () => {
10
10
  attachFeedbackElement: (element: AudioElement) => void;
11
11
  detachFeedbackElement: (element: AudioElement) => void;
12
12
  playFeedback: (volume?: number) => Promise<void>;
13
- setVolume: (volume: number) => void;
13
+ setVolume: (volume: number, options?: {
14
+ playFeedback?: boolean;
15
+ }) => void;
14
16
  mute: () => Promise<void>;
15
17
  unmute: () => Promise<void>;
16
18
  clearMedia: () => void;
@@ -21,7 +23,9 @@ export declare const volumeActions: {
21
23
  attachFeedbackElement: (element: AudioElement) => void;
22
24
  detachFeedbackElement: (element: AudioElement) => void;
23
25
  playFeedback: (volume?: number) => Promise<void>;
24
- setVolume: (volume: number) => void;
26
+ setVolume: (volume: number, options?: {
27
+ playFeedback?: boolean;
28
+ }) => void;
25
29
  mute: () => Promise<void>;
26
30
  unmute: () => Promise<void>;
27
31
  clearMedia: () => void;
@@ -8,7 +8,7 @@ export declare function nameAndExtension(fileName: string): {
8
8
  /**
9
9
  * Map a file extension to the corresponding file icon name.
10
10
  */
11
- export declare function fileIconName(extension: string): "other" | "video" | "text" | "sheet" | "image" | "audio" | "md" | "code" | "preso" | "pdf" | "clipboard";
11
+ export declare function fileIconName(extension: string): "other" | "audio" | "video" | "text" | "sheet" | "image" | "md" | "code" | "preso" | "pdf" | "clipboard";
12
12
  /**
13
13
  * Create a clipboard-text file with a guaranteed `.clipboard` extension.
14
14
  */
@@ -1,5 +1,5 @@
1
1
  export { copyToClipboard, hexToRgb } from './functions/misc';
2
2
  export { debounce } from './functions/debounce';
3
3
  export * from './functions/colors';
4
- export { AudioVisualizer, IndexedDB, MdBuffer, SSEConnection, WSConnection, } from './objects';
5
- export type { AudioVisualizerOptions, AudioVisualizerSource, IndexedDBOptions, MarkdownAutoCloseRule, MarkdownStreamBufferOptions, MarkdownStreamBufferSnapshot, SSECustomEvent, SSEConnectionCloseOption, SSEConnectionOptions, SSEEventMap, SSEUnifiedBuiltInMessage, SSEUnifiedCustomMessage, SSEUnifiedMessage, UnifiedMessageEvent, WSConnectionOptions, } from './objects';
4
+ export { AudioVisualizer, IndexedDB, MdBuffer, SSEConnection, WebRTCConnection, WSConnection, } from './objects';
5
+ export type { AudioVisualizerOptions, AudioVisualizerSource, IndexedDBOptions, MarkdownAutoCloseRule, MarkdownStreamBufferOptions, MarkdownStreamBufferSnapshot, SSECustomEvent, SSEConnectionCloseOption, SSEConnectionOptions, SSEEventMap, SSEUnifiedBuiltInMessage, SSEUnifiedCustomMessage, SSEUnifiedMessage, UnifiedMessageEvent, WebRTCConnectionOptions, WSConnectionOptions, } from './objects';
@@ -7,6 +7,7 @@ export declare class MdBuffer {
7
7
  private readonly healthyEndMarker?;
8
8
  private readonly htmlHandling;
9
9
  private readonly includeLinksAndImages;
10
+ private readonly flushDelayMs;
10
11
  private readonly onFlush?;
11
12
  private readonly requestFrame;
12
13
  private readonly cancelFrame;
@@ -14,6 +15,9 @@ export declare class MdBuffer {
14
15
  private committedRaw;
15
16
  private activeRaw;
16
17
  private frameHandle;
18
+ private flushTimer;
19
+ private lastFlushAt;
20
+ private lastFlushedRawLength;
17
21
  private completeSignal;
18
22
  constructor(options?: MarkdownStreamBufferOptions);
19
23
  /**
@@ -24,6 +28,10 @@ export declare class MdBuffer {
24
28
  * The current parser-safe preview derived from the raw buffer.
25
29
  */
26
30
  get healthy(): string;
31
+ /**
32
+ * Characters appended since the last emitted snapshot.
33
+ */
34
+ get pendingCharacters(): number;
27
35
  /**
28
36
  * Append a streamed Markdown token and schedule a frame flush.
29
37
  */
@@ -46,6 +54,8 @@ export declare class MdBuffer {
46
54
  dispose(): void;
47
55
  private handleEndOfStreamToken;
48
56
  private scheduleFlush;
57
+ private getRemainingFlushDelay;
58
+ private clearScheduledFlush;
49
59
  private commitStableLines;
50
60
  private buildHealthyOutput;
51
61
  private applyHealthyEndMarker;
@@ -3,6 +3,7 @@ export interface MarkdownStreamBufferSnapshot {
3
3
  healthy: string;
4
4
  reason: 'raf' | 'manual' | 'complete';
5
5
  isComplete: boolean;
6
+ pendingCharacters: number;
6
7
  }
7
8
  export interface MarkdownAutoCloseRule {
8
9
  name?: string;
@@ -19,6 +20,7 @@ export interface MarkdownStreamBufferOptions {
19
20
  healthyEndMarker?: string;
20
21
  htmlHandling?: 'ignore' | 'strip';
21
22
  includeLinksAndImages?: boolean;
23
+ flushDelayMs?: number;
22
24
  onFlush?: (snapshot: MarkdownStreamBufferSnapshot) => void;
23
25
  requestFrame?: (callback: FrameRequestCallback) => number;
24
26
  cancelFrame?: (handle: number) => void;