@mieweb/ui 0.10.0-dev.3 → 0.10.0-dev.30

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 (498) hide show
  1. package/README.md +4 -4
  2. package/agent/mieweb-ui.instructions.md +90 -1
  3. package/dist/CsvBlock-FX5YNGNE.cjs +17 -0
  4. package/dist/{CsvBlock-ROJCKJDP.cjs.map → CsvBlock-FX5YNGNE.cjs.map} +1 -1
  5. package/dist/CsvBlock-VLMG7GUO.js +8 -0
  6. package/dist/{CsvBlock-UWPMTLE2.js.map → CsvBlock-VLMG7GUO.js.map} +1 -1
  7. package/dist/HtmlPreviewBlock-5JE7L3GR.js +8 -0
  8. package/dist/{HtmlPreviewBlock-ME5U3XNS.js.map → HtmlPreviewBlock-5JE7L3GR.js.map} +1 -1
  9. package/dist/HtmlPreviewBlock-UO37JQ3K.cjs +17 -0
  10. package/dist/{HtmlPreviewBlock-DWFN6EUB.cjs.map → HtmlPreviewBlock-UO37JQ3K.cjs.map} +1 -1
  11. package/dist/Input-yN516s5_.d.cts +3 -0
  12. package/dist/Input-yN516s5_.d.ts +3 -0
  13. package/dist/MermaidBlock-3XHFBAMV.js +8 -0
  14. package/dist/{MermaidBlock-2B6CPD6Y.js.map → MermaidBlock-3XHFBAMV.js.map} +1 -1
  15. package/dist/MermaidBlock-RZ75RPZA.cjs +17 -0
  16. package/dist/{MermaidBlock-D2UC5M55.cjs.map → MermaidBlock-RZ75RPZA.cjs.map} +1 -1
  17. package/dist/SurveyBlock-MUVJ3JUI.js +8 -0
  18. package/dist/{SurveyBlock-4DO62RBT.js.map → SurveyBlock-MUVJ3JUI.js.map} +1 -1
  19. package/dist/SurveyBlock-VH47YXZC.cjs +17 -0
  20. package/dist/{SurveyBlock-4CD4AYMJ.cjs.map → SurveyBlock-VH47YXZC.cjs.map} +1 -1
  21. package/dist/ag-grid.d.cts +142 -1
  22. package/dist/ag-grid.d.ts +142 -1
  23. package/dist/brands/bluehive.cjs +3 -3
  24. package/dist/brands/bluehive.css +3 -0
  25. package/dist/brands/bluehive.js +1 -1
  26. package/dist/brands/index.cjs +14 -14
  27. package/dist/brands/index.js +4 -4
  28. package/dist/{chunk-JYZW2PZS.cjs → chunk-254QK722.cjs} +7 -7
  29. package/dist/chunk-254QK722.cjs.map +1 -0
  30. package/dist/{chunk-VKELAMAZ.js → chunk-2JICT4A2.js} +27 -11
  31. package/dist/chunk-2JICT4A2.js.map +1 -0
  32. package/dist/{chunk-VPWJCJCX.cjs → chunk-35Y4ILCU.cjs} +7 -7
  33. package/dist/{chunk-VPWJCJCX.cjs.map → chunk-35Y4ILCU.cjs.map} +1 -1
  34. package/dist/{chunk-G3JX3UAU.cjs → chunk-3KPDQG5O.cjs} +5 -5
  35. package/dist/{chunk-G3JX3UAU.cjs.map → chunk-3KPDQG5O.cjs.map} +1 -1
  36. package/dist/{chunk-Y5HFM7LO.js → chunk-3RXZWHCU.js} +4 -4
  37. package/dist/{chunk-Y5HFM7LO.js.map → chunk-3RXZWHCU.js.map} +1 -1
  38. package/dist/chunk-3YBS4WUQ.js +52 -0
  39. package/dist/chunk-3YBS4WUQ.js.map +1 -0
  40. package/dist/{chunk-WNJRS7Y7.cjs → chunk-3ZWCIPFT.cjs} +4 -2
  41. package/dist/chunk-3ZWCIPFT.cjs.map +1 -0
  42. package/dist/chunk-4HC2IBOX.js +258 -0
  43. package/dist/chunk-4HC2IBOX.js.map +1 -0
  44. package/dist/chunk-4IS3QCOQ.cjs +453 -0
  45. package/dist/chunk-4IS3QCOQ.cjs.map +1 -0
  46. package/dist/chunk-4NCDU5IG.cjs +56 -0
  47. package/dist/chunk-4NCDU5IG.cjs.map +1 -0
  48. package/dist/{chunk-E4IBHYJ7.cjs → chunk-6N6LIAUJ.cjs} +9 -9
  49. package/dist/{chunk-E4IBHYJ7.cjs.map → chunk-6N6LIAUJ.cjs.map} +1 -1
  50. package/dist/{chunk-3M7TAXNR.js → chunk-6ZPTZTKN.js} +3 -3
  51. package/dist/{chunk-3M7TAXNR.js.map → chunk-6ZPTZTKN.js.map} +1 -1
  52. package/dist/{chunk-MWVW4APN.cjs → chunk-7UTBDFFL.cjs} +4 -4
  53. package/dist/{chunk-MWVW4APN.cjs.map → chunk-7UTBDFFL.cjs.map} +1 -1
  54. package/dist/{chunk-FJ7YPVKV.js → chunk-7X6R3JIA.js} +3 -3
  55. package/dist/{chunk-FJ7YPVKV.js.map → chunk-7X6R3JIA.js.map} +1 -1
  56. package/dist/{chunk-GOALNQZ2.js → chunk-7YO7DNUV.js} +4 -83
  57. package/dist/chunk-7YO7DNUV.js.map +1 -0
  58. package/dist/{chunk-P2CA3XGI.js → chunk-7ZV67VZE.js} +4 -4
  59. package/dist/{chunk-P2CA3XGI.js.map → chunk-7ZV67VZE.js.map} +1 -1
  60. package/dist/chunk-ADW7ZYCY.cjs +2707 -0
  61. package/dist/chunk-ADW7ZYCY.cjs.map +1 -0
  62. package/dist/{chunk-2G75X6TS.cjs → chunk-AHHFFXJR.cjs} +3 -3
  63. package/dist/{chunk-2G75X6TS.cjs.map → chunk-AHHFFXJR.cjs.map} +1 -1
  64. package/dist/{chunk-VILW53UZ.js → chunk-BIQ7GSO2.js} +3 -3
  65. package/dist/{chunk-VILW53UZ.js.map → chunk-BIQ7GSO2.js.map} +1 -1
  66. package/dist/chunk-BM35CACB.js +148 -0
  67. package/dist/chunk-BM35CACB.js.map +1 -0
  68. package/dist/chunk-BNH4SXJB.js +874 -0
  69. package/dist/chunk-BNH4SXJB.js.map +1 -0
  70. package/dist/{chunk-XEAT7XJG.cjs → chunk-BUT6MF5K.cjs} +29 -13
  71. package/dist/chunk-BUT6MF5K.cjs.map +1 -0
  72. package/dist/{chunk-UAMXCMST.cjs → chunk-CFI3TQMA.cjs} +3 -3
  73. package/dist/{chunk-UAMXCMST.cjs.map → chunk-CFI3TQMA.cjs.map} +1 -1
  74. package/dist/{chunk-J5CSLNCN.cjs → chunk-COM7RNZU.cjs} +2 -2
  75. package/dist/{chunk-J5CSLNCN.cjs.map → chunk-COM7RNZU.cjs.map} +1 -1
  76. package/dist/{chunk-XI34EGK5.cjs → chunk-CPPUT74P.cjs} +9 -9
  77. package/dist/{chunk-XI34EGK5.cjs.map → chunk-CPPUT74P.cjs.map} +1 -1
  78. package/dist/{chunk-ACCAXVOG.js → chunk-CRS2CQWM.js} +134 -56
  79. package/dist/chunk-CRS2CQWM.js.map +1 -0
  80. package/dist/{chunk-OE5CKRUC.js → chunk-D22GE27K.js} +4 -4
  81. package/dist/{chunk-OE5CKRUC.js.map → chunk-D22GE27K.js.map} +1 -1
  82. package/dist/chunk-DXEPYK3I.cjs +92 -0
  83. package/dist/chunk-DXEPYK3I.cjs.map +1 -0
  84. package/dist/{chunk-ZGRCSNPK.js → chunk-E2PBPQGS.js} +4 -4
  85. package/dist/{chunk-ZGRCSNPK.js.map → chunk-E2PBPQGS.js.map} +1 -1
  86. package/dist/{chunk-5JJ2DAE4.js → chunk-ENMXHZNE.js} +3 -3
  87. package/dist/{chunk-5JJ2DAE4.js.map → chunk-ENMXHZNE.js.map} +1 -1
  88. package/dist/{chunk-XCP454Q6.js → chunk-F4N67NAF.js} +12 -3
  89. package/dist/chunk-F4N67NAF.js.map +1 -0
  90. package/dist/chunk-FBCDYTWM.js +385 -0
  91. package/dist/chunk-FBCDYTWM.js.map +1 -0
  92. package/dist/{chunk-VU6UTJRM.js → chunk-FIKO4WR6.js} +3 -3
  93. package/dist/{chunk-VU6UTJRM.js.map → chunk-FIKO4WR6.js.map} +1 -1
  94. package/dist/{chunk-DEDN5HAG.js → chunk-FZURBQJ2.js} +3 -3
  95. package/dist/{chunk-DEDN5HAG.js.map → chunk-FZURBQJ2.js.map} +1 -1
  96. package/dist/{chunk-JHULS3EC.js → chunk-GBUVIGD5.js} +89 -3
  97. package/dist/chunk-GBUVIGD5.js.map +1 -0
  98. package/dist/chunk-GU5OS7JJ.cjs +281 -0
  99. package/dist/chunk-GU5OS7JJ.cjs.map +1 -0
  100. package/dist/{chunk-V7D3YGUV.js → chunk-GVLNXPJX.js} +4 -4
  101. package/dist/{chunk-V7D3YGUV.js.map → chunk-GVLNXPJX.js.map} +1 -1
  102. package/dist/chunk-GVM6DTR5.js +90 -0
  103. package/dist/chunk-GVM6DTR5.js.map +1 -0
  104. package/dist/{chunk-SQHMGT4W.js → chunk-GW4RFJZ5.js} +7 -7
  105. package/dist/chunk-GW4RFJZ5.js.map +1 -0
  106. package/dist/{chunk-3QEVGSFG.cjs → chunk-GYXUS65N.cjs} +5 -5
  107. package/dist/{chunk-3QEVGSFG.cjs.map → chunk-GYXUS65N.cjs.map} +1 -1
  108. package/dist/{chunk-WGPLUCBD.js → chunk-H2IAMSHK.js} +3 -3
  109. package/dist/{chunk-WGPLUCBD.js.map → chunk-H2IAMSHK.js.map} +1 -1
  110. package/dist/{chunk-JID7AZTO.cjs → chunk-H3ROMJYI.cjs} +4 -4
  111. package/dist/{chunk-JID7AZTO.cjs.map → chunk-H3ROMJYI.cjs.map} +1 -1
  112. package/dist/{chunk-GD7EBGC4.cjs → chunk-HC3NAN55.cjs} +19 -19
  113. package/dist/{chunk-GD7EBGC4.cjs.map → chunk-HC3NAN55.cjs.map} +1 -1
  114. package/dist/{chunk-7ZXAQTV4.cjs → chunk-HIZWOAWY.cjs} +8 -8
  115. package/dist/{chunk-7ZXAQTV4.cjs.map → chunk-HIZWOAWY.cjs.map} +1 -1
  116. package/dist/{chunk-NV2CWBI2.cjs → chunk-IEY3ZJIT.cjs} +12 -3
  117. package/dist/chunk-IEY3ZJIT.cjs.map +1 -0
  118. package/dist/chunk-IT775BYG.js +179 -0
  119. package/dist/chunk-IT775BYG.js.map +1 -0
  120. package/dist/chunk-IYWG72DM.js +166 -0
  121. package/dist/chunk-IYWG72DM.js.map +1 -0
  122. package/dist/{chunk-2YCERQWC.js → chunk-JBIGSP2T.js} +6 -6
  123. package/dist/{chunk-2YCERQWC.js.map → chunk-JBIGSP2T.js.map} +1 -1
  124. package/dist/{chunk-IX6KFB3K.cjs → chunk-JELTRRR5.cjs} +9 -9
  125. package/dist/{chunk-IX6KFB3K.cjs.map → chunk-JELTRRR5.cjs.map} +1 -1
  126. package/dist/{chunk-YQDA366U.js → chunk-JHG3ELS2.js} +2 -2
  127. package/dist/{chunk-YQDA366U.js.map → chunk-JHG3ELS2.js.map} +1 -1
  128. package/dist/{chunk-WWJIW2IH.cjs → chunk-JSXIB6EJ.cjs} +4 -4
  129. package/dist/{chunk-WWJIW2IH.cjs.map → chunk-JSXIB6EJ.cjs.map} +1 -1
  130. package/dist/{chunk-WNM7IZJ7.js → chunk-K34DXMLZ.js} +7 -7
  131. package/dist/{chunk-WNM7IZJ7.js.map → chunk-K34DXMLZ.js.map} +1 -1
  132. package/dist/{chunk-FXO5ARBB.cjs → chunk-KDW6BD4O.cjs} +4 -4
  133. package/dist/{chunk-FXO5ARBB.cjs.map → chunk-KDW6BD4O.cjs.map} +1 -1
  134. package/dist/{chunk-Z5V7SAZ4.js → chunk-KFEN2SRZ.js} +3 -3
  135. package/dist/{chunk-Z5V7SAZ4.js.map → chunk-KFEN2SRZ.js.map} +1 -1
  136. package/dist/{chunk-2QKBTPUC.cjs → chunk-KGKBZN3T.cjs} +8 -8
  137. package/dist/{chunk-2QKBTPUC.cjs.map → chunk-KGKBZN3T.cjs.map} +1 -1
  138. package/dist/{chunk-UV2FVNWT.cjs → chunk-LFPJ3OUM.cjs} +5 -5
  139. package/dist/{chunk-UV2FVNWT.cjs.map → chunk-LFPJ3OUM.cjs.map} +1 -1
  140. package/dist/{chunk-WNAA6CLE.cjs → chunk-LHBWRMNC.cjs} +94 -2
  141. package/dist/chunk-LHBWRMNC.cjs.map +1 -0
  142. package/dist/{chunk-JI244Y7C.js → chunk-MLAWXPRY.js} +190 -5
  143. package/dist/chunk-MLAWXPRY.js.map +1 -0
  144. package/dist/chunk-N7C4OEP7.cjs +356 -0
  145. package/dist/chunk-N7C4OEP7.cjs.map +1 -0
  146. package/dist/{chunk-WNZAYBVB.cjs → chunk-NKV76R65.cjs} +48 -48
  147. package/dist/{chunk-WNZAYBVB.cjs.map → chunk-NKV76R65.cjs.map} +1 -1
  148. package/dist/{chunk-PYJDVWXM.js → chunk-NUB5HRKS.js} +3 -3
  149. package/dist/{chunk-PYJDVWXM.js.map → chunk-NUB5HRKS.js.map} +1 -1
  150. package/dist/{chunk-LL6IWKI3.js → chunk-OW3SQJ7P.js} +3 -3
  151. package/dist/{chunk-LL6IWKI3.js.map → chunk-OW3SQJ7P.js.map} +1 -1
  152. package/dist/{chunk-5GUOOLPR.cjs → chunk-P5CMZZRZ.cjs} +5 -5
  153. package/dist/{chunk-5GUOOLPR.cjs.map → chunk-P5CMZZRZ.cjs.map} +1 -1
  154. package/dist/{chunk-3T7QGLNB.js → chunk-PJEL5ZZV.js} +4 -2
  155. package/dist/chunk-PJEL5ZZV.js.map +1 -0
  156. package/dist/{chunk-H4ZXMQQW.js → chunk-QOVJ6Z6R.js} +3 -3
  157. package/dist/{chunk-H4ZXMQQW.js.map → chunk-QOVJ6Z6R.js.map} +1 -1
  158. package/dist/{chunk-U42F3HLE.cjs → chunk-QURJVPRH.cjs} +190 -5
  159. package/dist/chunk-QURJVPRH.cjs.map +1 -0
  160. package/dist/{chunk-X4XPNTCZ.cjs → chunk-R5Z7AOVU.cjs} +136 -58
  161. package/dist/chunk-R5Z7AOVU.cjs.map +1 -0
  162. package/dist/{chunk-TMMVIUUN.js → chunk-R6KPWIGO.js} +4 -4
  163. package/dist/{chunk-TMMVIUUN.js.map → chunk-R6KPWIGO.js.map} +1 -1
  164. package/dist/{chunk-22CYDCXA.js → chunk-RM2HPQIC.js} +105 -14
  165. package/dist/chunk-RM2HPQIC.js.map +1 -0
  166. package/dist/{chunk-ENKFJJZX.js → chunk-SD7ONW6S.js} +6 -6
  167. package/dist/{chunk-ENKFJJZX.js.map → chunk-SD7ONW6S.js.map} +1 -1
  168. package/dist/{chunk-RJ6NTJHC.js → chunk-SRMTRD7F.js} +3 -3
  169. package/dist/{chunk-RJ6NTJHC.js.map → chunk-SRMTRD7F.js.map} +1 -1
  170. package/dist/chunk-T4JYUICS.js +2657 -0
  171. package/dist/chunk-T4JYUICS.js.map +1 -0
  172. package/dist/{chunk-7ZDPD5ZX.cjs → chunk-T4L7Q5FA.cjs} +7 -7
  173. package/dist/{chunk-7ZDPD5ZX.cjs.map → chunk-T4L7Q5FA.cjs.map} +1 -1
  174. package/dist/{chunk-NJ6MY6V5.js → chunk-T5BBZQ66.js} +3 -3
  175. package/dist/{chunk-NJ6MY6V5.js.map → chunk-T5BBZQ66.js.map} +1 -1
  176. package/dist/{chunk-2IZLKPUW.js → chunk-THLIL6PY.js} +3 -3
  177. package/dist/{chunk-2IZLKPUW.js.map → chunk-THLIL6PY.js.map} +1 -1
  178. package/dist/{chunk-SGFYA22I.cjs → chunk-TJCX4OML.cjs} +8 -8
  179. package/dist/{chunk-SGFYA22I.cjs.map → chunk-TJCX4OML.cjs.map} +1 -1
  180. package/dist/{chunk-N6IY47YA.cjs → chunk-TTSSUOEV.cjs} +8 -8
  181. package/dist/{chunk-N6IY47YA.cjs.map → chunk-TTSSUOEV.cjs.map} +1 -1
  182. package/dist/{chunk-5MCBWTIF.cjs → chunk-TYE5K5WV.cjs} +4 -4
  183. package/dist/{chunk-5MCBWTIF.cjs.map → chunk-TYE5K5WV.cjs.map} +1 -1
  184. package/dist/{chunk-VOKVG3ER.js → chunk-UBSH27C2.js} +4 -4
  185. package/dist/{chunk-VOKVG3ER.js.map → chunk-UBSH27C2.js.map} +1 -1
  186. package/dist/{chunk-TAXD5ADA.cjs → chunk-UEDTZYGI.cjs} +3 -3
  187. package/dist/{chunk-TAXD5ADA.cjs.map → chunk-UEDTZYGI.cjs.map} +1 -1
  188. package/dist/{chunk-UQ3VVR6A.cjs → chunk-UPWIJC6I.cjs} +3 -3
  189. package/dist/{chunk-UQ3VVR6A.cjs.map → chunk-UPWIJC6I.cjs.map} +1 -1
  190. package/dist/{chunk-S7WCHDBO.js → chunk-VCI2Y7ST.js} +3 -3
  191. package/dist/{chunk-S7WCHDBO.js.map → chunk-VCI2Y7ST.js.map} +1 -1
  192. package/dist/chunk-VINZZQBD.cjs +323 -0
  193. package/dist/chunk-VINZZQBD.cjs.map +1 -0
  194. package/dist/{chunk-OD47TTAW.cjs → chunk-VOQJHSXN.cjs} +9 -9
  195. package/dist/{chunk-OD47TTAW.cjs.map → chunk-VOQJHSXN.cjs.map} +1 -1
  196. package/dist/chunk-VPTASZ2O.cjs +171 -0
  197. package/dist/chunk-VPTASZ2O.cjs.map +1 -0
  198. package/dist/chunk-WXFGHDTV.cjs +896 -0
  199. package/dist/chunk-WXFGHDTV.cjs.map +1 -0
  200. package/dist/{chunk-VNYW4C4J.cjs → chunk-X6A27RGO.cjs} +4 -84
  201. package/dist/chunk-X6A27RGO.cjs.map +1 -0
  202. package/dist/chunk-XBTKZCZF.js +333 -0
  203. package/dist/chunk-XBTKZCZF.js.map +1 -0
  204. package/dist/chunk-XDIMTPZU.cjs +202 -0
  205. package/dist/chunk-XDIMTPZU.cjs.map +1 -0
  206. package/dist/chunk-XDU65GLW.js +21 -0
  207. package/dist/chunk-XDU65GLW.js.map +1 -0
  208. package/dist/chunk-XI74P5F2.cjs +424 -0
  209. package/dist/chunk-XI74P5F2.cjs.map +1 -0
  210. package/dist/{chunk-WIAQQNFU.cjs → chunk-XRVMYT5G.cjs} +106 -13
  211. package/dist/chunk-XRVMYT5G.cjs.map +1 -0
  212. package/dist/chunk-XVW5DPPP.js +429 -0
  213. package/dist/chunk-XVW5DPPP.js.map +1 -0
  214. package/dist/chunk-Y4E2WRUR.cjs +188 -0
  215. package/dist/chunk-Y4E2WRUR.cjs.map +1 -0
  216. package/dist/chunk-Y4QNLW7W.js +300 -0
  217. package/dist/chunk-Y4QNLW7W.js.map +1 -0
  218. package/dist/{chunk-6EN3IQQI.cjs → chunk-YRHBSSQ3.cjs} +6 -6
  219. package/dist/{chunk-6EN3IQQI.cjs.map → chunk-YRHBSSQ3.cjs.map} +1 -1
  220. package/dist/{chunk-KZFBQ7GY.js → chunk-YU55JD35.js} +3 -3
  221. package/dist/{chunk-KZFBQ7GY.js.map → chunk-YU55JD35.js.map} +1 -1
  222. package/dist/chunk-YW2AKBLS.cjs +23 -0
  223. package/dist/chunk-YW2AKBLS.cjs.map +1 -0
  224. package/dist/{chunk-ELPW32ZI.cjs → chunk-ZTMYKAVU.cjs} +45 -45
  225. package/dist/{chunk-ELPW32ZI.cjs.map → chunk-ZTMYKAVU.cjs.map} +1 -1
  226. package/dist/{chunk-3QGS6CXD.js → chunk-ZYL4SNOR.js} +3 -3
  227. package/dist/{chunk-3QGS6CXD.js.map → chunk-ZYL4SNOR.js.map} +1 -1
  228. package/dist/components/Alert/index.d.cts +1 -1
  229. package/dist/components/Alert/index.d.ts +1 -1
  230. package/dist/components/AlertDialog/index.cjs +6 -5
  231. package/dist/components/AlertDialog/index.d.cts +28 -3
  232. package/dist/components/AlertDialog/index.d.ts +28 -3
  233. package/dist/components/AlertDialog/index.js +5 -4
  234. package/dist/components/AudioRecorder/index.d.cts +2 -2
  235. package/dist/components/AudioRecorder/index.d.ts +2 -2
  236. package/dist/components/Autocomplete/index.d.cts +8 -2
  237. package/dist/components/Autocomplete/index.d.ts +8 -2
  238. package/dist/components/Avatar/index.d.cts +1 -1
  239. package/dist/components/Avatar/index.d.ts +1 -1
  240. package/dist/components/Badge/index.d.cts +1 -1
  241. package/dist/components/Badge/index.d.ts +1 -1
  242. package/dist/components/BoardView/index.cjs +24 -0
  243. package/dist/components/BoardView/index.cjs.map +1 -0
  244. package/dist/components/BoardView/index.d.cts +41 -0
  245. package/dist/components/BoardView/index.d.ts +41 -0
  246. package/dist/components/BoardView/index.js +7 -0
  247. package/dist/components/BoardView/index.js.map +1 -0
  248. package/dist/components/Button/index.cjs +4 -3
  249. package/dist/components/Button/index.d.cts +2 -1
  250. package/dist/components/Button/index.d.ts +2 -1
  251. package/dist/components/Button/index.js +2 -1
  252. package/dist/components/CalendarView/index.cjs +23 -0
  253. package/dist/components/CalendarView/index.cjs.map +1 -0
  254. package/dist/components/CalendarView/index.d.cts +39 -0
  255. package/dist/components/CalendarView/index.d.ts +39 -0
  256. package/dist/components/CalendarView/index.js +10 -0
  257. package/dist/components/CalendarView/index.js.map +1 -0
  258. package/dist/components/Card/index.d.cts +3 -3
  259. package/dist/components/Card/index.d.ts +3 -3
  260. package/dist/components/Collapsible/index.cjs +6 -6
  261. package/dist/components/Collapsible/index.js +3 -3
  262. package/dist/components/CountryCodeDropdown/index.cjs +5 -5
  263. package/dist/components/CountryCodeDropdown/index.js +2 -2
  264. package/dist/components/CustomizableDashboard/index.cjs +10 -9
  265. package/dist/components/CustomizableDashboard/index.js +3 -2
  266. package/dist/components/Dropdown/index.cjs +10 -10
  267. package/dist/components/Dropdown/index.d.cts +2 -1
  268. package/dist/components/Dropdown/index.d.ts +2 -1
  269. package/dist/components/Dropdown/index.js +3 -3
  270. package/dist/components/FloatingWindow/index.cjs +5 -4
  271. package/dist/components/FloatingWindow/index.js +3 -2
  272. package/dist/components/GanttView/index.cjs +20 -0
  273. package/dist/components/GanttView/index.cjs.map +1 -0
  274. package/dist/components/GanttView/index.d.cts +36 -0
  275. package/dist/components/GanttView/index.d.ts +36 -0
  276. package/dist/components/GanttView/index.js +7 -0
  277. package/dist/components/GanttView/index.js.map +1 -0
  278. package/dist/components/GlossaryTooltip/index.cjs +3 -3
  279. package/dist/components/GlossaryTooltip/index.js +2 -2
  280. package/dist/components/KeyboardShortcutsOverlay/index.cjs +5 -5
  281. package/dist/components/KeyboardShortcutsOverlay/index.js +3 -3
  282. package/dist/components/ListView/index.cjs +23 -0
  283. package/dist/components/ListView/index.cjs.map +1 -0
  284. package/dist/components/ListView/index.d.cts +124 -0
  285. package/dist/components/ListView/index.d.ts +124 -0
  286. package/dist/components/ListView/index.js +10 -0
  287. package/dist/components/ListView/index.js.map +1 -0
  288. package/dist/components/Markdown/index.cjs +20 -19
  289. package/dist/components/Markdown/index.js +8 -7
  290. package/dist/components/MediaEditor/index.cjs +15 -14
  291. package/dist/components/MediaEditor/index.d.cts +91 -2
  292. package/dist/components/MediaEditor/index.d.ts +91 -2
  293. package/dist/components/MediaEditor/index.js +10 -9
  294. package/dist/components/MediaFeed/index.cjs +26 -0
  295. package/dist/components/MediaFeed/index.cjs.map +1 -0
  296. package/dist/components/MediaFeed/index.d.cts +104 -0
  297. package/dist/components/MediaFeed/index.d.ts +104 -0
  298. package/dist/components/MediaFeed/index.js +17 -0
  299. package/dist/components/MediaFeed/index.js.map +1 -0
  300. package/dist/components/MediaPlayer/index.cjs +7 -6
  301. package/dist/components/MediaPlayer/index.d.cts +19 -1
  302. package/dist/components/MediaPlayer/index.d.ts +19 -1
  303. package/dist/components/MediaPlayer/index.js +4 -3
  304. package/dist/components/MegaMenu/index.cjs +6 -5
  305. package/dist/components/MegaMenu/index.js +3 -2
  306. package/dist/components/Modal/index.cjs +10 -10
  307. package/dist/components/Modal/index.js +2 -2
  308. package/dist/components/Pagination/index.d.cts +1 -1
  309. package/dist/components/Pagination/index.d.ts +1 -1
  310. package/dist/components/PhoneInput/index.d.cts +36 -3
  311. package/dist/components/PhoneInput/index.d.ts +36 -3
  312. package/dist/components/Progress/index.d.cts +1 -1
  313. package/dist/components/Progress/index.d.ts +1 -1
  314. package/dist/components/Q/index.d.cts +2 -2
  315. package/dist/components/Q/index.d.ts +2 -2
  316. package/dist/components/QuickAction/index.d.cts +1 -1
  317. package/dist/components/QuickAction/index.d.ts +1 -1
  318. package/dist/components/RadialExplorer/index.cjs +5 -4
  319. package/dist/components/RadialExplorer/index.js +4 -3
  320. package/dist/components/RecordButton/index.d.cts +1 -1
  321. package/dist/components/RecordButton/index.d.ts +1 -1
  322. package/dist/components/RichTextEditor/index.cjs +9 -8
  323. package/dist/components/RichTextEditor/index.d.cts +7 -2
  324. package/dist/components/RichTextEditor/index.d.ts +7 -2
  325. package/dist/components/RichTextEditor/index.js +6 -5
  326. package/dist/components/ScrollArea/index.d.cts +1 -1
  327. package/dist/components/ScrollArea/index.d.ts +1 -1
  328. package/dist/components/SectionSpyNav/index.cjs +4 -3
  329. package/dist/components/SectionSpyNav/index.js +3 -2
  330. package/dist/components/Select/index.cjs +4 -4
  331. package/dist/components/Select/index.d.cts +1 -2
  332. package/dist/components/Select/index.d.ts +1 -2
  333. package/dist/components/Select/index.js +2 -2
  334. package/dist/components/Skeleton/index.d.cts +1 -1
  335. package/dist/components/Skeleton/index.d.ts +1 -1
  336. package/dist/components/Slider/index.d.cts +2 -2
  337. package/dist/components/Slider/index.d.ts +2 -2
  338. package/dist/components/SliderCalculator/index.cjs +4 -4
  339. package/dist/components/SliderCalculator/index.js +2 -2
  340. package/dist/components/SourceTip/index.cjs +3 -3
  341. package/dist/components/SourceTip/index.js +2 -2
  342. package/dist/components/Spinner/index.d.cts +2 -2
  343. package/dist/components/Spinner/index.d.ts +2 -2
  344. package/dist/components/SuperChat/index.cjs +1378 -819
  345. package/dist/components/SuperChat/index.cjs.map +1 -1
  346. package/dist/components/SuperChat/index.d.cts +35 -8
  347. package/dist/components/SuperChat/index.d.ts +35 -8
  348. package/dist/components/SuperChat/index.js +1370 -811
  349. package/dist/components/SuperChat/index.js.map +1 -1
  350. package/dist/components/SuperChat/plugins/index.cjs +6 -6
  351. package/dist/components/SuperChat/plugins/index.d.cts +2 -3
  352. package/dist/components/SuperChat/plugins/index.d.ts +2 -3
  353. package/dist/components/SuperChat/plugins/index.js +5 -5
  354. package/dist/components/Text/index.d.cts +3 -3
  355. package/dist/components/Text/index.d.ts +3 -3
  356. package/dist/components/Textarea/index.d.cts +1 -2
  357. package/dist/components/Textarea/index.d.ts +1 -2
  358. package/dist/components/ThemeProvider/index.cjs +9 -9
  359. package/dist/components/ThemeProvider/index.d.cts +3 -1
  360. package/dist/components/ThemeProvider/index.d.ts +3 -1
  361. package/dist/components/ThemeProvider/index.js +3 -3
  362. package/dist/components/Tooltip/index.cjs +3 -3
  363. package/dist/components/Tooltip/index.js +2 -2
  364. package/dist/components/TranscriptView/index.d.cts +85 -4
  365. package/dist/components/TranscriptView/index.d.ts +85 -4
  366. package/dist/components/ViewSet/index.cjs +24 -0
  367. package/dist/components/ViewSet/index.cjs.map +1 -0
  368. package/dist/components/ViewSet/index.d.cts +200 -0
  369. package/dist/components/ViewSet/index.d.ts +200 -0
  370. package/dist/components/ViewSet/index.js +15 -0
  371. package/dist/components/ViewSet/index.js.map +1 -0
  372. package/dist/components/ViewSwitcher/index.cjs +20 -0
  373. package/dist/components/ViewSwitcher/index.cjs.map +1 -0
  374. package/dist/components/ViewSwitcher/index.d.cts +4 -0
  375. package/dist/components/ViewSwitcher/index.d.ts +4 -0
  376. package/dist/components/ViewSwitcher/index.js +7 -0
  377. package/dist/components/ViewSwitcher/index.js.map +1 -0
  378. package/dist/datavis.cjs +3 -2
  379. package/dist/datavis.cjs.map +1 -1
  380. package/dist/datavis.d.cts +167 -13
  381. package/dist/datavis.d.ts +167 -13
  382. package/dist/datavis.js +2 -1
  383. package/dist/datavis.js.map +1 -1
  384. package/dist/deck.cjs +3360 -0
  385. package/dist/deck.cjs.map +1 -0
  386. package/dist/deck.d.cts +712 -0
  387. package/dist/deck.d.ts +712 -0
  388. package/dist/deck.js +3316 -0
  389. package/dist/deck.js.map +1 -0
  390. package/dist/esheet.cjs +14 -13
  391. package/dist/esheet.cjs.map +1 -1
  392. package/dist/esheet.d.cts +183 -1
  393. package/dist/esheet.d.ts +183 -1
  394. package/dist/esheet.js +11 -10
  395. package/dist/esheet.js.map +1 -1
  396. package/dist/globe.cjs +2 -2
  397. package/dist/globe.js +1 -1
  398. package/dist/hooks/index.cjs +60 -27
  399. package/dist/hooks/index.d.cts +590 -31
  400. package/dist/hooks/index.d.ts +590 -31
  401. package/dist/hooks/index.js +6 -5
  402. package/dist/icons-wBacj6BW.d.cts +142 -0
  403. package/dist/icons-wBacj6BW.d.ts +142 -0
  404. package/dist/index-DoYYWsNc.d.cts +127 -0
  405. package/dist/index-DoYYWsNc.d.ts +127 -0
  406. package/dist/index.cjs +1420 -1048
  407. package/dist/index.cjs.map +1 -1
  408. package/dist/index.d.cts +8796 -482
  409. package/dist/index.d.ts +8796 -482
  410. package/dist/index.js +368 -232
  411. package/dist/index.js.map +1 -1
  412. package/dist/kerebron.cjs +58 -19
  413. package/dist/kerebron.cjs.map +1 -1
  414. package/dist/kerebron.css +115 -0
  415. package/dist/kerebron.d.cts +37 -0
  416. package/dist/kerebron.d.ts +37 -0
  417. package/dist/kerebron.js +58 -19
  418. package/dist/kerebron.js.map +1 -1
  419. package/dist/maps.cjs +160 -0
  420. package/dist/maps.cjs.map +1 -0
  421. package/dist/maps.d.cts +42 -0
  422. package/dist/maps.d.ts +42 -0
  423. package/dist/maps.js +138 -0
  424. package/dist/maps.js.map +1 -0
  425. package/dist/motion.cjs +7 -7
  426. package/dist/motion.d.cts +186 -2
  427. package/dist/motion.d.ts +186 -2
  428. package/dist/motion.js +2 -2
  429. package/dist/q.d.cts +25 -3
  430. package/dist/q.d.ts +25 -3
  431. package/dist/styles/effects.css +133 -0
  432. package/dist/styles/init.css +3 -0
  433. package/dist/styles.css +1 -1
  434. package/dist/tailwind-preset.cjs +4 -4
  435. package/dist/tailwind-preset.js +1 -1
  436. package/dist/templates.cjs +156 -0
  437. package/dist/templates.cjs.map +1 -0
  438. package/dist/templates.d.cts +734 -0
  439. package/dist/templates.d.ts +734 -0
  440. package/dist/templates.js +11 -0
  441. package/dist/templates.js.map +1 -0
  442. package/dist/types-Cx1FHLq2.d.cts +548 -0
  443. package/dist/types-Cx1FHLq2.d.ts +548 -0
  444. package/dist/types-DsdZvEI1.d.cts +92 -0
  445. package/dist/types-DsdZvEI1.d.ts +92 -0
  446. package/dist/utils/index.d.cts +13 -2
  447. package/dist/utils/index.d.ts +13 -2
  448. package/package.json +62 -13
  449. package/dist/Animated-XmH6k8pZ.d.cts +0 -188
  450. package/dist/Animated-XmH6k8pZ.d.ts +0 -188
  451. package/dist/CsvBlock-ROJCKJDP.cjs +0 -16
  452. package/dist/CsvBlock-UWPMTLE2.js +0 -7
  453. package/dist/HtmlPreviewBlock-DWFN6EUB.cjs +0 -16
  454. package/dist/HtmlPreviewBlock-ME5U3XNS.js +0 -7
  455. package/dist/MedicationEditor-Bp4NLy7y.d.cts +0 -352
  456. package/dist/MedicationEditor-Bp4NLy7y.d.ts +0 -352
  457. package/dist/MermaidBlock-2B6CPD6Y.js +0 -7
  458. package/dist/MermaidBlock-D2UC5M55.cjs +0 -16
  459. package/dist/SurveyBlock-4CD4AYMJ.cjs +0 -16
  460. package/dist/SurveyBlock-4DO62RBT.js +0 -7
  461. package/dist/chunk-22CYDCXA.js.map +0 -1
  462. package/dist/chunk-3T7QGLNB.js.map +0 -1
  463. package/dist/chunk-6HFFWEM3.cjs +0 -22
  464. package/dist/chunk-6HFFWEM3.cjs.map +0 -1
  465. package/dist/chunk-ACCAXVOG.js.map +0 -1
  466. package/dist/chunk-GOALNQZ2.js.map +0 -1
  467. package/dist/chunk-HB7C7NB5.js +0 -20
  468. package/dist/chunk-HB7C7NB5.js.map +0 -1
  469. package/dist/chunk-JHULS3EC.js.map +0 -1
  470. package/dist/chunk-JI244Y7C.js.map +0 -1
  471. package/dist/chunk-JYZW2PZS.cjs.map +0 -1
  472. package/dist/chunk-NV2CWBI2.cjs.map +0 -1
  473. package/dist/chunk-SQHMGT4W.js.map +0 -1
  474. package/dist/chunk-U42F3HLE.cjs.map +0 -1
  475. package/dist/chunk-VKELAMAZ.js.map +0 -1
  476. package/dist/chunk-VNYW4C4J.cjs.map +0 -1
  477. package/dist/chunk-WIAQQNFU.cjs.map +0 -1
  478. package/dist/chunk-WNAA6CLE.cjs.map +0 -1
  479. package/dist/chunk-WNJRS7Y7.cjs.map +0 -1
  480. package/dist/chunk-X4XPNTCZ.cjs.map +0 -1
  481. package/dist/chunk-XCP454Q6.js.map +0 -1
  482. package/dist/chunk-XEAT7XJG.cjs.map +0 -1
  483. package/dist/html-MdxqSzjD.d.cts +0 -13
  484. package/dist/html-MdxqSzjD.d.ts +0 -13
  485. package/dist/orderRows-BUJYgSc7.d.cts +0 -221
  486. package/dist/orderRows-BUJYgSc7.d.ts +0 -221
  487. package/dist/transcript-Cg7uSW-C.d.cts +0 -84
  488. package/dist/transcript-Cg7uSW-C.d.ts +0 -84
  489. package/dist/types-B97JNRNQ.d.cts +0 -251
  490. package/dist/types-CnPEwzlp.d.cts +0 -254
  491. package/dist/types-CnPEwzlp.d.ts +0 -254
  492. package/dist/types-gZXrfLj6.d.ts +0 -251
  493. package/dist/useAnchoredPosition-CKwLSQW8.d.cts +0 -76
  494. package/dist/useAnchoredPosition-CKwLSQW8.d.ts +0 -76
  495. package/dist/useTheme-B9SWu6ui.d.cts +0 -24
  496. package/dist/useTheme-B9SWu6ui.d.ts +0 -24
  497. package/dist/useTranscriptEdits-CGzlemHT.d.cts +0 -182
  498. package/dist/useTranscriptEdits-D32bLs0l.d.ts +0 -182
@@ -0,0 +1,200 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { V as ViewBaseProps, S as Stage, a as ViewLabels, b as ViewId, c as ViewOption } from '../../index-DoYYWsNc.cjs';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+ import { VariantProps } from 'class-variance-authority';
6
+
7
+ type ListViewSlot = 'group' | 'groupHeader' | 'item' | 'selectedItem' | 'state';
8
+ interface ListViewProps<T> extends ViewBaseProps<T>, VariantProps<typeof itemVariants> {
9
+ /**
10
+ * Group rows by `accessors.getStatus`, using these stages for order and
11
+ * labels. Items whose status matches no stage are appended under their own
12
+ * heading rather than dropped.
13
+ */
14
+ stages?: readonly Stage[];
15
+ /** Group by `accessors.getGroup` instead of by stage. */
16
+ groupBy?: 'status' | 'group' | 'none';
17
+ /** Groups that start collapsed. Uncontrolled; the user can reopen them. */
18
+ defaultCollapsedGroups?: readonly string[];
19
+ /** Retries the failed load. Renders the retry action only when provided. */
20
+ onRetry?: () => void;
21
+ classNames?: Partial<Record<ListViewSlot, string>>;
22
+ /** Heading level for group headers, under the page's own heading. */
23
+ headingLevel?: 'h2' | 'h3' | 'h4';
24
+ }
25
+ declare const itemVariants: (props?: ({
26
+ density?: "comfortable" | "compact" | null | undefined;
27
+ interactive?: boolean | null | undefined;
28
+ selected?: boolean | null | undefined;
29
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
30
+
31
+ type BoardViewSlot = 'column' | 'columnHeader' | 'card' | 'selectedCard' | 'state';
32
+ interface BoardLabels extends ViewLabels {
33
+ /** Accessible name of the scrollable board region. */
34
+ board: string;
35
+ /** Announced when a card starts moving. `{item}` and `{stage}` are substituted. */
36
+ moved: string;
37
+ /** Announced when `onMove` rejects. */
38
+ moveFailed: string;
39
+ /** Hint on a focusable card describing the keyboard move. */
40
+ moveHint: string;
41
+ }
42
+ interface BoardViewProps<T> extends ViewBaseProps<T>, VariantProps<typeof cardVariants> {
43
+ /** Columns, in order. A board without stages has nothing to draw. */
44
+ stages: readonly Stage[];
45
+ /**
46
+ * Commits a move. The board shows the card in its new column while this is
47
+ * pending and puts it back if the promise rejects, so the caller never has to
48
+ * re-render it home.
49
+ */
50
+ onMove?: (id: string, toStage: string, item: T) => void | Promise<void>;
51
+ labels?: Partial<BoardLabels>;
52
+ classNames?: Partial<Record<BoardViewSlot, string>>;
53
+ /** Heading level for column headers, under the page's own heading. */
54
+ headingLevel?: 'h2' | 'h3' | 'h4';
55
+ }
56
+ declare const cardVariants: (props?: ({
57
+ density?: "comfortable" | "compact" | null | undefined;
58
+ interactive?: boolean | null | undefined;
59
+ selected?: boolean | null | undefined;
60
+ pending?: boolean | null | undefined;
61
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
62
+
63
+ type CalendarViewSlot = 'toolbar' | 'weekday' | 'day' | 'outsideDay' | 'today' | 'entry' | 'selectedEntry' | 'state';
64
+ interface CalendarLabels extends ViewLabels {
65
+ previousMonth: string;
66
+ nextMonth: string;
67
+ today: string;
68
+ /** Overflow affordance. `{count}` is substituted. */
69
+ more: string;
70
+ }
71
+ interface CalendarViewProps<T> extends ViewBaseProps<T> {
72
+ /** Controlled month. Any date inside the month works. */
73
+ month?: Date;
74
+ /** Starting month when uncontrolled. Defaults to the month containing `now`. */
75
+ defaultMonth?: Date;
76
+ onMonthChange?: (month: Date) => void;
77
+ /**
78
+ * IANA zone the grid is drawn in, e.g. `America/New_York`. Defaults to the
79
+ * runtime's. A day boundary is a business fact, so state it explicitly when
80
+ * the collection belongs to somewhere other than the viewer.
81
+ */
82
+ timeZone?: string;
83
+ /** 1 = Monday … 7 = Sunday. Defaults to Monday. */
84
+ weekStartsOn?: number;
85
+ /** Locale for month, weekday and day-number formatting. */
86
+ locale?: string;
87
+ /** Entries to show per day before collapsing into "{count} more". */
88
+ maxPerDay?: number;
89
+ labels?: Partial<CalendarLabels>;
90
+ classNames?: Partial<Record<CalendarViewSlot, string>>;
91
+ /** Hide the month toolbar when the host renders its own. */
92
+ hideToolbar?: boolean;
93
+ }
94
+
95
+ /**
96
+ * Column width in time. `month` and `quarter` are what a roadmap is — the
97
+ * family has no separate RoadmapView, because it would be this component with
98
+ * wider columns.
99
+ */
100
+ type GanttCadence = 'day' | 'week' | 'month' | 'quarter';
101
+ type GanttViewSlot = 'header' | 'groupLabel' | 'row' | 'bar' | 'selectedBar' | 'state';
102
+ interface GanttLabels extends ViewLabels {
103
+ /** Accessible name of the scrollable chart region. */
104
+ chart: string;
105
+ /** Footnote for records a time axis cannot place. `{count}` is substituted. */
106
+ undated: string;
107
+ }
108
+ interface GanttViewProps<T> extends ViewBaseProps<T> {
109
+ /** Column width in time. Defaults to `week`. */
110
+ cadence?: GanttCadence;
111
+ /** First column. Defaults to the earliest start in `items`. */
112
+ rangeStart?: Date;
113
+ /** Last column. Defaults to the latest end in `items`. */
114
+ rangeEnd?: Date;
115
+ /** Group rows into swimlanes by `accessors.getGroup`. */
116
+ groupByLane?: boolean;
117
+ timeZone?: string;
118
+ locale?: string;
119
+ labels?: Partial<GanttLabels>;
120
+ classNames?: Partial<Record<GanttViewSlot, string>>;
121
+ headingLevel?: 'h2' | 'h3' | 'h4';
122
+ }
123
+
124
+ /**
125
+ * Every string any layout in the set can render.
126
+ *
127
+ * Each view extends `ViewLabels` with its own — the calendar's month arrows and
128
+ * "+n more", the board's move announcements, the Gantt's undated footnote. They
129
+ * are all shared props, so the per-view escape hatches below exclude `labels`;
130
+ * without widening here a non-English host could translate the common strings
131
+ * and nothing else, which would break the contract that every user-facing
132
+ * string is overridable. A view ignores the keys it does not know.
133
+ */
134
+ type ViewSetLabels = Partial<CalendarLabels & BoardLabels & GanttLabels>;
135
+ /**
136
+ * Props `ViewSet` passes to every layout itself, beyond `ViewBaseProps`. Named
137
+ * here so the per-view escape hatches below can exclude them by key rather than
138
+ * by a hand-kept list that would drift the moment a shared prop is added.
139
+ */
140
+ type ViewSetOwned = 'stages' | 'onMove' | 'timeZone' | 'locale';
141
+ type ViewOverrides<P, T> = Omit<Partial<P>, keyof ViewBaseProps<T> | ViewSetOwned>;
142
+ interface ViewSetProps<T> extends ViewBaseProps<T> {
143
+ /** Every string any offered layout can render, not just the shared ones. */
144
+ labels?: ViewSetLabels;
145
+ /** Views to offer, in order. The first is the default when uncontrolled. */
146
+ views: readonly (ViewId | ViewOption)[];
147
+ view?: ViewId;
148
+ defaultView?: ViewId;
149
+ onViewChange?: (view: ViewId) => void;
150
+ /**
151
+ * Remembers the chosen view under this key. Ignored when `view` is
152
+ * controlled — a page with its own URL state should own it there instead.
153
+ */
154
+ storageKey?: string;
155
+ /** Stages for the board and for list grouping. */
156
+ stages?: readonly Stage[];
157
+ onMove?: BoardViewProps<T>['onMove'];
158
+ /**
159
+ * IANA zone the date views read day boundaries in. Shared, because a page
160
+ * showing one collection as a calendar and as a Gantt must place it on the
161
+ * same days in both.
162
+ */
163
+ timeZone?: string;
164
+ /** Locale for date formatting in the calendar and Gantt. */
165
+ locale?: string;
166
+ /** Rendered above the switcher row. */
167
+ toolbar?: React.ReactNode;
168
+ /** Rendered under the switcher row, above the view. */
169
+ filters?: React.ReactNode;
170
+ /** The `overview` view. Domain content — the library has no opinion on it. */
171
+ overview?: React.ReactNode;
172
+ /** The `table` view. A tabular collection is a grid, not a view component. */
173
+ table?: React.ReactNode;
174
+ /** Rendered beside the view, for a list-plus-detail layout. */
175
+ detail?: React.ReactNode;
176
+ /**
177
+ * Per-view escape hatches for props this shell does not surface. Shared props
178
+ * are excluded: one collection rendered several ways means switching view can
179
+ * never change the records, the selection or the load state.
180
+ *
181
+ * `ViewSetOwned` covers the props the shell passes itself but that are not on
182
+ * `ViewBaseProps`. They are spread after the shared ones, so leaving them open
183
+ * would let one layout carry different stages, a different mutation callback
184
+ * or a different time zone from its neighbours — the same collection quietly
185
+ * disagreeing with itself as you switch tabs.
186
+ */
187
+ listProps?: ViewOverrides<ListViewProps<T>, T>;
188
+ boardProps?: ViewOverrides<BoardViewProps<T>, T>;
189
+ calendarProps?: ViewOverrides<CalendarViewProps<T>, T>;
190
+ ganttProps?: ViewOverrides<GanttViewProps<T>, T>;
191
+ classNames?: Partial<Record<'toolbar' | 'switcher' | 'body' | 'detail', string>>;
192
+ }
193
+ /**
194
+ * The page-level composition: switcher, the enabled views, and the slots a page
195
+ * needs around them. It owns which view is showing and nothing else — items,
196
+ * selection and every mutation stay with the caller.
197
+ */
198
+ declare function ViewSet<T>({ views, view, defaultView, onViewChange, storageKey, stages, onMove, toolbar, filters, overview, table, detail, listProps, boardProps, calendarProps, ganttProps, className, classNames, ...shared }: ViewSetProps<T>): react_jsx_runtime.JSX.Element;
199
+
200
+ export { ViewSet, type ViewSetLabels, type ViewSetProps };
@@ -0,0 +1,200 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { V as ViewBaseProps, S as Stage, a as ViewLabels, b as ViewId, c as ViewOption } from '../../index-DoYYWsNc.js';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+ import { VariantProps } from 'class-variance-authority';
6
+
7
+ type ListViewSlot = 'group' | 'groupHeader' | 'item' | 'selectedItem' | 'state';
8
+ interface ListViewProps<T> extends ViewBaseProps<T>, VariantProps<typeof itemVariants> {
9
+ /**
10
+ * Group rows by `accessors.getStatus`, using these stages for order and
11
+ * labels. Items whose status matches no stage are appended under their own
12
+ * heading rather than dropped.
13
+ */
14
+ stages?: readonly Stage[];
15
+ /** Group by `accessors.getGroup` instead of by stage. */
16
+ groupBy?: 'status' | 'group' | 'none';
17
+ /** Groups that start collapsed. Uncontrolled; the user can reopen them. */
18
+ defaultCollapsedGroups?: readonly string[];
19
+ /** Retries the failed load. Renders the retry action only when provided. */
20
+ onRetry?: () => void;
21
+ classNames?: Partial<Record<ListViewSlot, string>>;
22
+ /** Heading level for group headers, under the page's own heading. */
23
+ headingLevel?: 'h2' | 'h3' | 'h4';
24
+ }
25
+ declare const itemVariants: (props?: ({
26
+ density?: "comfortable" | "compact" | null | undefined;
27
+ interactive?: boolean | null | undefined;
28
+ selected?: boolean | null | undefined;
29
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
30
+
31
+ type BoardViewSlot = 'column' | 'columnHeader' | 'card' | 'selectedCard' | 'state';
32
+ interface BoardLabels extends ViewLabels {
33
+ /** Accessible name of the scrollable board region. */
34
+ board: string;
35
+ /** Announced when a card starts moving. `{item}` and `{stage}` are substituted. */
36
+ moved: string;
37
+ /** Announced when `onMove` rejects. */
38
+ moveFailed: string;
39
+ /** Hint on a focusable card describing the keyboard move. */
40
+ moveHint: string;
41
+ }
42
+ interface BoardViewProps<T> extends ViewBaseProps<T>, VariantProps<typeof cardVariants> {
43
+ /** Columns, in order. A board without stages has nothing to draw. */
44
+ stages: readonly Stage[];
45
+ /**
46
+ * Commits a move. The board shows the card in its new column while this is
47
+ * pending and puts it back if the promise rejects, so the caller never has to
48
+ * re-render it home.
49
+ */
50
+ onMove?: (id: string, toStage: string, item: T) => void | Promise<void>;
51
+ labels?: Partial<BoardLabels>;
52
+ classNames?: Partial<Record<BoardViewSlot, string>>;
53
+ /** Heading level for column headers, under the page's own heading. */
54
+ headingLevel?: 'h2' | 'h3' | 'h4';
55
+ }
56
+ declare const cardVariants: (props?: ({
57
+ density?: "comfortable" | "compact" | null | undefined;
58
+ interactive?: boolean | null | undefined;
59
+ selected?: boolean | null | undefined;
60
+ pending?: boolean | null | undefined;
61
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
62
+
63
+ type CalendarViewSlot = 'toolbar' | 'weekday' | 'day' | 'outsideDay' | 'today' | 'entry' | 'selectedEntry' | 'state';
64
+ interface CalendarLabels extends ViewLabels {
65
+ previousMonth: string;
66
+ nextMonth: string;
67
+ today: string;
68
+ /** Overflow affordance. `{count}` is substituted. */
69
+ more: string;
70
+ }
71
+ interface CalendarViewProps<T> extends ViewBaseProps<T> {
72
+ /** Controlled month. Any date inside the month works. */
73
+ month?: Date;
74
+ /** Starting month when uncontrolled. Defaults to the month containing `now`. */
75
+ defaultMonth?: Date;
76
+ onMonthChange?: (month: Date) => void;
77
+ /**
78
+ * IANA zone the grid is drawn in, e.g. `America/New_York`. Defaults to the
79
+ * runtime's. A day boundary is a business fact, so state it explicitly when
80
+ * the collection belongs to somewhere other than the viewer.
81
+ */
82
+ timeZone?: string;
83
+ /** 1 = Monday … 7 = Sunday. Defaults to Monday. */
84
+ weekStartsOn?: number;
85
+ /** Locale for month, weekday and day-number formatting. */
86
+ locale?: string;
87
+ /** Entries to show per day before collapsing into "{count} more". */
88
+ maxPerDay?: number;
89
+ labels?: Partial<CalendarLabels>;
90
+ classNames?: Partial<Record<CalendarViewSlot, string>>;
91
+ /** Hide the month toolbar when the host renders its own. */
92
+ hideToolbar?: boolean;
93
+ }
94
+
95
+ /**
96
+ * Column width in time. `month` and `quarter` are what a roadmap is — the
97
+ * family has no separate RoadmapView, because it would be this component with
98
+ * wider columns.
99
+ */
100
+ type GanttCadence = 'day' | 'week' | 'month' | 'quarter';
101
+ type GanttViewSlot = 'header' | 'groupLabel' | 'row' | 'bar' | 'selectedBar' | 'state';
102
+ interface GanttLabels extends ViewLabels {
103
+ /** Accessible name of the scrollable chart region. */
104
+ chart: string;
105
+ /** Footnote for records a time axis cannot place. `{count}` is substituted. */
106
+ undated: string;
107
+ }
108
+ interface GanttViewProps<T> extends ViewBaseProps<T> {
109
+ /** Column width in time. Defaults to `week`. */
110
+ cadence?: GanttCadence;
111
+ /** First column. Defaults to the earliest start in `items`. */
112
+ rangeStart?: Date;
113
+ /** Last column. Defaults to the latest end in `items`. */
114
+ rangeEnd?: Date;
115
+ /** Group rows into swimlanes by `accessors.getGroup`. */
116
+ groupByLane?: boolean;
117
+ timeZone?: string;
118
+ locale?: string;
119
+ labels?: Partial<GanttLabels>;
120
+ classNames?: Partial<Record<GanttViewSlot, string>>;
121
+ headingLevel?: 'h2' | 'h3' | 'h4';
122
+ }
123
+
124
+ /**
125
+ * Every string any layout in the set can render.
126
+ *
127
+ * Each view extends `ViewLabels` with its own — the calendar's month arrows and
128
+ * "+n more", the board's move announcements, the Gantt's undated footnote. They
129
+ * are all shared props, so the per-view escape hatches below exclude `labels`;
130
+ * without widening here a non-English host could translate the common strings
131
+ * and nothing else, which would break the contract that every user-facing
132
+ * string is overridable. A view ignores the keys it does not know.
133
+ */
134
+ type ViewSetLabels = Partial<CalendarLabels & BoardLabels & GanttLabels>;
135
+ /**
136
+ * Props `ViewSet` passes to every layout itself, beyond `ViewBaseProps`. Named
137
+ * here so the per-view escape hatches below can exclude them by key rather than
138
+ * by a hand-kept list that would drift the moment a shared prop is added.
139
+ */
140
+ type ViewSetOwned = 'stages' | 'onMove' | 'timeZone' | 'locale';
141
+ type ViewOverrides<P, T> = Omit<Partial<P>, keyof ViewBaseProps<T> | ViewSetOwned>;
142
+ interface ViewSetProps<T> extends ViewBaseProps<T> {
143
+ /** Every string any offered layout can render, not just the shared ones. */
144
+ labels?: ViewSetLabels;
145
+ /** Views to offer, in order. The first is the default when uncontrolled. */
146
+ views: readonly (ViewId | ViewOption)[];
147
+ view?: ViewId;
148
+ defaultView?: ViewId;
149
+ onViewChange?: (view: ViewId) => void;
150
+ /**
151
+ * Remembers the chosen view under this key. Ignored when `view` is
152
+ * controlled — a page with its own URL state should own it there instead.
153
+ */
154
+ storageKey?: string;
155
+ /** Stages for the board and for list grouping. */
156
+ stages?: readonly Stage[];
157
+ onMove?: BoardViewProps<T>['onMove'];
158
+ /**
159
+ * IANA zone the date views read day boundaries in. Shared, because a page
160
+ * showing one collection as a calendar and as a Gantt must place it on the
161
+ * same days in both.
162
+ */
163
+ timeZone?: string;
164
+ /** Locale for date formatting in the calendar and Gantt. */
165
+ locale?: string;
166
+ /** Rendered above the switcher row. */
167
+ toolbar?: React.ReactNode;
168
+ /** Rendered under the switcher row, above the view. */
169
+ filters?: React.ReactNode;
170
+ /** The `overview` view. Domain content — the library has no opinion on it. */
171
+ overview?: React.ReactNode;
172
+ /** The `table` view. A tabular collection is a grid, not a view component. */
173
+ table?: React.ReactNode;
174
+ /** Rendered beside the view, for a list-plus-detail layout. */
175
+ detail?: React.ReactNode;
176
+ /**
177
+ * Per-view escape hatches for props this shell does not surface. Shared props
178
+ * are excluded: one collection rendered several ways means switching view can
179
+ * never change the records, the selection or the load state.
180
+ *
181
+ * `ViewSetOwned` covers the props the shell passes itself but that are not on
182
+ * `ViewBaseProps`. They are spread after the shared ones, so leaving them open
183
+ * would let one layout carry different stages, a different mutation callback
184
+ * or a different time zone from its neighbours — the same collection quietly
185
+ * disagreeing with itself as you switch tabs.
186
+ */
187
+ listProps?: ViewOverrides<ListViewProps<T>, T>;
188
+ boardProps?: ViewOverrides<BoardViewProps<T>, T>;
189
+ calendarProps?: ViewOverrides<CalendarViewProps<T>, T>;
190
+ ganttProps?: ViewOverrides<GanttViewProps<T>, T>;
191
+ classNames?: Partial<Record<'toolbar' | 'switcher' | 'body' | 'detail', string>>;
192
+ }
193
+ /**
194
+ * The page-level composition: switcher, the enabled views, and the slots a page
195
+ * needs around them. It owns which view is showing and nothing else — items,
196
+ * selection and every mutation stay with the caller.
197
+ */
198
+ declare function ViewSet<T>({ views, view, defaultView, onViewChange, storageKey, stages, onMove, toolbar, filters, overview, table, detail, listProps, boardProps, calendarProps, ganttProps, className, classNames, ...shared }: ViewSetProps<T>): react_jsx_runtime.JSX.Element;
199
+
200
+ export { ViewSet, type ViewSetLabels, type ViewSetProps };
@@ -0,0 +1,15 @@
1
+ export { ViewSet } from '../../chunk-IYWG72DM.js';
2
+ import '../../chunk-IT775BYG.js';
3
+ import '../../chunk-4HC2IBOX.js';
4
+ import '../../chunk-Y4QNLW7W.js';
5
+ import '../../chunk-XBTKZCZF.js';
6
+ import '../../chunk-XVW5DPPP.js';
7
+ import '../../chunk-3YBS4WUQ.js';
8
+ import '../../chunk-UA7E7PDS.js';
9
+ import '../../chunk-BKSPDTX4.js';
10
+ import '../../chunk-7YO7DNUV.js';
11
+ import '../../chunk-GVM6DTR5.js';
12
+ import '../../chunk-TQONQSJO.js';
13
+ import '../../chunk-PX6F3LHL.js';
14
+ //# sourceMappingURL=index.js.map
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var chunkXDIMTPZU_cjs = require('../../chunk-XDIMTPZU.cjs');
4
+ require('../../chunk-4NCDU5IG.cjs');
5
+ require('../../chunk-L7L5S2HO.cjs');
6
+ require('../../chunk-S5RVSXDV.cjs');
7
+ require('../../chunk-EUAMEVVI.cjs');
8
+
9
+
10
+
11
+ Object.defineProperty(exports, "ViewSwitcher", {
12
+ enumerable: true,
13
+ get: function () { return chunkXDIMTPZU_cjs.ViewSwitcher; }
14
+ });
15
+ Object.defineProperty(exports, "viewSwitcherVariants", {
16
+ enumerable: true,
17
+ get: function () { return chunkXDIMTPZU_cjs.viewSwitcherVariants; }
18
+ });
19
+ //# sourceMappingURL=index.cjs.map
20
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.cjs"}
@@ -0,0 +1,4 @@
1
+ export { c as ViewOption, d as ViewSwitcher, e as ViewSwitcherProps, v as viewSwitcherVariants } from '../../index-DoYYWsNc.cjs';
2
+ import 'class-variance-authority/types';
3
+ import 'react';
4
+ import 'class-variance-authority';
@@ -0,0 +1,4 @@
1
+ export { c as ViewOption, d as ViewSwitcher, e as ViewSwitcherProps, v as viewSwitcherVariants } from '../../index-DoYYWsNc.js';
2
+ import 'class-variance-authority/types';
3
+ import 'react';
4
+ import 'class-variance-authority';
@@ -0,0 +1,7 @@
1
+ export { ViewSwitcher, viewSwitcherVariants } from '../../chunk-IT775BYG.js';
2
+ import '../../chunk-3YBS4WUQ.js';
3
+ import '../../chunk-BKSPDTX4.js';
4
+ import '../../chunk-TQONQSJO.js';
5
+ import '../../chunk-PX6F3LHL.js';
6
+ //# sourceMappingURL=index.js.map
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
package/dist/datavis.cjs CHANGED
@@ -2,8 +2,9 @@
2
2
 
3
3
  var chunkPN2PIE2L_cjs = require('./chunk-PN2PIE2L.cjs');
4
4
  var chunkRI56YPED_cjs = require('./chunk-RI56YPED.cjs');
5
+ var chunkX6A27RGO_cjs = require('./chunk-X6A27RGO.cjs');
5
6
  var chunkYVL3XATO_cjs = require('./chunk-YVL3XATO.cjs');
6
- var chunkVNYW4C4J_cjs = require('./chunk-VNYW4C4J.cjs');
7
+ require('./chunk-DXEPYK3I.cjs');
7
8
  var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
8
9
  require('./chunk-EUAMEVVI.cjs');
9
10
  var React = require('react');
@@ -108,7 +109,7 @@ function OrdersGroupPresets({
108
109
  children: [
109
110
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-xs font-medium", children: "Group:" }),
110
111
  presets.map((p) => /* @__PURE__ */ jsxRuntime.jsx(
111
- chunkVNYW4C4J_cjs.Button,
112
+ chunkX6A27RGO_cjs.Button,
112
113
  {
113
114
  type: "button",
114
115
  size: "sm",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/HealthSurveillance/ordersGridShared.tsx","../src/components/HealthSurveillance/OrdersGrid.tsx"],"names":["React","jsx","Fragment","Badge","ul","jsxs","cn","Button","React2","ml","gl","buildChartOrderRows","buildEncounterOrderRows"],"mappings":"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","file":"datavis.cjs","sourcesContent":["'use client';\n\n/**\n * Shared internals for the NITRO-backed orders grids\n * (ChartOrdersGrid / EncounterOrdersGrid).\n *\n * - {@link useOrderRowsUrl} — feeds in-memory {@link OrderRow}s to\n * `DataVisNitroSource` through a short-lived object-URL carrying the\n * `{ typeInfo, data }` payload the engine expects (its `local` source type\n * is not implemented yet; same pattern as SuperChat's NITRO table plugin).\n * - {@link OrderStatusBadge} / {@link formatOrderCell} — status chips in grid\n * cells.\n * - {@link OrdersGroupPresets} — one-click \"group by\" chips driving\n * `view.setGroup()` through {@link DataVisNitroContext}.\n *\n * Row selection and mass operations are native NITRO features:\n * `features.rowSelection: 'checkbox'` + the `operations` palette.\n */\n\nimport * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport { Badge } from '../Badge/Badge';\nimport { Button } from '../Button';\nimport { DataVisNitroContext } from '../DataVisNITRO';\nimport type { OrderRow, OrderRowStatus } from './orderRows';\n\n// =============================================================================\n// Column + typeInfo metadata\n// =============================================================================\n\n/** Grid columns, in display order, with control-panel display names. */\nexport const ORDER_COLUMNS: {\n field: keyof OrderRow;\n header: string;\n type: 'string' | 'date';\n}[] = [\n { field: 'status', header: 'Status', type: 'string' },\n { field: 'order', header: 'Order', type: 'string' },\n { field: 'reason', header: 'Reason', type: 'string' },\n { field: 'kind', header: 'Kind', type: 'string' },\n { field: 'date', header: 'Date', type: 'date' },\n { field: 'dueDate', header: 'Due', type: 'date' },\n { field: 'provider', header: 'Provider', type: 'string' },\n { field: 'requisitionId', header: 'Requisition', type: 'string' },\n { field: 'encounterId', header: 'Encounter', type: 'string' },\n { field: 'blockedBy', header: 'Blocked by', type: 'string' },\n];\n\n/** Fields offered in the grid's Group/Filter control panel. */\nexport const ORDER_CONTROL_FIELDS = ORDER_COLUMNS.filter(\n (c) => c.field !== 'blockedBy'\n).map((c) => ({ field: c.field, displayName: c.header, type: c.type }));\n\n// =============================================================================\n// useOrderRowsUrl\n// =============================================================================\n\n/** Serialize rows into an object-URL `{ typeInfo, data }` source. */\nexport function useOrderRowsUrl(rows: OrderRow[]): string {\n const url = React.useMemo(() => {\n const payload = {\n typeInfo: ORDER_COLUMNS.map(({ field, type }) => ({ field, type })),\n data: rows,\n };\n const blob = new Blob([JSON.stringify(payload)], {\n type: 'application/json',\n });\n return URL.createObjectURL(blob);\n }, [rows]);\n\n React.useEffect(() => () => URL.revokeObjectURL(url), [url]);\n return url;\n}\n\n// =============================================================================\n// Status badge\n// =============================================================================\n\nconst STATUS_VARIANT: Record<\n OrderRowStatus,\n { label: string; variant: 'success' | 'secondary' | 'warning' | 'default' }\n> = {\n completed: { label: 'Completed', variant: 'success' },\n pending: { label: 'Pending', variant: 'secondary' },\n available: { label: 'Available', variant: 'warning' },\n blocked: { label: 'Blocked', variant: 'default' },\n};\n\nexport function OrderStatusBadge({ status }: { status: OrderRowStatus }) {\n const meta = STATUS_VARIANT[status];\n if (!meta) return <>{status}</>;\n return <Badge variant={meta.variant}>{meta.label}</Badge>;\n}\n\n/** `formatCell` for DataVisNitroGrid — renders the status column as a badge. */\nexport function formatOrderCell(\n value: unknown,\n _row: unknown,\n column: { field: string }\n): React.ReactNode {\n if (column.field === 'status' && typeof value === 'string') {\n return <OrderStatusBadge status={value as OrderRowStatus} />;\n }\n return value as React.ReactNode;\n}\n\n// =============================================================================\n// Group presets\n// =============================================================================\n\nexport interface GroupPreset {\n key: string;\n label: string;\n /** Field to group by; undefined = clear grouping */\n field?: keyof OrderRow;\n}\n\nexport const DEFAULT_GROUP_PRESETS: GroupPreset[] = [\n { key: 'none', label: 'Flat' },\n { key: 'reason', label: 'By reason', field: 'reason' },\n { key: 'provider', label: 'By provider', field: 'provider' },\n { key: 'requisition', label: 'By requisition', field: 'requisitionId' },\n { key: 'status', label: 'By status', field: 'status' },\n { key: 'date', label: 'By date', field: 'date' },\n];\n\n/**\n * One-click group-by chips. Must render inside `DataVisNitroSource` — drives\n * the shared view via `setGroup({ fieldNames: [{ field }] })`.\n */\nexport function OrdersGroupPresets({\n presets = DEFAULT_GROUP_PRESETS,\n className,\n}: {\n presets?: GroupPreset[];\n className?: string;\n}) {\n const view = React.useContext(DataVisNitroContext);\n const [active, setActive] = React.useState('none');\n\n const apply = (preset: GroupPreset) => {\n if (!view) return;\n setActive(preset.key);\n if (preset.field) {\n view.setGroup({ fieldNames: [{ field: preset.field }] });\n } else {\n view.clearGroup();\n }\n };\n\n return (\n <div\n data-slot=\"orders-group-presets\"\n role=\"group\"\n aria-label=\"Group orders by\"\n className={cn('flex flex-wrap items-center gap-1.5', className)}\n >\n <span className=\"text-muted-foreground text-xs font-medium\">Group:</span>\n {presets.map((p) => (\n <Button\n key={p.key}\n type=\"button\"\n size=\"sm\"\n variant={active === p.key ? 'primary' : 'outline'}\n aria-pressed={active === p.key}\n onClick={() => apply(p)}\n >\n {p.label}\n </Button>\n ))}\n </div>\n );\n}\n","'use client';\n\n/**\n * NITRO-backed orders grids.\n *\n * - {@link ChartOrdersGrid} — chart-wide: every pending and past **encounter\n * order** across all encounters, plus the actionable due-list orders. Group\n * and filter by reason (program), provider, requisition, status, kind, and\n * date — via the one-click presets or the grid's own control panel.\n * - {@link EncounterOrdersGrid} — the current encounter's orders (its pending\n * unprocessed items are the mass-operation targets) plus the due-list\n * orders available to place this visit.\n *\n * Encounter orders get bundled into **requisitions** — documents routing a\n * batch of orders to a provider/referral. The grids only emit callbacks\n * (`onOrderRows`, `onRequisition`, `onCancel`); document generation is the\n * host application's job.\n *\n * Rendering is `@mieweb/ui/datavis` (`DataVisNitroSource` + `DataVisNitroGrid`)\n * fed through an object-URL source — see ordersGridShared.tsx.\n */\n\nimport * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport { DataVisNitroGrid, DataVisNitroSource } from '../DataVisNITRO';\nimport {\n buildChartOrderRows,\n buildEncounterOrderRows,\n type OrderRow,\n type OrderRowsOptions,\n} from './orderRows';\nimport {\n ORDER_COLUMNS,\n ORDER_CONTROL_FIELDS,\n formatOrderCell,\n useOrderRowsUrl,\n OrdersGroupPresets,\n} from './ordersGridShared';\nimport type { PatientHistory } from './history';\nimport type { ProgramsMap } from './evaluate';\n\n// =============================================================================\n// Shared props + inner grid\n// =============================================================================\n\ninterface OrdersGridBaseProps {\n history: PatientHistory;\n /** Program metadata — programs.json contents (`programs` field) */\n programs: ProgramsMap;\n /** Occupational enrollments; quality measures apply to everyone in-gate */\n enrolledKeys?: string[];\n /** Display labels for program keys (falls back to the key) */\n programLabels?: Record<string, string>;\n /** Display labels for order keys (falls back to history labels, then key) */\n orderLabels?: Record<string, string>;\n /** Evaluation clock (defaults to today; inject for deterministic stories) */\n now?: Date;\n /** Place the selected available orders */\n onOrderRows?: (rows: OrderRow[]) => void;\n /** Bundle selected pending unprocessed orders into a requisition */\n onRequisition?: (rows: OrderRow[]) => void;\n /** Cancel selected pending unprocessed orders */\n onCancel?: (rows: OrderRow[]) => void;\n /** Grid height (CSS value) */\n height?: string;\n /** Grid title */\n title?: string;\n className?: string;\n 'data-testid'?: string;\n}\n\nfunction OrdersGridInner({\n rows,\n title,\n height = '480px',\n onOrderRows,\n onRequisition,\n onCancel,\n className,\n 'data-testid': dataTestId,\n}: {\n rows: OrderRow[];\n title: string;\n height?: string;\n onOrderRows?: (rows: OrderRow[]) => void;\n onRequisition?: (rows: OrderRow[]) => void;\n onCancel?: (rows: OrderRow[]) => void;\n className?: string;\n 'data-testid'?: string;\n}) {\n const url = useOrderRowsUrl(rows);\n\n // Mass operations over the native checkbox selection. The palette hands\n // each callback the selected rows' data (OrderRow-shaped after the\n // object-URL round trip); each operation applies only to eligible rows:\n // 'available' can be ordered, pending unprocessed (no requisition yet)\n // can be bundled into a requisition or cancelled.\n const operations = React.useMemo(() => {\n const asOrderRows = (sel: unknown[]) => sel as OrderRow[];\n const ops: {\n label: string;\n callback: (ctx: { rows: unknown[] }) => void;\n }[] = [];\n if (onOrderRows) {\n ops.push({\n label: 'Order',\n callback: ({ rows: sel }) => {\n const eligible = asOrderRows(sel).filter(\n (r) => r.status === 'available'\n );\n if (eligible.length > 0) onOrderRows(eligible);\n },\n });\n }\n if (onRequisition) {\n ops.push({\n label: 'Create requisition',\n callback: ({ rows: sel }) => {\n const eligible = asOrderRows(sel).filter(\n (r) => r.status === 'pending' && !r.requisitionId\n );\n if (eligible.length > 0) onRequisition(eligible);\n },\n });\n }\n if (onCancel) {\n ops.push({\n label: 'Cancel',\n callback: ({ rows: sel }) => {\n const eligible = asOrderRows(sel).filter(\n (r) => r.status === 'pending' && !r.requisitionId\n );\n if (eligible.length > 0) onCancel(eligible);\n },\n });\n }\n return ops;\n }, [onOrderRows, onRequisition, onCancel]);\n\n const columns = React.useMemo(\n () =>\n ORDER_COLUMNS.map(({ field, header }) => ({\n field: field as string,\n header,\n })),\n []\n );\n\n return (\n <div\n data-slot=\"orders-grid\"\n data-testid={dataTestId}\n className={cn('flex flex-col gap-2', className)}\n >\n <DataVisNitroSource type=\"http\" url={url}>\n <OrdersGroupPresets />\n <DataVisNitroGrid\n title={title}\n height={height}\n columns={columns}\n controlFields={ORDER_CONTROL_FIELDS}\n operations={operations}\n // 'checkbox' selection ships in @mieweb/datavis > 1.1.0 (native\n // leading checkbox column + tri-state select-all header); the\n // published typings still say `boolean`, hence the cast.\n features={\n {\n rowSelection: 'checkbox',\n stickyHeaders: true,\n } as unknown as React.ComponentProps<\n typeof DataVisNitroGrid\n >['features']\n }\n formatCell={formatOrderCell}\n />\n </DataVisNitroSource>\n </div>\n );\n}\n\n// =============================================================================\n// ChartOrdersGrid\n// =============================================================================\n\nexport interface ChartOrdersGridProps extends OrdersGridBaseProps {\n /** Include not-yet-placed due-list orders as available/blocked rows */\n includeDue?: boolean;\n}\n\n/** Chart-wide order history across all encounters. */\nexport function ChartOrdersGrid({\n history,\n programs,\n enrolledKeys,\n programLabels,\n orderLabels,\n now,\n includeDue,\n title = 'Orders — chart',\n ...rest\n}: ChartOrdersGridProps) {\n const rows = React.useMemo(() => {\n const opts: OrderRowsOptions = {\n enrolledKeys,\n now,\n programLabels,\n orderLabels,\n includeDue,\n };\n return buildChartOrderRows(history, programs, opts);\n }, [\n history,\n programs,\n enrolledKeys,\n now,\n programLabels,\n orderLabels,\n includeDue,\n ]);\n\n return <OrdersGridInner rows={rows} title={title} {...rest} />;\n}\n\nChartOrdersGrid.displayName = 'ChartOrdersGrid';\n\n// =============================================================================\n// EncounterOrdersGrid\n// =============================================================================\n\nexport interface EncounterOrdersGridProps extends OrdersGridBaseProps {\n /** The current encounter (visit) ID */\n encounterId: string;\n}\n\n/** The current encounter's orders + due-list orders placeable this visit. */\nexport function EncounterOrdersGrid({\n history,\n programs,\n encounterId,\n enrolledKeys,\n programLabels,\n orderLabels,\n now,\n title = 'Encounter orders',\n ...rest\n}: EncounterOrdersGridProps) {\n const rows = React.useMemo(() => {\n const opts: OrderRowsOptions = {\n enrolledKeys,\n now,\n programLabels,\n orderLabels,\n };\n return buildEncounterOrderRows(history, programs, encounterId, opts);\n }, [\n history,\n programs,\n encounterId,\n enrolledKeys,\n now,\n programLabels,\n orderLabels,\n ]);\n\n return <OrdersGridInner rows={rows} title={title} {...rest} />;\n}\n\nEncounterOrdersGrid.displayName = 'EncounterOrdersGrid';\n"]}
1
+ {"version":3,"sources":["../src/components/HealthSurveillance/ordersGridShared.tsx","../src/components/HealthSurveillance/OrdersGrid.tsx"],"names":["React","jsx","Fragment","Badge","ul","jsxs","cn","Button","React2","ml","gl","buildChartOrderRows","buildEncounterOrderRows"],"mappings":"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","file":"datavis.cjs","sourcesContent":["'use client';\n\n/**\n * Shared internals for the NITRO-backed orders grids\n * (ChartOrdersGrid / EncounterOrdersGrid).\n *\n * - {@link useOrderRowsUrl} — feeds in-memory {@link OrderRow}s to\n * `DataVisNitroSource` through a short-lived object-URL carrying the\n * `{ typeInfo, data }` payload the engine expects (its `local` source type\n * is not implemented yet; same pattern as SuperChat's NITRO table plugin).\n * - {@link OrderStatusBadge} / {@link formatOrderCell} — status chips in grid\n * cells.\n * - {@link OrdersGroupPresets} — one-click \"group by\" chips driving\n * `view.setGroup()` through {@link DataVisNitroContext}.\n *\n * Row selection and mass operations are native NITRO features:\n * `features.rowSelection: 'checkbox'` + the `operations` palette.\n */\n\nimport * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport { Badge } from '../Badge/Badge';\nimport { Button } from '../Button';\nimport { DataVisNitroContext } from '../DataVisNITRO';\nimport type { OrderRow, OrderRowStatus } from './orderRows';\n\n// =============================================================================\n// Column + typeInfo metadata\n// =============================================================================\n\n/** Grid columns, in display order, with control-panel display names. */\nexport const ORDER_COLUMNS: {\n field: keyof OrderRow;\n header: string;\n type: 'string' | 'date';\n}[] = [\n { field: 'status', header: 'Status', type: 'string' },\n { field: 'order', header: 'Order', type: 'string' },\n { field: 'reason', header: 'Reason', type: 'string' },\n { field: 'kind', header: 'Kind', type: 'string' },\n { field: 'date', header: 'Date', type: 'date' },\n { field: 'dueDate', header: 'Due', type: 'date' },\n { field: 'provider', header: 'Provider', type: 'string' },\n { field: 'requisitionId', header: 'Requisition', type: 'string' },\n { field: 'encounterId', header: 'Encounter', type: 'string' },\n { field: 'blockedBy', header: 'Blocked by', type: 'string' },\n];\n\n/** Fields offered in the grid's Group/Filter control panel. */\nexport const ORDER_CONTROL_FIELDS = ORDER_COLUMNS.filter(\n (c) => c.field !== 'blockedBy'\n).map((c) => ({ field: c.field, displayName: c.header, type: c.type }));\n\n// =============================================================================\n// useOrderRowsUrl\n// =============================================================================\n\n/** Serialize rows into an object-URL `{ typeInfo, data }` source. */\nexport function useOrderRowsUrl(rows: OrderRow[]): string {\n const url = React.useMemo(() => {\n const payload = {\n typeInfo: ORDER_COLUMNS.map(({ field, type }) => ({ field, type })),\n data: rows,\n };\n const blob = new Blob([JSON.stringify(payload)], {\n type: 'application/json',\n });\n return URL.createObjectURL(blob);\n }, [rows]);\n\n React.useEffect(() => () => URL.revokeObjectURL(url), [url]);\n return url;\n}\n\n// =============================================================================\n// Status badge\n// =============================================================================\n\nconst STATUS_VARIANT: Record<\n OrderRowStatus,\n { label: string; variant: 'success' | 'secondary' | 'warning' | 'default' }\n> = {\n completed: { label: 'Completed', variant: 'success' },\n pending: { label: 'Pending', variant: 'secondary' },\n available: { label: 'Available', variant: 'warning' },\n blocked: { label: 'Blocked', variant: 'default' },\n};\n\nexport function OrderStatusBadge({ status }: { status: OrderRowStatus }) {\n const meta = STATUS_VARIANT[status];\n if (!meta) return <>{status}</>;\n return <Badge variant={meta.variant}>{meta.label}</Badge>;\n}\n\n/** `formatCell` for DataVisNitroGrid — renders the status column as a badge. */\nexport function formatOrderCell(\n value: unknown,\n _row: unknown,\n column: { field: string }\n): React.ReactNode {\n if (column.field === 'status' && typeof value === 'string') {\n return <OrderStatusBadge status={value as OrderRowStatus} />;\n }\n return value as React.ReactNode;\n}\n\n// =============================================================================\n// Group presets\n// =============================================================================\n\nexport interface GroupPreset {\n key: string;\n label: string;\n /** Field to group by; undefined = clear grouping */\n field?: keyof OrderRow;\n}\n\nexport const DEFAULT_GROUP_PRESETS: GroupPreset[] = [\n { key: 'none', label: 'Flat' },\n { key: 'reason', label: 'By reason', field: 'reason' },\n { key: 'provider', label: 'By provider', field: 'provider' },\n { key: 'requisition', label: 'By requisition', field: 'requisitionId' },\n { key: 'status', label: 'By status', field: 'status' },\n { key: 'date', label: 'By date', field: 'date' },\n];\n\n/**\n * One-click group-by chips. Must render inside `DataVisNitroSource` — drives\n * the shared view via `setGroup({ fieldNames: [{ field }] })`.\n */\nexport function OrdersGroupPresets({\n presets = DEFAULT_GROUP_PRESETS,\n className,\n}: {\n presets?: GroupPreset[];\n className?: string;\n}) {\n const view = React.useContext(DataVisNitroContext);\n const [active, setActive] = React.useState('none');\n\n const apply = (preset: GroupPreset) => {\n if (!view) return;\n setActive(preset.key);\n if (preset.field) {\n view.setGroup({ fieldNames: [{ field: preset.field }] });\n } else {\n view.clearGroup();\n }\n };\n\n return (\n <div\n data-slot=\"orders-group-presets\"\n role=\"group\"\n aria-label=\"Group orders by\"\n className={cn('flex flex-wrap items-center gap-1.5', className)}\n >\n <span className=\"text-muted-foreground text-xs font-medium\">Group:</span>\n {presets.map((p) => (\n <Button\n key={p.key}\n type=\"button\"\n size=\"sm\"\n variant={active === p.key ? 'primary' : 'outline'}\n aria-pressed={active === p.key}\n onClick={() => apply(p)}\n >\n {p.label}\n </Button>\n ))}\n </div>\n );\n}\n","'use client';\n\n/**\n * NITRO-backed orders grids.\n *\n * - {@link ChartOrdersGrid} — chart-wide: every pending and past **encounter\n * order** across all encounters, plus the actionable due-list orders. Group\n * and filter by reason (program), provider, requisition, status, kind, and\n * date — via the one-click presets or the grid's own control panel.\n * - {@link EncounterOrdersGrid} — the current encounter's orders (its pending\n * unprocessed items are the mass-operation targets) plus the due-list\n * orders available to place this visit.\n *\n * Encounter orders get bundled into **requisitions** — documents routing a\n * batch of orders to a provider/referral. The grids only emit callbacks\n * (`onOrderRows`, `onRequisition`, `onCancel`); document generation is the\n * host application's job.\n *\n * Rendering is `@mieweb/ui/datavis` (`DataVisNitroSource` + `DataVisNitroGrid`)\n * fed through an object-URL source — see ordersGridShared.tsx.\n */\n\nimport * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport { DataVisNitroGrid, DataVisNitroSource } from '../DataVisNITRO';\nimport {\n buildChartOrderRows,\n buildEncounterOrderRows,\n type OrderRow,\n type OrderRowsOptions,\n} from './orderRows';\nimport {\n ORDER_COLUMNS,\n ORDER_CONTROL_FIELDS,\n formatOrderCell,\n useOrderRowsUrl,\n OrdersGroupPresets,\n} from './ordersGridShared';\nimport type { PatientHistory } from './history';\nimport type { ProgramsMap } from './evaluate';\n\n// =============================================================================\n// Shared props + inner grid\n// =============================================================================\n\ninterface OrdersGridBaseProps {\n history: PatientHistory;\n /** Program metadata — programs.json contents (`programs` field) */\n programs: ProgramsMap;\n /** Occupational enrollments; quality measures apply to everyone in-gate */\n enrolledKeys?: string[];\n /** Display labels for program keys (falls back to the key) */\n programLabels?: Record<string, string>;\n /** Display labels for order keys (falls back to history labels, then key) */\n orderLabels?: Record<string, string>;\n /** Evaluation clock (defaults to today; inject for deterministic stories) */\n now?: Date;\n /** Place the selected available orders */\n onOrderRows?: (rows: OrderRow[]) => void;\n /** Bundle selected pending unprocessed orders into a requisition */\n onRequisition?: (rows: OrderRow[]) => void;\n /** Cancel selected pending unprocessed orders */\n onCancel?: (rows: OrderRow[]) => void;\n /** Grid height (CSS value) */\n height?: string;\n /** Grid title */\n title?: string;\n className?: string;\n 'data-testid'?: string;\n}\n\nfunction OrdersGridInner({\n rows,\n title,\n height = '480px',\n onOrderRows,\n onRequisition,\n onCancel,\n className,\n 'data-testid': dataTestId,\n}: {\n rows: OrderRow[];\n title: string;\n height?: string;\n onOrderRows?: (rows: OrderRow[]) => void;\n onRequisition?: (rows: OrderRow[]) => void;\n onCancel?: (rows: OrderRow[]) => void;\n className?: string;\n 'data-testid'?: string;\n}) {\n const url = useOrderRowsUrl(rows);\n\n // Mass operations over the native checkbox selection. The palette hands\n // each callback the selected rows' data (OrderRow-shaped after the\n // object-URL round trip); each operation applies only to eligible rows:\n // 'available' can be ordered, pending unprocessed (no requisition yet)\n // can be bundled into a requisition or cancelled.\n const operations = React.useMemo(() => {\n const asOrderRows = (sel: unknown[]) => sel as OrderRow[];\n const ops: {\n label: string;\n callback: (ctx: { rows: unknown[] }) => void;\n }[] = [];\n if (onOrderRows) {\n ops.push({\n label: 'Order',\n callback: ({ rows: sel }) => {\n const eligible = asOrderRows(sel).filter(\n (r) => r.status === 'available'\n );\n if (eligible.length > 0) onOrderRows(eligible);\n },\n });\n }\n if (onRequisition) {\n ops.push({\n label: 'Create requisition',\n callback: ({ rows: sel }) => {\n const eligible = asOrderRows(sel).filter(\n (r) => r.status === 'pending' && !r.requisitionId\n );\n if (eligible.length > 0) onRequisition(eligible);\n },\n });\n }\n if (onCancel) {\n ops.push({\n label: 'Cancel',\n callback: ({ rows: sel }) => {\n const eligible = asOrderRows(sel).filter(\n (r) => r.status === 'pending' && !r.requisitionId\n );\n if (eligible.length > 0) onCancel(eligible);\n },\n });\n }\n return ops;\n }, [onOrderRows, onRequisition, onCancel]);\n\n const columns = React.useMemo(\n () =>\n ORDER_COLUMNS.map(({ field, header }) => ({\n field: field as string,\n header,\n })),\n []\n );\n\n return (\n <div\n data-slot=\"orders-grid\"\n data-testid={dataTestId}\n className={cn('flex flex-col gap-2', className)}\n >\n <DataVisNitroSource type=\"http\" url={url}>\n <OrdersGroupPresets />\n <DataVisNitroGrid\n title={title}\n height={height}\n columns={columns}\n controlFields={ORDER_CONTROL_FIELDS}\n operations={operations}\n // 'checkbox' selection ships in @mieweb/datavis > 1.1.0 (native\n // leading checkbox column + tri-state select-all header); the\n // published typings still say `boolean`, hence the cast.\n features={\n {\n rowSelection: 'checkbox',\n stickyHeaders: true,\n } as unknown as React.ComponentProps<\n typeof DataVisNitroGrid\n >['features']\n }\n formatCell={formatOrderCell}\n />\n </DataVisNitroSource>\n </div>\n );\n}\n\n// =============================================================================\n// ChartOrdersGrid\n// =============================================================================\n\nexport interface ChartOrdersGridProps extends OrdersGridBaseProps {\n /** Include not-yet-placed due-list orders as available/blocked rows */\n includeDue?: boolean;\n}\n\n/** Chart-wide order history across all encounters. */\nexport function ChartOrdersGrid({\n history,\n programs,\n enrolledKeys,\n programLabels,\n orderLabels,\n now,\n includeDue,\n title = 'Orders — chart',\n ...rest\n}: ChartOrdersGridProps) {\n const rows = React.useMemo(() => {\n const opts: OrderRowsOptions = {\n enrolledKeys,\n now,\n programLabels,\n orderLabels,\n includeDue,\n };\n return buildChartOrderRows(history, programs, opts);\n }, [\n history,\n programs,\n enrolledKeys,\n now,\n programLabels,\n orderLabels,\n includeDue,\n ]);\n\n return <OrdersGridInner rows={rows} title={title} {...rest} />;\n}\n\nChartOrdersGrid.displayName = 'ChartOrdersGrid';\n\n// =============================================================================\n// EncounterOrdersGrid\n// =============================================================================\n\nexport interface EncounterOrdersGridProps extends OrdersGridBaseProps {\n /** The current encounter (visit) ID */\n encounterId: string;\n}\n\n/** The current encounter's orders + due-list orders placeable this visit. */\nexport function EncounterOrdersGrid({\n history,\n programs,\n encounterId,\n enrolledKeys,\n programLabels,\n orderLabels,\n now,\n title = 'Encounter orders',\n ...rest\n}: EncounterOrdersGridProps) {\n const rows = React.useMemo(() => {\n const opts: OrderRowsOptions = {\n enrolledKeys,\n now,\n programLabels,\n orderLabels,\n };\n return buildEncounterOrderRows(history, programs, encounterId, opts);\n }, [\n history,\n programs,\n encounterId,\n enrolledKeys,\n now,\n programLabels,\n orderLabels,\n ]);\n\n return <OrdersGridInner rows={rows} title={title} {...rest} />;\n}\n\nEncounterOrdersGrid.displayName = 'EncounterOrdersGrid';\n"]}