@mieweb/ui 0.11.0-dev.0 → 0.11.0-dev.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/dist/ag-grid.cjs +11 -2
  2. package/dist/ag-grid.cjs.map +1 -1
  3. package/dist/ag-grid.d.cts +8 -0
  4. package/dist/ag-grid.d.ts +8 -0
  5. package/dist/ag-grid.js +11 -2
  6. package/dist/ag-grid.js.map +1 -1
  7. package/dist/brands/index.cjs +12 -12
  8. package/dist/brands/index.js +3 -3
  9. package/dist/{chunk-U2RS574O.cjs → chunk-2GBVJHWN.cjs} +120 -63
  10. package/dist/chunk-2GBVJHWN.cjs.map +1 -0
  11. package/dist/{chunk-7UTBDFFL.cjs → chunk-2S76TRBJ.cjs} +4 -4
  12. package/dist/{chunk-7UTBDFFL.cjs.map → chunk-2S76TRBJ.cjs.map} +1 -1
  13. package/dist/{chunk-IJYTASQQ.cjs → chunk-3AD4HFYI.cjs} +15 -7
  14. package/dist/chunk-3AD4HFYI.cjs.map +1 -0
  15. package/dist/{chunk-J2CKXXOW.js → chunk-4I6BW3FB.js} +8 -5
  16. package/dist/chunk-4I6BW3FB.js.map +1 -0
  17. package/dist/{chunk-CFI3TQMA.cjs → chunk-56C7K4MV.cjs} +9 -4
  18. package/dist/chunk-56C7K4MV.cjs.map +1 -0
  19. package/dist/{chunk-TNUL4LGG.js → chunk-5ILCNY74.js} +15 -7
  20. package/dist/chunk-5ILCNY74.js.map +1 -0
  21. package/dist/{chunk-ECYIDXG6.cjs → chunk-5K7PRPSV.cjs} +32 -2
  22. package/dist/chunk-5K7PRPSV.cjs.map +1 -0
  23. package/dist/{chunk-FBN2VHUV.cjs → chunk-5VA2HJ5B.cjs} +8 -8
  24. package/dist/{chunk-FBN2VHUV.cjs.map → chunk-5VA2HJ5B.cjs.map} +1 -1
  25. package/dist/{chunk-XHK5VZ4L.cjs → chunk-6ZA574PU.cjs} +8 -5
  26. package/dist/chunk-6ZA574PU.cjs.map +1 -0
  27. package/dist/{chunk-PJ6CC53R.cjs → chunk-AKMTPCLC.cjs} +13 -8
  28. package/dist/chunk-AKMTPCLC.cjs.map +1 -0
  29. package/dist/{chunk-OODVC2UD.cjs → chunk-AWSSWNJY.cjs} +2 -2
  30. package/dist/{chunk-OODVC2UD.cjs.map → chunk-AWSSWNJY.cjs.map} +1 -1
  31. package/dist/chunk-BFVYM6IT.cjs +345 -0
  32. package/dist/chunk-BFVYM6IT.cjs.map +1 -0
  33. package/dist/{chunk-VVDE4CHU.js → chunk-C4GEPUE7.js} +13 -8
  34. package/dist/chunk-C4GEPUE7.js.map +1 -0
  35. package/dist/{chunk-TJ4GWQPM.js → chunk-DAAJ3B2T.js} +121 -65
  36. package/dist/chunk-DAAJ3B2T.js.map +1 -0
  37. package/dist/{chunk-QJ2L5RU6.js → chunk-DSQCYX7L.js} +2 -2
  38. package/dist/{chunk-QJ2L5RU6.js.map → chunk-DSQCYX7L.js.map} +1 -1
  39. package/dist/{chunk-NUB5HRKS.js → chunk-DT3X3RBM.js} +3 -3
  40. package/dist/{chunk-NUB5HRKS.js.map → chunk-DT3X3RBM.js.map} +1 -1
  41. package/dist/{chunk-KVTKSPX5.js → chunk-EBQG3NGT.js} +32 -2
  42. package/dist/chunk-EBQG3NGT.js.map +1 -0
  43. package/dist/{chunk-OW3SQJ7P.js → chunk-EI4JU5JF.js} +3 -3
  44. package/dist/{chunk-OW3SQJ7P.js.map → chunk-EI4JU5JF.js.map} +1 -1
  45. package/dist/{chunk-MYAU2ZUC.cjs → chunk-GDKOYVX3.cjs} +14 -10
  46. package/dist/chunk-GDKOYVX3.cjs.map +1 -0
  47. package/dist/{chunk-JSXIB6EJ.cjs → chunk-GLG6UE2H.cjs} +12 -7
  48. package/dist/chunk-GLG6UE2H.cjs.map +1 -0
  49. package/dist/{chunk-JTSKPDPH.cjs → chunk-HIYQ3M5V.cjs} +4 -3
  50. package/dist/chunk-HIYQ3M5V.cjs.map +1 -0
  51. package/dist/{chunk-7IBZA7G6.js → chunk-I6Y2KLTZ.js} +5 -2
  52. package/dist/chunk-I6Y2KLTZ.js.map +1 -0
  53. package/dist/chunk-IZY4CMOO.js +715 -0
  54. package/dist/chunk-IZY4CMOO.js.map +1 -0
  55. package/dist/{chunk-753ENNB6.js → chunk-J3QEMZCH.js} +2 -2
  56. package/dist/{chunk-753ENNB6.js.map → chunk-J3QEMZCH.js.map} +1 -1
  57. package/dist/{chunk-S2JZL4JC.js → chunk-JM4YFLO4.js} +22 -15
  58. package/dist/chunk-JM4YFLO4.js.map +1 -0
  59. package/dist/{chunk-H3ROMJYI.cjs → chunk-KY67AMQ5.cjs} +4 -4
  60. package/dist/{chunk-H3ROMJYI.cjs.map → chunk-KY67AMQ5.cjs.map} +1 -1
  61. package/dist/{chunk-QX6AAVDE.cjs → chunk-L4APW65W.cjs} +15 -6
  62. package/dist/chunk-L4APW65W.cjs.map +1 -0
  63. package/dist/{chunk-OHKO5THF.cjs → chunk-MGFRGPWI.cjs} +3 -2
  64. package/dist/chunk-MGFRGPWI.cjs.map +1 -0
  65. package/dist/{chunk-RM2HPQIC.js → chunk-MQ5WJ3NO.js} +4 -4
  66. package/dist/chunk-MQ5WJ3NO.js.map +1 -0
  67. package/dist/{chunk-VNWJTCBQ.js → chunk-MQOYDQTF.js} +4 -3
  68. package/dist/chunk-MQOYDQTF.js.map +1 -0
  69. package/dist/chunk-MZA2LDS4.js +321 -0
  70. package/dist/chunk-MZA2LDS4.js.map +1 -0
  71. package/dist/{chunk-EBKE4DLU.js → chunk-N6XBE47W.js} +4 -4
  72. package/dist/{chunk-EBKE4DLU.js.map → chunk-N6XBE47W.js.map} +1 -1
  73. package/dist/{chunk-T5BBZQ66.js → chunk-OTIKWEFZ.js} +9 -4
  74. package/dist/chunk-OTIKWEFZ.js.map +1 -0
  75. package/dist/{chunk-YZCM7CXK.js → chunk-OZKJYLN6.js} +3 -3
  76. package/dist/{chunk-YZCM7CXK.js.map → chunk-OZKJYLN6.js.map} +1 -1
  77. package/dist/{chunk-ZSGEGISB.cjs → chunk-PHUTJKHL.cjs} +5 -2
  78. package/dist/chunk-PHUTJKHL.cjs.map +1 -0
  79. package/dist/{chunk-FMEA6WAY.cjs → chunk-Q6QLGCL7.cjs} +9 -9
  80. package/dist/{chunk-FMEA6WAY.cjs.map → chunk-Q6QLGCL7.cjs.map} +1 -1
  81. package/dist/{chunk-XOIIUO6O.js → chunk-QDNHN7R2.js} +3 -2
  82. package/dist/chunk-QDNHN7R2.js.map +1 -0
  83. package/dist/{chunk-XRVMYT5G.cjs → chunk-QKW2QCGI.cjs} +5 -5
  84. package/dist/chunk-QKW2QCGI.cjs.map +1 -0
  85. package/dist/{chunk-NAH65KPK.cjs → chunk-TOJ56HKQ.cjs} +2 -2
  86. package/dist/{chunk-NAH65KPK.cjs.map → chunk-TOJ56HKQ.cjs.map} +1 -1
  87. package/dist/chunk-TRZLN32I.cjs +740 -0
  88. package/dist/chunk-TRZLN32I.cjs.map +1 -0
  89. package/dist/{chunk-O6XDA3SI.js → chunk-UY2EZYIC.js} +15 -6
  90. package/dist/chunk-UY2EZYIC.js.map +1 -0
  91. package/dist/{chunk-2BPIVWAK.js → chunk-V5VPECJI.js} +14 -10
  92. package/dist/chunk-V5VPECJI.js.map +1 -0
  93. package/dist/{chunk-O6BJMVGT.cjs → chunk-XZNHS7YQ.cjs} +24 -17
  94. package/dist/chunk-XZNHS7YQ.cjs.map +1 -0
  95. package/dist/{chunk-7X6R3JIA.js → chunk-YFWDS6MX.js} +12 -7
  96. package/dist/chunk-YFWDS6MX.js.map +1 -0
  97. package/dist/components/AudioPlayer/index.cjs +7 -6
  98. package/dist/components/AudioPlayer/index.js +2 -1
  99. package/dist/components/CollabStatus/index.cjs +5 -4
  100. package/dist/components/CollabStatus/index.js +2 -1
  101. package/dist/components/CountryCodeDropdown/index.cjs +4 -4
  102. package/dist/components/CountryCodeDropdown/index.js +1 -1
  103. package/dist/components/DateInput/index.cjs +2 -2
  104. package/dist/components/DateInput/index.js +1 -1
  105. package/dist/components/DictationButton/index.cjs +23 -0
  106. package/dist/components/DictationButton/index.cjs.map +1 -0
  107. package/dist/components/DictationButton/index.d.cts +78 -0
  108. package/dist/components/DictationButton/index.d.ts +78 -0
  109. package/dist/components/DictationButton/index.js +6 -0
  110. package/dist/components/DictationButton/index.js.map +1 -0
  111. package/dist/components/Markdown/index.cjs +10 -10
  112. package/dist/components/Markdown/index.js +2 -2
  113. package/dist/components/MediaEditor/index.cjs +8 -7
  114. package/dist/components/MediaEditor/index.js +3 -2
  115. package/dist/components/MegaMenu/index.cjs +5 -4
  116. package/dist/components/MegaMenu/index.js +2 -1
  117. package/dist/components/PhoneInput/index.cjs +3 -3
  118. package/dist/components/PhoneInput/index.js +1 -1
  119. package/dist/components/RecordButton/index.cjs +4 -4
  120. package/dist/components/RecordButton/index.js +1 -1
  121. package/dist/components/Slider/index.cjs +6 -5
  122. package/dist/components/Slider/index.js +2 -1
  123. package/dist/components/SliderCalculator/index.cjs +5 -4
  124. package/dist/components/SliderCalculator/index.js +3 -2
  125. package/dist/components/SuperChat/index.cjs +14 -14
  126. package/dist/components/SuperChat/index.cjs.map +1 -1
  127. package/dist/components/SuperChat/index.d.cts +10 -6
  128. package/dist/components/SuperChat/index.d.ts +10 -6
  129. package/dist/components/SuperChat/index.js +4 -4
  130. package/dist/components/SuperChat/index.js.map +1 -1
  131. package/dist/components/SuperChat/plugins/index.cjs +3 -3
  132. package/dist/components/SuperChat/plugins/index.d.cts +2 -2
  133. package/dist/components/SuperChat/plugins/index.d.ts +2 -2
  134. package/dist/components/SuperChat/plugins/index.js +2 -2
  135. package/dist/components/Table/index.cjs +9 -9
  136. package/dist/components/Table/index.d.cts +17 -1
  137. package/dist/components/Table/index.d.ts +17 -1
  138. package/dist/components/Table/index.js +1 -1
  139. package/dist/components/ThemeProvider/index.cjs +9 -8
  140. package/dist/components/ThemeProvider/index.js +3 -2
  141. package/dist/components/Tooltip/index.cjs +3 -2
  142. package/dist/components/Tooltip/index.d.cts +6 -2
  143. package/dist/components/Tooltip/index.d.ts +6 -2
  144. package/dist/components/Tooltip/index.js +2 -1
  145. package/dist/deck.cjs +1 -1
  146. package/dist/deck.cjs.map +1 -1
  147. package/dist/deck.js +1 -1
  148. package/dist/deck.js.map +1 -1
  149. package/dist/esheet.cjs +6 -6
  150. package/dist/esheet.js +3 -3
  151. package/dist/index.cjs +629 -1163
  152. package/dist/index.cjs.map +1 -1
  153. package/dist/index.d.cts +160 -16
  154. package/dist/index.d.ts +160 -16
  155. package/dist/index.js +235 -839
  156. package/dist/index.js.map +1 -1
  157. package/dist/styles/init.css +39 -0
  158. package/dist/styles.css +1 -1
  159. package/dist/tailwind-preset.cjs +4 -4
  160. package/dist/tailwind-preset.js +1 -1
  161. package/dist/{types-Cx1FHLq2.d.cts → types-DSWbrVkM.d.cts} +1 -1
  162. package/dist/{types-Cx1FHLq2.d.ts → types-DSWbrVkM.d.ts} +1 -1
  163. package/dist/whisperTranscribe-AV752TZI.cjs +81 -0
  164. package/dist/whisperTranscribe-AV752TZI.cjs.map +1 -0
  165. package/dist/whisperTranscribe-UBNUWXUQ.js +4 -0
  166. package/dist/whisperTranscribe-UBNUWXUQ.js.map +1 -0
  167. package/package.json +1 -1
  168. package/dist/chunk-2BPIVWAK.js.map +0 -1
  169. package/dist/chunk-7IBZA7G6.js.map +0 -1
  170. package/dist/chunk-7X6R3JIA.js.map +0 -1
  171. package/dist/chunk-CFI3TQMA.cjs.map +0 -1
  172. package/dist/chunk-ECYIDXG6.cjs.map +0 -1
  173. package/dist/chunk-IJYTASQQ.cjs.map +0 -1
  174. package/dist/chunk-J2CKXXOW.js.map +0 -1
  175. package/dist/chunk-JSXIB6EJ.cjs.map +0 -1
  176. package/dist/chunk-JTSKPDPH.cjs.map +0 -1
  177. package/dist/chunk-KVTKSPX5.js.map +0 -1
  178. package/dist/chunk-MYAU2ZUC.cjs.map +0 -1
  179. package/dist/chunk-O6BJMVGT.cjs.map +0 -1
  180. package/dist/chunk-O6XDA3SI.js.map +0 -1
  181. package/dist/chunk-OHKO5THF.cjs.map +0 -1
  182. package/dist/chunk-PJ6CC53R.cjs.map +0 -1
  183. package/dist/chunk-QX6AAVDE.cjs.map +0 -1
  184. package/dist/chunk-RM2HPQIC.js.map +0 -1
  185. package/dist/chunk-S2JZL4JC.js.map +0 -1
  186. package/dist/chunk-T5BBZQ66.js.map +0 -1
  187. package/dist/chunk-TJ4GWQPM.js.map +0 -1
  188. package/dist/chunk-TNUL4LGG.js.map +0 -1
  189. package/dist/chunk-U2RS574O.cjs.map +0 -1
  190. package/dist/chunk-VNWJTCBQ.js.map +0 -1
  191. package/dist/chunk-VVDE4CHU.js.map +0 -1
  192. package/dist/chunk-XHK5VZ4L.cjs.map +0 -1
  193. package/dist/chunk-XOIIUO6O.js.map +0 -1
  194. package/dist/chunk-XRVMYT5G.cjs.map +0 -1
  195. package/dist/chunk-ZSGEGISB.cjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,21 +1,24 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkUVSODK6V_cjs = require('./chunk-UVSODK6V.cjs');
4
+ var chunkTRZLN32I_cjs = require('./chunk-TRZLN32I.cjs');
4
5
  var chunkOGNADPM4_cjs = require('./chunk-OGNADPM4.cjs');
6
+ var chunkXNPDZANN_cjs = require('./chunk-XNPDZANN.cjs');
5
7
  var chunkIEZXJWHJ_cjs = require('./chunk-IEZXJWHJ.cjs');
6
8
  var chunkPWXDRFJL_cjs = require('./chunk-PWXDRFJL.cjs');
7
9
  var chunkFSWHZY3T_cjs = require('./chunk-FSWHZY3T.cjs');
8
10
  var chunkOIF34LEN_cjs = require('./chunk-OIF34LEN.cjs');
9
- var chunkOODVC2UD_cjs = require('./chunk-OODVC2UD.cjs');
11
+ var chunkAWSSWNJY_cjs = require('./chunk-AWSSWNJY.cjs');
12
+ var chunkX7S76WB7_cjs = require('./chunk-X7S76WB7.cjs');
10
13
  var chunkNM7O7RY5_cjs = require('./chunk-NM7O7RY5.cjs');
11
14
  var chunkLCQGAOAZ_cjs = require('./chunk-LCQGAOAZ.cjs');
12
15
  var chunkZ5J4NTPL_cjs = require('./chunk-Z5J4NTPL.cjs');
13
16
  var chunkU7VQUOLS_cjs = require('./chunk-U7VQUOLS.cjs');
17
+ var chunkUCGUA3QV_cjs = require('./chunk-UCGUA3QV.cjs');
14
18
  var chunkRR2MJBGV_cjs = require('./chunk-RR2MJBGV.cjs');
15
- var chunkX7S76WB7_cjs = require('./chunk-X7S76WB7.cjs');
16
19
  var chunkNGQRS7AW_cjs = require('./chunk-NGQRS7AW.cjs');
17
20
  var chunk3ZWCIPFT_cjs = require('./chunk-3ZWCIPFT.cjs');
18
- var chunkUCGUA3QV_cjs = require('./chunk-UCGUA3QV.cjs');
21
+ require('./chunk-6TTCZY3P.cjs');
19
22
  var chunkA4W5CSK7_cjs = require('./chunk-A4W5CSK7.cjs');
20
23
  var chunkARIJ5OHW_cjs = require('./chunk-ARIJ5OHW.cjs');
21
24
  var chunkBJ6ABRSQ_cjs = require('./chunk-BJ6ABRSQ.cjs');
@@ -23,7 +26,7 @@ var chunkFSGJXCBG_cjs = require('./chunk-FSGJXCBG.cjs');
23
26
  var chunkHNFFFFYH_cjs = require('./chunk-HNFFFFYH.cjs');
24
27
  var chunkDO2YN46R_cjs = require('./chunk-DO2YN46R.cjs');
25
28
  var chunk4ZB7RSMY_cjs = require('./chunk-4ZB7RSMY.cjs');
26
- var chunkXNPDZANN_cjs = require('./chunk-XNPDZANN.cjs');
29
+ var chunkGYXSF6BJ_cjs = require('./chunk-GYXSF6BJ.cjs');
27
30
  var chunkFYAKUU2A_cjs = require('./chunk-FYAKUU2A.cjs');
28
31
  var chunkHCIXGFWR_cjs = require('./chunk-HCIXGFWR.cjs');
29
32
  var chunkZJCPW6MS_cjs = require('./chunk-ZJCPW6MS.cjs');
@@ -34,34 +37,33 @@ require('./chunk-47P5QLX4.cjs');
34
37
  var chunkCLQW724U_cjs = require('./chunk-CLQW724U.cjs');
35
38
  require('./chunk-IWRBJHO3.cjs');
36
39
  require('./chunk-7IRTD4JT.cjs');
37
- require('./chunk-6TTCZY3P.cjs');
40
+ var chunk3AD4HFYI_cjs = require('./chunk-3AD4HFYI.cjs');
38
41
  var chunk3IAA3KCE_cjs = require('./chunk-3IAA3KCE.cjs');
39
- var chunkH3ROMJYI_cjs = require('./chunk-H3ROMJYI.cjs');
42
+ var chunkKY67AMQ5_cjs = require('./chunk-KY67AMQ5.cjs');
40
43
  var chunkVTKXM7IE_cjs = require('./chunk-VTKXM7IE.cjs');
41
- var chunkGYXSF6BJ_cjs = require('./chunk-GYXSF6BJ.cjs');
42
44
  var chunkXPWFIDZM_cjs = require('./chunk-XPWFIDZM.cjs');
45
+ var chunkYGA35Z2P_cjs = require('./chunk-YGA35Z2P.cjs');
43
46
  var chunkAHHFFXJR_cjs = require('./chunk-AHHFFXJR.cjs');
44
47
  var chunk7RV6CAP6_cjs = require('./chunk-7RV6CAP6.cjs');
45
- var chunkXRVMYT5G_cjs = require('./chunk-XRVMYT5G.cjs');
46
- var chunkFMEA6WAY_cjs = require('./chunk-FMEA6WAY.cjs');
47
- var chunkU2RS574O_cjs = require('./chunk-U2RS574O.cjs');
48
- var chunkIJYTASQQ_cjs = require('./chunk-IJYTASQQ.cjs');
48
+ var chunkQKW2QCGI_cjs = require('./chunk-QKW2QCGI.cjs');
49
+ var chunkQ6QLGCL7_cjs = require('./chunk-Q6QLGCL7.cjs');
50
+ var chunk2GBVJHWN_cjs = require('./chunk-2GBVJHWN.cjs');
49
51
  var chunk3SZQRMHM_cjs = require('./chunk-3SZQRMHM.cjs');
50
52
  var chunkOZOSWBSI_cjs = require('./chunk-OZOSWBSI.cjs');
51
53
  var chunkKDW6BD4O_cjs = require('./chunk-KDW6BD4O.cjs');
52
- var chunk7UTBDFFL_cjs = require('./chunk-7UTBDFFL.cjs');
53
- var chunkYGA35Z2P_cjs = require('./chunk-YGA35Z2P.cjs');
54
- var chunkOHKO5THF_cjs = require('./chunk-OHKO5THF.cjs');
54
+ var chunk2S76TRBJ_cjs = require('./chunk-2S76TRBJ.cjs');
55
+ var chunkMGFRGPWI_cjs = require('./chunk-MGFRGPWI.cjs');
55
56
  var chunk2I4IRQQG_cjs = require('./chunk-2I4IRQQG.cjs');
56
57
  var chunkXWZEECEX_cjs = require('./chunk-XWZEECEX.cjs');
57
58
  var chunk5MXO6PEV_cjs = require('./chunk-5MXO6PEV.cjs');
58
- var chunkJTSKPDPH_cjs = require('./chunk-JTSKPDPH.cjs');
59
- var chunkO6BJMVGT_cjs = require('./chunk-O6BJMVGT.cjs');
60
- var chunkMYAU2ZUC_cjs = require('./chunk-MYAU2ZUC.cjs');
59
+ var chunkBFVYM6IT_cjs = require('./chunk-BFVYM6IT.cjs');
60
+ var chunkHIYQ3M5V_cjs = require('./chunk-HIYQ3M5V.cjs');
61
+ var chunkXZNHS7YQ_cjs = require('./chunk-XZNHS7YQ.cjs');
62
+ var chunkGDKOYVX3_cjs = require('./chunk-GDKOYVX3.cjs');
61
63
  var chunkAJPFQF3H_cjs = require('./chunk-AJPFQF3H.cjs');
62
64
  require('./chunk-GLXTVCHN.cjs');
63
65
  var chunkKQ6GLYFZ_cjs = require('./chunk-KQ6GLYFZ.cjs');
64
- var chunkXHK5VZ4L_cjs = require('./chunk-XHK5VZ4L.cjs');
66
+ var chunk6ZA574PU_cjs = require('./chunk-6ZA574PU.cjs');
65
67
  var chunkTU63764L_cjs = require('./chunk-TU63764L.cjs');
66
68
  var chunkL5Y52F2E_cjs = require('./chunk-L5Y52F2E.cjs');
67
69
  var chunk7FTBPLA6_cjs = require('./chunk-7FTBPLA6.cjs');
@@ -70,14 +72,14 @@ var chunkVINZZQBD_cjs = require('./chunk-VINZZQBD.cjs');
70
72
  var chunkUEDTZYGI_cjs = require('./chunk-UEDTZYGI.cjs');
71
73
  var chunkVV2U36T6_cjs = require('./chunk-VV2U36T6.cjs');
72
74
  var chunkPYI2IWNX_cjs = require('./chunk-PYI2IWNX.cjs');
73
- var chunkNAH65KPK_cjs = require('./chunk-NAH65KPK.cjs');
75
+ var chunkTOJ56HKQ_cjs = require('./chunk-TOJ56HKQ.cjs');
76
+ var chunkIGDO62KR_cjs = require('./chunk-IGDO62KR.cjs');
74
77
  var chunkSW2E7XKY_cjs = require('./chunk-SW2E7XKY.cjs');
75
78
  var chunkERACGSDY_cjs = require('./chunk-ERACGSDY.cjs');
76
79
  var chunk32ZCJOSR_cjs = require('./chunk-32ZCJOSR.cjs');
77
- var chunkIGDO62KR_cjs = require('./chunk-IGDO62KR.cjs');
78
80
  var chunkRIUQP2QS_cjs = require('./chunk-RIUQP2QS.cjs');
79
81
  var chunkNGSDBWKA_cjs = require('./chunk-NGSDBWKA.cjs');
80
- var chunkCFI3TQMA_cjs = require('./chunk-CFI3TQMA.cjs');
82
+ var chunk56C7K4MV_cjs = require('./chunk-56C7K4MV.cjs');
81
83
  var chunkBWSZ2BHJ_cjs = require('./chunk-BWSZ2BHJ.cjs');
82
84
  var chunkRS5VA6QU_cjs = require('./chunk-RS5VA6QU.cjs');
83
85
  var chunkWSMBIXPU_cjs = require('./chunk-WSMBIXPU.cjs');
@@ -96,11 +98,11 @@ var chunkGM32IDVL_cjs = require('./chunk-GM32IDVL.cjs');
96
98
  var chunk7AECNMYV_cjs = require('./chunk-7AECNMYV.cjs');
97
99
  require('./chunk-L6K4PRZK.cjs');
98
100
  var chunkIVGI353O_cjs = require('./chunk-IVGI353O.cjs');
99
- var chunkQX6AAVDE_cjs = require('./chunk-QX6AAVDE.cjs');
101
+ var chunkL4APW65W_cjs = require('./chunk-L4APW65W.cjs');
100
102
  var chunkVXW7D5LR_cjs = require('./chunk-VXW7D5LR.cjs');
101
103
  var chunkNYJIXR4Y_cjs = require('./chunk-NYJIXR4Y.cjs');
102
104
  var chunkUTIPENPW_cjs = require('./chunk-UTIPENPW.cjs');
103
- var chunkPJ6CC53R_cjs = require('./chunk-PJ6CC53R.cjs');
105
+ var chunkAKMTPCLC_cjs = require('./chunk-AKMTPCLC.cjs');
104
106
  var chunkW4Q4UEXA_cjs = require('./chunk-W4Q4UEXA.cjs');
105
107
  var chunkNFKX6QJP_cjs = require('./chunk-NFKX6QJP.cjs');
106
108
  var chunk2FZYZ4HT_cjs = require('./chunk-2FZYZ4HT.cjs');
@@ -119,7 +121,7 @@ var chunk7WJ6MBF5_cjs = require('./chunk-7WJ6MBF5.cjs');
119
121
  require('./chunk-AT732HC6.cjs');
120
122
  var chunkL7YQBSEL_cjs = require('./chunk-L7YQBSEL.cjs');
121
123
  var chunkC7RVKV25_cjs = require('./chunk-C7RVKV25.cjs');
122
- var chunkECYIDXG6_cjs = require('./chunk-ECYIDXG6.cjs');
124
+ var chunk5K7PRPSV_cjs = require('./chunk-5K7PRPSV.cjs');
123
125
  var chunkSHBCUXFS_cjs = require('./chunk-SHBCUXFS.cjs');
124
126
  require('./chunk-P22YCUVM.cjs');
125
127
  var chunkQ3YVLO52_cjs = require('./chunk-Q3YVLO52.cjs');
@@ -127,11 +129,11 @@ var chunkGKDHMNUA_cjs = require('./chunk-GKDHMNUA.cjs');
127
129
  var chunk4NCDU5IG_cjs = require('./chunk-4NCDU5IG.cjs');
128
130
  var chunkXXVUHLQN_cjs = require('./chunk-XXVUHLQN.cjs');
129
131
  var chunkRI56YPED_cjs = require('./chunk-RI56YPED.cjs');
130
- var chunkFBN2VHUV_cjs = require('./chunk-FBN2VHUV.cjs');
131
- var chunkJSXIB6EJ_cjs = require('./chunk-JSXIB6EJ.cjs');
132
+ var chunk5VA2HJ5B_cjs = require('./chunk-5VA2HJ5B.cjs');
133
+ var chunkGLG6UE2H_cjs = require('./chunk-GLG6UE2H.cjs');
132
134
  var chunkG7EQ3JPX_cjs = require('./chunk-G7EQ3JPX.cjs');
133
135
  var chunkAIJAFPGJ_cjs = require('./chunk-AIJAFPGJ.cjs');
134
- var chunkZSGEGISB_cjs = require('./chunk-ZSGEGISB.cjs');
136
+ var chunkPHUTJKHL_cjs = require('./chunk-PHUTJKHL.cjs');
135
137
  var chunkBSDBI6H7_cjs = require('./chunk-BSDBI6H7.cjs');
136
138
  var chunkUPWIJC6I_cjs = require('./chunk-UPWIJC6I.cjs');
137
139
  var chunkMJWFNV3L_cjs = require('./chunk-MJWFNV3L.cjs');
@@ -160,8 +162,8 @@ require('./chunk-EUAMEVVI.cjs');
160
162
  var React13 = require('react');
161
163
  var jsxRuntime = require('react/jsx-runtime');
162
164
  var classVarianceAuthority = require('class-variance-authority');
163
- var ReactDOM = require('react-dom');
164
165
  var lucideReact = require('lucide-react');
166
+ var ReactDOM = require('react-dom');
165
167
 
166
168
  function _interopNamespace(e) {
167
169
  if (e && e.__esModule) return e;
@@ -1454,7 +1456,7 @@ function AIEmptyState({
1454
1456
  {
1455
1457
  "data-slot": "ai-empty-state-icon",
1456
1458
  className: "bg-primary-800 dark:bg-primary-800 flex h-16 w-16 items-center justify-center rounded-full text-white",
1457
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkXRVMYT5G_cjs.SparklesIcon, { size: "lg", className: "h-8 w-8" })
1459
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkQKW2QCGI_cjs.SparklesIcon, { size: "lg", className: "h-8 w-8" })
1458
1460
  }
1459
1461
  );
1460
1462
  const suggestionsAction = suggestions && suggestions.length > 0 && onSuggestionSelect ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-6", children: [
@@ -1462,7 +1464,7 @@ function AIEmptyState({
1462
1464
  /* @__PURE__ */ jsxRuntime.jsx(SuggestedActions, { actions: suggestions, onSelect: onSuggestionSelect })
1463
1465
  ] }) : void 0;
1464
1466
  return /* @__PURE__ */ jsxRuntime.jsx(
1465
- chunkFMEA6WAY_cjs.EmptyState,
1467
+ chunkQ6QLGCL7_cjs.EmptyState,
1466
1468
  {
1467
1469
  title,
1468
1470
  description,
@@ -1523,7 +1525,7 @@ function AIChat({
1523
1525
  renderMessageFooter
1524
1526
  }) {
1525
1527
  React13__namespace.useEffect(() => {
1526
- chunkU2RS574O_cjs.notifyComposerMigrationOnce("AIChat");
1528
+ chunk2GBVJHWN_cjs.notifyComposerMigrationOnce("AIChat");
1527
1529
  }, []);
1528
1530
  const messages = React13__namespace.useMemo(
1529
1531
  () => session?.messages || messagesProp || [],
@@ -1621,7 +1623,7 @@ function AIChat({
1621
1623
  scrollToBottom(prefersReducedMotion ? "auto" : "smooth");
1622
1624
  }, [scrollToBottom, prefersReducedMotion]);
1623
1625
  const renderMessageItem = (message) => /* @__PURE__ */ jsxRuntime.jsx(
1624
- chunkXRVMYT5G_cjs.AIMessageDisplay,
1626
+ chunkQKW2QCGI_cjs.AIMessageDisplay,
1625
1627
  {
1626
1628
  message,
1627
1629
  userName,
@@ -1659,7 +1661,7 @@ function AIChat({
1659
1661
  },
1660
1662
  [isHostControlled, hostOnValueChange]
1661
1663
  );
1662
- const { stopTyping } = chunkFMEA6WAY_cjs.useTypingEmulation({
1664
+ const { stopTyping } = chunkQ6QLGCL7_cjs.useTypingEmulation({
1663
1665
  value: composerValue,
1664
1666
  onTypingStart,
1665
1667
  onTypingStop
@@ -1721,7 +1723,7 @@ function AIChat({
1721
1723
  {
1722
1724
  "data-slot": "ai-chat-header-icon",
1723
1725
  className: "bg-primary-800 dark:bg-primary-800 flex h-8 w-8 items-center justify-center rounded-full text-white",
1724
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkXRVMYT5G_cjs.SparklesIcon, { size: "sm" })
1726
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkQKW2QCGI_cjs.SparklesIcon, { size: "sm" })
1725
1727
  }
1726
1728
  ),
1727
1729
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
@@ -1751,7 +1753,7 @@ function AIChat({
1751
1753
  className: "rounded-lg p-2 text-neutral-500 hover:bg-neutral-100 hover:text-neutral-700 dark:hover:bg-neutral-800 dark:hover:text-neutral-300",
1752
1754
  title: "Clear chat",
1753
1755
  "aria-label": "Clear chat",
1754
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkXRVMYT5G_cjs.RefreshIcon, {})
1756
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkQKW2QCGI_cjs.RefreshIcon, {})
1755
1757
  }
1756
1758
  ),
1757
1759
  onClose && /* @__PURE__ */ jsxRuntime.jsx(
@@ -1762,7 +1764,7 @@ function AIChat({
1762
1764
  className: "rounded-lg p-2 text-neutral-500 hover:bg-neutral-100 hover:text-neutral-700 dark:hover:bg-neutral-800 dark:hover:text-neutral-300",
1763
1765
  title: "Close chat",
1764
1766
  "aria-label": "Close chat",
1765
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkXRVMYT5G_cjs.CloseIcon, {})
1767
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkQKW2QCGI_cjs.CloseIcon, {})
1766
1768
  }
1767
1769
  )
1768
1770
  ] })
@@ -1802,7 +1804,7 @@ function AIChat({
1802
1804
  }
1803
1805
  ),
1804
1806
  !isAtBottom && /* @__PURE__ */ jsxRuntime.jsx(
1805
- chunkXRVMYT5G_cjs.JumpToBottomButton,
1807
+ chunkQKW2QCGI_cjs.JumpToBottomButton,
1806
1808
  {
1807
1809
  dataSlot: "ai-chat-jump-to-bottom",
1808
1810
  hasNewMessages: hasNewBelow,
@@ -1826,14 +1828,14 @@ function AIChat({
1826
1828
  }
1827
1829
  ) }),
1828
1830
  /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "ai-chat-composer", className: "p-3", children: /* @__PURE__ */ jsxRuntime.jsx(
1829
- chunkU2RS574O_cjs.ChatComposer,
1831
+ chunk2GBVJHWN_cjs.ChatComposer,
1830
1832
  {
1831
1833
  onSend: hostOnSend ? (message) => sendWithRestore(message, hostOnSend) : handleSend,
1832
1834
  placeholder: inputPlaceholder,
1833
1835
  disabled: isGenerating,
1834
1836
  isSending: isGenerating,
1835
1837
  micSlot: hostMicSlot !== void 0 ? hostMicSlot : hasInputTrailing ? normalizeLegacySlot(inputTrailing) : talkToText ? /* @__PURE__ */ jsxRuntime.jsx(
1836
- chunkJTSKPDPH_cjs.RecordButton,
1838
+ chunkHIYQ3M5V_cjs.RecordButton,
1837
1839
  {
1838
1840
  variant: "ghost",
1839
1841
  size: "sm",
@@ -1848,8 +1850,8 @@ function AIChat({
1848
1850
  allowAttachments: composerRest.allowAttachments ?? legacyAttachments,
1849
1851
  maxLength: composerRest.maxLength ?? 1600,
1850
1852
  inputLabel: composerRest.inputLabel ?? "Message",
1851
- acceptedFileTypes: composerRest.acceptedFileTypes ?? (legacyAttachments ? chunkU2RS574O_cjs.DEFAULT_ACCEPTED_FILE_TYPES : void 0),
1852
- maxFileSize: composerRest.maxFileSize ?? (legacyAttachments ? chunkU2RS574O_cjs.DEFAULT_MAX_FILE_SIZE : void 0),
1853
+ acceptedFileTypes: composerRest.acceptedFileTypes ?? (legacyAttachments ? chunk2GBVJHWN_cjs.DEFAULT_ACCEPTED_FILE_TYPES : void 0),
1854
+ maxFileSize: composerRest.maxFileSize ?? (legacyAttachments ? chunk2GBVJHWN_cjs.DEFAULT_MAX_FILE_SIZE : void 0),
1853
1855
  value: composerValue,
1854
1856
  onValueChange: handleComposerValueChange
1855
1857
  }
@@ -2367,7 +2369,7 @@ function OzwellChat({
2367
2369
  if (message.id !== QUEUED_MESSAGE_ID) return null;
2368
2370
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
2369
2371
  isEditingQueuedMessage ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2370
- /* @__PURE__ */ jsxRuntime.jsx(chunkJSXIB6EJ_cjs.Tooltip, { content: "Save queued message", children: /* @__PURE__ */ jsxRuntime.jsx(
2372
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGLG6UE2H_cjs.Tooltip, { content: "Save queued message", children: /* @__PURE__ */ jsxRuntime.jsx(
2371
2373
  chunkANMX7YDL_cjs.Button,
2372
2374
  {
2373
2375
  type: "button",
@@ -2378,7 +2380,7 @@ function OzwellChat({
2378
2380
  children: /* @__PURE__ */ jsxRuntime.jsx(chunkL7L5S2HO_cjs.Check, { size: 14, "aria-hidden": "true" })
2379
2381
  }
2380
2382
  ) }),
2381
- /* @__PURE__ */ jsxRuntime.jsx(chunkJSXIB6EJ_cjs.Tooltip, { content: "Cancel editing", children: /* @__PURE__ */ jsxRuntime.jsx(
2383
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGLG6UE2H_cjs.Tooltip, { content: "Cancel editing", children: /* @__PURE__ */ jsxRuntime.jsx(
2382
2384
  chunkANMX7YDL_cjs.Button,
2383
2385
  {
2384
2386
  type: "button",
@@ -2389,7 +2391,7 @@ function OzwellChat({
2389
2391
  children: /* @__PURE__ */ jsxRuntime.jsx(chunkL7L5S2HO_cjs.X, { size: 14, "aria-hidden": "true" })
2390
2392
  }
2391
2393
  ) })
2392
- ] }) : onQueuedMessageChange && /* @__PURE__ */ jsxRuntime.jsx(chunkJSXIB6EJ_cjs.Tooltip, { content: "Edit queued message", children: /* @__PURE__ */ jsxRuntime.jsx(
2394
+ ] }) : onQueuedMessageChange && /* @__PURE__ */ jsxRuntime.jsx(chunkGLG6UE2H_cjs.Tooltip, { content: "Edit queued message", children: /* @__PURE__ */ jsxRuntime.jsx(
2393
2395
  chunkANMX7YDL_cjs.Button,
2394
2396
  {
2395
2397
  type: "button",
@@ -2400,7 +2402,7 @@ function OzwellChat({
2400
2402
  children: /* @__PURE__ */ jsxRuntime.jsx(chunkL7L5S2HO_cjs.Pencil, { size: 14, "aria-hidden": "true" })
2401
2403
  }
2402
2404
  ) }),
2403
- onCancelQueuedMessage && !isEditingQueuedMessage && /* @__PURE__ */ jsxRuntime.jsx(chunkJSXIB6EJ_cjs.Tooltip, { content: "Cancel queued message", children: /* @__PURE__ */ jsxRuntime.jsx(
2405
+ onCancelQueuedMessage && !isEditingQueuedMessage && /* @__PURE__ */ jsxRuntime.jsx(chunkGLG6UE2H_cjs.Tooltip, { content: "Cancel queued message", children: /* @__PURE__ */ jsxRuntime.jsx(
2404
2406
  chunkANMX7YDL_cjs.Button,
2405
2407
  {
2406
2408
  type: "button",
@@ -2465,7 +2467,7 @@ function OzwellChat({
2465
2467
  ),
2466
2468
  "aria-current": option.value === thinking.mode ? "true" : void 0,
2467
2469
  children: /* @__PURE__ */ jsxRuntime.jsx(
2468
- chunkJSXIB6EJ_cjs.Tooltip,
2470
+ chunkGLG6UE2H_cjs.Tooltip,
2469
2471
  {
2470
2472
  content: option.description,
2471
2473
  placement: "right",
@@ -2841,6 +2843,7 @@ function HeyOzwellToggle({
2841
2843
  "aria-hidden": "true",
2842
2844
  style: {
2843
2845
  position: "absolute",
2846
+ // rtl-ignore -- symmetric centering: left:50% + translate(-50%) is direction-independent
2844
2847
  left: "50%",
2845
2848
  top: "50%",
2846
2849
  width: size * 1.7,
@@ -2888,6 +2891,91 @@ function HeyOzwellToggle({
2888
2891
  }
2889
2892
  );
2890
2893
  }
2894
+ var defaultHeyOzwellSelectorLabels = {
2895
+ name: "Hey Ozwell",
2896
+ activate: "Activate",
2897
+ activateDescription: 'Listen for "Hey Ozwell"',
2898
+ disable: "Disable",
2899
+ disableDescription: "Wake word off",
2900
+ settings: "Voice settings\u2026",
2901
+ off: "Hey Ozwell is off",
2902
+ loading: "Hey Ozwell is starting",
2903
+ listening: 'Listening for "Hey Ozwell"',
2904
+ error: "Hey Ozwell could not start"
2905
+ };
2906
+ var iconClasses = "h-3.5 w-3.5 shrink-0";
2907
+ var phaseIcons = {
2908
+ off: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AudioWaveform, { className: iconClasses, "aria-hidden": "true" }),
2909
+ loading: /* @__PURE__ */ jsxRuntime.jsx(
2910
+ chunkL7L5S2HO_cjs.Loader2,
2911
+ {
2912
+ className: chunkS5RVSXDV_cjs.cn(iconClasses, "animate-spin"),
2913
+ "aria-hidden": "true"
2914
+ }
2915
+ ),
2916
+ listening: /* @__PURE__ */ jsxRuntime.jsx(
2917
+ lucideReact.AudioWaveform,
2918
+ {
2919
+ className: chunkS5RVSXDV_cjs.cn(iconClasses, "text-success"),
2920
+ "aria-hidden": "true"
2921
+ }
2922
+ ),
2923
+ error: /* @__PURE__ */ jsxRuntime.jsx(
2924
+ chunkL7L5S2HO_cjs.AlertTriangle,
2925
+ {
2926
+ className: chunkS5RVSXDV_cjs.cn(iconClasses, "text-destructive"),
2927
+ "aria-hidden": "true"
2928
+ }
2929
+ )
2930
+ };
2931
+ function HeyOzwellSelector({
2932
+ phase,
2933
+ onChange,
2934
+ onOpenSettings,
2935
+ error,
2936
+ disabled,
2937
+ labels: labelOverrides
2938
+ }) {
2939
+ const labels = { ...defaultHeyOzwellSelectorLabels, ...labelOverrides };
2940
+ const active = phase !== "off";
2941
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2942
+ /* @__PURE__ */ jsxRuntime.jsx(
2943
+ chunk2GBVJHWN_cjs.ComposerSelector,
2944
+ {
2945
+ options: [
2946
+ {
2947
+ id: "on",
2948
+ label: labels.activate,
2949
+ description: phase === "error" ? error ?? labels.error : labels.activateDescription
2950
+ },
2951
+ {
2952
+ id: "off",
2953
+ label: labels.disable,
2954
+ description: labels.disableDescription
2955
+ }
2956
+ ],
2957
+ value: active ? "on" : "off",
2958
+ onChange: (id) => {
2959
+ const next = id === "on";
2960
+ if (next !== active || phase === "error") onChange(next);
2961
+ },
2962
+ actions: onOpenSettings && [
2963
+ {
2964
+ id: "settings",
2965
+ label: labels.settings,
2966
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkL7L5S2HO_cjs.Settings, { className: "h-4 w-4", "aria-hidden": "true" }),
2967
+ onSelect: onOpenSettings
2968
+ }
2969
+ ],
2970
+ label: labels.name,
2971
+ triggerLabel: labels.name,
2972
+ icon: phaseIcons[phase],
2973
+ disabled
2974
+ }
2975
+ ),
2976
+ /* @__PURE__ */ jsxRuntime.jsx("span", { role: "status", className: "sr-only", children: labels[phase] })
2977
+ ] });
2978
+ }
2891
2979
 
2892
2980
  // src/components/AI/HeyOzwell/modelManifest.ts
2893
2981
  var MODEL_MANIFEST = [
@@ -3099,27 +3187,6 @@ function OzwellSettingsMenu({
3099
3187
  }
3100
3188
  );
3101
3189
  }
3102
-
3103
- // src/components/AI/modelCache.ts
3104
- var registered = /* @__PURE__ */ new Set();
3105
- function registerModelServiceWorker(swUrl = "/ozwell-model-sw.js") {
3106
- if (typeof navigator === "undefined" || !("serviceWorker" in navigator))
3107
- return;
3108
- if (registered.has(swUrl)) return;
3109
- registered.add(swUrl);
3110
- navigator.serviceWorker.register(swUrl).then(
3111
- () => console.log("[modelCache] model service worker registered"),
3112
- (e) => {
3113
- registered.delete(swUrl);
3114
- console.warn(
3115
- "[modelCache] SW registration failed (models will still load, just not cached):",
3116
- e
3117
- );
3118
- }
3119
- );
3120
- }
3121
-
3122
- // src/components/AI/HeyOzwell/WakeWord/useWakeWord.ts
3123
3190
  var DEFAULT_ASSET_BASE = "https://huggingface.co/jlocala/ozwell-voice-assets/resolve/main";
3124
3191
  var DEFAULT_ASSET = `${DEFAULT_ASSET_BASE}/wakeword`;
3125
3192
  var PHRASES = ["hey-ozwell", "ozwell-i'm-done"];
@@ -3247,7 +3314,7 @@ function useWakeWord(opts = {}) {
3247
3314
  );
3248
3315
  return;
3249
3316
  }
3250
- if (registerServiceWorker) registerModelServiceWorker();
3317
+ if (registerServiceWorker) chunkTRZLN32I_cjs.registerModelServiceWorker();
3251
3318
  let cancelled = false;
3252
3319
  (async () => {
3253
3320
  try {
@@ -3398,679 +3465,6 @@ function useWakeWord(opts = {}) {
3398
3465
  }
3399
3466
  };
3400
3467
  }
3401
-
3402
- // src/components/AI/ozwellChat.ts
3403
- var DEFAULT_BASE = "https://api.ozwell.ai";
3404
- var OLLAMA_BASE = "http://localhost:11434";
3405
- var DEFAULTS = {
3406
- model: "gpt-4o-mini",
3407
- system: "You are Ozwell, a concise and helpful clinical assistant. Answer briefly and clearly.",
3408
- temperature: 0.7
3409
- };
3410
- function readWindowGlobal() {
3411
- if (typeof window === "undefined") return {};
3412
- const get = (w) => {
3413
- try {
3414
- return w?.__ozwell;
3415
- } catch {
3416
- return void 0;
3417
- }
3418
- };
3419
- return get(window) || get(window.parent) || get(window.top) || {};
3420
- }
3421
- function sanitizeConfig(o) {
3422
- if (!o || typeof o !== "object") return {};
3423
- const out = {};
3424
- for (const k of Object.keys(o)) {
3425
- if (k === "__proto__" || k === "constructor" || k === "prototype") continue;
3426
- out[k] = o[k];
3427
- }
3428
- return out;
3429
- }
3430
- function readRaw() {
3431
- let stored = {};
3432
- try {
3433
- stored = sanitizeConfig(
3434
- JSON.parse(localStorage.getItem("ozwellConfig") || "{}")
3435
- );
3436
- } catch {
3437
- }
3438
- return { ...stored, ...sanitizeConfig(readWindowGlobal()) };
3439
- }
3440
- function getOzwellConfig() {
3441
- const c = readRaw();
3442
- const apiKey = c.apiKey || "";
3443
- const baseURL = c.baseURL || (apiKey === "ollama" ? OLLAMA_BASE : DEFAULT_BASE);
3444
- return {
3445
- baseURL,
3446
- apiKey,
3447
- model: c.model || DEFAULTS.model,
3448
- system: c.system ?? DEFAULTS.system,
3449
- // Coerce: temperature set via console/localStorage often arrives as a string; a string in the request
3450
- // body can be rejected by OpenAI-compatible servers. Fall back to the default if it's not a real number —
3451
- // and guard the empty/whitespace string explicitly, since Number('') is 0 (a valid-looking temperature)
3452
- // and would silently pin sampling to 0 instead of using the default.
3453
- temperature: c.temperature != null && String(c.temperature).trim() !== "" && Number.isFinite(Number(c.temperature)) ? Number(c.temperature) : DEFAULTS.temperature
3454
- };
3455
- }
3456
- function isOzwellConfigured() {
3457
- return !!getOzwellConfig().apiKey;
3458
- }
3459
- function toOzwellMessages(msgs) {
3460
- const out = [];
3461
- for (const m of msgs) {
3462
- if (m.role !== "user" && m.role !== "assistant") continue;
3463
- const text = (m.content || []).map((c) => c.text || "").join(" ").trim();
3464
- if (text) out.push({ role: m.role, content: text });
3465
- }
3466
- return out;
3467
- }
3468
- function withSystem(messages, system) {
3469
- if (!system || messages.some((m) => m.role === "system")) return messages;
3470
- return [{ role: "system", content: system }, ...messages];
3471
- }
3472
- function buildRequest(messages, cfg, stream) {
3473
- const msgs = typeof messages === "string" ? [{ role: "user", content: messages }] : messages;
3474
- return {
3475
- url: `${cfg.baseURL.replace(/\/$/, "")}/v1/chat/completions`,
3476
- headers: {
3477
- "Content-Type": "application/json",
3478
- // 'ollama' is a sentinel that points baseURL at the local Ollama server, not a real credential —
3479
- // don't send it as a Bearer token (some local OpenAI-compatible servers reject unexpected auth).
3480
- ...cfg.apiKey && cfg.apiKey !== "ollama" ? { Authorization: `Bearer ${cfg.apiKey}` } : {}
3481
- },
3482
- body: JSON.stringify({
3483
- model: cfg.model,
3484
- messages: withSystem(msgs, cfg.system),
3485
- temperature: cfg.temperature,
3486
- stream
3487
- })
3488
- };
3489
- }
3490
- function resolveConfig(opts) {
3491
- const cfg = { ...getOzwellConfig(), ...opts };
3492
- if (opts.apiKey && !opts.baseURL && !readRaw().baseURL) {
3493
- cfg.baseURL = cfg.apiKey === "ollama" ? OLLAMA_BASE : DEFAULT_BASE;
3494
- }
3495
- return cfg;
3496
- }
3497
- async function askOzwell(messages, opts = {}) {
3498
- const cfg = resolveConfig(opts);
3499
- const req = buildRequest(messages, cfg, false);
3500
- const res = await fetch(req.url, {
3501
- method: "POST",
3502
- headers: req.headers,
3503
- body: req.body,
3504
- signal: opts.signal
3505
- });
3506
- if (!res.ok) throw new Error(`Ozwell API ${res.status}: ${res.statusText}`);
3507
- const data = await res.json();
3508
- return (data?.choices?.[0]?.message?.content ?? "").trim();
3509
- }
3510
- async function askOzwellStream(messages, onToken, opts = {}) {
3511
- const cfg = resolveConfig(opts);
3512
- const req = buildRequest(messages, cfg, true);
3513
- const res = await fetch(req.url, {
3514
- method: "POST",
3515
- headers: req.headers,
3516
- body: req.body,
3517
- signal: opts.signal
3518
- });
3519
- if (!res.ok || !res.body)
3520
- throw new Error(`Ozwell API ${res.status}: ${res.statusText}`);
3521
- const reader = res.body.getReader();
3522
- const decoder = new TextDecoder();
3523
- let buf = "";
3524
- let full = "";
3525
- const processEvent = (ev) => {
3526
- for (const line of ev.split(/\r?\n/)) {
3527
- if (!line.startsWith("data:")) continue;
3528
- const payload = line.slice(5).trim();
3529
- if (payload === "[DONE]") return true;
3530
- try {
3531
- const json = JSON.parse(payload);
3532
- const delta = json?.choices?.[0]?.delta?.content || "";
3533
- if (delta) {
3534
- full += delta;
3535
- onToken(delta, full);
3536
- }
3537
- } catch {
3538
- }
3539
- }
3540
- return false;
3541
- };
3542
- try {
3543
- for (; ; ) {
3544
- const { done, value } = await reader.read();
3545
- if (done) break;
3546
- buf += decoder.decode(value, { stream: true });
3547
- const events = buf.split(/\r?\n\r?\n/);
3548
- buf = events.pop() || "";
3549
- for (const ev of events) if (processEvent(ev)) return full;
3550
- }
3551
- buf += decoder.decode();
3552
- if (buf.trim()) processEvent(buf);
3553
- } finally {
3554
- try {
3555
- await reader.cancel();
3556
- } catch {
3557
- }
3558
- }
3559
- return full;
3560
- }
3561
-
3562
- // src/components/AI/whisperTranscribe.ts
3563
- var HF_HOST = "https://huggingface.co";
3564
- var HF_PATH = "{model}/resolve/{revision}/";
3565
- var R2_HOST = "https://pub-64db68afc2cb4e108ff06e7e583f09d1.r2.dev";
3566
- function whisperHost() {
3567
- if (typeof window === "undefined") return R2_HOST;
3568
- const fromWin = (w) => {
3569
- try {
3570
- return w?.__ozwellWhisperHost;
3571
- } catch {
3572
- return void 0;
3573
- }
3574
- };
3575
- const win = fromWin(window) || fromWin(window.parent) || fromWin(window.top);
3576
- if (win) return win.replace(/\/$/, "");
3577
- try {
3578
- const h = JSON.parse(
3579
- localStorage.getItem("ozwellConfig") || "{}"
3580
- ).whisperHost;
3581
- if (h) return String(h).replace(/\/$/, "");
3582
- } catch {
3583
- }
3584
- return R2_HOST;
3585
- }
3586
- var SMALL_MODELS = {
3587
- tiny: "Xenova/whisper-tiny.en",
3588
- "tiny.en": "Xenova/whisper-tiny.en",
3589
- base: "Xenova/whisper-base.en",
3590
- "base.en": "Xenova/whisper-base.en",
3591
- small: "Xenova/whisper-small.en",
3592
- "small.en": "Xenova/whisper-small.en"
3593
- };
3594
- var GATE_MODEL = "Xenova/whisper-base.en";
3595
- function whisperPref() {
3596
- if (typeof window === "undefined") return null;
3597
- const fromWin = (w) => {
3598
- try {
3599
- return w?.__ozwell?.whisper;
3600
- } catch {
3601
- return void 0;
3602
- }
3603
- };
3604
- const win = fromWin(window) || fromWin(window.parent) || fromWin(window.top);
3605
- if (win) return win;
3606
- try {
3607
- return JSON.parse(localStorage.getItem("ozwellConfig") || "{}").whisper || null;
3608
- } catch {
3609
- return null;
3610
- }
3611
- }
3612
- function whisperDevice() {
3613
- if (typeof window === "undefined") return null;
3614
- const fromWin = (w) => {
3615
- try {
3616
- return w?.__ozwell?.whisperDevice;
3617
- } catch {
3618
- return void 0;
3619
- }
3620
- };
3621
- const win = fromWin(window) || fromWin(window.parent) || fromWin(window.top);
3622
- if (win) return win;
3623
- try {
3624
- return JSON.parse(localStorage.getItem("ozwellConfig") || "{}").whisperDevice || null;
3625
- } catch {
3626
- return null;
3627
- }
3628
- }
3629
- function whisperDtype() {
3630
- if (typeof window === "undefined") return null;
3631
- const fromWin = (w) => {
3632
- try {
3633
- return w?.__ozwell?.whisperDtype;
3634
- } catch {
3635
- return void 0;
3636
- }
3637
- };
3638
- const win = fromWin(window) || fromWin(window.parent) || fromWin(window.top);
3639
- if (win) return win;
3640
- try {
3641
- return JSON.parse(localStorage.getItem("ozwellConfig") || "{}").whisperDtype || null;
3642
- } catch {
3643
- return null;
3644
- }
3645
- }
3646
- var DEFAULT_TRANSFORMERS_URL = "https://cdn.jsdelivr.net/npm/@huggingface/transformers@3.8.1";
3647
- function transformersUrl() {
3648
- try {
3649
- const w = window.__ozwellTransformersUrl;
3650
- if (w) return w;
3651
- const ls = localStorage.getItem("ozwellTransformersUrl");
3652
- if (ls) return ls;
3653
- } catch {
3654
- }
3655
- return DEFAULT_TRANSFORMERS_URL;
3656
- }
3657
- var dictationLoad = {
3658
- active: false,
3659
- progress: 0,
3660
- done: false
3661
- };
3662
- var loadListeners = /* @__PURE__ */ new Set();
3663
- function setDictationLoad(patch) {
3664
- dictationLoad = { ...dictationLoad, ...patch };
3665
- loadListeners.forEach((l) => l());
3666
- }
3667
- function getDictationLoad() {
3668
- return dictationLoad;
3669
- }
3670
- function subscribeDictationLoad(cb) {
3671
- loadListeners.add(cb);
3672
- return () => {
3673
- loadListeners.delete(cb);
3674
- };
3675
- }
3676
- var WORKER_SRC = `
3677
- let cfg = null, modP = null, pipeP = null, gateP = null, isMulti = false;
3678
- let chain = Promise.resolve();
3679
- const serialize = (fn) => { const r = chain.then(fn, fn); chain = r.then(() => {}, () => {}); return r; };
3680
-
3681
- function getMod() {
3682
- if (modP) return modP;
3683
- modP = (async () => {
3684
- const mod = await import(cfg.transformersUrl);
3685
- mod.env.allowLocalModels = false;
3686
- // transformers.js's OWN cache STREAMS the model straight to the Cache API (how whisper-web caches this
3687
- // 1.2GB turbo model). A hand-rolled SW that buffers the whole file chokes (QuotaExceeded).
3688
- mod.env.useBrowserCache = true;
3689
- mod.env.backends.onnx.wasm.numThreads = 1;
3690
- try { if (navigator.storage && navigator.storage.persist) await navigator.storage.persist(); } catch (e) {}
3691
- return mod;
3692
- })();
3693
- return modP;
3694
- }
3695
-
3696
- function progressCb() {
3697
- const frac = {};
3698
- const report = () => {
3699
- const v = Object.values(frac);
3700
- self.postMessage({ type: 'progress', frac: v.length ? v.reduce((a, b) => a + b, 0) / v.length : 0 });
3701
- };
3702
- return (p) => {
3703
- if (!p || !p.file) return;
3704
- if (p.status === 'initiate') { frac[p.file] = frac[p.file] || 0; report(); }
3705
- else if (p.status === 'done') { frac[p.file] = 1; report(); }
3706
- else if (p.status === 'progress' && typeof p.progress === 'number') { frac[p.file] = p.progress / 100; report(); }
3707
- };
3708
- }
3709
-
3710
- async function buildEnglish(modelId) {
3711
- const mod = await getMod();
3712
- mod.env.remoteHost = cfg.hfHost;
3713
- mod.env.remotePathTemplate = cfg.hfPath;
3714
- if ((cfg.whisperDevice || '').toLowerCase() !== 'wasm') {
3715
- try {
3716
- const gpuDtype = cfg.whisperDtype || 'q8';
3717
- const pipe = await mod.pipeline('automatic-speech-recognition', modelId, { device: 'webgpu', dtype: gpuDtype, progress_callback: progressCb() });
3718
- console.log('[whisper] ready (' + modelId + ' / WebGPU ' + gpuDtype + ', worker)');
3719
- return pipe;
3720
- } catch (e) { /* fall through to wasm */ }
3721
- }
3722
- const pipe = await mod.pipeline('automatic-speech-recognition', modelId, { dtype: 'q8', progress_callback: progressCb() });
3723
- console.log('[whisper] ready (' + modelId + ' / wasm, worker)');
3724
- return pipe;
3725
- }
3726
-
3727
- async function buildTurbo() {
3728
- const mod = await getMod();
3729
- mod.env.remoteHost = cfg.whisperHost;
3730
- mod.env.remotePathTemplate = '{model}/';
3731
- const pipe = await mod.pipeline('automatic-speech-recognition', 'whisper-turbo', {
3732
- device: 'webgpu',
3733
- dtype: { encoder_model: 'fp16', decoder_model_merged: 'q4' },
3734
- progress_callback: progressCb(),
3735
- });
3736
- isMulti = true;
3737
- console.log('[whisper] ready (turbo / worker)');
3738
- return pipe;
3739
- }
3740
-
3741
- function loadWhisper() {
3742
- if (pipeP) return pipeP;
3743
- self.postMessage({ type: 'loadState', patch: { active: true, progress: 0, done: false } });
3744
- pipeP = (async () => {
3745
- const pref = (cfg.whisperPref || '').toLowerCase();
3746
- if (pref && pref !== 'turbo' && cfg.smallModels[pref]) {
3747
- console.log('[whisper] loading ' + pref + ' (forced via ozwellConfig.whisper)\u2026');
3748
- return serialize(() => buildEnglish(cfg.smallModels[pref]));
3749
- }
3750
- console.log('[whisper] loading turbo\u2026');
3751
- try { return await serialize(() => buildTurbo()); }
3752
- catch (e) {
3753
- console.log('[whisper] turbo unavailable (' + (e && e.message ? e.message : e) + ') \u2192 base.en fallback');
3754
- return serialize(() => buildEnglish(cfg.gateModel));
3755
- }
3756
- })();
3757
- pipeP.then(
3758
- () => self.postMessage({ type: 'loadState', patch: { active: false, progress: 1, done: true } }),
3759
- () => { pipeP = null; self.postMessage({ type: 'loadState', patch: { active: false } }); }
3760
- );
3761
- return pipeP;
3762
- }
3763
-
3764
- function loadGate() {
3765
- if (gateP) return gateP;
3766
- console.log('[whisper] loading stop-confirm gate (base.en)\u2026');
3767
- gateP = serialize(() => buildEnglish(cfg.gateModel));
3768
- gateP.catch(() => { gateP = null; });
3769
- return gateP;
3770
- }
3771
-
3772
- self.onmessage = async (e) => {
3773
- const m = e.data;
3774
- if (!m) return;
3775
- if (m.type === 'init') { cfg = m.cfg; return; }
3776
- if (m.type === 'warm') { loadWhisper().catch(() => {}); return; }
3777
- if (m.type === 'warmGate') { loadGate().catch(() => {}); return; }
3778
- if (m.type === 'transcribe') {
3779
- try {
3780
- let pipe, opts;
3781
- if (m.want === 'gate') { pipe = await loadGate(); opts = { chunk_length_s: 30 }; }
3782
- else {
3783
- pipe = await loadWhisper();
3784
- if (m.want === 'segments' || m.want === 'words') opts = Object.assign({ chunk_length_s: 30, return_timestamps: m.want === 'words' ? 'word' : true }, isMulti ? { language: 'english', task: 'transcribe' } : {});
3785
- else opts = isMulti ? { chunk_length_s: 30, language: 'english', task: 'transcribe' } : { chunk_length_s: 30 };
3786
- }
3787
- const out = await pipe(m.samples, opts);
3788
- self.postMessage({ type: 'result', id: m.id, text: (out && out.text ? out.text : '').trim(), chunks: (out && out.chunks) || null });
3789
- } catch (err) {
3790
- self.postMessage({ type: 'error', id: m.id, message: err && err.message ? err.message : String(err) });
3791
- }
3792
- }
3793
- };
3794
- `;
3795
- var worker = null;
3796
- var reqId = 0;
3797
- var pending = /* @__PURE__ */ new Map();
3798
- function buildWorkerCfg() {
3799
- return {
3800
- transformersUrl: transformersUrl(),
3801
- whisperHost: whisperHost(),
3802
- whisperPref: whisperPref(),
3803
- whisperDevice: whisperDevice(),
3804
- whisperDtype: whisperDtype(),
3805
- hfHost: HF_HOST,
3806
- hfPath: HF_PATH,
3807
- smallModels: SMALL_MODELS,
3808
- gateModel: GATE_MODEL
3809
- };
3810
- }
3811
- function getWorker() {
3812
- if (worker) return worker;
3813
- registerModelServiceWorker();
3814
- const url = URL.createObjectURL(
3815
- new Blob([WORKER_SRC], { type: "application/javascript" })
3816
- );
3817
- const w = new Worker(url, { type: "module" });
3818
- w.onmessage = (e) => {
3819
- const m = e.data;
3820
- if (!m) return;
3821
- if (m.type === "loadState") {
3822
- setDictationLoad(m.patch);
3823
- return;
3824
- }
3825
- if (m.type === "progress") {
3826
- setDictationLoad({ progress: m.frac });
3827
- return;
3828
- }
3829
- if (m.type === "result") {
3830
- const p = pending.get(m.id);
3831
- if (p) {
3832
- pending.delete(m.id);
3833
- p.resolve({ text: m.text, chunks: m.chunks });
3834
- }
3835
- return;
3836
- }
3837
- if (m.type === "error") {
3838
- const p = pending.get(m.id);
3839
- if (p) {
3840
- pending.delete(m.id);
3841
- p.reject(new Error(m.message));
3842
- }
3843
- return;
3844
- }
3845
- };
3846
- w.onerror = (e) => {
3847
- const err = new Error(
3848
- `whisper worker error: ${e.message || "failed to load"}`
3849
- );
3850
- pending.forEach((p) => p.reject(err));
3851
- pending.clear();
3852
- setDictationLoad({ active: false });
3853
- };
3854
- w.postMessage({ type: "init", cfg: buildWorkerCfg() });
3855
- worker = w;
3856
- return worker;
3857
- }
3858
- function callWorker(want, samples) {
3859
- const w = getWorker();
3860
- const id = ++reqId;
3861
- return new Promise((resolve, reject) => {
3862
- pending.set(id, { resolve, reject });
3863
- w.postMessage({ type: "transcribe", id, want, samples }, [samples.buffer]);
3864
- });
3865
- }
3866
- function isWhisperLoaded() {
3867
- return getDictationLoad().done;
3868
- }
3869
- function warmWhisper() {
3870
- getWorker().postMessage({ type: "warm" });
3871
- }
3872
- function warmStopGate() {
3873
- getWorker().postMessage({ type: "warmGate" });
3874
- }
3875
- function downmixToMono(audio) {
3876
- if (audio.numberOfChannels <= 1) return audio.getChannelData(0);
3877
- const n = audio.length;
3878
- const out = new Float32Array(n);
3879
- for (let ch = 0; ch < audio.numberOfChannels; ch++) {
3880
- const data = audio.getChannelData(ch);
3881
- for (let i = 0; i < n; i++) out[i] += data[i];
3882
- }
3883
- for (let i = 0; i < n; i++) out[i] /= audio.numberOfChannels;
3884
- return out;
3885
- }
3886
- function resampleTo16kMono(src, sampleRate) {
3887
- const ratio = 16e3 / sampleRate;
3888
- const n = Math.round(src.length * ratio);
3889
- const out = new Float32Array(n);
3890
- for (let i = 0; i < n; i++) {
3891
- const t = i / ratio;
3892
- const i0 = Math.floor(t);
3893
- const i1 = Math.min(i0 + 1, src.length - 1);
3894
- out[i] = src[i0] + (src[i1] - src[i0]) * (t - i0);
3895
- }
3896
- return out;
3897
- }
3898
- async function decodeTo16kMono(blob) {
3899
- const Ctx = window.AudioContext || window.webkitAudioContext;
3900
- const ctx = new Ctx();
3901
- try {
3902
- const audio = await ctx.decodeAudioData(await blob.arrayBuffer());
3903
- return resampleTo16kMono(downmixToMono(audio), audio.sampleRate);
3904
- } finally {
3905
- void ctx.close();
3906
- }
3907
- }
3908
- function encodeWav16kMono(samples) {
3909
- const sr = 16e3;
3910
- const buf = new ArrayBuffer(44 + samples.length * 2);
3911
- const view = new DataView(buf);
3912
- const str = (o2, s) => {
3913
- for (let i = 0; i < s.length; i++) view.setUint8(o2 + i, s.charCodeAt(i));
3914
- };
3915
- str(0, "RIFF");
3916
- view.setUint32(4, 36 + samples.length * 2, true);
3917
- str(8, "WAVE");
3918
- str(12, "fmt ");
3919
- view.setUint32(16, 16, true);
3920
- view.setUint16(20, 1, true);
3921
- view.setUint16(22, 1, true);
3922
- view.setUint32(24, sr, true);
3923
- view.setUint32(28, sr * 2, true);
3924
- view.setUint16(32, 2, true);
3925
- view.setUint16(34, 16, true);
3926
- str(36, "data");
3927
- view.setUint32(40, samples.length * 2, true);
3928
- let o = 44;
3929
- for (let i = 0; i < samples.length; i++) {
3930
- const s = Math.max(-1, Math.min(1, samples[i]));
3931
- view.setInt16(o, s < 0 ? s * 32768 : s * 32767, true);
3932
- o += 2;
3933
- }
3934
- return new Blob([buf], { type: "audio/wav" });
3935
- }
3936
- async function trimTrailingStopPhrase(blob, phraseHintSec = 0) {
3937
- let samples;
3938
- try {
3939
- samples = await decodeTo16kMono(blob);
3940
- } catch {
3941
- return blob;
3942
- }
3943
- const SR2 = 16e3;
3944
- const n = samples.length;
3945
- if (n < SR2 * 0.8) return blob;
3946
- const fr = Math.round(SR2 * 0.03);
3947
- const nf = Math.ceil(n / fr);
3948
- const e = new Float32Array(nf);
3949
- let peak = 0;
3950
- for (let f = 0; f < nf; f++) {
3951
- const a = f * fr, b = Math.min(n, a + fr);
3952
- let s = 0;
3953
- for (let i = a; i < b; i++) s += samples[i] * samples[i];
3954
- e[f] = Math.sqrt(s / (b - a));
3955
- if (e[f] > peak) peak = e[f];
3956
- }
3957
- const sil = Math.max(8e-3, peak * 0.15);
3958
- const minGap = Math.max(1, Math.round(0.15 * SR2 / fr));
3959
- const maxTrimFrames = Math.round(2.2 * SR2 / fr);
3960
- const floor = Math.max(0, nf - maxTrimFrames);
3961
- let cutFrame;
3962
- if (phraseHintSec > 0.2) {
3963
- const anchor = Math.max(0, nf - Math.round(phraseHintSec * SR2 / fr));
3964
- const win = Math.round(0.35 * SR2 / fr);
3965
- let best = -1, bestDist = Infinity;
3966
- for (let f = Math.max(0, anchor - win); f <= Math.min(nf - 1, anchor + win); f++) {
3967
- if (e[f] < sil) {
3968
- const dist = Math.abs(f - anchor);
3969
- if (dist < bestDist) {
3970
- bestDist = dist;
3971
- best = f;
3972
- }
3973
- }
3974
- }
3975
- cutFrame = best >= 0 ? best : anchor;
3976
- } else {
3977
- let k = nf - 1;
3978
- while (k >= floor && e[k] < sil) k--;
3979
- cutFrame = -1;
3980
- while (k >= floor) {
3981
- if (e[k] < sil) {
3982
- let m = k;
3983
- while (m >= floor && e[m] < sil) m--;
3984
- if (k - m >= minGap) {
3985
- cutFrame = k + 1;
3986
- break;
3987
- }
3988
- k = m;
3989
- } else k--;
3990
- }
3991
- if (cutFrame < 0) cutFrame = Math.max(0, nf - Math.round(1.1 * SR2 / fr));
3992
- }
3993
- cutFrame = Math.max(cutFrame, floor);
3994
- const cutSample = Math.min(n, cutFrame * fr);
3995
- if (cutSample < SR2 * 0.2) return blob;
3996
- return encodeWav16kMono(samples.subarray(0, cutSample));
3997
- }
3998
- async function transcribeBlob(blob, trimEndSeconds = 0) {
3999
- let samples = await decodeTo16kMono(blob);
4000
- if (trimEndSeconds > 0) {
4001
- const cut = Math.round(trimEndSeconds * 16e3);
4002
- if (samples.length > cut + 16e3)
4003
- samples = samples.slice(0, samples.length - cut);
4004
- }
4005
- const out = await callWorker("text", samples);
4006
- return (out.text ?? "").trim();
4007
- }
4008
- async function transcribeSamples(samples, sampleRate) {
4009
- const out = await callWorker("text", resampleTo16kMono(samples, sampleRate));
4010
- return (out.text ?? "").trim();
4011
- }
4012
- function chunksToSegments(chunks) {
4013
- return (chunks ?? []).map((c) => ({
4014
- start: c.timestamp?.[0] ?? 0,
4015
- end: c.timestamp?.[1] ?? c.timestamp?.[0] ?? 0,
4016
- text: (c.text ?? "").trim()
4017
- })).filter((s) => s.text);
4018
- }
4019
- async function transcribeSegments(blob) {
4020
- const samples = await decodeTo16kMono(blob);
4021
- const out = await callWorker("segments", samples);
4022
- return chunksToSegments(out.chunks);
4023
- }
4024
- function serverAsrModel() {
4025
- try {
4026
- return JSON.parse(localStorage.getItem("ozwellConfig") || "{}").serverWhisper || "whisper-1";
4027
- } catch {
4028
- return "whisper-1";
4029
- }
4030
- }
4031
- async function transcribeServer(blob) {
4032
- const cfg = getOzwellConfig();
4033
- const form = new FormData();
4034
- form.append("file", blob, "audio.webm");
4035
- form.append("model", serverAsrModel());
4036
- const url = `${cfg.baseURL.replace(/\/$/, "")}/v1/audio/transcriptions`;
4037
- const headers = {};
4038
- if (cfg.apiKey && cfg.apiKey !== "ollama")
4039
- headers.Authorization = `Bearer ${cfg.apiKey}`;
4040
- const res = await fetch(url, { method: "POST", headers, body: form });
4041
- if (!res.ok) {
4042
- const body = await res.text().catch(() => "");
4043
- throw new Error(
4044
- `Server ASR ${res.status}: ${res.statusText || body.slice(0, 200) || "request failed"}`
4045
- );
4046
- }
4047
- const data = await res.json();
4048
- return (typeof data?.text === "string" ? data.text : "").trim();
4049
- }
4050
- async function transcribeGate(samples, sampleRate) {
4051
- const out = await callWorker("gate", resampleTo16kMono(samples, sampleRate));
4052
- return (out.text ?? "").trim();
4053
- }
4054
- function stripStopPhrase(text) {
4055
- const tail = /(?:\b(?:oz\s{0,4}well|all(?:['’]?s|\s{1,4}was)?\s{0,4}well|as\s{0,4}well|also|oswald)\b[\s,]{0,6}i(?:['’]?m|\s{1,4}am)\s{1,4}done\b|\b(?:oz\s{0,4}well|all(?:['’]?s|\s{1,4}was)?\s{0,4}well|oswald)\b|\bi(?:['’]?m|\s{1,4}am)\s{1,4}done\b|\b(?:that\s{1,4}was\s{1,4}|was\s{1,4})?well\s{1,4}done\b|\bthat['’]?s?\s{1,4}(?:was\s{1,4})?all\b|\bthank(?:s|\s{1,4}you)(?:\s{1,4}for\s{1,4}watching)?\b|\bbye\b)[\s.,!?-]{0,24}$/i;
4056
- let prev = null;
4057
- let t = text;
4058
- while (t !== prev && t) {
4059
- prev = t;
4060
- t = trimTrailingPunct(t.replace(tail, ""));
4061
- }
4062
- return t.trim();
4063
- }
4064
- function trimTrailingPunct(s) {
4065
- let end = s.length;
4066
- while (end > 0 && /[\s.,!?-]/.test(s[end - 1])) end--;
4067
- return end === s.length ? s : s.slice(0, end);
4068
- }
4069
- function endsWithDone(text) {
4070
- return /\b(?:i(?:['’]?m|\s{1,4}am)\s{1,4}|all\s{1,4}|well\s{1,4})?done\b[\s.,!?-]{0,24}$/i.test(
4071
- text
4072
- );
4073
- }
4074
3468
  function useSpeakerVerify(opts = {}) {
4075
3469
  const { enabled = true, voiceprintNamespace } = opts;
4076
3470
  const [ready, setReady] = React13__namespace.useState(false);
@@ -4312,7 +3706,7 @@ function useDiarization(options = {}) {
4312
3706
  const [error, setError] = React13__namespace.useState(null);
4313
3707
  const [result, setResult] = React13__namespace.useState(null);
4314
3708
  React13__namespace.useEffect(() => {
4315
- if (enabled) warmWhisper();
3709
+ if (enabled) chunkTRZLN32I_cjs.warmWhisper();
4316
3710
  }, [enabled]);
4317
3711
  const diarize = React13__namespace.useCallback(
4318
3712
  async (blob) => {
@@ -4326,8 +3720,8 @@ function useDiarization(options = {}) {
4326
3720
  throw new Error("voiceprint namespace changed during diarization");
4327
3721
  };
4328
3722
  const [segments, samples] = await Promise.all([
4329
- transcribeSegments(blob),
4330
- decodeTo16kMono(blob)
3723
+ chunkTRZLN32I_cjs.transcribeSegments(blob),
3724
+ chunkTRZLN32I_cjs.decodeTo16kMono(blob)
4331
3725
  ]);
4332
3726
  assertNamespace();
4333
3727
  if (!segments.length) {
@@ -4377,9 +3771,9 @@ function useDiarization(options = {}) {
4377
3771
  }
4378
3772
  const labels = labelClusters(segCluster, names);
4379
3773
  let out = attributeSegments(segments, segCluster, labels);
4380
- if (inferRoles && isOzwellConfigured()) {
3774
+ if (inferRoles && chunkTRZLN32I_cjs.isOzwellConfigured()) {
4381
3775
  try {
4382
- out = await inferSpeakerRoles(out, (p) => askOzwell(p));
3776
+ out = await inferSpeakerRoles(out, (p) => chunkTRZLN32I_cjs.askOzwell(p));
4383
3777
  } catch {
4384
3778
  }
4385
3779
  }
@@ -4595,8 +3989,8 @@ function useHeyOzwell(options = {}) {
4595
3989
  const [phase, setPhase] = React13__namespace.useState("listening");
4596
3990
  const [typed, setTyped] = React13__namespace.useState("");
4597
3991
  const dictLoad = React13__namespace.useSyncExternalStore(
4598
- subscribeDictationLoad,
4599
- getDictationLoad
3992
+ chunkTRZLN32I_cjs.subscribeDictationLoad,
3993
+ chunkTRZLN32I_cjs.getDictationLoad
4600
3994
  );
4601
3995
  const wakeWarm2 = React13__namespace.useSyncExternalStore(subscribeWakeWarm, getWakeWarm);
4602
3996
  const counterRef = React13__namespace.useRef(0);
@@ -4680,7 +4074,7 @@ function useHeyOzwell(options = {}) {
4680
4074
  onSendRef.current(t);
4681
4075
  return;
4682
4076
  }
4683
- if (!isOzwellConfigured()) {
4077
+ if (!chunkTRZLN32I_cjs.isOzwellConfigured()) {
4684
4078
  window.setTimeout(
4685
4079
  () => setMessages((m) => [
4686
4080
  ...m,
@@ -4694,7 +4088,7 @@ function useHeyOzwell(options = {}) {
4694
4088
  return;
4695
4089
  }
4696
4090
  const history = [
4697
- ...toOzwellMessages(messagesRef.current),
4091
+ ...chunkTRZLN32I_cjs.toOzwellMessages(messagesRef.current),
4698
4092
  { role: "user", content: t }
4699
4093
  ];
4700
4094
  const id = `assistant-${++counterRef.current}`;
@@ -4717,7 +4111,7 @@ function useHeyOzwell(options = {}) {
4717
4111
  streamAbortRef.current?.abort();
4718
4112
  const ac = new AbortController();
4719
4113
  streamAbortRef.current = ac;
4720
- askOzwellStream(history, (_d, full) => patch(full, "streaming"), {
4114
+ chunkTRZLN32I_cjs.askOzwellStream(history, (_d, full) => patch(full, "streaming"), {
4721
4115
  signal: ac.signal
4722
4116
  }).then((full) => patch(full || "(no response)", "complete")).catch((e) => {
4723
4117
  if (e?.name === "AbortError") return;
@@ -4758,7 +4152,7 @@ function useHeyOzwell(options = {}) {
4758
4152
  const tail = acc.snapshotFrom(liveCursorRef.current);
4759
4153
  liveBusyRef.current = true;
4760
4154
  try {
4761
- const t = (await transcribeSamples(tail, acc.sampleRate)).trim();
4155
+ const t = (await chunkTRZLN32I_cjs.transcribeSamples(tail, acc.sampleRate)).trim();
4762
4156
  if (!liveRecRef.current) return;
4763
4157
  const committed = liveCommittedRef.current;
4764
4158
  setLiveText(committed ? t ? `${committed} ${t}` : committed : t);
@@ -4790,7 +4184,7 @@ function useHeyOzwell(options = {}) {
4790
4184
  const dur = wakeRef.current?.getLastWakeDuration() ?? 0;
4791
4185
  const hint = dur > 0 ? dur + stopTrimLeadIn() : 0;
4792
4186
  try {
4793
- blob = await trimTrailingStopPhrase(blob, hint);
4187
+ blob = await chunkTRZLN32I_cjs.trimTrailingStopPhrase(blob, hint);
4794
4188
  } catch {
4795
4189
  }
4796
4190
  }
@@ -4798,21 +4192,21 @@ function useHeyOzwell(options = {}) {
4798
4192
  if (conversationMode && diarRef.current.ready) {
4799
4193
  const turns = await diarRef.current.diarize(blob);
4800
4194
  const joined = turns.map((t) => `${t.speaker}: ${t.text}`).join("\n");
4801
- text = stripStopPhrase(joined) || stripStopPhrase(await transcribeBlob(blob));
4195
+ text = chunkTRZLN32I_cjs.stripStopPhrase(joined) || chunkTRZLN32I_cjs.stripStopPhrase(await chunkTRZLN32I_cjs.transcribeBlob(blob));
4802
4196
  } else if (transcription === "server") {
4803
4197
  let raw;
4804
4198
  try {
4805
- raw = await transcribeServer(blob);
4199
+ raw = await chunkTRZLN32I_cjs.transcribeServer(blob);
4806
4200
  } catch (e) {
4807
4201
  console.warn(
4808
4202
  "[hey-ozwell] server ASR failed \u2192 on-device fallback",
4809
4203
  e
4810
4204
  );
4811
- raw = await transcribeBlob(blob);
4205
+ raw = await chunkTRZLN32I_cjs.transcribeBlob(blob);
4812
4206
  }
4813
- text = stripStopPhrase(raw);
4207
+ text = chunkTRZLN32I_cjs.stripStopPhrase(raw);
4814
4208
  } else {
4815
- text = stripStopPhrase(await transcribeBlob(blob));
4209
+ text = chunkTRZLN32I_cjs.stripStopPhrase(await chunkTRZLN32I_cjs.transcribeBlob(blob));
4816
4210
  }
4817
4211
  if (text) {
4818
4212
  if (reviewBeforeSend) setTyped(text);
@@ -4899,7 +4293,7 @@ function useHeyOzwell(options = {}) {
4899
4293
  void warmWakeModels(assetBase);
4900
4294
  }, [assetBase]);
4901
4295
  React13__namespace.useEffect(() => {
4902
- if (active) warmWhisper();
4296
+ if (active) chunkTRZLN32I_cjs.warmWhisper();
4903
4297
  }, [active]);
4904
4298
  const toggle = React13__namespace.useCallback(
4905
4299
  (next) => {
@@ -5015,7 +4409,7 @@ function AIChatTrigger({
5015
4409
  children: badge > 9 ? "9+" : badge
5016
4410
  }
5017
4411
  ),
5018
- /* @__PURE__ */ jsxRuntime.jsx(chunkXRVMYT5G_cjs.SparklesIcon, { size: "lg" })
4412
+ /* @__PURE__ */ jsxRuntime.jsx(chunkQKW2QCGI_cjs.SparklesIcon, { size: "lg" })
5019
4413
  ]
5020
4414
  }
5021
4415
  );
@@ -5193,7 +4587,7 @@ function useVoiceSetup(options = {}) {
5193
4587
  const [adding, setAdding] = React13__namespace.useState(startAdding);
5194
4588
  const total = PHRASES2.length * REPS;
5195
4589
  React13__namespace.useEffect(() => {
5196
- warmWhisper();
4590
+ chunkTRZLN32I_cjs.warmWhisper();
5197
4591
  let cancelled = false;
5198
4592
  whatRef.current = {};
5199
4593
  void chunkOGNADPM4_cjs.loadWhatPrints(voiceprintNamespace).then((w) => {
@@ -5413,6 +4807,7 @@ function VoiceSetup({
5413
4807
  {
5414
4808
  style: {
5415
4809
  position: "absolute",
4810
+ // rtl-ignore -- symmetric centering: left:50% + translate(-50%) is direction-independent
5416
4811
  left: "50%",
5417
4812
  top: "50%",
5418
4813
  width: 150,
@@ -5429,6 +4824,7 @@ function VoiceSetup({
5429
4824
  {
5430
4825
  style: {
5431
4826
  position: "absolute",
4827
+ // rtl-ignore -- symmetric centering: left:50% + translate(-50%) is direction-independent
5432
4828
  left: "50%",
5433
4829
  top: "50%",
5434
4830
  width: 180,
@@ -5497,7 +4893,7 @@ function VoiceSetup({
5497
4893
  {
5498
4894
  className: "absolute flex items-center justify-center rounded-full text-white",
5499
4895
  style: {
5500
- right: -2,
4896
+ insetInlineEnd: -2,
5501
4897
  bottom: -2,
5502
4898
  width: 36,
5503
4899
  height: 36,
@@ -5804,23 +5200,34 @@ function HandsFreeChat({
5804
5200
  const placeholder = !oz.active ? "Ozwell is off \u2014 tap the octopus to listen" : phase === "listening" ? ready ? "Say \u201Chey ozwell\u201D, or type\u2026" : error ? `\u26A0\uFE0F ${error}` : "\u2026 loading models" : oz.chatProps.inputPlaceholder;
5805
5201
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { height: "100vh", display: "flex", flexDirection: "column" }, children: [
5806
5202
  /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { flex: 1, minHeight: 0, position: "relative" }, children: [
5807
- /* @__PURE__ */ jsxRuntime.jsx("div", { style: { position: "absolute", top: 11, right: 16, zIndex: 10 }, children: /* @__PURE__ */ jsxRuntime.jsx(
5808
- OzwellSettingsMenu,
5203
+ /* @__PURE__ */ jsxRuntime.jsx(
5204
+ "div",
5809
5205
  {
5810
- trigger: /* @__PURE__ */ jsxRuntime.jsx(
5811
- HeyOzwellToggle,
5206
+ style: {
5207
+ position: "absolute",
5208
+ top: 11,
5209
+ insetInlineEnd: 16,
5210
+ zIndex: 10
5211
+ },
5212
+ children: /* @__PURE__ */ jsxRuntime.jsx(
5213
+ OzwellSettingsMenu,
5812
5214
  {
5813
- ...oz.toggleProps,
5814
- logoSrc,
5815
- size: 34
5215
+ trigger: /* @__PURE__ */ jsxRuntime.jsx(
5216
+ HeyOzwellToggle,
5217
+ {
5218
+ ...oz.toggleProps,
5219
+ logoSrc,
5220
+ size: 34
5221
+ }
5222
+ ),
5223
+ open: oz.settingsOpen,
5224
+ onOpenChange: oz.setSettingsOpen,
5225
+ modelStatus: oz.modelStatus,
5226
+ onManageVoices: () => setVoicesOpen(true)
5816
5227
  }
5817
- ),
5818
- open: oz.settingsOpen,
5819
- onOpenChange: oz.setSettingsOpen,
5820
- modelStatus: oz.modelStatus,
5821
- onManageVoices: () => setVoicesOpen(true)
5228
+ )
5822
5229
  }
5823
- ) }),
5230
+ ),
5824
5231
  /* @__PURE__ */ jsxRuntime.jsx(
5825
5232
  AIChat,
5826
5233
  {
@@ -5848,7 +5255,7 @@ function HandsFreeChat({
5848
5255
  style: { display: "inline-flex" },
5849
5256
  title: "Dictate \u2014 or just say \u201Chey ozwell\u201D",
5850
5257
  children: /* @__PURE__ */ jsxRuntime.jsx(
5851
- chunkJTSKPDPH_cjs.RecordButton,
5258
+ chunkHIYQ3M5V_cjs.RecordButton,
5852
5259
  {
5853
5260
  variant: "ghost",
5854
5261
  size: "sm",
@@ -5996,7 +5403,7 @@ function useVisitScribe(options = {}) {
5996
5403
  acc.discardBefore(liveCursorRef.current);
5997
5404
  liveBusyRef.current = true;
5998
5405
  try {
5999
- const text = (await transcribeSamples(window2, acc.sampleRate)).trim();
5406
+ const text = (await chunkTRZLN32I_cjs.transcribeSamples(window2, acc.sampleRate)).trim();
6000
5407
  if (text && liveRecRef.current)
6001
5408
  setLiveText((prev) => prev ? `${prev} ${text}` : text);
6002
5409
  } catch {
@@ -6618,7 +6025,7 @@ function ReconciliationProposalRow({
6618
6025
  children: [
6619
6026
  /* @__PURE__ */ jsxRuntime.jsxs("dt", { className: "text-muted-foreground flex items-center gap-1 text-[11px] tracking-wide uppercase", children: [
6620
6027
  /* @__PURE__ */ jsxRuntime.jsx(
6621
- chunkXRVMYT5G_cjs.SparklesIcon,
6028
+ chunkQKW2QCGI_cjs.SparklesIcon,
6622
6029
  {
6623
6030
  size: "sm",
6624
6031
  className: "text-primary-700 dark:text-primary-400"
@@ -6674,7 +6081,7 @@ function SourcePill({ source }) {
6674
6081
  "text-muted-foreground"
6675
6082
  ),
6676
6083
  children: [
6677
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary-700 dark:text-primary-400 flex items-center", children: source.icon ?? /* @__PURE__ */ jsxRuntime.jsx(chunkXRVMYT5G_cjs.SparklesIcon, { size: "sm" }) }),
6084
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-primary-700 dark:text-primary-400 flex items-center", children: source.icon ?? /* @__PURE__ */ jsxRuntime.jsx(chunkQKW2QCGI_cjs.SparklesIcon, { size: "sm" }) }),
6678
6085
  source.thumbnailUrl && /* @__PURE__ */ jsxRuntime.jsx(
6679
6086
  "img",
6680
6087
  {
@@ -7418,7 +6825,7 @@ function CodingChips({ coding }) {
7418
6825
  const inline = icd.length > 0 ? icd : coding.filter((c) => c.primary);
7419
6826
  const label = inline.map((c) => c.code).join(", ");
7420
6827
  return /* @__PURE__ */ jsxRuntime.jsx(
7421
- chunkJSXIB6EJ_cjs.Tooltip,
6828
+ chunkGLG6UE2H_cjs.Tooltip,
7422
6829
  {
7423
6830
  content: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex flex-col gap-0.5", children: coding.map((c) => /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
7424
6831
  c.system,
@@ -7483,7 +6890,7 @@ function UncertaintyBadge({
7483
6890
  ...overall ? [`Overall certainty: ${overall}`] : [],
7484
6891
  ...fieldEntries.map(([field, f]) => describeFieldUncertainty(field, f))
7485
6892
  ];
7486
- return /* @__PURE__ */ jsxRuntime.jsx(chunkJSXIB6EJ_cjs.Tooltip, { content: lines.join(" \xB7 "), children: /* @__PURE__ */ jsxRuntime.jsxs(chunk7E46YDOT_cjs.Badge, { variant: "warning", size: "sm", className: "gap-1", children: [
6893
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkGLG6UE2H_cjs.Tooltip, { content: lines.join(" \xB7 "), children: /* @__PURE__ */ jsxRuntime.jsxs(chunk7E46YDOT_cjs.Badge, { variant: "warning", size: "sm", className: "gap-1", children: [
7487
6894
  /* @__PURE__ */ jsxRuntime.jsx(chunkL7L5S2HO_cjs.HelpCircle, { size: 10 }),
7488
6895
  overall ? `${overall} certainty` : `${fieldEntries.length} uncertain`
7489
6896
  ] }) });
@@ -7594,7 +7001,7 @@ function ConcernRow({
7594
7001
  className: "text-muted-foreground/50 shrink-0"
7595
7002
  }
7596
7003
  ) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground/60 select-none", children: "\u2022" }),
7597
- /* @__PURE__ */ jsxRuntime.jsx(chunkJSXIB6EJ_cjs.Tooltip, { content: concernHistoryContent(concern), children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground font-medium", children: current.text }) }),
7004
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGLG6UE2H_cjs.Tooltip, { content: concernHistoryContent(concern), children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground font-medium", children: current.text }) }),
7598
7005
  /* @__PURE__ */ jsxRuntime.jsx(CodingChips, { coding: current.coding }),
7599
7006
  current.verificationStatus !== "confirmed" && current.verificationStatus !== "unconfirmed" && /* @__PURE__ */ jsxRuntime.jsx(
7600
7007
  chunk7E46YDOT_cjs.Badge,
@@ -7626,8 +7033,8 @@ function ConcernRow({
7626
7033
  ]
7627
7034
  }
7628
7035
  ),
7629
- !readOnly && /* @__PURE__ */ jsxRuntime.jsx(chunkFBN2VHUV_cjs.RowActionToolbar, { label: `Actions for ${current.text}`, align: "top", children: visibleActions.map((action) => /* @__PURE__ */ jsxRuntime.jsx(
7630
- chunkFBN2VHUV_cjs.RowIconButton,
7036
+ !readOnly && /* @__PURE__ */ jsxRuntime.jsx(chunk5VA2HJ5B_cjs.RowActionToolbar, { label: `Actions for ${current.text}`, align: "top", children: visibleActions.map((action) => /* @__PURE__ */ jsxRuntime.jsx(
7037
+ chunk5VA2HJ5B_cjs.RowIconButton,
7631
7038
  {
7632
7039
  label: ACTION_META[action].label,
7633
7040
  icon: ACTION_META[action].icon,
@@ -7892,7 +7299,7 @@ function OrderContent({ order }) {
7892
7299
  const meta = ORDER_TYPE_META[order.type];
7893
7300
  const Icon = meta.icon;
7894
7301
  return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground flex items-center gap-2 text-sm", children: [
7895
- /* @__PURE__ */ jsxRuntime.jsx(chunkJSXIB6EJ_cjs.Tooltip, { content: meta.label, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: 14 }) }),
7302
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGLG6UE2H_cjs.Tooltip, { content: meta.label, children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: 14 }) }),
7896
7303
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: meta.label }),
7897
7304
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground", children: order.display }),
7898
7305
  order.priority && order.priority !== "routine" && /* @__PURE__ */ jsxRuntime.jsx(
@@ -8054,13 +7461,13 @@ function OrderRow({
8054
7461
  ) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
8055
7462
  /* @__PURE__ */ jsxRuntime.jsx(OrderContent, { order }),
8056
7463
  interactive && /* @__PURE__ */ jsxRuntime.jsxs(
8057
- chunkFBN2VHUV_cjs.RowActionToolbar,
7464
+ chunk5VA2HJ5B_cjs.RowActionToolbar,
8058
7465
  {
8059
7466
  label: `Actions for ${order.display}`,
8060
7467
  group: "order",
8061
7468
  children: [
8062
7469
  canEdit && /* @__PURE__ */ jsxRuntime.jsx(
8063
- chunkFBN2VHUV_cjs.RowIconButton,
7470
+ chunk5VA2HJ5B_cjs.RowIconButton,
8064
7471
  {
8065
7472
  label: "Edit",
8066
7473
  icon: chunkL7L5S2HO_cjs.Pencil,
@@ -8128,7 +7535,7 @@ function OrderRow({
8128
7535
  }
8129
7536
  ),
8130
7537
  controls?.remove && /* @__PURE__ */ jsxRuntime.jsx(
8131
- chunkFBN2VHUV_cjs.RowIconButton,
7538
+ chunk5VA2HJ5B_cjs.RowIconButton,
8132
7539
  {
8133
7540
  label: "Remove",
8134
7541
  icon: chunkL7L5S2HO_cjs.Trash2,
@@ -8317,7 +7724,7 @@ var Assessment = React13__namespace.forwardRef(
8317
7724
  if (addMode !== "auto") setPendingFreeText(null);
8318
7725
  }, [addMode]);
8319
7726
  const [announcement, setAnnouncement] = chunkCPDNX3LS_cjs.useLiveAnnouncement();
8320
- const ambientCodeLookup = chunkFBN2VHUV_cjs.useCodeLookupConfig();
7727
+ const ambientCodeLookup = chunk5VA2HJ5B_cjs.useCodeLookupConfig();
8321
7728
  const effectiveRenderOrderSearch = renderOrderSearch === false ? void 0 : renderOrderSearch ?? (ambientCodeLookup ? contextOrderSearch(ambientCodeLookup) : void 0);
8322
7729
  const concernById = React13__namespace.useMemo(
8323
7730
  () => new Map(concerns.map((c) => [c.concernId, c])),
@@ -8575,7 +7982,7 @@ var Assessment = React13__namespace.forwardRef(
8575
7982
  assertion.verificationStatus !== "confirmed" && /* @__PURE__ */ jsxRuntime.jsx(chunk7E46YDOT_cjs.Badge, { variant: "warning", size: "sm", children: assertion.verificationStatus }),
8576
7983
  /* @__PURE__ */ jsxRuntime.jsx(CodingChips, { coding: assertion.coding }),
8577
7984
  !readOnly && showConcernToolbar && /* @__PURE__ */ jsxRuntime.jsxs(
8578
- chunkFBN2VHUV_cjs.RowActionToolbar,
7985
+ chunk5VA2HJ5B_cjs.RowActionToolbar,
8579
7986
  {
8580
7987
  label: `Actions for ${assertion.text}`,
8581
7988
  align: "top",
@@ -8589,7 +7996,7 @@ var Assessment = React13__namespace.forwardRef(
8589
7996
  toolbarActions.map((action) => {
8590
7997
  const meta = ACTION_META2[action];
8591
7998
  return /* @__PURE__ */ jsxRuntime.jsx(
8592
- chunkFBN2VHUV_cjs.RowIconButton,
7999
+ chunk5VA2HJ5B_cjs.RowIconButton,
8593
8000
  {
8594
8001
  label: meta.label,
8595
8002
  icon: meta.icon,
@@ -8610,7 +8017,7 @@ var Assessment = React13__namespace.forwardRef(
8610
8017
  );
8611
8018
  }),
8612
8019
  rowActions.includes("remove") && onRemoveAssessment && /* @__PURE__ */ jsxRuntime.jsx(
8613
- chunkFBN2VHUV_cjs.RowIconButton,
8020
+ chunk5VA2HJ5B_cjs.RowIconButton,
8614
8021
  {
8615
8022
  label: `Remove ${assertion.text} from assessment`,
8616
8023
  icon: chunkL7L5S2HO_cjs.Trash2,
@@ -9929,7 +9336,7 @@ function ConsentSwitch({
9929
9336
  "data-slot": "consent-switch-thumb",
9930
9337
  className: chunkS5RVSXDV_cjs.cn(
9931
9338
  "pointer-events-none inline-block h-5 w-5 rounded-full bg-white shadow ring-0 transition-transform duration-200 ease-in-out",
9932
- checked ? "translate-x-5" : "translate-x-0.5"
9339
+ checked ? "translate-x-5 rtl:-translate-x-5" : "translate-x-0.5 rtl:-translate-x-0.5"
9933
9340
  )
9934
9341
  }
9935
9342
  )
@@ -11783,7 +11190,7 @@ function BusinessHoursRulesEditor({
11783
11190
  labels
11784
11191
  }
11785
11192
  ) : /* @__PURE__ */ jsxRuntime.jsx(
11786
- chunkZSGEGISB_cjs.DateInput,
11193
+ chunkPHUTJKHL_cjs.DateInput,
11787
11194
  {
11788
11195
  inputType: "time",
11789
11196
  timeFormat,
@@ -11809,7 +11216,7 @@ function BusinessHoursRulesEditor({
11809
11216
  labels
11810
11217
  }
11811
11218
  ) : /* @__PURE__ */ jsxRuntime.jsx(
11812
- chunkZSGEGISB_cjs.DateInput,
11219
+ chunkPHUTJKHL_cjs.DateInput,
11813
11220
  {
11814
11221
  inputType: "time",
11815
11222
  timeFormat,
@@ -12153,7 +11560,7 @@ var CaseManagementHeader = React13__namespace.forwardRef(
12153
11560
  (onAddCaseNote || onCloseCase || actions) && // Horizontal always: long labels truncate (Button's built-in
12154
11561
  // ellipsis) instead of stacking or starving the identity block.
12155
11562
  /* @__PURE__ */ jsxRuntime.jsxs(
12156
- chunkXRVMYT5G_cjs.ButtonGroup,
11563
+ chunkQKW2QCGI_cjs.ButtonGroup,
12157
11564
  {
12158
11565
  orientation: "horizontal",
12159
11566
  className: "max-w-[60%] min-w-0 gap-2",
@@ -12373,7 +11780,7 @@ function ConditionEditor({
12373
11780
  "data-testid": dataTestId
12374
11781
  }) {
12375
11782
  const prior = concern ? currentAssertion(concern) : void 0;
12376
- const ambientCodeLookup = chunkFBN2VHUV_cjs.useCodeLookupConfig();
11783
+ const ambientCodeLookup = chunk5VA2HJ5B_cjs.useCodeLookupConfig();
12377
11784
  const effectiveRenderCodeSearch = renderCodeSearch === false ? void 0 : renderCodeSearch ?? (ambientCodeLookup ? contextConditionCodeSearch(ambientCodeLookup) : void 0);
12378
11785
  const [text, setText] = React13__namespace.useState("");
12379
11786
  const [coding, setCoding] = React13__namespace.useState([]);
@@ -12802,7 +12209,7 @@ function ConditionEditor({
12802
12209
  ] }),
12803
12210
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 items-end gap-2 sm:grid-cols-[minmax(10rem,0.8fr)_auto_minmax(14rem,1.2fr)]", children: [
12804
12211
  /* @__PURE__ */ jsxRuntime.jsx(
12805
- chunkZSGEGISB_cjs.DateInput,
12212
+ chunkPHUTJKHL_cjs.DateInput,
12806
12213
  {
12807
12214
  "aria-label": "Onset date (exact)",
12808
12215
  value: onsetDate,
@@ -12887,7 +12294,7 @@ function CheckrIntegration({
12887
12294
  viewReports = "View Reports",
12888
12295
  noReports = "No background checks yet",
12889
12296
  refresh = "Refresh",
12890
- pending: pending2 = "Pending",
12297
+ pending = "Pending",
12891
12298
  running = "Running",
12892
12299
  complete = "Complete",
12893
12300
  failed = "Failed",
@@ -12919,7 +12326,7 @@ function CheckrIntegration({
12919
12326
  setSelectedReports((prev) => prev.size > 0 ? /* @__PURE__ */ new Set() : prev);
12920
12327
  }, [reports, connected]);
12921
12328
  const statusLabels = {
12922
- pending: pending2,
12329
+ pending,
12923
12330
  running,
12924
12331
  complete,
12925
12332
  failed,
@@ -14524,9 +13931,20 @@ function RowActionMenu({
14524
13931
  actions
14525
13932
  }) {
14526
13933
  const [open, setOpen] = React13__namespace.useState(false);
14527
- const menuRef = React13__namespace.useRef(null);
14528
13934
  const buttonRef = React13__namespace.useRef(null);
14529
- const outsideRefs = React13__namespace.useMemo(() => [menuRef, buttonRef], []);
13935
+ const direction = chunkZ3WMDVMR_cjs.useDirection(buttonRef);
13936
+ const {
13937
+ anchorRef,
13938
+ floatingRef,
13939
+ style: menuStyle
13940
+ } = chunkAOHJILLU_cjs.useAnchoredPosition({
13941
+ open,
13942
+ placement: direction === "rtl" ? "bottom-start" : "bottom-end"
13943
+ });
13944
+ const outsideRefs = React13__namespace.useMemo(
13945
+ () => [floatingRef, buttonRef],
13946
+ [floatingRef]
13947
+ );
14530
13948
  chunkFSGEDDF2_cjs.useClickOutside(outsideRefs, () => setOpen(false), open);
14531
13949
  React13__namespace.useEffect(() => {
14532
13950
  if (!open) return;
@@ -14536,20 +13954,14 @@ function RowActionMenu({
14536
13954
  document.addEventListener("keydown", handleKey);
14537
13955
  return () => document.removeEventListener("keydown", handleKey);
14538
13956
  }, [open]);
14539
- const [menuPos, setMenuPos] = React13__namespace.useState(null);
14540
- React13__namespace.useLayoutEffect(() => {
14541
- if (!open || !buttonRef.current) return;
14542
- const rect = buttonRef.current.getBoundingClientRect();
14543
- setMenuPos({
14544
- top: rect.bottom + 4,
14545
- left: rect.right
14546
- });
14547
- }, [open]);
14548
13957
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
14549
13958
  /* @__PURE__ */ jsxRuntime.jsx(
14550
13959
  "button",
14551
13960
  {
14552
- ref: buttonRef,
13961
+ ref: (el) => {
13962
+ buttonRef.current = el;
13963
+ anchorRef.current = el;
13964
+ },
14553
13965
  type: "button",
14554
13966
  onClick: (e) => {
14555
13967
  e.stopPropagation();
@@ -14568,18 +13980,14 @@ function RowActionMenu({
14568
13980
  children: /* @__PURE__ */ jsxRuntime.jsx(chunkL7L5S2HO_cjs.MoreHorizontal, { size: 14 })
14569
13981
  }
14570
13982
  ),
14571
- open && menuPos && ReactDOM__namespace.createPortal(
13983
+ open && ReactDOM__namespace.createPortal(
14572
13984
  /* @__PURE__ */ jsxRuntime.jsx(
14573
13985
  "div",
14574
13986
  {
14575
- ref: menuRef,
13987
+ ref: floatingRef,
14576
13988
  role: "menu",
14577
- style: {
14578
- position: "fixed",
14579
- top: menuPos.top,
14580
- left: menuPos.left,
14581
- transform: "translateX(-100%)"
14582
- },
13989
+ dir: direction,
13990
+ style: menuStyle,
14583
13991
  className: chunkS5RVSXDV_cjs.cn(
14584
13992
  "z-[9999] min-w-[10rem]",
14585
13993
  "rounded-lg border border-neutral-200 bg-white py-1 shadow-lg",
@@ -15343,7 +14751,7 @@ function CountryDropdown({
15343
14751
  ...props
15344
14752
  }) {
15345
14753
  return /* @__PURE__ */ jsxRuntime.jsx(
15346
- chunkCFI3TQMA_cjs.CountryDropdownBase,
14754
+ chunk56C7K4MV_cjs.CountryDropdownBase,
15347
14755
  {
15348
14756
  ...props,
15349
14757
  "aria-label": ariaLabel,
@@ -16236,10 +15644,10 @@ function DashboardWidgetTableInner({
16236
15644
  "data-slot": "dashboard-widget-table",
16237
15645
  className: chunkS5RVSXDV_cjs.cn("-mx-4", className),
16238
15646
  ...props,
16239
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkIJYTASQQ_cjs.Table, { responsive: true, children: [
16240
- showHeader && /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkIJYTASQQ_cjs.TableRow, { children: [
15647
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunk3AD4HFYI_cjs.Table, { responsive: true, children: [
15648
+ showHeader && /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunk3AD4HFYI_cjs.TableRow, { children: [
16241
15649
  columns.map((col) => /* @__PURE__ */ jsxRuntime.jsx(
16242
- chunkIJYTASQQ_cjs.TableHead,
15650
+ chunk3AD4HFYI_cjs.TableHead,
16243
15651
  {
16244
15652
  className: chunkS5RVSXDV_cjs.cn(
16245
15653
  "px-4 text-xs",
@@ -16251,10 +15659,10 @@ function DashboardWidgetTableInner({
16251
15659
  },
16252
15660
  col.key
16253
15661
  )),
16254
- actions && actions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHead, { className: "w-0 px-4", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Actions" }) })
15662
+ actions && actions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHead, { className: "w-0 px-4", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Actions" }) })
16255
15663
  ] }) }),
16256
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableBody, { children: data.map((row, rowIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
16257
- chunkIJYTASQQ_cjs.TableRow,
15664
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableBody, { children: data.map((row, rowIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
15665
+ chunk3AD4HFYI_cjs.TableRow,
16258
15666
  {
16259
15667
  className: chunkS5RVSXDV_cjs.cn(
16260
15668
  onRowClick && "hover:bg-muted/50 cursor-pointer transition-colors"
@@ -16262,7 +15670,7 @@ function DashboardWidgetTableInner({
16262
15670
  onClick: onRowClick ? () => onRowClick(row, rowIndex) : void 0,
16263
15671
  children: [
16264
15672
  columns.map((col) => /* @__PURE__ */ jsxRuntime.jsx(
16265
- chunkIJYTASQQ_cjs.TableCell,
15673
+ chunk3AD4HFYI_cjs.TableCell,
16266
15674
  {
16267
15675
  className: chunkS5RVSXDV_cjs.cn(
16268
15676
  "px-4 py-2 text-sm",
@@ -16274,7 +15682,7 @@ function DashboardWidgetTableInner({
16274
15682
  },
16275
15683
  col.key
16276
15684
  )),
16277
- actions && actions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { className: "w-0 px-2 py-2 text-end", children: /* @__PURE__ */ jsxRuntime.jsx(
15685
+ actions && actions.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { className: "w-0 px-2 py-2 text-end", children: /* @__PURE__ */ jsxRuntime.jsx(
16278
15686
  WidgetRowActionMenu,
16279
15687
  {
16280
15688
  row,
@@ -16296,18 +15704,26 @@ function WidgetRowActionMenu({
16296
15704
  actions
16297
15705
  }) {
16298
15706
  const [open, setOpen] = React13__namespace.useState(false);
16299
- const menuRef = React13__namespace.useRef(null);
16300
15707
  const buttonRef = React13__namespace.useRef(null);
15708
+ const direction = chunkZ3WMDVMR_cjs.useDirection(buttonRef);
15709
+ const {
15710
+ anchorRef,
15711
+ floatingRef,
15712
+ style: menuStyle
15713
+ } = chunkAOHJILLU_cjs.useAnchoredPosition({
15714
+ open,
15715
+ placement: direction === "rtl" ? "bottom-start" : "bottom-end"
15716
+ });
16301
15717
  React13__namespace.useEffect(() => {
16302
15718
  if (!open) return;
16303
15719
  function handleClick(e) {
16304
- if (menuRef.current && !menuRef.current.contains(e.target) && buttonRef.current && !buttonRef.current.contains(e.target)) {
15720
+ if (floatingRef.current && !floatingRef.current.contains(e.target) && buttonRef.current && !buttonRef.current.contains(e.target)) {
16305
15721
  setOpen(false);
16306
15722
  }
16307
15723
  }
16308
15724
  document.addEventListener("mousedown", handleClick);
16309
15725
  return () => document.removeEventListener("mousedown", handleClick);
16310
- }, [open]);
15726
+ }, [open, floatingRef]);
16311
15727
  React13__namespace.useEffect(() => {
16312
15728
  if (!open) return;
16313
15729
  function handleKey(e) {
@@ -16316,15 +15732,6 @@ function WidgetRowActionMenu({
16316
15732
  document.addEventListener("keydown", handleKey);
16317
15733
  return () => document.removeEventListener("keydown", handleKey);
16318
15734
  }, [open]);
16319
- const [menuPos, setMenuPos] = React13__namespace.useState(null);
16320
- React13__namespace.useLayoutEffect(() => {
16321
- if (!open || !buttonRef.current) return;
16322
- const rect = buttonRef.current.getBoundingClientRect();
16323
- setMenuPos({
16324
- top: rect.bottom + 4,
16325
- left: rect.right
16326
- });
16327
- }, [open]);
16328
15735
  const visibleActions = actions.filter(
16329
15736
  (action) => !action.hidden?.(row, rowIndex)
16330
15737
  );
@@ -16333,7 +15740,10 @@ function WidgetRowActionMenu({
16333
15740
  /* @__PURE__ */ jsxRuntime.jsx(
16334
15741
  "button",
16335
15742
  {
16336
- ref: buttonRef,
15743
+ ref: (el) => {
15744
+ buttonRef.current = el;
15745
+ anchorRef.current = el;
15746
+ },
16337
15747
  type: "button",
16338
15748
  onClick: (e) => {
16339
15749
  e.stopPropagation();
@@ -16352,18 +15762,14 @@ function WidgetRowActionMenu({
16352
15762
  children: /* @__PURE__ */ jsxRuntime.jsx(chunkL7L5S2HO_cjs.MoreHorizontal, { size: 14 })
16353
15763
  }
16354
15764
  ),
16355
- open && menuPos && ReactDOM.createPortal(
15765
+ open && ReactDOM.createPortal(
16356
15766
  /* @__PURE__ */ jsxRuntime.jsx(
16357
15767
  "div",
16358
15768
  {
16359
- ref: menuRef,
15769
+ ref: floatingRef,
16360
15770
  role: "menu",
16361
- style: {
16362
- position: "fixed",
16363
- top: menuPos.top,
16364
- left: menuPos.left,
16365
- transform: "translateX(-100%)"
16366
- },
15771
+ dir: direction,
15772
+ style: menuStyle,
16367
15773
  className: chunkS5RVSXDV_cjs.cn(
16368
15774
  "z-[9999] min-w-[10rem]",
16369
15775
  "rounded-lg border border-neutral-200 bg-white py-1 shadow-lg",
@@ -22747,21 +22153,21 @@ function ActionButton({ label, onClick, href, variant }) {
22747
22153
  );
22748
22154
  }
22749
22155
  function DefaultIllustration({ type }) {
22750
- const iconClasses = "h-24 w-24 text-muted-foreground";
22156
+ const iconClasses2 = "h-24 w-24 text-muted-foreground";
22751
22157
  switch (type) {
22752
22158
  case "404":
22753
- return /* @__PURE__ */ jsxRuntime.jsx(Search404Icon, { className: iconClasses });
22159
+ return /* @__PURE__ */ jsxRuntime.jsx(Search404Icon, { className: iconClasses2 });
22754
22160
  case "500":
22755
- return /* @__PURE__ */ jsxRuntime.jsx(ServerErrorIcon, { className: iconClasses });
22161
+ return /* @__PURE__ */ jsxRuntime.jsx(ServerErrorIcon, { className: iconClasses2 });
22756
22162
  case "403":
22757
22163
  case "401":
22758
- return /* @__PURE__ */ jsxRuntime.jsx(LockIcon, { className: iconClasses });
22164
+ return /* @__PURE__ */ jsxRuntime.jsx(LockIcon, { className: iconClasses2 });
22759
22165
  case "offline":
22760
- return /* @__PURE__ */ jsxRuntime.jsx(WifiOffIcon, { className: iconClasses });
22166
+ return /* @__PURE__ */ jsxRuntime.jsx(WifiOffIcon, { className: iconClasses2 });
22761
22167
  case "maintenance":
22762
- return /* @__PURE__ */ jsxRuntime.jsx(WrenchIcon, { className: iconClasses });
22168
+ return /* @__PURE__ */ jsxRuntime.jsx(WrenchIcon, { className: iconClasses2 });
22763
22169
  default:
22764
- return /* @__PURE__ */ jsxRuntime.jsx(AlertIcon, { className: iconClasses });
22170
+ return /* @__PURE__ */ jsxRuntime.jsx(AlertIcon, { className: iconClasses2 });
22765
22171
  }
22766
22172
  }
22767
22173
  function Search404Icon({ className }) {
@@ -23153,22 +22559,22 @@ function FileManager({
23153
22559
  ] })
23154
22560
  }
23155
22561
  ),
23156
- /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "file-manager-table", children: /* @__PURE__ */ jsxRuntime.jsxs(chunkIJYTASQQ_cjs.Table, { responsive: true, children: [
23157
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkIJYTASQQ_cjs.TableRow, { children: [
23158
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHead, { children: "Filename" }),
23159
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHead, { className: "text-center", children: "Extension" }),
23160
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHead, { className: "text-center", children: "Size" }),
23161
- hasActions && /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHead, { className: "w-10", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Actions" }) })
22562
+ /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "file-manager-table", children: /* @__PURE__ */ jsxRuntime.jsxs(chunk3AD4HFYI_cjs.Table, { responsive: true, children: [
22563
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunk3AD4HFYI_cjs.TableRow, { children: [
22564
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHead, { children: "Filename" }),
22565
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHead, { className: "text-center", children: "Extension" }),
22566
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHead, { className: "text-center", children: "Size" }),
22567
+ hasActions && /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHead, { className: "w-10", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Actions" }) })
23162
22568
  ] }) }),
23163
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableBody, { children: files.length > 0 ? files.map((file) => /* @__PURE__ */ jsxRuntime.jsxs(chunkIJYTASQQ_cjs.TableRow, { "data-slot": "file-manager-row", children: [
23164
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
22569
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableBody, { children: files.length > 0 ? files.map((file) => /* @__PURE__ */ jsxRuntime.jsxs(chunk3AD4HFYI_cjs.TableRow, { "data-slot": "file-manager-row", children: [
22570
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
23165
22571
  getFileIcon(file.fileExtension),
23166
22572
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "max-w-xs truncate text-sm text-gray-900 dark:text-white", children: file.filename })
23167
22573
  ] }) }),
23168
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { className: "text-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-xs uppercase", children: file.fileExtension.replace(".", "") }) }),
23169
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { className: "text-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-sm", children: formatFileSize3(file.fileSize) }) }),
22574
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { className: "text-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-xs uppercase", children: file.fileExtension.replace(".", "") }) }),
22575
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { className: "text-center", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-sm", children: formatFileSize3(file.fileSize) }) }),
23170
22576
  hasActions && /* @__PURE__ */ jsxRuntime.jsx(
23171
- chunkIJYTASQQ_cjs.TableCell,
22577
+ chunk3AD4HFYI_cjs.TableCell,
23172
22578
  {
23173
22579
  "data-slot": "file-manager-actions",
23174
22580
  className: "text-end",
@@ -23184,7 +22590,7 @@ function FileManager({
23184
22590
  )
23185
22591
  }
23186
22592
  )
23187
- ] }, file.id)) : /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableRow, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { colSpan: hasActions ? 4 : 3, className: "py-8", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "file-manager-empty", className: "text-center", children: [
22593
+ ] }, file.id)) : /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableRow, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { colSpan: hasActions ? 4 : 3, className: "py-8", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "file-manager-empty", className: "text-center", children: [
23188
22594
  /* @__PURE__ */ jsxRuntime.jsx(
23189
22595
  "svg",
23190
22596
  {
@@ -23218,18 +22624,26 @@ function FileRowActionMenu({
23218
22624
  onDelete
23219
22625
  }) {
23220
22626
  const [open, setOpen] = React13__namespace.useState(false);
23221
- const menuRef = React13__namespace.useRef(null);
23222
22627
  const buttonRef = React13__namespace.useRef(null);
22628
+ const direction = chunkZ3WMDVMR_cjs.useDirection(buttonRef);
22629
+ const {
22630
+ anchorRef,
22631
+ floatingRef,
22632
+ style: menuStyle
22633
+ } = chunkAOHJILLU_cjs.useAnchoredPosition({
22634
+ open,
22635
+ placement: direction === "rtl" ? "bottom-start" : "bottom-end"
22636
+ });
23223
22637
  React13__namespace.useEffect(() => {
23224
22638
  if (!open) return;
23225
22639
  function handleClick(e) {
23226
- if (menuRef.current && !menuRef.current.contains(e.target) && buttonRef.current && !buttonRef.current.contains(e.target)) {
22640
+ if (floatingRef.current && !floatingRef.current.contains(e.target) && buttonRef.current && !buttonRef.current.contains(e.target)) {
23227
22641
  setOpen(false);
23228
22642
  }
23229
22643
  }
23230
22644
  document.addEventListener("mousedown", handleClick);
23231
22645
  return () => document.removeEventListener("mousedown", handleClick);
23232
- }, [open]);
22646
+ }, [open, floatingRef]);
23233
22647
  React13__namespace.useEffect(() => {
23234
22648
  if (!open) return;
23235
22649
  function handleKey(e) {
@@ -23238,25 +22652,6 @@ function FileRowActionMenu({
23238
22652
  document.addEventListener("keydown", handleKey);
23239
22653
  return () => document.removeEventListener("keydown", handleKey);
23240
22654
  }, [open]);
23241
- const [menuPos, setMenuPos] = React13__namespace.useState(null);
23242
- React13__namespace.useLayoutEffect(() => {
23243
- if (!open || !buttonRef.current) return;
23244
- function updatePosition() {
23245
- if (!buttonRef.current) return;
23246
- const rect = buttonRef.current.getBoundingClientRect();
23247
- setMenuPos({
23248
- top: rect.bottom + 4,
23249
- left: rect.right
23250
- });
23251
- }
23252
- updatePosition();
23253
- window.addEventListener("scroll", updatePosition, true);
23254
- window.addEventListener("resize", updatePosition);
23255
- return () => {
23256
- window.removeEventListener("scroll", updatePosition, true);
23257
- window.removeEventListener("resize", updatePosition);
23258
- };
23259
- }, [open]);
23260
22655
  const actions = [
23261
22656
  onPreview && {
23262
22657
  key: "preview",
@@ -23283,7 +22678,10 @@ function FileRowActionMenu({
23283
22678
  /* @__PURE__ */ jsxRuntime.jsx(
23284
22679
  "button",
23285
22680
  {
23286
- ref: buttonRef,
22681
+ ref: (el) => {
22682
+ buttonRef.current = el;
22683
+ anchorRef.current = el;
22684
+ },
23287
22685
  type: "button",
23288
22686
  onClick: (e) => {
23289
22687
  e.stopPropagation();
@@ -23302,18 +22700,14 @@ function FileRowActionMenu({
23302
22700
  children: /* @__PURE__ */ jsxRuntime.jsx(chunkL7L5S2HO_cjs.MoreHorizontal, { size: 14 })
23303
22701
  }
23304
22702
  ),
23305
- open && menuPos && ReactDOM.createPortal(
22703
+ open && ReactDOM.createPortal(
23306
22704
  /* @__PURE__ */ jsxRuntime.jsx(
23307
22705
  "div",
23308
22706
  {
23309
- ref: menuRef,
22707
+ ref: floatingRef,
23310
22708
  role: "menu",
23311
- style: {
23312
- position: "fixed",
23313
- top: menuPos.top,
23314
- left: menuPos.left,
23315
- transform: "translateX(-100%)"
23316
- },
22709
+ dir: direction,
22710
+ style: menuStyle,
23317
22711
  className: chunkS5RVSXDV_cjs.cn(
23318
22712
  "z-[9999] min-w-[10rem]",
23319
22713
  "rounded-lg border border-neutral-200 bg-white py-1 shadow-lg",
@@ -26280,7 +25674,7 @@ function LoadingBar({
26280
25674
  "div",
26281
25675
  {
26282
25676
  className: chunkS5RVSXDV_cjs.cn(
26283
- "animate-loading-bar h-full w-1/3 rounded-full",
25677
+ "animate-loading-bar rtl:animate-loading-bar-rtl h-full w-1/3 rounded-full",
26284
25678
  barColor
26285
25679
  )
26286
25680
  }
@@ -26402,7 +25796,7 @@ function LoadingSkeleton({
26402
25796
  const baseClasses = chunkS5RVSXDV_cjs.cn(
26403
25797
  "bg-gray-200 dark:bg-gray-700",
26404
25798
  animation === "pulse" && "animate-pulse",
26405
- animation === "wave" && "animate-shimmer bg-gradient-to-r from-gray-200 via-gray-100 to-gray-200 dark:from-gray-700 dark:via-gray-600 dark:to-gray-700 bg-[length:200%_100%]"
25799
+ animation === "wave" && "animate-shimmer rtl:animate-shimmer-rtl bg-gradient-to-r from-gray-200 via-gray-100 to-gray-200 dark:from-gray-700 dark:via-gray-600 dark:to-gray-700 bg-[length:200%_100%]"
26406
25800
  );
26407
25801
  const variantClasses = {
26408
25802
  text: "h-4 rounded",
@@ -28260,7 +27654,7 @@ var defaultOrderTabs = [
28260
27654
  { id: "rejected", label: "Rejected", statuses: ["rejected", "cancelled"] }
28261
27655
  ];
28262
27656
  function orderToMedication(order) {
28263
- const sig = order.detail ? chunkFBN2VHUV_cjs.parseSig(order.detail) : void 0;
27657
+ const sig = order.detail ? chunk5VA2HJ5B_cjs.parseSig(order.detail) : void 0;
28264
27658
  return {
28265
27659
  id: order.orderId,
28266
27660
  name: order.display,
@@ -28268,7 +27662,7 @@ function orderToMedication(order) {
28268
27662
  status: "unreconciled",
28269
27663
  indication: order.indication,
28270
27664
  pharmacyNotes: order.notes,
28271
- ...chunkFBN2VHUV_cjs.labelToMedicationFields(order.display),
27665
+ ...chunk5VA2HJ5B_cjs.labelToMedicationFields(order.display),
28272
27666
  ...sig && {
28273
27667
  route: sig.route,
28274
27668
  frequency: sig.frequency,
@@ -28339,7 +27733,7 @@ function BaseOrderEditor({
28339
27733
  onSave
28340
27734
  }) {
28341
27735
  const config = TYPE_CONFIG[type];
28342
- const ambientCodeLookup = chunkFBN2VHUV_cjs.useCodeLookupConfig();
27736
+ const ambientCodeLookup = chunk5VA2HJ5B_cjs.useCodeLookupConfig();
28343
27737
  const effectiveCodeLookup = codeLookup === false ? void 0 : codeLookup ?? ambientCodeLookup ?? void 0;
28344
27738
  const [draft, setDraft] = React13__namespace.useState(
28345
27739
  () => order ?? {
@@ -28538,7 +27932,7 @@ function OrderEditor({
28538
27932
  display: ""
28539
27933
  };
28540
27934
  return /* @__PURE__ */ jsxRuntime.jsx(
28541
- chunkFBN2VHUV_cjs.MedicationEditor,
27935
+ chunk5VA2HJ5B_cjs.MedicationEditor,
28542
27936
  {
28543
27937
  open,
28544
27938
  medication: order ? orderToMedication(order) : void 0,
@@ -31194,7 +30588,7 @@ function RelevanceControl({
31194
30588
  {
31195
30589
  role: "toolbar",
31196
30590
  "aria-label": `Relevance for ${labelPrefix}`,
31197
- onKeyDown: chunkFBN2VHUV_cjs.toolbarKeyNav,
30591
+ onKeyDown: chunk5VA2HJ5B_cjs.toolbarKeyNav,
31198
30592
  className: "border-border flex shrink-0 items-center overflow-hidden rounded-md border",
31199
30593
  children: RELEVANCE_ORDER.map((relevance) => {
31200
30594
  const active = value === relevance;
@@ -31458,7 +30852,7 @@ var PresentingProblems = React13__namespace.forwardRef(
31458
30852
  ]
31459
30853
  }
31460
30854
  ),
31461
- scope === "problem-focused" && /* @__PURE__ */ jsxRuntime.jsx(chunkJSXIB6EJ_cjs.Tooltip, { content: "Negative assertions require a comprehensive visit \u2014 a problem-focused encounter asserts nothing about unmentioned problems.", children: /* @__PURE__ */ jsxRuntime.jsx(chunkL7L5S2HO_cjs.Info, { size: 14, className: "text-muted-foreground" }) })
30855
+ scope === "problem-focused" && /* @__PURE__ */ jsxRuntime.jsx(chunkGLG6UE2H_cjs.Tooltip, { content: "Negative assertions require a comprehensive visit \u2014 a problem-focused encounter asserts nothing about unmentioned problems.", children: /* @__PURE__ */ jsxRuntime.jsx(chunkL7L5S2HO_cjs.Info, { size: 14, className: "text-muted-foreground" }) })
31462
30856
  ] })
31463
30857
  ] }),
31464
30858
  /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-live": "polite", className: "sr-only", children: announcement })
@@ -31761,7 +31155,7 @@ var DistanceBadge = ({ distance }) => {
31761
31155
  "mi"
31762
31156
  ] });
31763
31157
  };
31764
- var SafeFromWildfiresNotice = () => /* @__PURE__ */ jsxRuntime.jsx(chunkJSXIB6EJ_cjs.Tooltip, { content: "BlueHive has confirmed that this provider is operational and not impacted by the January 2025 wildfires.", children: /* @__PURE__ */ jsxRuntime.jsxs(
31158
+ var SafeFromWildfiresNotice = () => /* @__PURE__ */ jsxRuntime.jsx(chunkGLG6UE2H_cjs.Tooltip, { content: "BlueHive has confirmed that this provider is operational and not impacted by the January 2025 wildfires.", children: /* @__PURE__ */ jsxRuntime.jsxs(
31765
31159
  "div",
31766
31160
  {
31767
31161
  "data-slot": "provider-card-safe-notice",
@@ -31788,7 +31182,7 @@ var SafeFromWildfiresNotice = () => /* @__PURE__ */ jsxRuntime.jsx(chunkJSXIB6EJ
31788
31182
  ]
31789
31183
  }
31790
31184
  ) });
31791
- var VerifiedBadge = () => /* @__PURE__ */ jsxRuntime.jsx(chunkJSXIB6EJ_cjs.Tooltip, { content: "This provider's information has been verified", children: /* @__PURE__ */ jsxRuntime.jsxs(
31185
+ var VerifiedBadge = () => /* @__PURE__ */ jsxRuntime.jsx(chunkGLG6UE2H_cjs.Tooltip, { content: "This provider's information has been verified", children: /* @__PURE__ */ jsxRuntime.jsxs(
31792
31186
  "span",
31793
31187
  {
31794
31188
  "data-slot": "provider-card-verified",
@@ -33594,7 +32988,7 @@ var GeolocationButton = ({
33594
32988
  return "Click to automatically find your location";
33595
32989
  }
33596
32990
  };
33597
- return /* @__PURE__ */ jsxRuntime.jsx(chunkJSXIB6EJ_cjs.Tooltip, { content: getTooltip(), children: /* @__PURE__ */ jsxRuntime.jsx(
32991
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkGLG6UE2H_cjs.Tooltip, { content: getTooltip(), children: /* @__PURE__ */ jsxRuntime.jsx(
33598
32992
  chunkANMX7YDL_cjs.Button,
33599
32993
  {
33600
32994
  type: "button",
@@ -35717,19 +35111,19 @@ function ProviderUsersTable({
35717
35111
  {
35718
35112
  "data-slot": "provider-users-table",
35719
35113
  className: `overflow-x-auto ${className}`,
35720
- children: /* @__PURE__ */ jsxRuntime.jsxs(chunkIJYTASQQ_cjs.Table, { children: [
35721
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunkIJYTASQQ_cjs.TableRow, { children: [
35722
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHead, { children: "User" }),
35723
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHead, { children: "Role" }),
35724
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHead, { children: "Status" }),
35725
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHead, { children: "Last Active" }),
35726
- showActions && /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHead, { className: "w-10", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Actions" }) })
35114
+ children: /* @__PURE__ */ jsxRuntime.jsxs(chunk3AD4HFYI_cjs.Table, { children: [
35115
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(chunk3AD4HFYI_cjs.TableRow, { children: [
35116
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHead, { children: "User" }),
35117
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHead, { children: "Role" }),
35118
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHead, { children: "Status" }),
35119
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHead, { children: "Last Active" }),
35120
+ showActions && /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHead, { className: "w-10", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Actions" }) })
35727
35121
  ] }) }),
35728
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableBody, { children: users.map((user) => {
35122
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableBody, { children: users.map((user) => {
35729
35123
  const isCurrentUser = currentUserId === user.id;
35730
35124
  const isPending = user.status === "pending";
35731
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkIJYTASQQ_cjs.TableRow, { children: [
35732
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
35125
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunk3AD4HFYI_cjs.TableRow, { children: [
35126
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
35733
35127
  /* @__PURE__ */ jsxRuntime.jsx(chunkGKDHMNUA_cjs.Avatar, { src: user.avatarUrl, name: user.name, size: "sm" }),
35734
35128
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
35735
35129
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-medium text-gray-900 dark:text-white", children: [
@@ -35739,10 +35133,10 @@ function ProviderUsersTable({
35739
35133
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground text-sm", children: user.email })
35740
35134
  ] })
35741
35135
  ] }) }),
35742
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-gray-700 dark:text-gray-300", children: user.role }) }),
35743
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk7E46YDOT_cjs.Badge, { variant: getStatusVariant(user.status), children: user.status || "active" }) }),
35744
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-sm", children: isPending ? `Invited ${formatDate4(user.invitedAt)}` : formatDate4(user.lastActive) }) }),
35745
- showActions && /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { className: "text-end", children: /* @__PURE__ */ jsxRuntime.jsx(
35136
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-gray-700 dark:text-gray-300", children: user.role }) }),
35137
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk7E46YDOT_cjs.Badge, { variant: getStatusVariant(user.status), children: user.status || "active" }) }),
35138
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-sm", children: isPending ? `Invited ${formatDate4(user.invitedAt)}` : formatDate4(user.lastActive) }) }),
35139
+ showActions && /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { className: "text-end", children: /* @__PURE__ */ jsxRuntime.jsx(
35746
35140
  RowActionsMenu,
35747
35141
  {
35748
35142
  user,
@@ -39722,13 +39116,13 @@ var DEFAULT_SERVICE_PRICING_MANAGER_LABELS = {
39722
39116
  function ServiceNote({ service, onNoteChange, labels }) {
39723
39117
  const [editing, setEditing] = React13__namespace.useState(false);
39724
39118
  const [draft, setDraft] = React13__namespace.useState("");
39725
- const [pending2, setPending] = React13__namespace.useState(null);
39119
+ const [pending, setPending] = React13__namespace.useState(null);
39726
39120
  const [failed, setFailed] = React13__namespace.useState(false);
39727
39121
  const inputRef = React13__namespace.useRef(null);
39728
39122
  const buttonRef = React13__namespace.useRef(null);
39729
39123
  const cancelRef = React13__namespace.useRef(false);
39730
39124
  const refocusRef = React13__namespace.useRef(false);
39731
- const note = pending2 ?? service.note ?? "";
39125
+ const note = pending ?? service.note ?? "";
39732
39126
  React13__namespace.useEffect(() => {
39733
39127
  if (editing) inputRef.current?.focus();
39734
39128
  else if (refocusRef.current) {
@@ -39782,12 +39176,12 @@ function ServiceNote({ service, onNoteChange, labels }) {
39782
39176
  ref: buttonRef,
39783
39177
  type: "button",
39784
39178
  onClick: () => {
39785
- if (pending2 !== null) return;
39179
+ if (pending !== null) return;
39786
39180
  setDraft(note);
39787
39181
  setEditing(true);
39788
39182
  },
39789
- "aria-disabled": pending2 !== null,
39790
- "aria-busy": pending2 !== null,
39183
+ "aria-disabled": pending !== null,
39184
+ "aria-busy": pending !== null,
39791
39185
  "aria-label": `${labels.noteLabel(service.serviceName)}: ${note || labels.addNote}`,
39792
39186
  className: chunkS5RVSXDV_cjs.cn(
39793
39187
  "w-full truncate rounded text-start text-sm",
@@ -42411,8 +41805,8 @@ function MobileMenuPanel({
42411
41805
  className
42412
41806
  }) {
42413
41807
  if (!isOpen) return null;
42414
- const curPath = currentPath ? chunkXHK5VZ4L_cjs.normalizePath(currentPath) : null;
42415
- const isCurrent = (href) => curPath !== null && chunkXHK5VZ4L_cjs.normalizePath(href) === curPath;
41808
+ const curPath = currentPath ? chunk6ZA574PU_cjs.normalizePath(currentPath) : null;
41809
+ const isCurrent = (href) => curPath !== null && chunk6ZA574PU_cjs.normalizePath(href) === curPath;
42416
41810
  const sectionLinkClass = "text-muted-foreground block rounded-lg px-4 py-2 text-xs font-bold tracking-wider uppercase hover:bg-gray-100 dark:hover:bg-gray-800";
42417
41811
  const itemLinkClass = "flex items-center gap-2 rounded-lg px-4 py-2.5 text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-800";
42418
41812
  const renderItem = (it) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -42614,7 +42008,7 @@ function SiteHeader({
42614
42008
  ),
42615
42009
  menus?.length ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "hidden items-center gap-1 md:flex", children: [
42616
42010
  /* @__PURE__ */ jsxRuntime.jsx(
42617
- chunkXHK5VZ4L_cjs.MegaMenuBar,
42011
+ chunk6ZA574PU_cjs.MegaMenuBar,
42618
42012
  {
42619
42013
  menus,
42620
42014
  currentPath,
@@ -44386,7 +43780,7 @@ function WebChartReportViewer({
44386
43780
  ":"
44387
43781
  ] }),
44388
43782
  /* @__PURE__ */ jsxRuntime.jsx(
44389
- chunkZSGEGISB_cjs.DateInput,
43783
+ chunkPHUTJKHL_cjs.DateInput,
44390
43784
  {
44391
43785
  size: "sm",
44392
43786
  showCalendar: true,
@@ -44400,7 +43794,7 @@ function WebChartReportViewer({
44400
43794
  ":"
44401
43795
  ] }),
44402
43796
  /* @__PURE__ */ jsxRuntime.jsx(
44403
- chunkZSGEGISB_cjs.DateInput,
43797
+ chunkPHUTJKHL_cjs.DateInput,
44404
43798
  {
44405
43799
  size: "sm",
44406
43800
  showCalendar: true,
@@ -44442,18 +43836,18 @@ function WebChartReportViewer({
44442
43836
  ) : Array.isArray(reportResult.data) && reportResult.data.length > 0 ? (() => {
44443
43837
  const rows = reportResult.data;
44444
43838
  const columns = Object.keys(rows[0]);
44445
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkIJYTASQQ_cjs.Table, { children: [
44446
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableRow, { children: columns.map((key) => /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableHead, { children: key }, key)) }) }),
44447
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableBody, { children: rows.map((row) => {
43839
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunk3AD4HFYI_cjs.Table, { children: [
43840
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableRow, { children: columns.map((key) => /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableHead, { children: key }, key)) }) }),
43841
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableBody, { children: rows.map((row) => {
44448
43842
  const rowKey = columns.map((key) => String(row[key])).join("|") || JSON.stringify(row);
44449
- return /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableRow, { children: columns.map((key) => /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { children: columnRenderers?.[key] ? columnRenderers[key](row[key], row) : row[key] == null ? "" : String(row[key]) }, key)) }, rowKey);
43843
+ return /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableRow, { children: columns.map((key) => /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { children: columnRenderers?.[key] ? columnRenderers[key](row[key], row) : row[key] == null ? "" : String(row[key]) }, key)) }, rowKey);
44450
43844
  }) })
44451
43845
  ] });
44452
- })() : /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.Table, { children: /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableBody, { children: Object.entries(
43846
+ })() : /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.Table, { children: /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableBody, { children: Object.entries(
44453
43847
  reportResult.data
44454
- ).map(([key, val]) => /* @__PURE__ */ jsxRuntime.jsxs(chunkIJYTASQQ_cjs.TableRow, { children: [
44455
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { className: "text-muted-foreground font-medium", children: key }),
44456
- /* @__PURE__ */ jsxRuntime.jsx(chunkIJYTASQQ_cjs.TableCell, { children: val == null ? "" : String(val) })
43848
+ ).map(([key, val]) => /* @__PURE__ */ jsxRuntime.jsxs(chunk3AD4HFYI_cjs.TableRow, { children: [
43849
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { className: "text-muted-foreground font-medium", children: key }),
43850
+ /* @__PURE__ */ jsxRuntime.jsx(chunk3AD4HFYI_cjs.TableCell, { children: val == null ? "" : String(val) })
44457
43851
  ] }, key)) }) }) : /* @__PURE__ */ jsxRuntime.jsx(
44458
43852
  "div",
44459
43853
  {
@@ -44545,7 +43939,7 @@ function ReportTimeRange({
44545
43939
  ),
44546
43940
  preset === "custom" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
44547
43941
  /* @__PURE__ */ jsxRuntime.jsx(
44548
- chunkZSGEGISB_cjs.DateInput,
43942
+ chunkPHUTJKHL_cjs.DateInput,
44549
43943
  {
44550
43944
  size: "sm",
44551
43945
  showCalendar: true,
@@ -44556,7 +43950,7 @@ function ReportTimeRange({
44556
43950
  ),
44557
43951
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: "to" }),
44558
43952
  /* @__PURE__ */ jsxRuntime.jsx(
44559
- chunkZSGEGISB_cjs.DateInput,
43953
+ chunkPHUTJKHL_cjs.DateInput,
44560
43954
  {
44561
43955
  size: "sm",
44562
43956
  showCalendar: true,
@@ -44621,6 +44015,7 @@ var WebsiteInput = React13__namespace.forwardRef(
44621
44015
  inputMode: "url",
44622
44016
  autoComplete: "url",
44623
44017
  placeholder: "https://example.com",
44018
+ dir: "ltr",
44624
44019
  value,
44625
44020
  onChange: handleChange,
44626
44021
  onBlur: handleBlur,
@@ -44826,6 +44221,82 @@ function WebsiteInputGroup({
44826
44221
  }
44827
44222
  WebsiteInputGroup.displayName = "WebsiteInputGroup";
44828
44223
 
44224
+ Object.defineProperty(exports, "askOzwell", {
44225
+ enumerable: true,
44226
+ get: function () { return chunkTRZLN32I_cjs.askOzwell; }
44227
+ });
44228
+ Object.defineProperty(exports, "askOzwellStream", {
44229
+ enumerable: true,
44230
+ get: function () { return chunkTRZLN32I_cjs.askOzwellStream; }
44231
+ });
44232
+ Object.defineProperty(exports, "decodeTo16kMono", {
44233
+ enumerable: true,
44234
+ get: function () { return chunkTRZLN32I_cjs.decodeTo16kMono; }
44235
+ });
44236
+ Object.defineProperty(exports, "endsWithDone", {
44237
+ enumerable: true,
44238
+ get: function () { return chunkTRZLN32I_cjs.endsWithDone; }
44239
+ });
44240
+ Object.defineProperty(exports, "getDictationLoad", {
44241
+ enumerable: true,
44242
+ get: function () { return chunkTRZLN32I_cjs.getDictationLoad; }
44243
+ });
44244
+ Object.defineProperty(exports, "getOzwellConfig", {
44245
+ enumerable: true,
44246
+ get: function () { return chunkTRZLN32I_cjs.getOzwellConfig; }
44247
+ });
44248
+ Object.defineProperty(exports, "isOzwellConfigured", {
44249
+ enumerable: true,
44250
+ get: function () { return chunkTRZLN32I_cjs.isOzwellConfigured; }
44251
+ });
44252
+ Object.defineProperty(exports, "isWhisperLoaded", {
44253
+ enumerable: true,
44254
+ get: function () { return chunkTRZLN32I_cjs.isWhisperLoaded; }
44255
+ });
44256
+ Object.defineProperty(exports, "stripStopPhrase", {
44257
+ enumerable: true,
44258
+ get: function () { return chunkTRZLN32I_cjs.stripStopPhrase; }
44259
+ });
44260
+ Object.defineProperty(exports, "subscribeDictationLoad", {
44261
+ enumerable: true,
44262
+ get: function () { return chunkTRZLN32I_cjs.subscribeDictationLoad; }
44263
+ });
44264
+ Object.defineProperty(exports, "toOzwellMessages", {
44265
+ enumerable: true,
44266
+ get: function () { return chunkTRZLN32I_cjs.toOzwellMessages; }
44267
+ });
44268
+ Object.defineProperty(exports, "transcribeBlob", {
44269
+ enumerable: true,
44270
+ get: function () { return chunkTRZLN32I_cjs.transcribeBlob; }
44271
+ });
44272
+ Object.defineProperty(exports, "transcribeGate", {
44273
+ enumerable: true,
44274
+ get: function () { return chunkTRZLN32I_cjs.transcribeGate; }
44275
+ });
44276
+ Object.defineProperty(exports, "transcribeSamples", {
44277
+ enumerable: true,
44278
+ get: function () { return chunkTRZLN32I_cjs.transcribeSamples; }
44279
+ });
44280
+ Object.defineProperty(exports, "transcribeSegments", {
44281
+ enumerable: true,
44282
+ get: function () { return chunkTRZLN32I_cjs.transcribeSegments; }
44283
+ });
44284
+ Object.defineProperty(exports, "transcribeServer", {
44285
+ enumerable: true,
44286
+ get: function () { return chunkTRZLN32I_cjs.transcribeServer; }
44287
+ });
44288
+ Object.defineProperty(exports, "trimTrailingStopPhrase", {
44289
+ enumerable: true,
44290
+ get: function () { return chunkTRZLN32I_cjs.trimTrailingStopPhrase; }
44291
+ });
44292
+ Object.defineProperty(exports, "warmStopGate", {
44293
+ enumerable: true,
44294
+ get: function () { return chunkTRZLN32I_cjs.warmStopGate; }
44295
+ });
44296
+ Object.defineProperty(exports, "warmWhisper", {
44297
+ enumerable: true,
44298
+ get: function () { return chunkTRZLN32I_cjs.warmWhisper; }
44299
+ });
44829
44300
  Object.defineProperty(exports, "clearVoiceprints", {
44830
44301
  enumerable: true,
44831
44302
  get: function () { return chunkOGNADPM4_cjs.clearVoiceprints; }
@@ -44850,6 +44321,22 @@ Object.defineProperty(exports, "setVoiceprints", {
44850
44321
  enumerable: true,
44851
44322
  get: function () { return chunkOGNADPM4_cjs.setVoiceprints; }
44852
44323
  });
44324
+ Object.defineProperty(exports, "Rating", {
44325
+ enumerable: true,
44326
+ get: function () { return chunkXNPDZANN_cjs.Rating; }
44327
+ });
44328
+ Object.defineProperty(exports, "ReviewCard", {
44329
+ enumerable: true,
44330
+ get: function () { return chunkXNPDZANN_cjs.ReviewCard; }
44331
+ });
44332
+ Object.defineProperty(exports, "defaultRatingLabels", {
44333
+ enumerable: true,
44334
+ get: function () { return chunkXNPDZANN_cjs.defaultRatingLabels; }
44335
+ });
44336
+ Object.defineProperty(exports, "defaultReviewCardLabels", {
44337
+ enumerable: true,
44338
+ get: function () { return chunkXNPDZANN_cjs.defaultReviewCardLabels; }
44339
+ });
44853
44340
  Object.defineProperty(exports, "RecordHeader", {
44854
44341
  enumerable: true,
44855
44342
  get: function () { return chunkIEZXJWHJ_cjs.RecordHeader; }
@@ -44884,7 +44371,11 @@ Object.defineProperty(exports, "defaultUserPickerLabels", {
44884
44371
  });
44885
44372
  Object.defineProperty(exports, "brands", {
44886
44373
  enumerable: true,
44887
- get: function () { return chunkOODVC2UD_cjs.brands; }
44374
+ get: function () { return chunkAWSSWNJY_cjs.brands; }
44375
+ });
44376
+ Object.defineProperty(exports, "defaultBrand", {
44377
+ enumerable: true,
44378
+ get: function () { return chunkX7S76WB7_cjs.defaultBrand; }
44888
44379
  });
44889
44380
  Object.defineProperty(exports, "enterpriseHealthBrand", {
44890
44381
  enumerable: true,
@@ -44902,13 +44393,13 @@ Object.defineProperty(exports, "webchartBrand", {
44902
44393
  enumerable: true,
44903
44394
  get: function () { return chunkU7VQUOLS_cjs.webchartBrand; }
44904
44395
  });
44905
- Object.defineProperty(exports, "ozwellBrand", {
44396
+ Object.defineProperty(exports, "ccmeBrand", {
44906
44397
  enumerable: true,
44907
- get: function () { return chunkRR2MJBGV_cjs.ozwellBrand; }
44398
+ get: function () { return chunkUCGUA3QV_cjs.ccmeBrand; }
44908
44399
  });
44909
- Object.defineProperty(exports, "defaultBrand", {
44400
+ Object.defineProperty(exports, "ozwellBrand", {
44910
44401
  enumerable: true,
44911
- get: function () { return chunkX7S76WB7_cjs.defaultBrand; }
44402
+ get: function () { return chunkRR2MJBGV_cjs.ozwellBrand; }
44912
44403
  });
44913
44404
  Object.defineProperty(exports, "createBrandPreset", {
44914
44405
  enumerable: true,
@@ -44926,10 +44417,6 @@ Object.defineProperty(exports, "bluehiveBrand", {
44926
44417
  enumerable: true,
44927
44418
  get: function () { return chunk3ZWCIPFT_cjs.bluehiveBrand; }
44928
44419
  });
44929
- Object.defineProperty(exports, "ccmeBrand", {
44930
- enumerable: true,
44931
- get: function () { return chunkUCGUA3QV_cjs.ccmeBrand; }
44932
- });
44933
44420
  Object.defineProperty(exports, "CalendarHeatmap", {
44934
44421
  enumerable: true,
44935
44422
  get: function () { return chunkA4W5CSK7_cjs.CalendarHeatmap; }
@@ -44990,21 +44477,9 @@ Object.defineProperty(exports, "defaultInlineEditLabels", {
44990
44477
  enumerable: true,
44991
44478
  get: function () { return chunk4ZB7RSMY_cjs.defaultInlineEditLabels; }
44992
44479
  });
44993
- Object.defineProperty(exports, "Rating", {
44994
- enumerable: true,
44995
- get: function () { return chunkXNPDZANN_cjs.Rating; }
44996
- });
44997
- Object.defineProperty(exports, "ReviewCard", {
44998
- enumerable: true,
44999
- get: function () { return chunkXNPDZANN_cjs.ReviewCard; }
45000
- });
45001
- Object.defineProperty(exports, "defaultRatingLabels", {
45002
- enumerable: true,
45003
- get: function () { return chunkXNPDZANN_cjs.defaultRatingLabels; }
45004
- });
45005
- Object.defineProperty(exports, "defaultReviewCardLabels", {
44480
+ Object.defineProperty(exports, "ViewSet", {
45006
44481
  enumerable: true,
45007
- get: function () { return chunkXNPDZANN_cjs.defaultReviewCardLabels; }
44482
+ get: function () { return chunkGYXSF6BJ_cjs.ViewSet; }
45008
44483
  });
45009
44484
  Object.defineProperty(exports, "TranscriptView", {
45010
44485
  enumerable: true,
@@ -45066,6 +44541,38 @@ Object.defineProperty(exports, "defaultAssociationListLabels", {
45066
44541
  enumerable: true,
45067
44542
  get: function () { return chunkCLQW724U_cjs.defaultAssociationListLabels; }
45068
44543
  });
44544
+ Object.defineProperty(exports, "Table", {
44545
+ enumerable: true,
44546
+ get: function () { return chunk3AD4HFYI_cjs.Table; }
44547
+ });
44548
+ Object.defineProperty(exports, "TableBody", {
44549
+ enumerable: true,
44550
+ get: function () { return chunk3AD4HFYI_cjs.TableBody; }
44551
+ });
44552
+ Object.defineProperty(exports, "TableCaption", {
44553
+ enumerable: true,
44554
+ get: function () { return chunk3AD4HFYI_cjs.TableCaption; }
44555
+ });
44556
+ Object.defineProperty(exports, "TableCell", {
44557
+ enumerable: true,
44558
+ get: function () { return chunk3AD4HFYI_cjs.TableCell; }
44559
+ });
44560
+ Object.defineProperty(exports, "TableFooter", {
44561
+ enumerable: true,
44562
+ get: function () { return chunk3AD4HFYI_cjs.TableFooter; }
44563
+ });
44564
+ Object.defineProperty(exports, "TableHead", {
44565
+ enumerable: true,
44566
+ get: function () { return chunk3AD4HFYI_cjs.TableHead; }
44567
+ });
44568
+ Object.defineProperty(exports, "TableHeader", {
44569
+ enumerable: true,
44570
+ get: function () { return chunk3AD4HFYI_cjs.TableHeader; }
44571
+ });
44572
+ Object.defineProperty(exports, "TableRow", {
44573
+ enumerable: true,
44574
+ get: function () { return chunk3AD4HFYI_cjs.TableRow; }
44575
+ });
45069
44576
  Object.defineProperty(exports, "SmallMuted", {
45070
44577
  enumerable: true,
45071
44578
  get: function () { return chunk3IAA3KCE_cjs.SmallMuted; }
@@ -45080,27 +44587,27 @@ Object.defineProperty(exports, "textVariants", {
45080
44587
  });
45081
44588
  Object.defineProperty(exports, "ThemeProvider", {
45082
44589
  enumerable: true,
45083
- get: function () { return chunkH3ROMJYI_cjs.ThemeProvider; }
44590
+ get: function () { return chunkKY67AMQ5_cjs.ThemeProvider; }
45084
44591
  });
45085
44592
  Object.defineProperty(exports, "ThemeProviderContext", {
45086
44593
  enumerable: true,
45087
- get: function () { return chunkH3ROMJYI_cjs.ThemeProviderContext; }
44594
+ get: function () { return chunkKY67AMQ5_cjs.ThemeProviderContext; }
45088
44595
  });
45089
44596
  Object.defineProperty(exports, "ThemeToggle", {
45090
44597
  enumerable: true,
45091
- get: function () { return chunkH3ROMJYI_cjs.ThemeToggle; }
44598
+ get: function () { return chunkKY67AMQ5_cjs.ThemeToggle; }
45092
44599
  });
45093
44600
  Object.defineProperty(exports, "themeToggleIconVariants", {
45094
44601
  enumerable: true,
45095
- get: function () { return chunkH3ROMJYI_cjs.themeToggleIconVariants; }
44602
+ get: function () { return chunkKY67AMQ5_cjs.themeToggleIconVariants; }
45096
44603
  });
45097
44604
  Object.defineProperty(exports, "themeToggleVariants", {
45098
44605
  enumerable: true,
45099
- get: function () { return chunkH3ROMJYI_cjs.themeToggleVariants; }
44606
+ get: function () { return chunkKY67AMQ5_cjs.themeToggleVariants; }
45100
44607
  });
45101
44608
  Object.defineProperty(exports, "useThemeContext", {
45102
44609
  enumerable: true,
45103
- get: function () { return chunkH3ROMJYI_cjs.useThemeContext; }
44610
+ get: function () { return chunkKY67AMQ5_cjs.useThemeContext; }
45104
44611
  });
45105
44612
  Object.defineProperty(exports, "Toggle", {
45106
44613
  enumerable: true,
@@ -45110,10 +44617,6 @@ Object.defineProperty(exports, "toggleVariants", {
45110
44617
  enumerable: true,
45111
44618
  get: function () { return chunkVTKXM7IE_cjs.toggleVariants; }
45112
44619
  });
45113
- Object.defineProperty(exports, "ViewSet", {
45114
- enumerable: true,
45115
- get: function () { return chunkGYXSF6BJ_cjs.ViewSet; }
45116
- });
45117
44620
  Object.defineProperty(exports, "ViewSwitcher", {
45118
44621
  enumerable: true,
45119
44622
  get: function () { return chunkXPWFIDZM_cjs.ViewSwitcher; }
@@ -45122,6 +44625,26 @@ Object.defineProperty(exports, "viewSwitcherVariants", {
45122
44625
  enumerable: true,
45123
44626
  get: function () { return chunkXPWFIDZM_cjs.viewSwitcherVariants; }
45124
44627
  });
44628
+ Object.defineProperty(exports, "Skeleton", {
44629
+ enumerable: true,
44630
+ get: function () { return chunkYGA35Z2P_cjs.Skeleton; }
44631
+ });
44632
+ Object.defineProperty(exports, "SkeletonCard", {
44633
+ enumerable: true,
44634
+ get: function () { return chunkYGA35Z2P_cjs.SkeletonCard; }
44635
+ });
44636
+ Object.defineProperty(exports, "SkeletonTable", {
44637
+ enumerable: true,
44638
+ get: function () { return chunkYGA35Z2P_cjs.SkeletonTable; }
44639
+ });
44640
+ Object.defineProperty(exports, "SkeletonText", {
44641
+ enumerable: true,
44642
+ get: function () { return chunkYGA35Z2P_cjs.SkeletonText; }
44643
+ });
44644
+ Object.defineProperty(exports, "skeletonVariants", {
44645
+ enumerable: true,
44646
+ get: function () { return chunkYGA35Z2P_cjs.skeletonVariants; }
44647
+ });
45125
44648
  Object.defineProperty(exports, "SourceTip", {
45126
44649
  enumerable: true,
45127
44650
  get: function () { return chunkAHHFFXJR_cjs.SourceTip; }
@@ -45132,259 +44655,227 @@ Object.defineProperty(exports, "Sparkline", {
45132
44655
  });
45133
44656
  Object.defineProperty(exports, "AILogoIcon", {
45134
44657
  enumerable: true,
45135
- get: function () { return chunkXRVMYT5G_cjs.AILogoIcon; }
44658
+ get: function () { return chunkQKW2QCGI_cjs.AILogoIcon; }
45136
44659
  });
45137
44660
  Object.defineProperty(exports, "AIMessageDisplay", {
45138
44661
  enumerable: true,
45139
- get: function () { return chunkXRVMYT5G_cjs.AIMessageDisplay; }
44662
+ get: function () { return chunkQKW2QCGI_cjs.AIMessageDisplay; }
45140
44663
  });
45141
44664
  Object.defineProperty(exports, "AITypingIndicator", {
45142
44665
  enumerable: true,
45143
- get: function () { return chunkXRVMYT5G_cjs.AITypingIndicator; }
44666
+ get: function () { return chunkQKW2QCGI_cjs.AITypingIndicator; }
45144
44667
  });
45145
44668
  Object.defineProperty(exports, "ButtonGroup", {
45146
44669
  enumerable: true,
45147
- get: function () { return chunkXRVMYT5G_cjs.ButtonGroup; }
44670
+ get: function () { return chunkQKW2QCGI_cjs.ButtonGroup; }
45148
44671
  });
45149
44672
  Object.defineProperty(exports, "ChatBubble", {
45150
44673
  enumerable: true,
45151
- get: function () { return chunkXRVMYT5G_cjs.ChatBubble; }
44674
+ get: function () { return chunkQKW2QCGI_cjs.ChatBubble; }
45152
44675
  });
45153
44676
  Object.defineProperty(exports, "ChevronIcon", {
45154
44677
  enumerable: true,
45155
- get: function () { return chunkXRVMYT5G_cjs.ChevronIcon; }
44678
+ get: function () { return chunkQKW2QCGI_cjs.ChevronIcon; }
45156
44679
  });
45157
44680
  Object.defineProperty(exports, "CloseIcon", {
45158
44681
  enumerable: true,
45159
- get: function () { return chunkXRVMYT5G_cjs.CloseIcon; }
44682
+ get: function () { return chunkQKW2QCGI_cjs.CloseIcon; }
45160
44683
  });
45161
44684
  Object.defineProperty(exports, "CollapsiblePill", {
45162
44685
  enumerable: true,
45163
- get: function () { return chunkXRVMYT5G_cjs.CollapsiblePill; }
44686
+ get: function () { return chunkQKW2QCGI_cjs.CollapsiblePill; }
45164
44687
  });
45165
44688
  Object.defineProperty(exports, "MCPToolCallDisplay", {
45166
44689
  enumerable: true,
45167
- get: function () { return chunkXRVMYT5G_cjs.MCPToolCallDisplay; }
44690
+ get: function () { return chunkQKW2QCGI_cjs.MCPToolCallDisplay; }
45168
44691
  });
45169
44692
  Object.defineProperty(exports, "MessageAvatar", {
45170
44693
  enumerable: true,
45171
- get: function () { return chunkXRVMYT5G_cjs.MessageAvatar; }
44694
+ get: function () { return chunkQKW2QCGI_cjs.MessageAvatar; }
45172
44695
  });
45173
44696
  Object.defineProperty(exports, "RefreshIcon", {
45174
44697
  enumerable: true,
45175
- get: function () { return chunkXRVMYT5G_cjs.RefreshIcon; }
44698
+ get: function () { return chunkQKW2QCGI_cjs.RefreshIcon; }
45176
44699
  });
45177
44700
  Object.defineProperty(exports, "ResourceLink", {
45178
44701
  enumerable: true,
45179
- get: function () { return chunkXRVMYT5G_cjs.ResourceLink; }
44702
+ get: function () { return chunkQKW2QCGI_cjs.ResourceLink; }
45180
44703
  });
45181
44704
  Object.defineProperty(exports, "SendIcon", {
45182
44705
  enumerable: true,
45183
- get: function () { return chunkXRVMYT5G_cjs.SendIcon; }
44706
+ get: function () { return chunkQKW2QCGI_cjs.SendIcon; }
45184
44707
  });
45185
44708
  Object.defineProperty(exports, "SparklesIcon", {
45186
44709
  enumerable: true,
45187
- get: function () { return chunkXRVMYT5G_cjs.SparklesIcon; }
44710
+ get: function () { return chunkQKW2QCGI_cjs.SparklesIcon; }
45188
44711
  });
45189
44712
  Object.defineProperty(exports, "SpinnerIcon", {
45190
44713
  enumerable: true,
45191
- get: function () { return chunkXRVMYT5G_cjs.SpinnerIcon; }
44714
+ get: function () { return chunkQKW2QCGI_cjs.SpinnerIcon; }
45192
44715
  });
45193
44716
  Object.defineProperty(exports, "ToolStatusIcon", {
45194
44717
  enumerable: true,
45195
- get: function () { return chunkXRVMYT5G_cjs.ToolStatusIcon; }
44718
+ get: function () { return chunkQKW2QCGI_cjs.ToolStatusIcon; }
45196
44719
  });
45197
44720
  Object.defineProperty(exports, "getToolIcon", {
45198
44721
  enumerable: true,
45199
- get: function () { return chunkXRVMYT5G_cjs.getToolIcon; }
44722
+ get: function () { return chunkQKW2QCGI_cjs.getToolIcon; }
45200
44723
  });
45201
44724
  Object.defineProperty(exports, "AttachmentPreview", {
45202
44725
  enumerable: true,
45203
- get: function () { return chunkFMEA6WAY_cjs.AttachmentPreview; }
44726
+ get: function () { return chunkQ6QLGCL7_cjs.AttachmentPreview; }
45204
44727
  });
45205
44728
  Object.defineProperty(exports, "ConversationHeader", {
45206
44729
  enumerable: true,
45207
- get: function () { return chunkFMEA6WAY_cjs.ConversationHeader; }
44730
+ get: function () { return chunkQ6QLGCL7_cjs.ConversationHeader; }
45208
44731
  });
45209
44732
  Object.defineProperty(exports, "ConversationListItem", {
45210
44733
  enumerable: true,
45211
- get: function () { return chunkFMEA6WAY_cjs.ConversationListItem; }
44734
+ get: function () { return chunkQ6QLGCL7_cjs.ConversationListItem; }
45212
44735
  });
45213
44736
  Object.defineProperty(exports, "ConversationListSkeleton", {
45214
44737
  enumerable: true,
45215
- get: function () { return chunkFMEA6WAY_cjs.ConversationListSkeleton; }
44738
+ get: function () { return chunkQ6QLGCL7_cjs.ConversationListSkeleton; }
45216
44739
  });
45217
44740
  Object.defineProperty(exports, "DateSeparator", {
45218
44741
  enumerable: true,
45219
- get: function () { return chunkFMEA6WAY_cjs.DateSeparator; }
44742
+ get: function () { return chunkQ6QLGCL7_cjs.DateSeparator; }
45220
44743
  });
45221
44744
  Object.defineProperty(exports, "EmptyState", {
45222
44745
  enumerable: true,
45223
- get: function () { return chunkFMEA6WAY_cjs.EmptyState; }
44746
+ get: function () { return chunkQ6QLGCL7_cjs.EmptyState; }
45224
44747
  });
45225
44748
  Object.defineProperty(exports, "LightboxModal", {
45226
44749
  enumerable: true,
45227
- get: function () { return chunkFMEA6WAY_cjs.LightboxModal; }
44750
+ get: function () { return chunkQ6QLGCL7_cjs.LightboxModal; }
45228
44751
  });
45229
44752
  Object.defineProperty(exports, "LoadMoreButton", {
45230
44753
  enumerable: true,
45231
- get: function () { return chunkFMEA6WAY_cjs.LoadMoreButton; }
44754
+ get: function () { return chunkQ6QLGCL7_cjs.LoadMoreButton; }
45232
44755
  });
45233
44756
  Object.defineProperty(exports, "MessageBubble", {
45234
44757
  enumerable: true,
45235
- get: function () { return chunkFMEA6WAY_cjs.MessageBubble; }
44758
+ get: function () { return chunkQ6QLGCL7_cjs.MessageBubble; }
45236
44759
  });
45237
44760
  Object.defineProperty(exports, "MessageList", {
45238
44761
  enumerable: true,
45239
- get: function () { return chunkFMEA6WAY_cjs.MessageList; }
44762
+ get: function () { return chunkQ6QLGCL7_cjs.MessageList; }
45240
44763
  });
45241
44764
  Object.defineProperty(exports, "MessageStatusIcon", {
45242
44765
  enumerable: true,
45243
- get: function () { return chunkFMEA6WAY_cjs.MessageStatusIcon; }
44766
+ get: function () { return chunkQ6QLGCL7_cjs.MessageStatusIcon; }
45244
44767
  });
45245
44768
  Object.defineProperty(exports, "MessageThread", {
45246
44769
  enumerable: true,
45247
- get: function () { return chunkFMEA6WAY_cjs.MessageThread; }
44770
+ get: function () { return chunkQ6QLGCL7_cjs.MessageThread; }
45248
44771
  });
45249
44772
  Object.defineProperty(exports, "MessagingSplitView", {
45250
44773
  enumerable: true,
45251
- get: function () { return chunkFMEA6WAY_cjs.MessagingSplitView; }
44774
+ get: function () { return chunkQ6QLGCL7_cjs.MessagingSplitView; }
45252
44775
  });
45253
44776
  Object.defineProperty(exports, "ReadReceiptIndicator", {
45254
44777
  enumerable: true,
45255
- get: function () { return chunkFMEA6WAY_cjs.ReadReceiptIndicator; }
44778
+ get: function () { return chunkQ6QLGCL7_cjs.ReadReceiptIndicator; }
45256
44779
  });
45257
44780
  Object.defineProperty(exports, "SkeletonMessage", {
45258
44781
  enumerable: true,
45259
- get: function () { return chunkFMEA6WAY_cjs.SkeletonMessage; }
44782
+ get: function () { return chunkQ6QLGCL7_cjs.SkeletonMessage; }
45260
44783
  });
45261
44784
  Object.defineProperty(exports, "TypingIndicator", {
45262
44785
  enumerable: true,
45263
- get: function () { return chunkFMEA6WAY_cjs.TypingIndicator; }
44786
+ get: function () { return chunkQ6QLGCL7_cjs.TypingIndicator; }
45264
44787
  });
45265
44788
  Object.defineProperty(exports, "bubbleVariants", {
45266
44789
  enumerable: true,
45267
- get: function () { return chunkFMEA6WAY_cjs.bubbleVariants; }
44790
+ get: function () { return chunkQ6QLGCL7_cjs.bubbleVariants; }
45268
44791
  });
45269
44792
  Object.defineProperty(exports, "formatDateLabel", {
45270
44793
  enumerable: true,
45271
- get: function () { return chunkFMEA6WAY_cjs.formatDateLabel; }
44794
+ get: function () { return chunkQ6QLGCL7_cjs.formatDateLabel; }
45272
44795
  });
45273
44796
  Object.defineProperty(exports, "formatFileSize", {
45274
44797
  enumerable: true,
45275
- get: function () { return chunkFMEA6WAY_cjs.formatFileSize; }
44798
+ get: function () { return chunkQ6QLGCL7_cjs.formatFileSize; }
45276
44799
  });
45277
44800
  Object.defineProperty(exports, "formatLastSeen", {
45278
44801
  enumerable: true,
45279
- get: function () { return chunkFMEA6WAY_cjs.formatLastSeen; }
44802
+ get: function () { return chunkQ6QLGCL7_cjs.formatLastSeen; }
45280
44803
  });
45281
44804
  Object.defineProperty(exports, "getConversationSubtitle", {
45282
44805
  enumerable: true,
45283
- get: function () { return chunkFMEA6WAY_cjs.getConversationSubtitle; }
44806
+ get: function () { return chunkQ6QLGCL7_cjs.getConversationSubtitle; }
45284
44807
  });
45285
44808
  Object.defineProperty(exports, "getConversationTitle", {
45286
44809
  enumerable: true,
45287
- get: function () { return chunkFMEA6WAY_cjs.getConversationTitle; }
44810
+ get: function () { return chunkQ6QLGCL7_cjs.getConversationTitle; }
45288
44811
  });
45289
44812
  Object.defineProperty(exports, "groupMessagesByDate", {
45290
44813
  enumerable: true,
45291
- get: function () { return chunkFMEA6WAY_cjs.groupMessagesByDate; }
44814
+ get: function () { return chunkQ6QLGCL7_cjs.groupMessagesByDate; }
45292
44815
  });
45293
44816
  Object.defineProperty(exports, "headerVariants", {
45294
44817
  enumerable: true,
45295
- get: function () { return chunkFMEA6WAY_cjs.headerVariants; }
44818
+ get: function () { return chunkQ6QLGCL7_cjs.headerVariants; }
45296
44819
  });
45297
44820
  Object.defineProperty(exports, "isSameSenderGroup", {
45298
44821
  enumerable: true,
45299
- get: function () { return chunkFMEA6WAY_cjs.isSameSenderGroup; }
44822
+ get: function () { return chunkQ6QLGCL7_cjs.isSameSenderGroup; }
45300
44823
  });
45301
44824
  Object.defineProperty(exports, "useMessageScroll", {
45302
44825
  enumerable: true,
45303
- get: function () { return chunkFMEA6WAY_cjs.useMessageScroll; }
44826
+ get: function () { return chunkQ6QLGCL7_cjs.useMessageScroll; }
45304
44827
  });
45305
44828
  Object.defineProperty(exports, "useMessages", {
45306
44829
  enumerable: true,
45307
- get: function () { return chunkFMEA6WAY_cjs.useMessages; }
44830
+ get: function () { return chunkQ6QLGCL7_cjs.useMessages; }
45308
44831
  });
45309
44832
  Object.defineProperty(exports, "useReadReceipts", {
45310
44833
  enumerable: true,
45311
- get: function () { return chunkFMEA6WAY_cjs.useReadReceipts; }
44834
+ get: function () { return chunkQ6QLGCL7_cjs.useReadReceipts; }
45312
44835
  });
45313
44836
  Object.defineProperty(exports, "useTypingEmulation", {
45314
44837
  enumerable: true,
45315
- get: function () { return chunkFMEA6WAY_cjs.useTypingEmulation; }
44838
+ get: function () { return chunkQ6QLGCL7_cjs.useTypingEmulation; }
45316
44839
  });
45317
44840
  Object.defineProperty(exports, "useTypingIndicator", {
45318
44841
  enumerable: true,
45319
- get: function () { return chunkFMEA6WAY_cjs.useTypingIndicator; }
44842
+ get: function () { return chunkQ6QLGCL7_cjs.useTypingIndicator; }
45320
44843
  });
45321
44844
  Object.defineProperty(exports, "AttachmentPicker", {
45322
44845
  enumerable: true,
45323
- get: function () { return chunkU2RS574O_cjs.AttachmentPicker; }
44846
+ get: function () { return chunk2GBVJHWN_cjs.AttachmentPicker; }
45324
44847
  });
45325
44848
  Object.defineProperty(exports, "AttachmentPreviewItem", {
45326
44849
  enumerable: true,
45327
- get: function () { return chunkU2RS574O_cjs.AttachmentPreviewItem; }
44850
+ get: function () { return chunk2GBVJHWN_cjs.AttachmentPreviewItem; }
45328
44851
  });
45329
44852
  Object.defineProperty(exports, "CameraButton", {
45330
44853
  enumerable: true,
45331
- get: function () { return chunkU2RS574O_cjs.CameraButton; }
44854
+ get: function () { return chunk2GBVJHWN_cjs.CameraButton; }
45332
44855
  });
45333
44856
  Object.defineProperty(exports, "ChatComposer", {
45334
44857
  enumerable: true,
45335
- get: function () { return chunkU2RS574O_cjs.ChatComposer; }
44858
+ get: function () { return chunk2GBVJHWN_cjs.ChatComposer; }
45336
44859
  });
45337
44860
  Object.defineProperty(exports, "ComposerModelSelector", {
45338
44861
  enumerable: true,
45339
- get: function () { return chunkU2RS574O_cjs.ComposerModelSelector; }
44862
+ get: function () { return chunk2GBVJHWN_cjs.ComposerModelSelector; }
45340
44863
  });
45341
44864
  Object.defineProperty(exports, "DragDropZone", {
45342
44865
  enumerable: true,
45343
- get: function () { return chunkU2RS574O_cjs.DragDropZone; }
44866
+ get: function () { return chunk2GBVJHWN_cjs.DragDropZone; }
45344
44867
  });
45345
44868
  Object.defineProperty(exports, "generateAttachmentId", {
45346
44869
  enumerable: true,
45347
- get: function () { return chunkU2RS574O_cjs.generateAttachmentId; }
44870
+ get: function () { return chunk2GBVJHWN_cjs.generateAttachmentId; }
45348
44871
  });
45349
44872
  Object.defineProperty(exports, "getFileType", {
45350
44873
  enumerable: true,
45351
- get: function () { return chunkU2RS574O_cjs.getFileType; }
44874
+ get: function () { return chunk2GBVJHWN_cjs.getFileType; }
45352
44875
  });
45353
44876
  Object.defineProperty(exports, "validateFile", {
45354
44877
  enumerable: true,
45355
- get: function () { return chunkU2RS574O_cjs.validateFile; }
45356
- });
45357
- Object.defineProperty(exports, "Table", {
45358
- enumerable: true,
45359
- get: function () { return chunkIJYTASQQ_cjs.Table; }
45360
- });
45361
- Object.defineProperty(exports, "TableBody", {
45362
- enumerable: true,
45363
- get: function () { return chunkIJYTASQQ_cjs.TableBody; }
45364
- });
45365
- Object.defineProperty(exports, "TableCaption", {
45366
- enumerable: true,
45367
- get: function () { return chunkIJYTASQQ_cjs.TableCaption; }
45368
- });
45369
- Object.defineProperty(exports, "TableCell", {
45370
- enumerable: true,
45371
- get: function () { return chunkIJYTASQQ_cjs.TableCell; }
45372
- });
45373
- Object.defineProperty(exports, "TableFooter", {
45374
- enumerable: true,
45375
- get: function () { return chunkIJYTASQQ_cjs.TableFooter; }
45376
- });
45377
- Object.defineProperty(exports, "TableHead", {
45378
- enumerable: true,
45379
- get: function () { return chunkIJYTASQQ_cjs.TableHead; }
45380
- });
45381
- Object.defineProperty(exports, "TableHeader", {
45382
- enumerable: true,
45383
- get: function () { return chunkIJYTASQQ_cjs.TableHeader; }
45384
- });
45385
- Object.defineProperty(exports, "TableRow", {
45386
- enumerable: true,
45387
- get: function () { return chunkIJYTASQQ_cjs.TableRow; }
44878
+ get: function () { return chunk2GBVJHWN_cjs.validateFile; }
45388
44879
  });
45389
44880
  Object.defineProperty(exports, "DateButton", {
45390
44881
  enumerable: true,
@@ -45436,39 +44927,19 @@ Object.defineProperty(exports, "SectionSpyNav", {
45436
44927
  });
45437
44928
  Object.defineProperty(exports, "AnimatedNumber", {
45438
44929
  enumerable: true,
45439
- get: function () { return chunk7UTBDFFL_cjs.AnimatedNumber; }
44930
+ get: function () { return chunk2S76TRBJ_cjs.AnimatedNumber; }
45440
44931
  });
45441
44932
  Object.defineProperty(exports, "SliderCalculator", {
45442
44933
  enumerable: true,
45443
- get: function () { return chunk7UTBDFFL_cjs.SliderCalculator; }
45444
- });
45445
- Object.defineProperty(exports, "Skeleton", {
45446
- enumerable: true,
45447
- get: function () { return chunkYGA35Z2P_cjs.Skeleton; }
45448
- });
45449
- Object.defineProperty(exports, "SkeletonCard", {
45450
- enumerable: true,
45451
- get: function () { return chunkYGA35Z2P_cjs.SkeletonCard; }
45452
- });
45453
- Object.defineProperty(exports, "SkeletonTable", {
45454
- enumerable: true,
45455
- get: function () { return chunkYGA35Z2P_cjs.SkeletonTable; }
45456
- });
45457
- Object.defineProperty(exports, "SkeletonText", {
45458
- enumerable: true,
45459
- get: function () { return chunkYGA35Z2P_cjs.SkeletonText; }
45460
- });
45461
- Object.defineProperty(exports, "skeletonVariants", {
45462
- enumerable: true,
45463
- get: function () { return chunkYGA35Z2P_cjs.skeletonVariants; }
44934
+ get: function () { return chunk2S76TRBJ_cjs.SliderCalculator; }
45464
44935
  });
45465
44936
  Object.defineProperty(exports, "PhoneInput", {
45466
44937
  enumerable: true,
45467
- get: function () { return chunkOHKO5THF_cjs.PhoneInput; }
44938
+ get: function () { return chunkMGFRGPWI_cjs.PhoneInput; }
45468
44939
  });
45469
44940
  Object.defineProperty(exports, "PhoneInputGroup", {
45470
44941
  enumerable: true,
45471
- get: function () { return chunkOHKO5THF_cjs.PhoneInputGroup; }
44942
+ get: function () { return chunkMGFRGPWI_cjs.PhoneInputGroup; }
45472
44943
  });
45473
44944
  Object.defineProperty(exports, "CircularProgress", {
45474
44945
  enumerable: true,
@@ -45514,53 +44985,65 @@ Object.defineProperty(exports, "ReadingProgressBar", {
45514
44985
  enumerable: true,
45515
44986
  get: function () { return chunk5MXO6PEV_cjs.ReadingProgressBar; }
45516
44987
  });
44988
+ Object.defineProperty(exports, "DictationButton", {
44989
+ enumerable: true,
44990
+ get: function () { return chunkBFVYM6IT_cjs.DictationButton; }
44991
+ });
44992
+ Object.defineProperty(exports, "defaultDictationLabels", {
44993
+ enumerable: true,
44994
+ get: function () { return chunkBFVYM6IT_cjs.defaultDictationLabels; }
44995
+ });
44996
+ Object.defineProperty(exports, "useDictation", {
44997
+ enumerable: true,
44998
+ get: function () { return chunkBFVYM6IT_cjs.useDictation; }
44999
+ });
45517
45000
  Object.defineProperty(exports, "RecordButton", {
45518
45001
  enumerable: true,
45519
- get: function () { return chunkJTSKPDPH_cjs.RecordButton; }
45002
+ get: function () { return chunkHIYQ3M5V_cjs.RecordButton; }
45520
45003
  });
45521
45004
  Object.defineProperty(exports, "formatDuration", {
45522
45005
  enumerable: true,
45523
- get: function () { return chunkJTSKPDPH_cjs.formatDuration; }
45006
+ get: function () { return chunkHIYQ3M5V_cjs.formatDuration; }
45524
45007
  });
45525
45008
  Object.defineProperty(exports, "recordButtonVariants", {
45526
45009
  enumerable: true,
45527
- get: function () { return chunkJTSKPDPH_cjs.recordButtonVariants; }
45010
+ get: function () { return chunkHIYQ3M5V_cjs.recordButtonVariants; }
45528
45011
  });
45529
45012
  Object.defineProperty(exports, "FillerWordsModal", {
45530
45013
  enumerable: true,
45531
- get: function () { return chunkO6BJMVGT_cjs.FillerWordsModal; }
45014
+ get: function () { return chunkXZNHS7YQ_cjs.FillerWordsModal; }
45532
45015
  });
45533
45016
  Object.defineProperty(exports, "MediaEditor", {
45534
45017
  enumerable: true,
45535
- get: function () { return chunkO6BJMVGT_cjs.MediaEditor; }
45018
+ get: function () { return chunkXZNHS7YQ_cjs.MediaEditor; }
45536
45019
  });
45537
45020
  Object.defineProperty(exports, "SilenceSettingsModal", {
45538
45021
  enumerable: true,
45539
- get: function () { return chunkO6BJMVGT_cjs.SilenceSettingsModal; }
45022
+ get: function () { return chunkXZNHS7YQ_cjs.SilenceSettingsModal; }
45540
45023
  });
45541
45024
  Object.defineProperty(exports, "SpeedMarkerMenu", {
45542
45025
  enumerable: true,
45543
- get: function () { return chunkO6BJMVGT_cjs.SpeedMarkerMenu; }
45026
+ get: function () { return chunkXZNHS7YQ_cjs.SpeedMarkerMenu; }
45544
45027
  });
45545
45028
  Object.defineProperty(exports, "WordEditorModal", {
45546
45029
  enumerable: true,
45547
- get: function () { return chunkO6BJMVGT_cjs.WordEditorModal; }
45030
+ get: function () { return chunkXZNHS7YQ_cjs.WordEditorModal; }
45548
45031
  });
45549
45032
  Object.defineProperty(exports, "Slider", {
45550
45033
  enumerable: true,
45551
- get: function () { return chunkMYAU2ZUC_cjs.Slider; }
45034
+ get: function () { return chunkGDKOYVX3_cjs.Slider; }
45552
45035
  });
45553
45036
  Object.defineProperty(exports, "sliderRangeVariants", {
45554
45037
  enumerable: true,
45555
- get: function () { return chunkMYAU2ZUC_cjs.sliderRangeVariants; }
45038
+ get: function () { return chunkGDKOYVX3_cjs.sliderRangeVariants; }
45556
45039
  });
45557
45040
  Object.defineProperty(exports, "sliderThumbVariants", {
45558
45041
  enumerable: true,
45559
- get: function () { return chunkMYAU2ZUC_cjs.sliderThumbVariants; }
45042
+ get: function () { return chunkGDKOYVX3_cjs.sliderThumbVariants; }
45560
45043
  });
45561
45044
  Object.defineProperty(exports, "sliderTrackVariants", {
45562
45045
  enumerable: true,
45563
- get: function () { return chunkMYAU2ZUC_cjs.sliderTrackVariants; }
45046
+ get: function () { return chunkGDKOYVX3_cjs.sliderTrackVariants; }
45564
45047
  });
45565
45048
  Object.defineProperty(exports, "MediaFeed", {
45566
45049
  enumerable: true,
@@ -45580,15 +45063,15 @@ Object.defineProperty(exports, "mediaPlayerVariants", {
45580
45063
  });
45581
45064
  Object.defineProperty(exports, "MegaMenu", {
45582
45065
  enumerable: true,
45583
- get: function () { return chunkXHK5VZ4L_cjs.MegaMenu; }
45066
+ get: function () { return chunk6ZA574PU_cjs.MegaMenu; }
45584
45067
  });
45585
45068
  Object.defineProperty(exports, "MegaMenuBar", {
45586
45069
  enumerable: true,
45587
- get: function () { return chunkXHK5VZ4L_cjs.MegaMenuBar; }
45070
+ get: function () { return chunk6ZA574PU_cjs.MegaMenuBar; }
45588
45071
  });
45589
45072
  Object.defineProperty(exports, "normalizePath", {
45590
45073
  enumerable: true,
45591
- get: function () { return chunkXHK5VZ4L_cjs.normalizePath; }
45074
+ get: function () { return chunk6ZA574PU_cjs.normalizePath; }
45592
45075
  });
45593
45076
  Object.defineProperty(exports, "OrbitRing", {
45594
45077
  enumerable: true,
@@ -45656,19 +45139,23 @@ Object.defineProperty(exports, "listViewItemVariants", {
45656
45139
  });
45657
45140
  Object.defineProperty(exports, "CodeBlock", {
45658
45141
  enumerable: true,
45659
- get: function () { return chunkNAH65KPK_cjs.CodeBlock; }
45142
+ get: function () { return chunkTOJ56HKQ_cjs.CodeBlock; }
45660
45143
  });
45661
45144
  Object.defineProperty(exports, "MarkdownRenderer", {
45662
45145
  enumerable: true,
45663
- get: function () { return chunkNAH65KPK_cjs.MarkdownRenderer; }
45146
+ get: function () { return chunkTOJ56HKQ_cjs.MarkdownRenderer; }
45664
45147
  });
45665
45148
  Object.defineProperty(exports, "highlightCode", {
45666
45149
  enumerable: true,
45667
- get: function () { return chunkNAH65KPK_cjs.highlightCode; }
45150
+ get: function () { return chunkTOJ56HKQ_cjs.highlightCode; }
45668
45151
  });
45669
45152
  Object.defineProperty(exports, "useMarkdown", {
45670
45153
  enumerable: true,
45671
- get: function () { return chunkNAH65KPK_cjs.useMarkdown; }
45154
+ get: function () { return chunkTOJ56HKQ_cjs.useMarkdown; }
45155
+ });
45156
+ Object.defineProperty(exports, "SurveyBlock", {
45157
+ enumerable: true,
45158
+ get: function () { return chunkIGDO62KR_cjs.SurveyBlock; }
45672
45159
  });
45673
45160
  Object.defineProperty(exports, "CsvBlock", {
45674
45161
  enumerable: true,
@@ -45682,10 +45169,6 @@ Object.defineProperty(exports, "MermaidBlock", {
45682
45169
  enumerable: true,
45683
45170
  get: function () { return chunk32ZCJOSR_cjs.MermaidBlock; }
45684
45171
  });
45685
- Object.defineProperty(exports, "SurveyBlock", {
45686
- enumerable: true,
45687
- get: function () { return chunkIGDO62KR_cjs.SurveyBlock; }
45688
- });
45689
45172
  Object.defineProperty(exports, "FenceBlock", {
45690
45173
  enumerable: true,
45691
45174
  get: function () { return chunkRIUQP2QS_cjs.FenceBlock; }
@@ -45696,15 +45179,15 @@ Object.defineProperty(exports, "CopyButton", {
45696
45179
  });
45697
45180
  Object.defineProperty(exports, "CountryCodeDropdown", {
45698
45181
  enumerable: true,
45699
- get: function () { return chunkCFI3TQMA_cjs.CountryCodeDropdown; }
45182
+ get: function () { return chunk56C7K4MV_cjs.CountryCodeDropdown; }
45700
45183
  });
45701
45184
  Object.defineProperty(exports, "formatE164", {
45702
45185
  enumerable: true,
45703
- get: function () { return chunkCFI3TQMA_cjs.formatE164; }
45186
+ get: function () { return chunk56C7K4MV_cjs.formatE164; }
45704
45187
  });
45705
45188
  Object.defineProperty(exports, "validatePhoneNumber", {
45706
45189
  enumerable: true,
45707
- get: function () { return chunkCFI3TQMA_cjs.validatePhoneNumber; }
45190
+ get: function () { return chunk56C7K4MV_cjs.validatePhoneNumber; }
45708
45191
  });
45709
45192
  Object.defineProperty(exports, "CustomizableDashboard", {
45710
45193
  enumerable: true,
@@ -45936,15 +45419,15 @@ Object.defineProperty(exports, "ClampedText", {
45936
45419
  });
45937
45420
  Object.defineProperty(exports, "CollabStatus", {
45938
45421
  enumerable: true,
45939
- get: function () { return chunkQX6AAVDE_cjs.CollabStatus; }
45422
+ get: function () { return chunkL4APW65W_cjs.CollabStatus; }
45940
45423
  });
45941
45424
  Object.defineProperty(exports, "defaultCollabStatusLabels", {
45942
45425
  enumerable: true,
45943
- get: function () { return chunkQX6AAVDE_cjs.defaultCollabStatusLabels; }
45426
+ get: function () { return chunkL4APW65W_cjs.defaultCollabStatusLabels; }
45944
45427
  });
45945
45428
  Object.defineProperty(exports, "useYjsCollabStatus", {
45946
45429
  enumerable: true,
45947
- get: function () { return chunkQX6AAVDE_cjs.useYjsCollabStatus; }
45430
+ get: function () { return chunkL4APW65W_cjs.useYjsCollabStatus; }
45948
45431
  });
45949
45432
  Object.defineProperty(exports, "Collapsible", {
45950
45433
  enumerable: true,
@@ -45992,23 +45475,23 @@ Object.defineProperty(exports, "useConfirm", {
45992
45475
  });
45993
45476
  Object.defineProperty(exports, "AudioPlayer", {
45994
45477
  enumerable: true,
45995
- get: function () { return chunkPJ6CC53R_cjs.AudioPlayer; }
45478
+ get: function () { return chunkAKMTPCLC_cjs.AudioPlayer; }
45996
45479
  });
45997
45480
  Object.defineProperty(exports, "ProgressBar", {
45998
45481
  enumerable: true,
45999
- get: function () { return chunkPJ6CC53R_cjs.ProgressBar; }
45482
+ get: function () { return chunkAKMTPCLC_cjs.ProgressBar; }
46000
45483
  });
46001
45484
  Object.defineProperty(exports, "audioPlayerVariants", {
46002
45485
  enumerable: true,
46003
- get: function () { return chunkPJ6CC53R_cjs.audioPlayerVariants; }
45486
+ get: function () { return chunkAKMTPCLC_cjs.audioPlayerVariants; }
46004
45487
  });
46005
45488
  Object.defineProperty(exports, "formatAudioTime", {
46006
45489
  enumerable: true,
46007
- get: function () { return chunkPJ6CC53R_cjs.formatTime; }
45490
+ get: function () { return chunkAKMTPCLC_cjs.formatTime; }
46008
45491
  });
46009
45492
  Object.defineProperty(exports, "playButtonVariants", {
46010
45493
  enumerable: true,
46011
- get: function () { return chunkPJ6CC53R_cjs.playButtonVariants; }
45494
+ get: function () { return chunkAKMTPCLC_cjs.playButtonVariants; }
46012
45495
  });
46013
45496
  Object.defineProperty(exports, "AudioRecorder", {
46014
45497
  enumerable: true,
@@ -46348,11 +45831,11 @@ Object.defineProperty(exports, "stripHtmlTags", {
46348
45831
  });
46349
45832
  Object.defineProperty(exports, "miewebUIPreset", {
46350
45833
  enumerable: true,
46351
- get: function () { return chunkECYIDXG6_cjs.miewebUIPreset; }
45834
+ get: function () { return chunk5K7PRPSV_cjs.miewebUIPreset; }
46352
45835
  });
46353
45836
  Object.defineProperty(exports, "miewebUISafelist", {
46354
45837
  enumerable: true,
46355
- get: function () { return chunkECYIDXG6_cjs.miewebUISafelist; }
45838
+ get: function () { return chunk5K7PRPSV_cjs.miewebUISafelist; }
46356
45839
  });
46357
45840
  Object.defineProperty(exports, "Accordion", {
46358
45841
  enumerable: true,
@@ -46432,71 +45915,71 @@ Object.defineProperty(exports, "isApplicable", {
46432
45915
  });
46433
45916
  Object.defineProperty(exports, "ALLERGY_TYPE_LABELS", {
46434
45917
  enumerable: true,
46435
- get: function () { return chunkFBN2VHUV_cjs.ALLERGY_TYPE_LABELS; }
45918
+ get: function () { return chunk5VA2HJ5B_cjs.ALLERGY_TYPE_LABELS; }
46436
45919
  });
46437
45920
  Object.defineProperty(exports, "AllergyList", {
46438
45921
  enumerable: true,
46439
- get: function () { return chunkFBN2VHUV_cjs.AllergyList; }
45922
+ get: function () { return chunk5VA2HJ5B_cjs.AllergyList; }
46440
45923
  });
46441
45924
  Object.defineProperty(exports, "AllergyManager", {
46442
45925
  enumerable: true,
46443
- get: function () { return chunkFBN2VHUV_cjs.AllergyManager; }
45926
+ get: function () { return chunk5VA2HJ5B_cjs.AllergyManager; }
46444
45927
  });
46445
45928
  Object.defineProperty(exports, "CodeLookupProvider", {
46446
45929
  enumerable: true,
46447
- get: function () { return chunkFBN2VHUV_cjs.CodeLookupProvider; }
45930
+ get: function () { return chunk5VA2HJ5B_cjs.CodeLookupProvider; }
46448
45931
  });
46449
45932
  Object.defineProperty(exports, "MEDICATION_STATUS_LABELS", {
46450
45933
  enumerable: true,
46451
- get: function () { return chunkFBN2VHUV_cjs.MEDICATION_STATUS_LABELS; }
45934
+ get: function () { return chunk5VA2HJ5B_cjs.MEDICATION_STATUS_LABELS; }
46452
45935
  });
46453
45936
  Object.defineProperty(exports, "MedicationEditor", {
46454
45937
  enumerable: true,
46455
- get: function () { return chunkFBN2VHUV_cjs.MedicationEditor; }
45938
+ get: function () { return chunk5VA2HJ5B_cjs.MedicationEditor; }
46456
45939
  });
46457
45940
  Object.defineProperty(exports, "MedicationList", {
46458
45941
  enumerable: true,
46459
- get: function () { return chunkFBN2VHUV_cjs.MedicationList; }
45942
+ get: function () { return chunk5VA2HJ5B_cjs.MedicationList; }
46460
45943
  });
46461
45944
  Object.defineProperty(exports, "MedicationReconciliation", {
46462
45945
  enumerable: true,
46463
- get: function () { return chunkFBN2VHUV_cjs.MedicationReconciliation; }
45946
+ get: function () { return chunk5VA2HJ5B_cjs.MedicationReconciliation; }
46464
45947
  });
46465
45948
  Object.defineProperty(exports, "RowActionToolbar", {
46466
45949
  enumerable: true,
46467
- get: function () { return chunkFBN2VHUV_cjs.RowActionToolbar; }
45950
+ get: function () { return chunk5VA2HJ5B_cjs.RowActionToolbar; }
46468
45951
  });
46469
45952
  Object.defineProperty(exports, "RowIconButton", {
46470
45953
  enumerable: true,
46471
- get: function () { return chunkFBN2VHUV_cjs.RowIconButton; }
45954
+ get: function () { return chunk5VA2HJ5B_cjs.RowIconButton; }
46472
45955
  });
46473
45956
  Object.defineProperty(exports, "labelToMedicationFields", {
46474
45957
  enumerable: true,
46475
- get: function () { return chunkFBN2VHUV_cjs.labelToMedicationFields; }
45958
+ get: function () { return chunk5VA2HJ5B_cjs.labelToMedicationFields; }
46476
45959
  });
46477
45960
  Object.defineProperty(exports, "lookupToMedicationFields", {
46478
45961
  enumerable: true,
46479
- get: function () { return chunkFBN2VHUV_cjs.lookupToMedicationFields; }
45962
+ get: function () { return chunk5VA2HJ5B_cjs.lookupToMedicationFields; }
46480
45963
  });
46481
45964
  Object.defineProperty(exports, "parseMedicationLabel", {
46482
45965
  enumerable: true,
46483
- get: function () { return chunkFBN2VHUV_cjs.parseMedicationLabel; }
45966
+ get: function () { return chunk5VA2HJ5B_cjs.parseMedicationLabel; }
46484
45967
  });
46485
45968
  Object.defineProperty(exports, "parseSig", {
46486
45969
  enumerable: true,
46487
- get: function () { return chunkFBN2VHUV_cjs.parseSig; }
45970
+ get: function () { return chunk5VA2HJ5B_cjs.parseSig; }
46488
45971
  });
46489
45972
  Object.defineProperty(exports, "toolbarKeyNav", {
46490
45973
  enumerable: true,
46491
- get: function () { return chunkFBN2VHUV_cjs.toolbarKeyNav; }
45974
+ get: function () { return chunk5VA2HJ5B_cjs.toolbarKeyNav; }
46492
45975
  });
46493
45976
  Object.defineProperty(exports, "useCodeLookupConfig", {
46494
45977
  enumerable: true,
46495
- get: function () { return chunkFBN2VHUV_cjs.useCodeLookupConfig; }
45978
+ get: function () { return chunk5VA2HJ5B_cjs.useCodeLookupConfig; }
46496
45979
  });
46497
45980
  Object.defineProperty(exports, "Tooltip", {
46498
45981
  enumerable: true,
46499
- get: function () { return chunkJSXIB6EJ_cjs.Tooltip; }
45982
+ get: function () { return chunkGLG6UE2H_cjs.Tooltip; }
46500
45983
  });
46501
45984
  Object.defineProperty(exports, "Radio", {
46502
45985
  enumerable: true,
@@ -46520,7 +46003,7 @@ Object.defineProperty(exports, "labelVariants", {
46520
46003
  });
46521
46004
  Object.defineProperty(exports, "DateInput", {
46522
46005
  enumerable: true,
46523
- get: function () { return chunkZSGEGISB_cjs.DateInput; }
46006
+ get: function () { return chunkPHUTJKHL_cjs.DateInput; }
46524
46007
  });
46525
46008
  Object.defineProperty(exports, "Textarea", {
46526
46009
  enumerable: true,
@@ -47644,6 +47127,7 @@ exports.HealthSurveillance = HealthSurveillance;
47644
47127
  exports.HelpSupportPanel = HelpSupportPanel;
47645
47128
  exports.HeroSearchBar = HeroSearchBar;
47646
47129
  exports.HeyOzwell = HeyOzwell;
47130
+ exports.HeyOzwellSelector = HeyOzwellSelector;
47647
47131
  exports.HeyOzwellToggle = HeyOzwellToggle;
47648
47132
  exports.HoursSummary = HoursSummary;
47649
47133
  exports.ImagingOrderEditor = ImagingOrderEditor;
@@ -47794,8 +47278,6 @@ exports.WebChartReportViewer = WebChartReportViewer;
47794
47278
  exports.WebcamModal = WebcamModal;
47795
47279
  exports.WebsiteInput = WebsiteInput;
47796
47280
  exports.WebsiteInputGroup = WebsiteInputGroup;
47797
- exports.askOzwell = askOzwell;
47798
- exports.askOzwellStream = askOzwellStream;
47799
47281
  exports.attributeSegments = attributeSegments;
47800
47282
  exports.calculateDateRange = calculateDateRange;
47801
47283
  exports.centroid = centroid;
@@ -47810,28 +47292,23 @@ exports.create24HourSchedule = create24HourSchedule;
47810
47292
  exports.createDefaultSchedule = createDefaultSchedule;
47811
47293
  exports.createWeekdaySchedule = createWeekdaySchedule;
47812
47294
  exports.currentAssertion = currentAssertion;
47813
- exports.decodeTo16kMono = decodeTo16kMono;
47814
47295
  exports.defaultCaseManagementHeaderLabels = defaultCaseManagementHeaderLabels;
47296
+ exports.defaultHeyOzwellSelectorLabels = defaultHeyOzwellSelectorLabels;
47815
47297
  exports.defaultOrderTabs = defaultOrderTabs;
47816
47298
  exports.defaultReconciliationIsEqual = defaultReconciliationIsEqual;
47817
- exports.endsWithDone = endsWithDone;
47818
47299
  exports.formatAddressLines = formatAddressLines;
47819
47300
  exports.formatAddressSingleLine = formatAddressSingleLine;
47820
47301
  exports.formatCityState = formatCityState;
47821
47302
  exports.formatCityStateZip = formatCityStateZip;
47822
47303
  exports.generateId = generateId;
47823
47304
  exports.getDefaultPresets = getDefaultPresets;
47824
- exports.getDictationLoad = getDictationLoad;
47825
47305
  exports.getExtendedPresets = getExtendedPresets;
47826
47306
  exports.getGoogleMapsSearchUrl = getGoogleMapsSearchUrl;
47827
47307
  exports.getGoogleMapsUrl = getGoogleMapsUrl;
47828
- exports.getOzwellConfig = getOzwellConfig;
47829
47308
  exports.getWakeWarm = getWakeWarm;
47830
47309
  exports.inferSpeakerRoles = inferSpeakerRoles;
47831
47310
  exports.isConditionCodetype = isConditionCodetype;
47832
- exports.isOzwellConfigured = isOzwellConfigured;
47833
47311
  exports.isValidUrl = isValidUrl;
47834
- exports.isWhisperLoaded = isWhisperLoaded;
47835
47312
  exports.labelClusters = labelClusters;
47836
47313
  exports.medicationToOrder = medicationToOrder;
47837
47314
  exports.mergeTurns = mergeTurns;
@@ -47842,16 +47319,7 @@ exports.orderToMedication = orderToMedication;
47842
47319
  exports.orderTypeForCodetype = orderTypeForCodetype;
47843
47320
  exports.parseTimeInput = parseTimeInput;
47844
47321
  exports.reconciliationPanelVariants = panelVariants;
47845
- exports.stripStopPhrase = stripStopPhrase;
47846
- exports.subscribeDictationLoad = subscribeDictationLoad;
47847
47322
  exports.subscribeWakeWarm = subscribeWakeWarm;
47848
- exports.toOzwellMessages = toOzwellMessages;
47849
- exports.transcribeBlob = transcribeBlob;
47850
- exports.transcribeGate = transcribeGate;
47851
- exports.transcribeSamples = transcribeSamples;
47852
- exports.transcribeSegments = transcribeSegments;
47853
- exports.transcribeServer = transcribeServer;
47854
- exports.trimTrailingStopPhrase = trimTrailingStopPhrase;
47855
47323
  exports.useCamera = useCamera;
47856
47324
  exports.useCommandPalette = useCommandPalette;
47857
47325
  exports.useConnectionStatus = useConnectionStatus;
@@ -47868,9 +47336,7 @@ exports.useToast = useToast;
47868
47336
  exports.useVisitScribe = useVisitScribe;
47869
47337
  exports.useVoiceSetup = useVoiceSetup;
47870
47338
  exports.useWakeWord = useWakeWord;
47871
- exports.warmStopGate = warmStopGate;
47872
47339
  exports.warmWakeModels = warmWakeModels;
47873
- exports.warmWhisper = warmWhisper;
47874
47340
  exports.widgetVariants = widgetVariants;
47875
47341
  //# sourceMappingURL=index.cjs.map
47876
47342
  //# sourceMappingURL=index.cjs.map