@mieweb/ui 0.6.1 → 0.7.0-dev.178

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 (450) hide show
  1. package/README.md +90 -53
  2. package/dist/CsvBlock-2A5VEDD3.cjs +15 -0
  3. package/dist/CsvBlock-2A5VEDD3.cjs.map +1 -0
  4. package/dist/CsvBlock-D6PWAJ5X.js +6 -0
  5. package/dist/CsvBlock-D6PWAJ5X.js.map +1 -0
  6. package/dist/HtmlPreviewBlock-PEHTJ6C3.js +6 -0
  7. package/dist/HtmlPreviewBlock-PEHTJ6C3.js.map +1 -0
  8. package/dist/HtmlPreviewBlock-SYXCV5RH.cjs +15 -0
  9. package/dist/HtmlPreviewBlock-SYXCV5RH.cjs.map +1 -0
  10. package/dist/MedicationEditor-Bp4NLy7y.d.cts +352 -0
  11. package/dist/MedicationEditor-Bp4NLy7y.d.ts +352 -0
  12. package/dist/MermaidBlock-7NK3AVK2.js +6 -0
  13. package/dist/MermaidBlock-7NK3AVK2.js.map +1 -0
  14. package/dist/MermaidBlock-AFXNP5NK.cjs +15 -0
  15. package/dist/MermaidBlock-AFXNP5NK.cjs.map +1 -0
  16. package/dist/SurveyBlock-6KRNKFH5.cjs +15 -0
  17. package/dist/SurveyBlock-6KRNKFH5.cjs.map +1 -0
  18. package/dist/SurveyBlock-NNDGXGG4.js +6 -0
  19. package/dist/SurveyBlock-NNDGXGG4.js.map +1 -0
  20. package/dist/ag-grid.cjs +6 -6
  21. package/dist/ag-grid.cjs.map +1 -1
  22. package/dist/ag-grid.js +2 -2
  23. package/dist/ag-grid.js.map +1 -1
  24. package/dist/brands/index.cjs +17 -17
  25. package/dist/brands/index.js +4 -4
  26. package/dist/chunk-372IIHUA.cjs +2017 -0
  27. package/dist/chunk-372IIHUA.cjs.map +1 -0
  28. package/dist/{chunk-2DS3RJ2D.js → chunk-3TERETXH.js} +112 -3
  29. package/dist/chunk-3TERETXH.js.map +1 -0
  30. package/dist/chunk-44CK4CT2.cjs +336 -0
  31. package/dist/chunk-44CK4CT2.cjs.map +1 -0
  32. package/dist/{chunk-FSBFQBNE.cjs → chunk-4GXECTPS.cjs} +2 -2
  33. package/dist/{chunk-FSBFQBNE.cjs.map → chunk-4GXECTPS.cjs.map} +1 -1
  34. package/dist/chunk-4LVPQ44A.js +228 -0
  35. package/dist/chunk-4LVPQ44A.js.map +1 -0
  36. package/dist/{chunk-6555OYRU.js → chunk-5BQE6BEL.js} +2 -2
  37. package/dist/{chunk-6555OYRU.js.map → chunk-5BQE6BEL.js.map} +1 -1
  38. package/dist/chunk-62ZOA6PX.js +31 -0
  39. package/dist/chunk-62ZOA6PX.js.map +1 -0
  40. package/dist/chunk-63KVQHGQ.cjs +1802 -0
  41. package/dist/chunk-63KVQHGQ.cjs.map +1 -0
  42. package/dist/chunk-6AHYYWVB.js +78 -0
  43. package/dist/chunk-6AHYYWVB.js.map +1 -0
  44. package/dist/chunk-6I7IDZ4A.js +51 -0
  45. package/dist/chunk-6I7IDZ4A.js.map +1 -0
  46. package/dist/chunk-6ZYE6JUK.cjs +80 -0
  47. package/dist/chunk-6ZYE6JUK.cjs.map +1 -0
  48. package/dist/chunk-7QXG5BBB.cjs +164 -0
  49. package/dist/chunk-7QXG5BBB.cjs.map +1 -0
  50. package/dist/chunk-7WMSUXOQ.js +182 -0
  51. package/dist/chunk-7WMSUXOQ.js.map +1 -0
  52. package/dist/chunk-7XUN3OQT.js +3 -0
  53. package/dist/{chunk-V2DF2GUE.js.map → chunk-7XUN3OQT.js.map} +1 -1
  54. package/dist/chunk-7ZVTLTJF.js +109 -0
  55. package/dist/chunk-7ZVTLTJF.js.map +1 -0
  56. package/dist/chunk-AES2BKEW.cjs +229 -0
  57. package/dist/chunk-AES2BKEW.cjs.map +1 -0
  58. package/dist/chunk-AFKKJEV5.cjs +72 -0
  59. package/dist/chunk-AFKKJEV5.cjs.map +1 -0
  60. package/dist/chunk-AT732HC6.cjs +4 -0
  61. package/dist/{chunk-74K3RRU7.cjs.map → chunk-AT732HC6.cjs.map} +1 -1
  62. package/dist/chunk-BB4WQ4LV.cjs +137 -0
  63. package/dist/chunk-BB4WQ4LV.cjs.map +1 -0
  64. package/dist/chunk-BIT27PPD.js +49 -0
  65. package/dist/chunk-BIT27PPD.js.map +1 -0
  66. package/dist/chunk-BLPCYP4D.cjs +537 -0
  67. package/dist/chunk-BLPCYP4D.cjs.map +1 -0
  68. package/dist/chunk-BT3ZQJGT.cjs +130 -0
  69. package/dist/chunk-BT3ZQJGT.cjs.map +1 -0
  70. package/dist/chunk-BX6BTDTR.js +34 -0
  71. package/dist/chunk-BX6BTDTR.js.map +1 -0
  72. package/dist/chunk-C2544GKZ.js +313 -0
  73. package/dist/chunk-C2544GKZ.js.map +1 -0
  74. package/dist/chunk-C7RVKV25.cjs +25 -0
  75. package/dist/chunk-C7RVKV25.cjs.map +1 -0
  76. package/dist/chunk-CKD554XR.cjs +100 -0
  77. package/dist/chunk-CKD554XR.cjs.map +1 -0
  78. package/dist/chunk-CVC4NWFA.cjs +154 -0
  79. package/dist/chunk-CVC4NWFA.cjs.map +1 -0
  80. package/dist/{chunk-K3IVCUPP.js → chunk-CYMZ2QS5.js} +2 -2
  81. package/dist/{chunk-K3IVCUPP.js.map → chunk-CYMZ2QS5.js.map} +1 -1
  82. package/dist/{chunk-FRT6RQND.cjs → chunk-DAPZPT5N.cjs} +92 -56
  83. package/dist/chunk-DAPZPT5N.cjs.map +1 -0
  84. package/dist/chunk-DHKYGVP7.js +3 -0
  85. package/dist/{chunk-LEMY57MI.js.map → chunk-DHKYGVP7.js.map} +1 -1
  86. package/dist/chunk-DLNJLCNO.cjs +101 -0
  87. package/dist/chunk-DLNJLCNO.cjs.map +1 -0
  88. package/dist/chunk-DUPR6FEL.js +43 -0
  89. package/dist/chunk-DUPR6FEL.js.map +1 -0
  90. package/dist/{chunk-4FALCEJI.cjs → chunk-EL2RSQTJ.cjs} +2 -2
  91. package/dist/{chunk-4FALCEJI.cjs.map → chunk-EL2RSQTJ.cjs.map} +1 -1
  92. package/dist/chunk-ERLPVXOV.js +22 -0
  93. package/dist/chunk-ERLPVXOV.js.map +1 -0
  94. package/dist/chunk-FIWKHLWY.js +197 -0
  95. package/dist/chunk-FIWKHLWY.js.map +1 -0
  96. package/dist/chunk-FJH7P5WG.js +513 -0
  97. package/dist/chunk-FJH7P5WG.js.map +1 -0
  98. package/dist/chunk-FSGEDDF2.cjs +33 -0
  99. package/dist/chunk-FSGEDDF2.cjs.map +1 -0
  100. package/dist/chunk-GLXTVCHN.cjs +4 -0
  101. package/dist/{chunk-4ZU53GNR.cjs.map → chunk-GLXTVCHN.cjs.map} +1 -1
  102. package/dist/chunk-HRS6W74P.js +1568 -0
  103. package/dist/chunk-HRS6W74P.js.map +1 -0
  104. package/dist/chunk-I2W24RHW.js +196 -0
  105. package/dist/chunk-I2W24RHW.js.map +1 -0
  106. package/dist/chunk-I6CY5C6A.js +12 -0
  107. package/dist/chunk-I6CY5C6A.js.map +1 -0
  108. package/dist/chunk-IQ4KQJAO.js +3 -0
  109. package/dist/chunk-IQ4KQJAO.js.map +1 -0
  110. package/dist/chunk-IWDQPSJN.cjs +1452 -0
  111. package/dist/chunk-IWDQPSJN.cjs.map +1 -0
  112. package/dist/chunk-J7KWQJOB.js +14 -0
  113. package/dist/chunk-J7KWQJOB.js.map +1 -0
  114. package/dist/{chunk-R25H4N4Z.js → chunk-J7Z7467B.js} +92 -56
  115. package/dist/chunk-J7Z7467B.js.map +1 -0
  116. package/dist/{chunk-NINI4WVS.cjs → chunk-JC6Y3LGF.cjs} +297 -84
  117. package/dist/chunk-JC6Y3LGF.cjs.map +1 -0
  118. package/dist/chunk-JCNPVK74.cjs +347 -0
  119. package/dist/chunk-JCNPVK74.cjs.map +1 -0
  120. package/dist/chunk-JFLC7SHM.cjs +35 -0
  121. package/dist/chunk-JFLC7SHM.cjs.map +1 -0
  122. package/dist/chunk-JHYFHEHS.js +1967 -0
  123. package/dist/chunk-JHYFHEHS.js.map +1 -0
  124. package/dist/{chunk-IBZXDX4L.cjs → chunk-JQEY53SH.cjs} +112 -3
  125. package/dist/chunk-JQEY53SH.cjs.map +1 -0
  126. package/dist/chunk-JTBQNOSL.cjs +1605 -0
  127. package/dist/chunk-JTBQNOSL.cjs.map +1 -0
  128. package/dist/chunk-JYZW2PZS.cjs +166 -0
  129. package/dist/chunk-JYZW2PZS.cjs.map +1 -0
  130. package/dist/chunk-KBEKQMVY.cjs +198 -0
  131. package/dist/chunk-KBEKQMVY.cjs.map +1 -0
  132. package/dist/chunk-KJ5BSGEO.cjs +258 -0
  133. package/dist/chunk-KJ5BSGEO.cjs.map +1 -0
  134. package/dist/{chunk-DNPRRYPQ.js → chunk-KL2S36FM.js} +2 -2
  135. package/dist/chunk-KL2S36FM.js.map +1 -0
  136. package/dist/chunk-LIH3IZYK.js +689 -0
  137. package/dist/chunk-LIH3IZYK.js.map +1 -0
  138. package/dist/chunk-MAMY5HTT.cjs +1177 -0
  139. package/dist/chunk-MAMY5HTT.cjs.map +1 -0
  140. package/dist/{chunk-WFS6R2F5.js → chunk-MKWGKASO.js} +114 -101
  141. package/dist/chunk-MKWGKASO.js.map +1 -0
  142. package/dist/{chunk-CV4CVGLO.cjs → chunk-MZPF2QGM.cjs} +95 -74
  143. package/dist/chunk-MZPF2QGM.cjs.map +1 -0
  144. package/dist/chunk-NQME7MCK.js +1416 -0
  145. package/dist/chunk-NQME7MCK.js.map +1 -0
  146. package/dist/chunk-NTYGCBCL.js +543 -0
  147. package/dist/chunk-NTYGCBCL.js.map +1 -0
  148. package/dist/chunk-OF7NTZ2I.js +3 -0
  149. package/dist/chunk-OF7NTZ2I.js.map +1 -0
  150. package/dist/chunk-OXYFTCRW.cjs +57 -0
  151. package/dist/chunk-OXYFTCRW.cjs.map +1 -0
  152. package/dist/chunk-QA6ZDHFP.js +117 -0
  153. package/dist/chunk-QA6ZDHFP.js.map +1 -0
  154. package/dist/chunk-RHNPILZQ.cjs +4 -0
  155. package/dist/chunk-RHNPILZQ.cjs.map +1 -0
  156. package/dist/chunk-RHYIFIT5.js +98 -0
  157. package/dist/chunk-RHYIFIT5.js.map +1 -0
  158. package/dist/chunk-RI56YPED.cjs +201 -0
  159. package/dist/chunk-RI56YPED.cjs.map +1 -0
  160. package/dist/chunk-RISZWWEQ.js +3 -0
  161. package/dist/chunk-RISZWWEQ.js.map +1 -0
  162. package/dist/chunk-S6Z3KDEM.js +140 -0
  163. package/dist/chunk-S6Z3KDEM.js.map +1 -0
  164. package/dist/chunk-S7JQ3FV5.cjs +16 -0
  165. package/dist/chunk-S7JQ3FV5.cjs.map +1 -0
  166. package/dist/{chunk-OXGUG57G.cjs → chunk-SNEQXSC5.cjs} +2 -2
  167. package/dist/{chunk-OXGUG57G.cjs.map → chunk-SNEQXSC5.cjs.map} +1 -1
  168. package/dist/chunk-SQHMGT4W.js +164 -0
  169. package/dist/chunk-SQHMGT4W.js.map +1 -0
  170. package/dist/{chunk-JHPFOG2N.cjs → chunk-ST2RE5UB.cjs} +30 -18
  171. package/dist/chunk-ST2RE5UB.cjs.map +1 -0
  172. package/dist/{chunk-QVJBUWJQ.js → chunk-STPK44AU.js} +46 -12
  173. package/dist/chunk-STPK44AU.js.map +1 -0
  174. package/dist/chunk-T3C4RNJ4.js +106 -0
  175. package/dist/chunk-T3C4RNJ4.js.map +1 -0
  176. package/dist/chunk-T3RWXOCM.js +148 -0
  177. package/dist/chunk-T3RWXOCM.js.map +1 -0
  178. package/dist/{chunk-DCER2QQB.js → chunk-T42BCIUA.js} +2 -2
  179. package/dist/{chunk-DCER2QQB.js.map → chunk-T42BCIUA.js.map} +1 -1
  180. package/dist/{chunk-OYKS2JBB.cjs → chunk-TN33E2VN.cjs} +2 -2
  181. package/dist/chunk-TN33E2VN.cjs.map +1 -0
  182. package/dist/{chunk-K7IGBNZA.cjs → chunk-TR2OJKQ4.cjs} +46 -12
  183. package/dist/chunk-TR2OJKQ4.cjs.map +1 -0
  184. package/dist/chunk-UFYXU7KV.js +135 -0
  185. package/dist/chunk-UFYXU7KV.js.map +1 -0
  186. package/dist/chunk-UM6NA7HL.js +1145 -0
  187. package/dist/chunk-UM6NA7HL.js.map +1 -0
  188. package/dist/chunk-UO3KEUYK.cjs +220 -0
  189. package/dist/chunk-UO3KEUYK.cjs.map +1 -0
  190. package/dist/chunk-UOOH356R.cjs +66 -0
  191. package/dist/chunk-UOOH356R.cjs.map +1 -0
  192. package/dist/{chunk-4ZU53GNR.cjs → chunk-UTYUT5YY.cjs} +62 -2
  193. package/dist/chunk-UTYUT5YY.cjs.map +1 -0
  194. package/dist/chunk-UVSODK6V.cjs +53 -0
  195. package/dist/chunk-UVSODK6V.cjs.map +1 -0
  196. package/dist/chunk-V25Z5GR6.cjs +184 -0
  197. package/dist/chunk-V25Z5GR6.cjs.map +1 -0
  198. package/dist/chunk-VBWRH4UW.cjs +4 -0
  199. package/dist/chunk-VBWRH4UW.cjs.map +1 -0
  200. package/dist/chunk-VJOVJTFP.cjs +370 -0
  201. package/dist/chunk-VJOVJTFP.cjs.map +1 -0
  202. package/dist/{chunk-7BARESXI.cjs → chunk-VPNURIAY.cjs} +114 -101
  203. package/dist/chunk-VPNURIAY.cjs.map +1 -0
  204. package/dist/{chunk-I56VBDSC.js → chunk-XDFDVF2O.js} +30 -18
  205. package/dist/chunk-XDFDVF2O.js.map +1 -0
  206. package/dist/chunk-XL7TTKHP.js +327 -0
  207. package/dist/chunk-XL7TTKHP.js.map +1 -0
  208. package/dist/chunk-Y2S6QMKU.js +78 -0
  209. package/dist/chunk-Y2S6QMKU.js.map +1 -0
  210. package/dist/chunk-Y4ESBDQ5.cjs +552 -0
  211. package/dist/chunk-Y4ESBDQ5.cjs.map +1 -0
  212. package/dist/chunk-Y5KEFV5O.js +192 -0
  213. package/dist/chunk-Y5KEFV5O.js.map +1 -0
  214. package/dist/chunk-YBLIDESO.js +365 -0
  215. package/dist/chunk-YBLIDESO.js.map +1 -0
  216. package/dist/chunk-YVLP3ATI.js +1776 -0
  217. package/dist/chunk-YVLP3ATI.js.map +1 -0
  218. package/dist/chunk-YVPC65ZJ.cjs +134 -0
  219. package/dist/chunk-YVPC65ZJ.cjs.map +1 -0
  220. package/dist/{chunk-MPOWJVV4.js → chunk-YZT62IMX.js} +95 -74
  221. package/dist/chunk-YZT62IMX.js.map +1 -0
  222. package/dist/chunk-ZAIEQWRA.js +207 -0
  223. package/dist/chunk-ZAIEQWRA.js.map +1 -0
  224. package/dist/chunk-ZDEYV373.cjs +139 -0
  225. package/dist/chunk-ZDEYV373.cjs.map +1 -0
  226. package/dist/{chunk-Q7NBJFEB.js → chunk-ZGSC2CB2.js} +2 -2
  227. package/dist/{chunk-Q7NBJFEB.js.map → chunk-ZGSC2CB2.js.map} +1 -1
  228. package/dist/{chunk-3M4P2KMG.cjs → chunk-ZHBANUBI.cjs} +2 -2
  229. package/dist/{chunk-3M4P2KMG.cjs.map → chunk-ZHBANUBI.cjs.map} +1 -1
  230. package/dist/components/AlertDialog/index.cjs +18 -0
  231. package/dist/components/AlertDialog/index.cjs.map +1 -0
  232. package/dist/components/AlertDialog/index.d.cts +56 -0
  233. package/dist/components/AlertDialog/index.d.ts +56 -0
  234. package/dist/components/AlertDialog/index.js +9 -0
  235. package/dist/components/AlertDialog/index.js.map +1 -0
  236. package/dist/components/AudioRecorder/index.d.cts +1 -1
  237. package/dist/components/AudioRecorder/index.d.ts +1 -1
  238. package/dist/components/Autocomplete/index.cjs +16 -0
  239. package/dist/components/Autocomplete/index.cjs.map +1 -0
  240. package/dist/components/Autocomplete/index.d.cts +77 -0
  241. package/dist/components/Autocomplete/index.d.ts +77 -0
  242. package/dist/components/Autocomplete/index.js +7 -0
  243. package/dist/components/Autocomplete/index.js.map +1 -0
  244. package/dist/components/Badge/index.cjs +4 -3
  245. package/dist/components/Badge/index.js +2 -1
  246. package/dist/components/Card/index.cjs +16 -15
  247. package/dist/components/Card/index.js +2 -1
  248. package/dist/components/Collapsible/index.cjs +21 -0
  249. package/dist/components/Collapsible/index.cjs.map +1 -0
  250. package/dist/components/Collapsible/index.d.cts +33 -0
  251. package/dist/components/Collapsible/index.d.ts +33 -0
  252. package/dist/components/Collapsible/index.js +4 -0
  253. package/dist/components/Collapsible/index.js.map +1 -0
  254. package/dist/components/CountryCodeDropdown/index.cjs +6 -5
  255. package/dist/components/CountryCodeDropdown/index.js +3 -2
  256. package/dist/components/DateInput/index.cjs +2 -2
  257. package/dist/components/DateInput/index.d.cts +8 -2
  258. package/dist/components/DateInput/index.d.ts +8 -2
  259. package/dist/components/DateInput/index.js +1 -1
  260. package/dist/components/Dropdown/index.cjs +9 -8
  261. package/dist/components/Dropdown/index.d.cts +2 -1
  262. package/dist/components/Dropdown/index.d.ts +2 -1
  263. package/dist/components/Dropdown/index.js +3 -2
  264. package/dist/components/FloatingWindow/index.cjs +18 -0
  265. package/dist/components/FloatingWindow/index.cjs.map +1 -0
  266. package/dist/components/FloatingWindow/index.d.cts +64 -0
  267. package/dist/components/FloatingWindow/index.d.ts +64 -0
  268. package/dist/components/FloatingWindow/index.js +5 -0
  269. package/dist/components/FloatingWindow/index.js.map +1 -0
  270. package/dist/components/Label/index.cjs +17 -0
  271. package/dist/components/Label/index.cjs.map +1 -0
  272. package/dist/components/Label/index.d.cts +23 -0
  273. package/dist/components/Label/index.d.ts +23 -0
  274. package/dist/components/Label/index.js +4 -0
  275. package/dist/components/Label/index.js.map +1 -0
  276. package/dist/components/Markdown/index.cjs +51 -0
  277. package/dist/components/Markdown/index.cjs.map +1 -0
  278. package/dist/components/Markdown/index.css +331 -0
  279. package/dist/components/Markdown/index.css.map +1 -0
  280. package/dist/components/Markdown/index.d.cts +82 -0
  281. package/dist/components/Markdown/index.d.ts +82 -0
  282. package/dist/components/Markdown/index.js +10 -0
  283. package/dist/components/Markdown/index.js.map +1 -0
  284. package/dist/components/Markdown/styles.css +354 -0
  285. package/dist/components/MediaEditor/index.cjs +44 -0
  286. package/dist/components/MediaEditor/index.cjs.map +1 -0
  287. package/dist/components/MediaEditor/index.d.cts +151 -0
  288. package/dist/components/MediaEditor/index.d.ts +151 -0
  289. package/dist/components/MediaEditor/index.js +19 -0
  290. package/dist/components/MediaEditor/index.js.map +1 -0
  291. package/dist/components/MediaPlayer/index.cjs +24 -0
  292. package/dist/components/MediaPlayer/index.cjs.map +1 -0
  293. package/dist/components/MediaPlayer/index.d.cts +71 -0
  294. package/dist/components/MediaPlayer/index.d.ts +71 -0
  295. package/dist/components/MediaPlayer/index.js +7 -0
  296. package/dist/components/MediaPlayer/index.js.map +1 -0
  297. package/dist/components/RecordButton/index.cjs +4 -4
  298. package/dist/components/RecordButton/index.js +1 -1
  299. package/dist/components/RichTextEditor/index.cjs +33 -0
  300. package/dist/components/RichTextEditor/index.cjs.map +1 -0
  301. package/dist/components/RichTextEditor/index.d.cts +62 -0
  302. package/dist/components/RichTextEditor/index.d.ts +62 -0
  303. package/dist/components/RichTextEditor/index.js +12 -0
  304. package/dist/components/RichTextEditor/index.js.map +1 -0
  305. package/dist/components/ScrollArea/index.cjs +17 -0
  306. package/dist/components/ScrollArea/index.cjs.map +1 -0
  307. package/dist/components/ScrollArea/index.d.cts +22 -0
  308. package/dist/components/ScrollArea/index.d.ts +22 -0
  309. package/dist/components/ScrollArea/index.js +4 -0
  310. package/dist/components/ScrollArea/index.js.map +1 -0
  311. package/dist/components/Select/index.cjs +5 -3
  312. package/dist/components/Select/index.js +3 -1
  313. package/dist/components/Separator/index.cjs +17 -0
  314. package/dist/components/Separator/index.cjs.map +1 -0
  315. package/dist/components/Separator/index.d.cts +27 -0
  316. package/dist/components/Separator/index.d.ts +27 -0
  317. package/dist/components/Separator/index.js +4 -0
  318. package/dist/components/Separator/index.js.map +1 -0
  319. package/dist/components/Sheet/index.cjs +48 -0
  320. package/dist/components/Sheet/index.cjs.map +1 -0
  321. package/dist/components/Sheet/index.d.cts +62 -0
  322. package/dist/components/Sheet/index.d.ts +62 -0
  323. package/dist/components/Sheet/index.js +7 -0
  324. package/dist/components/Sheet/index.js.map +1 -0
  325. package/dist/components/SuperChat/index.cjs +1373 -0
  326. package/dist/components/SuperChat/index.cjs.map +1 -0
  327. package/dist/components/SuperChat/index.d.cts +189 -0
  328. package/dist/components/SuperChat/index.d.ts +189 -0
  329. package/dist/components/SuperChat/index.js +1336 -0
  330. package/dist/components/SuperChat/index.js.map +1 -0
  331. package/dist/components/SuperChat/plugins/index.cjs +1292 -0
  332. package/dist/components/SuperChat/plugins/index.cjs.map +1 -0
  333. package/dist/components/SuperChat/plugins/index.d.cts +233 -0
  334. package/dist/components/SuperChat/plugins/index.d.ts +233 -0
  335. package/dist/components/SuperChat/plugins/index.js +1252 -0
  336. package/dist/components/SuperChat/plugins/index.js.map +1 -0
  337. package/dist/components/Table/index.cjs +9 -9
  338. package/dist/components/Table/index.d.cts +4 -0
  339. package/dist/components/Table/index.d.ts +4 -0
  340. package/dist/components/Table/index.js +1 -1
  341. package/dist/components/ThemeProvider/index.cjs +7 -7
  342. package/dist/components/ThemeProvider/index.js +1 -1
  343. package/dist/components/Toggle/index.cjs +17 -0
  344. package/dist/components/Toggle/index.cjs.map +1 -0
  345. package/dist/components/Toggle/index.d.cts +28 -0
  346. package/dist/components/Toggle/index.d.ts +28 -0
  347. package/dist/components/Toggle/index.js +4 -0
  348. package/dist/components/Toggle/index.js.map +1 -0
  349. package/dist/components/TranscriptView/index.cjs +21 -0
  350. package/dist/components/TranscriptView/index.cjs.map +1 -0
  351. package/dist/components/TranscriptView/index.d.cts +55 -0
  352. package/dist/components/TranscriptView/index.d.ts +55 -0
  353. package/dist/components/TranscriptView/index.js +4 -0
  354. package/dist/components/TranscriptView/index.js.map +1 -0
  355. package/dist/datavis.cjs +268 -227
  356. package/dist/datavis.cjs.map +1 -1
  357. package/dist/datavis.d.cts +83 -9
  358. package/dist/datavis.d.ts +83 -9
  359. package/dist/datavis.js +235 -229
  360. package/dist/datavis.js.map +1 -1
  361. package/dist/esheet.cjs +184 -0
  362. package/dist/esheet.cjs.map +1 -1
  363. package/dist/esheet.d.cts +117 -0
  364. package/dist/esheet.d.ts +117 -0
  365. package/dist/esheet.js +163 -0
  366. package/dist/esheet.js.map +1 -1
  367. package/dist/hey-buddy-CLUVAY2X.cjs +1133 -0
  368. package/dist/hey-buddy-CLUVAY2X.cjs.map +1 -0
  369. package/dist/hey-buddy-NMSWZ4TN.js +1131 -0
  370. package/dist/hey-buddy-NMSWZ4TN.js.map +1 -0
  371. package/dist/hooks/index.cjs +76 -16
  372. package/dist/hooks/index.d.cts +151 -2
  373. package/dist/hooks/index.d.ts +151 -2
  374. package/dist/hooks/index.js +6 -2
  375. package/dist/html-MdxqSzjD.d.cts +13 -0
  376. package/dist/html-MdxqSzjD.d.ts +13 -0
  377. package/dist/index.cjs +10394 -6565
  378. package/dist/index.cjs.map +1 -1
  379. package/dist/index.css +331 -0
  380. package/dist/index.css.map +1 -0
  381. package/dist/index.d.cts +2020 -249
  382. package/dist/index.d.ts +2020 -249
  383. package/dist/index.js +9223 -5969
  384. package/dist/index.js.map +1 -1
  385. package/dist/kerebron.cjs +119 -0
  386. package/dist/kerebron.cjs.map +1 -0
  387. package/dist/kerebron.css +11 -0
  388. package/dist/kerebron.d.cts +23 -0
  389. package/dist/kerebron.d.ts +23 -0
  390. package/dist/kerebron.js +116 -0
  391. package/dist/kerebron.js.map +1 -0
  392. package/dist/nitroTableGrid-3J2GY6CK.cjs +47 -0
  393. package/dist/nitroTableGrid-3J2GY6CK.cjs.map +1 -0
  394. package/dist/nitroTableGrid-SIMT7635.js +25 -0
  395. package/dist/nitroTableGrid-SIMT7635.js.map +1 -0
  396. package/dist/orderRows-BUJYgSc7.d.cts +221 -0
  397. package/dist/orderRows-BUJYgSc7.d.ts +221 -0
  398. package/dist/speaker-verify-5GTWAN5Y.cjs +357 -0
  399. package/dist/speaker-verify-5GTWAN5Y.cjs.map +1 -0
  400. package/dist/speaker-verify-R67P433H.js +355 -0
  401. package/dist/speaker-verify-R67P433H.js.map +1 -0
  402. package/dist/styles/init.css +5 -0
  403. package/dist/styles.css +1 -1
  404. package/dist/tailwind-preset.cjs +4 -4
  405. package/dist/tailwind-preset.js +1 -1
  406. package/dist/transcript-oaWqY3yr.d.cts +81 -0
  407. package/dist/transcript-oaWqY3yr.d.ts +81 -0
  408. package/dist/types-BYnLjEFg.d.cts +248 -0
  409. package/dist/types-BYnLjEFg.d.ts +248 -0
  410. package/dist/types-CBh8Zlje.d.cts +240 -0
  411. package/dist/types-CyCwYBlr.d.ts +240 -0
  412. package/dist/useAnchoredPosition-nXdSFKHf.d.cts +65 -0
  413. package/dist/useAnchoredPosition-nXdSFKHf.d.ts +65 -0
  414. package/dist/useTranscriptEdits-BUylQFg0.d.cts +168 -0
  415. package/dist/useTranscriptEdits-CWYnjbGP.d.ts +168 -0
  416. package/dist/utils/index.cjs +27 -18
  417. package/dist/utils/index.d.cts +1 -0
  418. package/dist/utils/index.d.ts +1 -0
  419. package/dist/utils/index.js +3 -2
  420. package/package.json +180 -55
  421. package/dist/chunk-2DS3RJ2D.js.map +0 -1
  422. package/dist/chunk-74K3RRU7.cjs +0 -4
  423. package/dist/chunk-7BARESXI.cjs.map +0 -1
  424. package/dist/chunk-CV4CVGLO.cjs.map +0 -1
  425. package/dist/chunk-DNPRRYPQ.js.map +0 -1
  426. package/dist/chunk-FRT6RQND.cjs.map +0 -1
  427. package/dist/chunk-HYEJLKXI.js +0 -476
  428. package/dist/chunk-HYEJLKXI.js.map +0 -1
  429. package/dist/chunk-I56VBDSC.js.map +0 -1
  430. package/dist/chunk-IBZXDX4L.cjs.map +0 -1
  431. package/dist/chunk-IKMR2ADM.cjs +0 -25
  432. package/dist/chunk-IKMR2ADM.cjs.map +0 -1
  433. package/dist/chunk-JHPFOG2N.cjs.map +0 -1
  434. package/dist/chunk-K7IGBNZA.cjs.map +0 -1
  435. package/dist/chunk-LEMY57MI.js +0 -3
  436. package/dist/chunk-MPOWJVV4.js.map +0 -1
  437. package/dist/chunk-NINI4WVS.cjs.map +0 -1
  438. package/dist/chunk-OKBR6PX4.js +0 -23
  439. package/dist/chunk-OKBR6PX4.js.map +0 -1
  440. package/dist/chunk-OYKS2JBB.cjs.map +0 -1
  441. package/dist/chunk-QVJBUWJQ.js.map +0 -1
  442. package/dist/chunk-R25H4N4Z.js.map +0 -1
  443. package/dist/chunk-V2DF2GUE.js +0 -3
  444. package/dist/chunk-WFS6R2F5.js.map +0 -1
  445. package/dist/ozwell.cjs +0 -385
  446. package/dist/ozwell.cjs.map +0 -1
  447. package/dist/ozwell.d.cts +0 -15
  448. package/dist/ozwell.d.ts +0 -15
  449. package/dist/ozwell.js +0 -360
  450. package/dist/ozwell.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-UTYUT5YY.cjs","sourcesContent":[]}
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ // src/components/AI/HeyOzwell/WakeWord/lib/opfs.js
4
+ var DIR = "ozwell-models";
5
+ function fileNameFor(url) {
6
+ const base = (url.split("?")[0].split("/").pop() || "model").replace(/[^a-zA-Z0-9._-]/g, "_");
7
+ let h = 0;
8
+ for (let i = 0; i < url.length; i++) h = Math.imul(h, 31) + url.charCodeAt(i) | 0;
9
+ return `${(h >>> 0).toString(36)}-${base}`;
10
+ }
11
+ function opfsAvailable() {
12
+ return typeof navigator !== "undefined" && navigator.storage && typeof navigator.storage.getDirectory === "function";
13
+ }
14
+ async function modelsDir() {
15
+ const root = await navigator.storage.getDirectory();
16
+ return root.getDirectoryHandle(DIR, { create: true });
17
+ }
18
+ async function fetchBytes(url) {
19
+ const resp = await fetch(url);
20
+ if (!resp || !resp.ok) throw new Error(`[opfs] fetch ${url} \u2192 ${resp ? resp.status : "no response"}`);
21
+ return resp.arrayBuffer();
22
+ }
23
+ async function getModelBytes(url) {
24
+ if (!opfsAvailable()) return new Uint8Array(await fetchBytes(url));
25
+ const name = fileNameFor(url);
26
+ try {
27
+ const dir = await modelsDir();
28
+ try {
29
+ const fh = await dir.getFileHandle(name);
30
+ const file = await fh.getFile();
31
+ return new Uint8Array(await file.arrayBuffer());
32
+ } catch {
33
+ }
34
+ const buf = await fetchBytes(url);
35
+ try {
36
+ const fh = await dir.getFileHandle(name, { create: true });
37
+ const writable = await fh.createWritable();
38
+ await writable.write(buf);
39
+ await writable.close();
40
+ console.log(`[opfs] stored ${name} (${(buf.byteLength / 1e6).toFixed(1)} MB)`);
41
+ } catch (e) {
42
+ console.warn("[opfs] store failed for", name, e);
43
+ }
44
+ return new Uint8Array(buf);
45
+ } catch (e) {
46
+ console.warn("[opfs] unavailable, falling back to network for", url, e);
47
+ return new Uint8Array(await fetchBytes(url));
48
+ }
49
+ }
50
+
51
+ exports.getModelBytes = getModelBytes;
52
+ //# sourceMappingURL=chunk-UVSODK6V.cjs.map
53
+ //# sourceMappingURL=chunk-UVSODK6V.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/AI/HeyOzwell/WakeWord/lib/opfs.js"],"names":[],"mappings":"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","file":"chunk-UVSODK6V.cjs","sourcesContent":["/** @module opfs\n *\n * OPFS-backed cache for the wake-word ONNX model files.\n *\n * Per the storage architecture (horner's breakdown): MODEL FILES live in OPFS — app-private, offline,\n * versioned — not the service-worker Cache API (which is for runtime/app assets). We control these models'\n * fetch (onnxruntime-web accepts raw bytes), so OPFS slots cleanly in front of the network:\n *\n * serve from OPFS if present → else fetch once, store in OPFS, return the bytes.\n *\n * The file key is derived from the full URL, so a hosting move (different base URL) yields a new key and a\n * fresh download — implicit versioning. Falls back to a plain network fetch if OPFS is unavailable.\n */\n\nconst DIR = 'ozwell-models';\n\n// Stable, filesystem-safe name from a URL: basename (readable) + a short hash of the FULL url (so two hosts\n// sharing a basename don't collide, and a URL change busts the cache).\nfunction fileNameFor(url) {\n const base = (url.split('?')[0].split('/').pop() || 'model').replace(/[^a-zA-Z0-9._-]/g, '_');\n let h = 0;\n for (let i = 0; i < url.length; i++) h = (Math.imul(h, 31) + url.charCodeAt(i)) | 0;\n return `${(h >>> 0).toString(36)}-${base}`;\n}\n\nfunction opfsAvailable() {\n return typeof navigator !== 'undefined' && navigator.storage && typeof navigator.storage.getDirectory === 'function';\n}\n\nasync function modelsDir() {\n const root = await navigator.storage.getDirectory();\n return root.getDirectoryHandle(DIR, { create: true });\n}\n\nasync function fetchBytes(url) {\n const resp = await fetch(url);\n if (!resp || !resp.ok) throw new Error(`[opfs] fetch ${url} → ${resp ? resp.status : 'no response'}`);\n return resp.arrayBuffer();\n}\n\n/**\n * Return the model bytes (Uint8Array). OPFS-first; on a miss, fetch once and persist. Any OPFS failure\n * falls back to the network so the detector still loads.\n * @param {string} url - The model URL.\n * @returns {Promise<Uint8Array>}\n */\nexport async function getModelBytes(url) {\n if (!opfsAvailable()) return new Uint8Array(await fetchBytes(url));\n\n const name = fileNameFor(url);\n try {\n const dir = await modelsDir();\n\n // hit?\n try {\n const fh = await dir.getFileHandle(name); // rejects if absent\n const file = await fh.getFile();\n return new Uint8Array(await file.arrayBuffer());\n } catch {\n // miss → fetch + store\n }\n\n const buf = await fetchBytes(url);\n try {\n const fh = await dir.getFileHandle(name, { create: true });\n const writable = await fh.createWritable();\n await writable.write(buf);\n await writable.close();\n console.log(`[opfs] stored ${name} (${(buf.byteLength / 1e6).toFixed(1)} MB)`);\n } catch (e) {\n console.warn('[opfs] store failed for', name, e); // serve the bytes anyway\n }\n return new Uint8Array(buf);\n } catch (e) {\n console.warn('[opfs] unavailable, falling back to network for', url, e);\n return new Uint8Array(await fetchBytes(url));\n }\n}\n\n/** Remove all cached model files (e.g. to force a re-download). Best-effort. */\nexport async function clearModelCache() {\n if (!opfsAvailable()) return;\n try {\n const root = await navigator.storage.getDirectory();\n await root.removeEntry(DIR, { recursive: true });\n } catch (e) {\n console.warn('[opfs] clear failed', e);\n }\n}\n"]}
@@ -0,0 +1,184 @@
1
+ 'use strict';
2
+
3
+ var chunkCKD554XR_cjs = require('./chunk-CKD554XR.cjs');
4
+ var chunkA2QVQF54_cjs = require('./chunk-A2QVQF54.cjs');
5
+ var lucideReact = require('lucide-react');
6
+ var react = require('react');
7
+ var jsxRuntime = require('react/jsx-runtime');
8
+
9
+ var papaPromise = null;
10
+ function loadPapa() {
11
+ if (!papaPromise) {
12
+ papaPromise = import(
13
+ /* @vite-ignore */
14
+ 'papaparse'
15
+ ).then((mod) => {
16
+ const api = mod.default ?? mod;
17
+ if (!api?.parse) throw new Error("papaparse export not found");
18
+ return api;
19
+ }).catch((err) => {
20
+ papaPromise = null;
21
+ throw err;
22
+ });
23
+ }
24
+ return papaPromise;
25
+ }
26
+ var CsvBlock = ({ code, id }) => {
27
+ const [sortConfig, setSortConfig] = react.useState(null);
28
+ const [papa, setPapa] = react.useState(null);
29
+ const [loadError, setLoadError] = react.useState(null);
30
+ react.useEffect(() => {
31
+ let cancelled = false;
32
+ loadPapa().then((api) => {
33
+ if (!cancelled) setPapa(api);
34
+ }).catch(() => {
35
+ if (!cancelled)
36
+ setLoadError(
37
+ "CSV preview requires the `papaparse` package. Install it with `npm install papaparse`."
38
+ );
39
+ });
40
+ return () => {
41
+ cancelled = true;
42
+ };
43
+ }, []);
44
+ const parsed = react.useMemo(() => {
45
+ if (!papa) return { headers: [], rows: [], error: null };
46
+ try {
47
+ const result = papa.parse(code, {
48
+ header: true,
49
+ dynamicTyping: true,
50
+ skipEmptyLines: "greedy"
51
+ });
52
+ if (result.errors?.length) {
53
+ return {
54
+ headers: result.meta.fields ?? [],
55
+ rows: result.data,
56
+ error: result.errors.map((e) => e.message).join("; ")
57
+ };
58
+ }
59
+ return {
60
+ headers: result.meta.fields ?? [],
61
+ rows: result.data,
62
+ error: null
63
+ };
64
+ } catch (err) {
65
+ return { headers: [], rows: [], error: err.message };
66
+ }
67
+ }, [code, papa]);
68
+ const sortedRows = react.useMemo(() => {
69
+ if (!sortConfig || parsed.error) return parsed.rows;
70
+ return [...parsed.rows].sort((a, b) => {
71
+ const aVal = a[sortConfig.column];
72
+ const bVal = b[sortConfig.column];
73
+ if (aVal == null && bVal == null) return 0;
74
+ if (aVal == null) return 1;
75
+ if (bVal == null) return -1;
76
+ const cmp = typeof aVal === "number" && typeof bVal === "number" ? aVal - bVal : String(aVal).localeCompare(String(bVal));
77
+ return sortConfig.direction === "asc" ? cmp : -cmp;
78
+ });
79
+ }, [parsed.rows, sortConfig, parsed.error]);
80
+ const handleSort = react.useCallback((column) => {
81
+ setSortConfig((prev) => {
82
+ if (prev?.column === column) {
83
+ return prev.direction === "asc" ? { column, direction: "desc" } : null;
84
+ }
85
+ return { column, direction: "asc" };
86
+ });
87
+ }, []);
88
+ const handleExportCsv = react.useCallback(() => {
89
+ if (!papa) return;
90
+ const csvContent = papa.unparse(sortedRows);
91
+ const blob = new Blob([csvContent], { type: "text/csv;charset=utf-8;" });
92
+ const url = URL.createObjectURL(blob);
93
+ const link = document.createElement("a");
94
+ link.href = url;
95
+ link.download = `data-${id}.csv`;
96
+ document.body.appendChild(link);
97
+ link.click();
98
+ document.body.removeChild(link);
99
+ setTimeout(() => URL.revokeObjectURL(url), 100);
100
+ }, [sortedRows, id, papa]);
101
+ if (loadError) {
102
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCKD554XR_cjs.FenceBlock, { code, language: "csv", error: loadError, children: /* @__PURE__ */ jsxRuntime.jsx("div", {}) });
103
+ }
104
+ if (!papa) {
105
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCKD554XR_cjs.FenceBlock, { code, language: "csv", supportsRawView: true, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center p-6 text-sm text-neutral-500", children: "Loading CSV parser\u2026" }) });
106
+ }
107
+ if (parsed.error) {
108
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCKD554XR_cjs.FenceBlock, { code, language: "csv", error: parsed.error, children: /* @__PURE__ */ jsxRuntime.jsx("div", {}) });
109
+ }
110
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkCKD554XR_cjs.FenceBlock, { code, language: "csv", supportsRawView: true, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
111
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-b border-neutral-200 px-3 py-1.5 dark:border-neutral-700", children: [
112
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-neutral-500 dark:text-neutral-400", children: [
113
+ sortedRows.length,
114
+ " row",
115
+ sortedRows.length !== 1 ? "s" : "",
116
+ " \xD7",
117
+ " ",
118
+ parsed.headers.length,
119
+ " column",
120
+ parsed.headers.length !== 1 ? "s" : ""
121
+ ] }),
122
+ /* @__PURE__ */ jsxRuntime.jsxs(
123
+ chunkA2QVQF54_cjs.Button,
124
+ {
125
+ variant: "ghost",
126
+ size: "sm",
127
+ onClick: handleExportCsv,
128
+ "aria-label": "Export CSV",
129
+ className: "h-7 gap-1 px-2 text-xs",
130
+ children: [
131
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { className: "h-3 w-3" }),
132
+ "Export"
133
+ ]
134
+ }
135
+ )
136
+ ] }),
137
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-96 overflow-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "min-w-full text-sm", children: [
138
+ /* @__PURE__ */ jsxRuntime.jsx("thead", { className: "sticky top-0 bg-neutral-100 dark:bg-neutral-800", children: /* @__PURE__ */ jsxRuntime.jsx("tr", { children: parsed.headers.map((header) => {
139
+ const isSorted = sortConfig?.column === header;
140
+ const ariaSort = isSorted ? sortConfig.direction === "asc" ? "ascending" : "descending" : "none";
141
+ return /* @__PURE__ */ jsxRuntime.jsx(
142
+ "th",
143
+ {
144
+ scope: "col",
145
+ "aria-sort": ariaSort,
146
+ className: "px-3 py-2 text-left text-xs font-medium whitespace-nowrap text-neutral-600 dark:text-neutral-400",
147
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
148
+ "button",
149
+ {
150
+ type: "button",
151
+ onClick: () => handleSort(header),
152
+ className: "flex w-full cursor-pointer items-center gap-1 text-left font-medium select-none hover:text-neutral-900 dark:hover:text-neutral-200",
153
+ children: [
154
+ header,
155
+ isSorted && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: sortConfig.direction === "asc" ? "\u2191" : "\u2193" })
156
+ ]
157
+ }
158
+ )
159
+ },
160
+ header
161
+ );
162
+ }) }) }),
163
+ /* @__PURE__ */ jsxRuntime.jsx("tbody", { className: "divide-y divide-neutral-200 dark:divide-neutral-700", children: sortedRows.map((row, i) => /* @__PURE__ */ jsxRuntime.jsx(
164
+ "tr",
165
+ {
166
+ className: "hover:bg-neutral-50 dark:hover:bg-neutral-800/50",
167
+ children: parsed.headers.map((header) => /* @__PURE__ */ jsxRuntime.jsx(
168
+ "td",
169
+ {
170
+ className: "px-3 py-1.5 whitespace-nowrap text-neutral-700 dark:text-neutral-300",
171
+ children: row[header] != null ? String(row[header]) : ""
172
+ },
173
+ header
174
+ ))
175
+ },
176
+ i
177
+ )) })
178
+ ] }) })
179
+ ] }) });
180
+ };
181
+
182
+ exports.CsvBlock = CsvBlock;
183
+ //# sourceMappingURL=chunk-V25Z5GR6.cjs.map
184
+ //# sourceMappingURL=chunk-V25Z5GR6.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Markdown/CsvBlock.tsx"],"names":["useState","useEffect","useMemo","useCallback","jsx","FenceBlock","jsxs","Button","Download"],"mappings":"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","file":"chunk-V25Z5GR6.cjs","sourcesContent":["/** CSV data rendered as a sortable table. Requires `papaparse`. */\nimport { Download } from 'lucide-react';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Button } from '../Button';\nimport { FenceBlock } from './FenceBlock';\n\ninterface CsvBlockProps {\n code: string;\n id: string;\n}\n\ninterface SortConfig {\n column: string;\n direction: 'asc' | 'desc';\n}\n\ntype CsvRow = Record<string, unknown>;\n// Minimal surface of papaparse we actually use, avoiding overload conflicts.\ninterface PapaApi {\n parse(\n input: string,\n config?: Record<string, unknown>\n ): {\n meta: { fields?: string[] };\n data: CsvRow[];\n errors: Array<{ message: string }>;\n };\n unparse(data: unknown): string;\n}\n\nlet papaPromise: Promise<PapaApi> | null = null;\nfunction loadPapa() {\n if (!papaPromise) {\n papaPromise = import(/* @vite-ignore */ 'papaparse')\n .then((mod: { default?: PapaApi } & Partial<PapaApi>) => {\n const api: PapaApi = (mod.default ?? mod) as PapaApi;\n if (!api?.parse) throw new Error('papaparse export not found');\n return api;\n })\n .catch((err) => {\n papaPromise = null;\n throw err as Error;\n });\n }\n return papaPromise;\n}\n\ninterface ParsedCsv {\n headers: string[];\n rows: CsvRow[];\n error: string | null;\n}\n\nexport const CsvBlock: React.FC<CsvBlockProps> = ({ code, id }) => {\n const [sortConfig, setSortConfig] = useState<SortConfig | null>(null);\n const [papa, setPapa] = useState<PapaApi | null>(null);\n const [loadError, setLoadError] = useState<string | null>(null);\n\n useEffect(() => {\n let cancelled = false;\n loadPapa()\n .then((api) => {\n if (!cancelled) setPapa(api);\n })\n .catch(() => {\n if (!cancelled)\n setLoadError(\n 'CSV preview requires the `papaparse` package. Install it with `npm install papaparse`.'\n );\n });\n return () => {\n cancelled = true;\n };\n }, []);\n\n const parsed = useMemo<ParsedCsv>(() => {\n if (!papa) return { headers: [], rows: [], error: null };\n try {\n const result = papa.parse(code, {\n header: true,\n dynamicTyping: true,\n skipEmptyLines: 'greedy',\n });\n if (result.errors?.length) {\n return {\n headers: result.meta.fields ?? [],\n rows: result.data,\n error: result.errors.map((e) => e.message).join('; '),\n };\n }\n return {\n headers: result.meta.fields ?? [],\n rows: result.data,\n error: null,\n };\n } catch (err) {\n return { headers: [], rows: [], error: (err as Error).message };\n }\n }, [code, papa]);\n\n const sortedRows = useMemo(() => {\n if (!sortConfig || parsed.error) return parsed.rows;\n return [...parsed.rows].sort((a, b) => {\n const aVal = a[sortConfig.column];\n const bVal = b[sortConfig.column];\n if (aVal == null && bVal == null) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n const cmp =\n typeof aVal === 'number' && typeof bVal === 'number'\n ? aVal - bVal\n : String(aVal).localeCompare(String(bVal));\n return sortConfig.direction === 'asc' ? cmp : -cmp;\n });\n }, [parsed.rows, sortConfig, parsed.error]);\n\n const handleSort = useCallback((column: string) => {\n setSortConfig((prev) => {\n if (prev?.column === column) {\n return prev.direction === 'asc' ? { column, direction: 'desc' } : null;\n }\n return { column, direction: 'asc' };\n });\n }, []);\n\n const handleExportCsv = useCallback(() => {\n if (!papa) return;\n const csvContent = papa.unparse(sortedRows);\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = `data-${id}.csv`;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n setTimeout(() => URL.revokeObjectURL(url), 100);\n }, [sortedRows, id, papa]);\n\n if (loadError) {\n return (\n <FenceBlock code={code} language=\"csv\" error={loadError}>\n <div />\n </FenceBlock>\n );\n }\n\n if (!papa) {\n return (\n <FenceBlock code={code} language=\"csv\" supportsRawView>\n <div className=\"flex items-center justify-center p-6 text-sm text-neutral-500\">\n Loading CSV parser…\n </div>\n </FenceBlock>\n );\n }\n\n if (parsed.error) {\n return (\n <FenceBlock code={code} language=\"csv\" error={parsed.error}>\n <div />\n </FenceBlock>\n );\n }\n\n return (\n <FenceBlock code={code} language=\"csv\" supportsRawView>\n <div className=\"relative\">\n <div className=\"flex items-center justify-between border-b border-neutral-200 px-3 py-1.5 dark:border-neutral-700\">\n <span className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {sortedRows.length} row{sortedRows.length !== 1 ? 's' : ''} ×{' '}\n {parsed.headers.length} column\n {parsed.headers.length !== 1 ? 's' : ''}\n </span>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleExportCsv}\n aria-label=\"Export CSV\"\n className=\"h-7 gap-1 px-2 text-xs\"\n >\n <Download className=\"h-3 w-3\" />\n Export\n </Button>\n </div>\n\n <div className=\"max-h-96 overflow-auto\">\n <table className=\"min-w-full text-sm\">\n <thead className=\"sticky top-0 bg-neutral-100 dark:bg-neutral-800\">\n <tr>\n {parsed.headers.map((header) => {\n const isSorted = sortConfig?.column === header;\n const ariaSort = isSorted\n ? sortConfig.direction === 'asc'\n ? 'ascending'\n : 'descending'\n : 'none';\n return (\n <th\n key={header}\n scope=\"col\"\n aria-sort={ariaSort}\n className=\"px-3 py-2 text-left text-xs font-medium whitespace-nowrap text-neutral-600 dark:text-neutral-400\"\n >\n <button\n type=\"button\"\n onClick={() => handleSort(header)}\n className=\"flex w-full cursor-pointer items-center gap-1 text-left font-medium select-none hover:text-neutral-900 dark:hover:text-neutral-200\"\n >\n {header}\n {isSorted && (\n <span aria-hidden=\"true\">\n {sortConfig.direction === 'asc' ? '↑' : '↓'}\n </span>\n )}\n </button>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody className=\"divide-y divide-neutral-200 dark:divide-neutral-700\">\n {sortedRows.map((row, i) => (\n <tr\n key={i}\n className=\"hover:bg-neutral-50 dark:hover:bg-neutral-800/50\"\n >\n {parsed.headers.map((header) => (\n <td\n key={header}\n className=\"px-3 py-1.5 whitespace-nowrap text-neutral-700 dark:text-neutral-300\"\n >\n {row[header] != null ? String(row[header]) : ''}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n </FenceBlock>\n );\n};\n"]}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=chunk-VBWRH4UW.cjs.map
4
+ //# sourceMappingURL=chunk-VBWRH4UW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-VBWRH4UW.cjs"}
@@ -0,0 +1,370 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+ var datavisAce = require('datavis-ace');
5
+ var datavis = require('@mieweb/datavis');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ // src/components/DataVisNITRO/DataVisNITRO.tsx
9
+ var DataVisNitroContext = react.createContext(null);
10
+ function isObject(value) {
11
+ return typeof value === "object" && value !== null;
12
+ }
13
+ function normalizeTypeInfo(typeInfo) {
14
+ if (Array.isArray(typeInfo)) {
15
+ return Object.fromEntries(
16
+ typeInfo.filter(isObject).map((entry) => [entry.field, entry])
17
+ );
18
+ }
19
+ if (!isObject(typeInfo)) {
20
+ return {};
21
+ }
22
+ const maybeOrdMap = typeInfo;
23
+ if (typeof maybeOrdMap.keys === "function" && typeof maybeOrdMap.get === "function") {
24
+ return Object.fromEntries(
25
+ maybeOrdMap.keys().map((field) => [field, maybeOrdMap.get?.(field) ?? {}])
26
+ );
27
+ }
28
+ return Object.fromEntries(
29
+ Object.entries(typeInfo).filter(([, value]) => isObject(value))
30
+ );
31
+ }
32
+ function normalizeFieldType(type) {
33
+ if (!type) return void 0;
34
+ if (type === "integer") return "number";
35
+ if (type === "boolean") return "string";
36
+ return type;
37
+ }
38
+ function buildColumnFromField(field, typeInfo) {
39
+ const info = typeInfo[field];
40
+ const normalizedType = normalizeFieldType(info?.type);
41
+ return {
42
+ field,
43
+ header: info?.displayText ?? field,
44
+ sortable: true,
45
+ filterable: true,
46
+ resizable: true,
47
+ reorderable: true,
48
+ ...normalizedType ? {
49
+ typeInfo: {
50
+ type: normalizedType,
51
+ ...info?.format !== void 0 ? { format: info.format } : {},
52
+ ...info?.internalType !== void 0 ? { internalType: info.internalType } : {}
53
+ }
54
+ } : {}
55
+ };
56
+ }
57
+ function mergeColumnWithTypeInfo(column, typeInfo) {
58
+ const fallbackColumn = buildColumnFromField(column.field, typeInfo);
59
+ return {
60
+ ...fallbackColumn,
61
+ ...column,
62
+ header: column.header ?? fallbackColumn.header,
63
+ typeInfo: column.typeInfo ?? fallbackColumn.typeInfo
64
+ };
65
+ }
66
+ function buildResolvedColumns(columns, fallbackFields, typeInfo) {
67
+ if (columns && columns.length > 0) {
68
+ return columns.map((column) => {
69
+ if (typeof column === "string") {
70
+ return buildColumnFromField(column, typeInfo);
71
+ }
72
+ return mergeColumnWithTypeInfo(column, typeInfo);
73
+ });
74
+ }
75
+ return fallbackFields.map((field) => buildColumnFromField(field, typeInfo));
76
+ }
77
+ function buildFallbackFieldOrder(typeInfo, data) {
78
+ const rows = Array.isArray(data) ? data.filter((row) => isObject(row)) : null;
79
+ const normalizedEntries = Object.fromEntries(
80
+ Object.entries(typeInfo).map(([field, info]) => [
81
+ field,
82
+ {
83
+ type: normalizeFieldType(info.type) ?? "string",
84
+ ...info.displayText !== void 0 ? { displayText: info.displayText } : {}
85
+ }
86
+ ])
87
+ );
88
+ return datavis.determineColumns(null, normalizedEntries, rows);
89
+ }
90
+ function buildControlFields(columns) {
91
+ return columns.map((column) => ({
92
+ field: column.field,
93
+ displayName: column.header,
94
+ type: column.typeInfo?.type
95
+ }));
96
+ }
97
+ function buildAggregateFields(columns) {
98
+ return columns.map((column) => ({
99
+ field: column.field,
100
+ displayName: column.header
101
+ }));
102
+ }
103
+ function mergeTableDef(tableDef, features) {
104
+ if (!tableDef && !features) {
105
+ return void 0;
106
+ }
107
+ const { rowMode, ...featureFlags } = features ?? {};
108
+ const mergedFeatures = Object.keys(featureFlags).length > 0 ? {
109
+ ...tableDef?.features ?? {},
110
+ ...featureFlags
111
+ } : void 0;
112
+ return {
113
+ ...tableDef,
114
+ ...rowMode !== void 0 ? { rowMode } : {},
115
+ ...mergedFeatures ? { features: mergedFeatures } : {}
116
+ };
117
+ }
118
+ function DataVisNitroSource(props) {
119
+ const { type, children } = props;
120
+ const url = props.type === "http" ? props.url : void 0;
121
+ const varName = props.type === "local" ? props.varName : void 0;
122
+ const viewRef = react.useRef(null);
123
+ if (viewRef.current === null || viewRef.current._dvType !== type || viewRef.current._dvUrl !== url || viewRef.current._dvVarName !== varName) {
124
+ const source = props.type === "http" ? new datavisAce.Source({ type, url: props.url }) : new datavisAce.Source(
125
+ props.type === "local" && props.varName ? { type, varName: props.varName } : { type }
126
+ );
127
+ viewRef.current = Object.assign(
128
+ new datavisAce.ComputedView(source),
129
+ { _dvType: type, _dvUrl: url, _dvVarName: varName }
130
+ );
131
+ }
132
+ return /* @__PURE__ */ jsxRuntime.jsx(DataVisNitroContext.Provider, { value: viewRef.current, children });
133
+ }
134
+ function DataVisNitroGridInner({
135
+ computedView,
136
+ columns,
137
+ allColumns,
138
+ features,
139
+ filterColumns,
140
+ controlFields,
141
+ aggregateFields,
142
+ aggregateFunctions,
143
+ groupFunctionDefs,
144
+ tableDef,
145
+ formatCell,
146
+ onColumnReorder,
147
+ onColumnResize,
148
+ onHeaderContextMenu,
149
+ onRowClick,
150
+ onRowDoubleClick,
151
+ onSelectionChange,
152
+ style,
153
+ trans,
154
+ ...dataGridProps
155
+ }) {
156
+ const viewState = datavis.useView(computedView, false);
157
+ const normalizedTypeInfo = react.useMemo(
158
+ () => normalizeTypeInfo(viewState.typeInfo ?? computedView?.typeInfo ?? null),
159
+ [computedView, viewState.typeInfo]
160
+ );
161
+ const fallbackFields = react.useMemo(
162
+ () => buildFallbackFieldOrder(normalizedTypeInfo, viewState.data?.data ?? null),
163
+ [normalizedTypeInfo, viewState.data?.data]
164
+ );
165
+ const resolvedAllColumns = react.useMemo(() => {
166
+ if (allColumns && allColumns.length > 0) {
167
+ return allColumns.map(
168
+ (column) => mergeColumnWithTypeInfo(column, normalizedTypeInfo)
169
+ );
170
+ }
171
+ return buildResolvedColumns(columns, fallbackFields, normalizedTypeInfo);
172
+ }, [allColumns, columns, fallbackFields, normalizedTypeInfo]);
173
+ const resolvedColumns = react.useMemo(() => {
174
+ if (columns && columns.length > 0) {
175
+ return buildResolvedColumns(
176
+ columns,
177
+ fallbackFields,
178
+ normalizedTypeInfo
179
+ ).filter((column) => column.visible !== false);
180
+ }
181
+ return resolvedAllColumns.filter((column) => column.visible !== false);
182
+ }, [columns, fallbackFields, normalizedTypeInfo, resolvedAllColumns]);
183
+ const effectiveAggregateFunctions = react.useMemo(
184
+ () => aggregateFunctions ?? datavis.buildAggregateFunctions(),
185
+ [aggregateFunctions]
186
+ );
187
+ const effectiveGroupFunctionDefs = react.useMemo(
188
+ () => groupFunctionDefs ?? datavis.getBuiltinGroupFunctions(trans),
189
+ [groupFunctionDefs, trans]
190
+ );
191
+ const effectiveTableDef = react.useMemo(
192
+ () => mergeTableDef(tableDef, features),
193
+ [tableDef, features]
194
+ );
195
+ const aggFnLabels = react.useMemo(
196
+ () => Object.fromEntries(
197
+ effectiveAggregateFunctions.map((fn) => [fn.name, fn.label])
198
+ ),
199
+ [effectiveAggregateFunctions]
200
+ );
201
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { style, children: /* @__PURE__ */ jsxRuntime.jsx(
202
+ datavis.DataGrid,
203
+ {
204
+ ...dataGridProps,
205
+ view: computedView,
206
+ tableDef: effectiveTableDef,
207
+ allColumns: resolvedAllColumns,
208
+ filterColumns: filterColumns ?? [],
209
+ controlFields: controlFields ?? buildControlFields(resolvedAllColumns),
210
+ aggregateFields: aggregateFields ?? buildAggregateFields(resolvedAllColumns),
211
+ aggregateFunctions: effectiveAggregateFunctions,
212
+ groupFunctionDefs: effectiveGroupFunctionDefs,
213
+ children: /* @__PURE__ */ jsxRuntime.jsx(
214
+ datavis.TableRenderer,
215
+ {
216
+ viewData: viewState.data,
217
+ columns: resolvedColumns,
218
+ features: effectiveTableDef?.features ?? features,
219
+ totalRows: viewState.totalRowCount ?? viewState.rowCount,
220
+ loading: viewState.loading || !viewState.ready,
221
+ formatCell,
222
+ aggFnLabels,
223
+ onColumnReorder,
224
+ onColumnResize,
225
+ onHeaderContextMenu,
226
+ onRowClick,
227
+ onRowDoubleClick,
228
+ onSelectionChange
229
+ }
230
+ )
231
+ }
232
+ ) });
233
+ }
234
+ function DataVisNitroGrid(props) {
235
+ const computedView = react.useContext(DataVisNitroContext);
236
+ if (computedView === null) {
237
+ return null;
238
+ }
239
+ return /* @__PURE__ */ jsxRuntime.jsx(DataVisNitroGridInner, { ...props, computedView });
240
+ }
241
+ DataVisNitroSource.displayName = "DataVisNitroSource";
242
+ DataVisNitroGrid.displayName = "DataVisNitroGrid";
243
+ function isObject2(value) {
244
+ return typeof value === "object" && value !== null;
245
+ }
246
+ function normalizeTypeInfo2(typeInfo) {
247
+ if (Array.isArray(typeInfo)) {
248
+ return Object.fromEntries(
249
+ typeInfo.filter(isObject2).map((entry) => [entry.field, entry])
250
+ );
251
+ }
252
+ if (!isObject2(typeInfo)) {
253
+ return {};
254
+ }
255
+ const maybeOrdMap = typeInfo;
256
+ if (typeof maybeOrdMap.keys === "function" && typeof maybeOrdMap.get === "function") {
257
+ return Object.fromEntries(
258
+ maybeOrdMap.keys().map((field) => [field, maybeOrdMap.get?.(field) ?? {}])
259
+ );
260
+ }
261
+ return Object.fromEntries(
262
+ Object.entries(typeInfo).filter(([, value]) => isObject2(value))
263
+ );
264
+ }
265
+ function normalizeFieldType2(type) {
266
+ if (!type) return void 0;
267
+ if (type === "integer") return "number";
268
+ if (type === "boolean") return "string";
269
+ return type;
270
+ }
271
+ function buildColumnFromField2(field, typeInfo) {
272
+ const info = typeInfo[field];
273
+ const normalizedType = normalizeFieldType2(info?.type);
274
+ return {
275
+ field,
276
+ header: info?.displayText ?? field,
277
+ sortable: true,
278
+ filterable: true,
279
+ resizable: true,
280
+ reorderable: true,
281
+ ...normalizedType ? {
282
+ typeInfo: {
283
+ type: normalizedType,
284
+ ...info?.format !== void 0 ? { format: info.format } : {},
285
+ ...info?.internalType !== void 0 ? { internalType: info.internalType } : {}
286
+ }
287
+ } : {}
288
+ };
289
+ }
290
+ function buildResolvedColumns2(columns, fallbackFields, typeInfo) {
291
+ if (columns && columns.length > 0) {
292
+ return columns.map((column) => {
293
+ if (typeof column === "string") {
294
+ return buildColumnFromField2(column, typeInfo);
295
+ }
296
+ return column;
297
+ });
298
+ }
299
+ return fallbackFields.map((field) => buildColumnFromField2(field, typeInfo));
300
+ }
301
+ function buildFallbackFieldOrder2(typeInfo, data) {
302
+ const rows = Array.isArray(data) ? data.filter((row) => isObject2(row)) : null;
303
+ const normalizedEntries = Object.fromEntries(
304
+ Object.entries(typeInfo).map(([field, info]) => [
305
+ field,
306
+ {
307
+ type: normalizeFieldType2(info.type) ?? "string",
308
+ ...info.displayText !== void 0 ? { displayText: info.displayText } : {}
309
+ }
310
+ ])
311
+ );
312
+ return datavis.determineColumns(null, normalizedEntries, rows);
313
+ }
314
+ function DataVisNitroGraphInner({
315
+ computedView,
316
+ columns,
317
+ config: initialConfig,
318
+ locale,
319
+ className,
320
+ height,
321
+ onConfigChange
322
+ }) {
323
+ const viewState = datavis.useView(computedView);
324
+ const [liveConfig, setLiveConfig] = react.useState(initialConfig);
325
+ const handleConfigChange = react.useCallback(
326
+ (newConfig) => {
327
+ setLiveConfig(newConfig);
328
+ onConfigChange?.(newConfig);
329
+ },
330
+ [onConfigChange]
331
+ );
332
+ const normalizedTypeInfo = react.useMemo(
333
+ () => normalizeTypeInfo2(viewState.typeInfo ?? computedView?.typeInfo ?? null),
334
+ [computedView, viewState.typeInfo]
335
+ );
336
+ const fallbackFields = react.useMemo(
337
+ () => buildFallbackFieldOrder2(normalizedTypeInfo, viewState.data?.data ?? null),
338
+ [normalizedTypeInfo, viewState.data?.data]
339
+ );
340
+ const resolvedColumns = react.useMemo(
341
+ () => buildResolvedColumns2(columns, fallbackFields, normalizedTypeInfo),
342
+ [columns, fallbackFields, normalizedTypeInfo]
343
+ );
344
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "wcdv-graph", style: height ? { height } : void 0, children: /* @__PURE__ */ jsxRuntime.jsx(
345
+ datavis.GraphView,
346
+ {
347
+ viewData: viewState.data,
348
+ columns: resolvedColumns,
349
+ config: liveConfig,
350
+ locale,
351
+ className,
352
+ onConfigChange: handleConfigChange
353
+ }
354
+ ) });
355
+ }
356
+ function DataVisNitroGraph(props) {
357
+ const computedView = react.useContext(DataVisNitroContext);
358
+ if (computedView === null) {
359
+ return null;
360
+ }
361
+ return /* @__PURE__ */ jsxRuntime.jsx(DataVisNitroGraphInner, { ...props, computedView });
362
+ }
363
+ DataVisNitroGraph.displayName = "DataVisNitroGraph";
364
+
365
+ exports.DataVisNitroContext = DataVisNitroContext;
366
+ exports.DataVisNitroGraph = DataVisNitroGraph;
367
+ exports.DataVisNitroGrid = DataVisNitroGrid;
368
+ exports.DataVisNitroSource = DataVisNitroSource;
369
+ //# sourceMappingURL=chunk-VJOVJTFP.cjs.map
370
+ //# sourceMappingURL=chunk-VJOVJTFP.cjs.map