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

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 (336) hide show
  1. package/dist/CsvBlock-ROJCKJDP.cjs +16 -0
  2. package/dist/{CsvBlock-CVYA3HYS.cjs.map → CsvBlock-ROJCKJDP.cjs.map} +1 -1
  3. package/dist/CsvBlock-UWPMTLE2.js +7 -0
  4. package/dist/{CsvBlock-SM4NKSHA.js.map → CsvBlock-UWPMTLE2.js.map} +1 -1
  5. package/dist/HtmlPreviewBlock-DWFN6EUB.cjs +16 -0
  6. package/dist/{HtmlPreviewBlock-JF454L2L.cjs.map → HtmlPreviewBlock-DWFN6EUB.cjs.map} +1 -1
  7. package/dist/HtmlPreviewBlock-ME5U3XNS.js +7 -0
  8. package/dist/{HtmlPreviewBlock-FAMF4W24.js.map → HtmlPreviewBlock-ME5U3XNS.js.map} +1 -1
  9. package/dist/MermaidBlock-2B6CPD6Y.js +7 -0
  10. package/dist/{MermaidBlock-7V5G4K5A.js.map → MermaidBlock-2B6CPD6Y.js.map} +1 -1
  11. package/dist/MermaidBlock-D2UC5M55.cjs +16 -0
  12. package/dist/{MermaidBlock-FR5SQX4Q.cjs.map → MermaidBlock-D2UC5M55.cjs.map} +1 -1
  13. package/dist/SurveyBlock-4CD4AYMJ.cjs +16 -0
  14. package/dist/{SurveyBlock-MCJVWR7H.cjs.map → SurveyBlock-4CD4AYMJ.cjs.map} +1 -1
  15. package/dist/SurveyBlock-4DO62RBT.js +7 -0
  16. package/dist/{SurveyBlock-6K2POV7S.js.map → SurveyBlock-4DO62RBT.js.map} +1 -1
  17. package/dist/brands/index.cjs +13 -13
  18. package/dist/brands/index.js +4 -4
  19. package/dist/brands/types.cjs +4 -4
  20. package/dist/brands/types.d.cts +9 -0
  21. package/dist/brands/types.d.ts +9 -0
  22. package/dist/brands/types.js +1 -1
  23. package/dist/{chunk-XTHMC76F.cjs → chunk-2G75X6TS.cjs} +4 -4
  24. package/dist/{chunk-XTHMC76F.cjs.map → chunk-2G75X6TS.cjs.map} +1 -1
  25. package/dist/chunk-2IZLKPUW.js +412 -0
  26. package/dist/chunk-2IZLKPUW.js.map +1 -0
  27. package/dist/{chunk-AZP3DDBT.cjs → chunk-2QKBTPUC.cjs} +8 -8
  28. package/dist/{chunk-AZP3DDBT.cjs.map → chunk-2QKBTPUC.cjs.map} +1 -1
  29. package/dist/{chunk-7KWNY3HG.js → chunk-2YCERQWC.js} +8 -8
  30. package/dist/{chunk-7KWNY3HG.js.map → chunk-2YCERQWC.js.map} +1 -1
  31. package/dist/{chunk-VSVGMMNO.js → chunk-3M7TAXNR.js} +3 -3
  32. package/dist/{chunk-VSVGMMNO.js.map → chunk-3M7TAXNR.js.map} +1 -1
  33. package/dist/{chunk-5Z6UPVGC.cjs → chunk-3QEVGSFG.cjs} +5 -5
  34. package/dist/{chunk-5Z6UPVGC.cjs.map → chunk-3QEVGSFG.cjs.map} +1 -1
  35. package/dist/{chunk-PYHFVYVZ.js → chunk-3QGS6CXD.js} +3 -3
  36. package/dist/{chunk-PYHFVYVZ.js.map → chunk-3QGS6CXD.js.map} +1 -1
  37. package/dist/chunk-462XSCP3.cjs +199 -0
  38. package/dist/chunk-462XSCP3.cjs.map +1 -0
  39. package/dist/{chunk-WOYUQ4AT.js → chunk-5GOWFNQ6.js} +9 -3
  40. package/dist/chunk-5GOWFNQ6.js.map +1 -0
  41. package/dist/chunk-5GUOOLPR.cjs +436 -0
  42. package/dist/chunk-5GUOOLPR.cjs.map +1 -0
  43. package/dist/{chunk-WUBMDOTG.js → chunk-5JJ2DAE4.js} +4 -4
  44. package/dist/{chunk-WUBMDOTG.js.map → chunk-5JJ2DAE4.js.map} +1 -1
  45. package/dist/{chunk-RSCA5AZW.cjs → chunk-5MCBWTIF.cjs} +4 -4
  46. package/dist/{chunk-RSCA5AZW.cjs.map → chunk-5MCBWTIF.cjs.map} +1 -1
  47. package/dist/chunk-6EN3IQQI.cjs +332 -0
  48. package/dist/chunk-6EN3IQQI.cjs.map +1 -0
  49. package/dist/chunk-74ENCTIK.js +162 -0
  50. package/dist/chunk-74ENCTIK.js.map +1 -0
  51. package/dist/{chunk-OAZUDUGX.js → chunk-7IBZA7G6.js} +4 -4
  52. package/dist/{chunk-OAZUDUGX.js.map → chunk-7IBZA7G6.js.map} +1 -1
  53. package/dist/{chunk-AUOTJQGO.cjs → chunk-7ZDPD5ZX.cjs} +4 -4
  54. package/dist/{chunk-AUOTJQGO.cjs.map → chunk-7ZDPD5ZX.cjs.map} +1 -1
  55. package/dist/{chunk-IB54SKWB.cjs → chunk-7ZXAQTV4.cjs} +8 -8
  56. package/dist/{chunk-IB54SKWB.cjs.map → chunk-7ZXAQTV4.cjs.map} +1 -1
  57. package/dist/{chunk-IIFQ6BSJ.js → chunk-ACCAXVOG.js} +6 -6
  58. package/dist/{chunk-IIFQ6BSJ.js.map → chunk-ACCAXVOG.js.map} +1 -1
  59. package/dist/chunk-CR2SDI23.cjs +322 -0
  60. package/dist/chunk-CR2SDI23.cjs.map +1 -0
  61. package/dist/{chunk-OSPTA4UR.js → chunk-DEDN5HAG.js} +3 -3
  62. package/dist/{chunk-OSPTA4UR.js.map → chunk-DEDN5HAG.js.map} +1 -1
  63. package/dist/{chunk-PKD3JLS2.cjs → chunk-E4IBHYJ7.cjs} +9 -9
  64. package/dist/{chunk-PKD3JLS2.cjs.map → chunk-E4IBHYJ7.cjs.map} +1 -1
  65. package/dist/{chunk-E3KC2XLN.cjs → chunk-ELPW32ZI.cjs} +50 -50
  66. package/dist/{chunk-E3KC2XLN.cjs.map → chunk-ELPW32ZI.cjs.map} +1 -1
  67. package/dist/{chunk-QSVQABXD.js → chunk-ENKFJJZX.js} +7 -7
  68. package/dist/{chunk-QSVQABXD.js.map → chunk-ENKFJJZX.js.map} +1 -1
  69. package/dist/{chunk-MUIDWFYJ.js → chunk-FJ7YPVKV.js} +3 -3
  70. package/dist/{chunk-MUIDWFYJ.js.map → chunk-FJ7YPVKV.js.map} +1 -1
  71. package/dist/{chunk-3LHICE4I.cjs → chunk-FXO5ARBB.cjs} +5 -5
  72. package/dist/{chunk-3LHICE4I.cjs.map → chunk-FXO5ARBB.cjs.map} +1 -1
  73. package/dist/{chunk-QKAYRHWP.cjs → chunk-G3JX3UAU.cjs} +12 -12
  74. package/dist/{chunk-QKAYRHWP.cjs.map → chunk-G3JX3UAU.cjs.map} +1 -1
  75. package/dist/{chunk-OMAACCFW.cjs → chunk-GD7EBGC4.cjs} +19 -19
  76. package/dist/{chunk-OMAACCFW.cjs.map → chunk-GD7EBGC4.cjs.map} +1 -1
  77. package/dist/{chunk-KREUYVMZ.js → chunk-GOALNQZ2.js} +13 -4
  78. package/dist/chunk-GOALNQZ2.js.map +1 -0
  79. package/dist/{chunk-CK3KLRNF.js → chunk-H4ZXMQQW.js} +3 -3
  80. package/dist/{chunk-CK3KLRNF.js.map → chunk-H4ZXMQQW.js.map} +1 -1
  81. package/dist/{chunk-AHINB2TP.cjs → chunk-IX6KFB3K.cjs} +9 -9
  82. package/dist/{chunk-AHINB2TP.cjs.map → chunk-IX6KFB3K.cjs.map} +1 -1
  83. package/dist/chunk-IXFC7LK2.cjs +174 -0
  84. package/dist/chunk-IXFC7LK2.cjs.map +1 -0
  85. package/dist/{chunk-VNAREBLV.cjs → chunk-J5CSLNCN.cjs} +3 -3
  86. package/dist/{chunk-VNAREBLV.cjs.map → chunk-J5CSLNCN.cjs.map} +1 -1
  87. package/dist/{chunk-24SEAAOH.js → chunk-JHULS3EC.js} +2 -2
  88. package/dist/{chunk-24SEAAOH.js.map → chunk-JHULS3EC.js.map} +1 -1
  89. package/dist/{chunk-X5YM3KXY.js → chunk-JI244Y7C.js} +177 -3
  90. package/dist/chunk-JI244Y7C.js.map +1 -0
  91. package/dist/{chunk-MM7QKUE3.cjs → chunk-JID7AZTO.cjs} +5 -5
  92. package/dist/{chunk-MM7QKUE3.cjs.map → chunk-JID7AZTO.cjs.map} +1 -1
  93. package/dist/{chunk-ZB54MTMQ.js → chunk-KZFBQ7GY.js} +3 -3
  94. package/dist/{chunk-ZB54MTMQ.js.map → chunk-KZFBQ7GY.js.map} +1 -1
  95. package/dist/{chunk-XBXDUAIM.js → chunk-LL6IWKI3.js} +4 -4
  96. package/dist/{chunk-XBXDUAIM.js.map → chunk-LL6IWKI3.js.map} +1 -1
  97. package/dist/{chunk-ON4JULCA.js → chunk-LMBXJZLG.js} +3 -3
  98. package/dist/{chunk-ON4JULCA.js.map → chunk-LMBXJZLG.js.map} +1 -1
  99. package/dist/chunk-MWVW4APN.cjs +260 -0
  100. package/dist/chunk-MWVW4APN.cjs.map +1 -0
  101. package/dist/{chunk-BZAGP5W6.cjs → chunk-N6IY47YA.cjs} +8 -8
  102. package/dist/{chunk-BZAGP5W6.cjs.map → chunk-N6IY47YA.cjs.map} +1 -1
  103. package/dist/{chunk-OCV33S5Q.cjs → chunk-NFKX6QJP.cjs} +3 -3
  104. package/dist/{chunk-OCV33S5Q.cjs.map → chunk-NFKX6QJP.cjs.map} +1 -1
  105. package/dist/{chunk-J644FU54.cjs → chunk-NGQRS7AW.cjs} +9 -3
  106. package/dist/chunk-NGQRS7AW.cjs.map +1 -0
  107. package/dist/{chunk-QAKASRE6.js → chunk-NJ6MY6V5.js} +4 -4
  108. package/dist/{chunk-QAKASRE6.js.map → chunk-NJ6MY6V5.js.map} +1 -1
  109. package/dist/{chunk-P52GA3GJ.cjs → chunk-NM7O7RY5.cjs} +4 -2
  110. package/dist/chunk-NM7O7RY5.cjs.map +1 -0
  111. package/dist/{chunk-OFUKTVBN.cjs → chunk-OD47TTAW.cjs} +9 -9
  112. package/dist/{chunk-OFUKTVBN.cjs.map → chunk-OD47TTAW.cjs.map} +1 -1
  113. package/dist/{chunk-QKFJDQEK.js → chunk-OE5CKRUC.js} +4 -4
  114. package/dist/{chunk-QKFJDQEK.js.map → chunk-OE5CKRUC.js.map} +1 -1
  115. package/dist/chunk-OGNADPM4.cjs +170 -0
  116. package/dist/chunk-OGNADPM4.cjs.map +1 -0
  117. package/dist/{chunk-MBWF36DJ.js → chunk-P2CA3XGI.js} +3 -3
  118. package/dist/{chunk-MBWF36DJ.js.map → chunk-P2CA3XGI.js.map} +1 -1
  119. package/dist/chunk-POWS35OT.js +152 -0
  120. package/dist/chunk-POWS35OT.js.map +1 -0
  121. package/dist/chunk-PYJDVWXM.js +237 -0
  122. package/dist/chunk-PYJDVWXM.js.map +1 -0
  123. package/dist/{chunk-MTZPVOP6.js → chunk-Q77TE5DZ.js} +4 -2
  124. package/dist/chunk-Q77TE5DZ.js.map +1 -0
  125. package/dist/{chunk-L5W7TJQ5.js → chunk-RJ6NTJHC.js} +4 -4
  126. package/dist/{chunk-L5W7TJQ5.js.map → chunk-RJ6NTJHC.js.map} +1 -1
  127. package/dist/{chunk-C3DUS2VE.cjs → chunk-RS5VA6QU.cjs} +3 -3
  128. package/dist/{chunk-C3DUS2VE.cjs.map → chunk-RS5VA6QU.cjs.map} +1 -1
  129. package/dist/{chunk-IGNWT6RP.js → chunk-S7WCHDBO.js} +4 -4
  130. package/dist/{chunk-IGNWT6RP.js.map → chunk-S7WCHDBO.js.map} +1 -1
  131. package/dist/{chunk-RXPEZXAB.cjs → chunk-SGFYA22I.cjs} +5 -5
  132. package/dist/{chunk-RXPEZXAB.cjs.map → chunk-SGFYA22I.cjs.map} +1 -1
  133. package/dist/chunk-SQJFBZ42.js +297 -0
  134. package/dist/chunk-SQJFBZ42.js.map +1 -0
  135. package/dist/chunk-SUS3WFY3.js +156 -0
  136. package/dist/chunk-SUS3WFY3.js.map +1 -0
  137. package/dist/{chunk-H4AVMUOC.cjs → chunk-TAXD5ADA.cjs} +4 -4
  138. package/dist/{chunk-H4AVMUOC.cjs.map → chunk-TAXD5ADA.cjs.map} +1 -1
  139. package/dist/{chunk-NHN6A3ZO.js → chunk-TMMVIUUN.js} +4 -4
  140. package/dist/{chunk-NHN6A3ZO.js.map → chunk-TMMVIUUN.js.map} +1 -1
  141. package/dist/chunk-TPWKM7JH.js +196 -0
  142. package/dist/chunk-TPWKM7JH.js.map +1 -0
  143. package/dist/chunk-TU63764L.cjs +158 -0
  144. package/dist/chunk-TU63764L.cjs.map +1 -0
  145. package/dist/{chunk-PY7XAG4D.cjs → chunk-U42F3HLE.cjs} +177 -3
  146. package/dist/chunk-U42F3HLE.cjs.map +1 -0
  147. package/dist/{chunk-X5QRRMGB.cjs → chunk-UAMXCMST.cjs} +4 -4
  148. package/dist/{chunk-X5QRRMGB.cjs.map → chunk-UAMXCMST.cjs.map} +1 -1
  149. package/dist/{chunk-QAQOCS2J.js → chunk-UBOVDAD7.js} +3 -3
  150. package/dist/{chunk-QAQOCS2J.js.map → chunk-UBOVDAD7.js.map} +1 -1
  151. package/dist/{chunk-IGSIWNX3.cjs → chunk-UQ3VVR6A.cjs} +4 -4
  152. package/dist/{chunk-IGSIWNX3.cjs.map → chunk-UQ3VVR6A.cjs.map} +1 -1
  153. package/dist/{chunk-6QKMMKRY.cjs → chunk-UV2FVNWT.cjs} +5 -5
  154. package/dist/{chunk-6QKMMKRY.cjs.map → chunk-UV2FVNWT.cjs.map} +1 -1
  155. package/dist/{chunk-EG7XFZ3W.js → chunk-V7D3YGUV.js} +4 -4
  156. package/dist/{chunk-EG7XFZ3W.js.map → chunk-V7D3YGUV.js.map} +1 -1
  157. package/dist/{chunk-Y6DFMDMH.js → chunk-VILW53UZ.js} +3 -3
  158. package/dist/{chunk-Y6DFMDMH.js.map → chunk-VILW53UZ.js.map} +1 -1
  159. package/dist/{chunk-5WOB4UBD.js → chunk-VKELAMAZ.js} +3 -3
  160. package/dist/{chunk-5WOB4UBD.js.map → chunk-VKELAMAZ.js.map} +1 -1
  161. package/dist/{chunk-IINZWUGK.cjs → chunk-VNYW4C4J.cjs} +13 -4
  162. package/dist/chunk-VNYW4C4J.cjs.map +1 -0
  163. package/dist/{chunk-RD3JDFYJ.js → chunk-VOKVG3ER.js} +4 -4
  164. package/dist/{chunk-RD3JDFYJ.js.map → chunk-VOKVG3ER.js.map} +1 -1
  165. package/dist/{chunk-37UZHCLM.cjs → chunk-VPWJCJCX.cjs} +3 -3
  166. package/dist/{chunk-37UZHCLM.cjs.map → chunk-VPWJCJCX.cjs.map} +1 -1
  167. package/dist/{chunk-3RB35GYK.js → chunk-VU6UTJRM.js} +4 -4
  168. package/dist/{chunk-3RB35GYK.js.map → chunk-VU6UTJRM.js.map} +1 -1
  169. package/dist/{chunk-6SAYPXHX.js → chunk-WGPLUCBD.js} +4 -4
  170. package/dist/{chunk-6SAYPXHX.js.map → chunk-WGPLUCBD.js.map} +1 -1
  171. package/dist/{chunk-QO6PRHDX.cjs → chunk-WNAA6CLE.cjs} +2 -2
  172. package/dist/{chunk-QO6PRHDX.cjs.map → chunk-WNAA6CLE.cjs.map} +1 -1
  173. package/dist/{chunk-ZX2XRFE5.js → chunk-WNM7IZJ7.js} +7 -7
  174. package/dist/{chunk-ZX2XRFE5.js.map → chunk-WNM7IZJ7.js.map} +1 -1
  175. package/dist/{chunk-KLJGJJHN.cjs → chunk-WNZAYBVB.cjs} +49 -49
  176. package/dist/{chunk-KLJGJJHN.cjs.map → chunk-WNZAYBVB.cjs.map} +1 -1
  177. package/dist/{chunk-BVMABVC4.cjs → chunk-WWJIW2IH.cjs} +3 -3
  178. package/dist/{chunk-BVMABVC4.cjs.map → chunk-WWJIW2IH.cjs.map} +1 -1
  179. package/dist/{chunk-OYQ7GYAA.cjs → chunk-X4XPNTCZ.cjs} +12 -12
  180. package/dist/{chunk-OYQ7GYAA.cjs.map → chunk-X4XPNTCZ.cjs.map} +1 -1
  181. package/dist/{chunk-IFDC4TXM.cjs → chunk-XEAT7XJG.cjs} +4 -4
  182. package/dist/{chunk-IFDC4TXM.cjs.map → chunk-XEAT7XJG.cjs.map} +1 -1
  183. package/dist/{chunk-S3BCHPXT.cjs → chunk-XI34EGK5.cjs} +9 -9
  184. package/dist/{chunk-S3BCHPXT.cjs.map → chunk-XI34EGK5.cjs.map} +1 -1
  185. package/dist/chunk-Y5HFM7LO.js +310 -0
  186. package/dist/chunk-Y5HFM7LO.js.map +1 -0
  187. package/dist/{chunk-LECJMLNE.js → chunk-YQDA366U.js} +3 -3
  188. package/dist/{chunk-LECJMLNE.js.map → chunk-YQDA366U.js.map} +1 -1
  189. package/dist/{chunk-PHK4XBO5.js → chunk-Z5V7SAZ4.js} +4 -4
  190. package/dist/{chunk-PHK4XBO5.js.map → chunk-Z5V7SAZ4.js.map} +1 -1
  191. package/dist/{chunk-TZX76ZNZ.js → chunk-ZGRCSNPK.js} +5 -5
  192. package/dist/{chunk-TZX76ZNZ.js.map → chunk-ZGRCSNPK.js.map} +1 -1
  193. package/dist/{chunk-SRA2L3SQ.cjs → chunk-ZSGEGISB.cjs} +4 -4
  194. package/dist/{chunk-SRA2L3SQ.cjs.map → chunk-ZSGEGISB.cjs.map} +1 -1
  195. package/dist/components/AlertDialog/index.cjs +6 -6
  196. package/dist/components/AlertDialog/index.js +5 -5
  197. package/dist/components/Autocomplete/index.cjs +3 -3
  198. package/dist/components/Autocomplete/index.js +2 -2
  199. package/dist/components/Button/index.cjs +3 -3
  200. package/dist/components/Button/index.d.cts +3 -0
  201. package/dist/components/Button/index.d.ts +3 -0
  202. package/dist/components/Button/index.js +1 -1
  203. package/dist/components/Collapsible/index.cjs +5 -5
  204. package/dist/components/Collapsible/index.js +2 -2
  205. package/dist/components/CountryCodeDropdown/index.cjs +6 -6
  206. package/dist/components/CountryCodeDropdown/index.js +3 -3
  207. package/dist/components/CustomizableDashboard/index.cjs +11 -11
  208. package/dist/components/CustomizableDashboard/index.js +4 -4
  209. package/dist/components/DateInput/index.cjs +4 -4
  210. package/dist/components/DateInput/index.js +3 -3
  211. package/dist/components/Dropdown/index.cjs +11 -11
  212. package/dist/components/Dropdown/index.js +4 -4
  213. package/dist/components/FloatingWindow/index.cjs +4 -4
  214. package/dist/components/FloatingWindow/index.js +2 -2
  215. package/dist/components/GlossaryTooltip/index.cjs +4 -4
  216. package/dist/components/GlossaryTooltip/index.js +3 -3
  217. package/dist/components/KeyboardShortcutsOverlay/index.cjs +6 -6
  218. package/dist/components/KeyboardShortcutsOverlay/index.js +4 -4
  219. package/dist/components/Markdown/index.cjs +19 -19
  220. package/dist/components/Markdown/index.js +7 -7
  221. package/dist/components/MediaEditor/index.cjs +16 -16
  222. package/dist/components/MediaEditor/index.js +11 -11
  223. package/dist/components/MediaPlayer/index.cjs +6 -6
  224. package/dist/components/MediaPlayer/index.js +3 -3
  225. package/dist/components/MegaMenu/index.cjs +23 -0
  226. package/dist/components/MegaMenu/index.cjs.map +1 -0
  227. package/dist/components/MegaMenu/index.d.cts +106 -0
  228. package/dist/components/MegaMenu/index.d.ts +106 -0
  229. package/dist/components/MegaMenu/index.js +6 -0
  230. package/dist/components/MegaMenu/index.js.map +1 -0
  231. package/dist/components/Modal/index.cjs +11 -11
  232. package/dist/components/Modal/index.js +3 -3
  233. package/dist/components/OrbitRing/index.cjs +14 -0
  234. package/dist/components/OrbitRing/index.cjs.map +1 -0
  235. package/dist/components/OrbitRing/index.d.cts +64 -0
  236. package/dist/components/OrbitRing/index.d.ts +64 -0
  237. package/dist/components/OrbitRing/index.js +5 -0
  238. package/dist/components/OrbitRing/index.js.map +1 -0
  239. package/dist/components/RadialExplorer/index.cjs +18 -0
  240. package/dist/components/RadialExplorer/index.cjs.map +1 -0
  241. package/dist/components/RadialExplorer/index.d.cts +83 -0
  242. package/dist/components/RadialExplorer/index.d.ts +83 -0
  243. package/dist/components/RadialExplorer/index.js +9 -0
  244. package/dist/components/RadialExplorer/index.js.map +1 -0
  245. package/dist/components/RichTextEditor/index.cjs +9 -9
  246. package/dist/components/RichTextEditor/index.js +6 -6
  247. package/dist/components/SectionSpyNav/index.cjs +4 -4
  248. package/dist/components/SectionSpyNav/index.js +3 -3
  249. package/dist/components/Select/index.cjs +5 -5
  250. package/dist/components/Select/index.js +3 -3
  251. package/dist/components/Sheet/index.cjs +11 -11
  252. package/dist/components/Sheet/index.js +2 -2
  253. package/dist/components/SliderCalculator/index.cjs +20 -0
  254. package/dist/components/SliderCalculator/index.cjs.map +1 -0
  255. package/dist/components/SliderCalculator/index.d.cts +100 -0
  256. package/dist/components/SliderCalculator/index.d.ts +100 -0
  257. package/dist/components/SliderCalculator/index.js +7 -0
  258. package/dist/components/SliderCalculator/index.js.map +1 -0
  259. package/dist/components/SourceTip/index.cjs +4 -4
  260. package/dist/components/SourceTip/index.js +3 -3
  261. package/dist/components/SuperChat/index.cjs +12 -12
  262. package/dist/components/SuperChat/index.js +5 -5
  263. package/dist/components/SuperChat/plugins/index.cjs +8 -8
  264. package/dist/components/SuperChat/plugins/index.js +7 -7
  265. package/dist/components/ThemeProvider/index.cjs +9 -9
  266. package/dist/components/ThemeProvider/index.js +3 -3
  267. package/dist/components/Tooltip/index.cjs +3 -3
  268. package/dist/components/Tooltip/index.js +2 -2
  269. package/dist/components/VideoCard/index.cjs +21 -0
  270. package/dist/components/VideoCard/index.cjs.map +1 -0
  271. package/dist/components/VideoCard/index.d.cts +75 -0
  272. package/dist/components/VideoCard/index.d.ts +75 -0
  273. package/dist/components/VideoCard/index.js +8 -0
  274. package/dist/components/VideoCard/index.js.map +1 -0
  275. package/dist/components/YearTimeline/index.cjs +26 -0
  276. package/dist/components/YearTimeline/index.cjs.map +1 -0
  277. package/dist/components/YearTimeline/index.d.cts +82 -0
  278. package/dist/components/YearTimeline/index.d.ts +82 -0
  279. package/dist/components/YearTimeline/index.js +5 -0
  280. package/dist/components/YearTimeline/index.js.map +1 -0
  281. package/dist/datavis.cjs +2 -2
  282. package/dist/datavis.js +1 -1
  283. package/dist/enterprise-health-ITUNXDIW.js +4 -0
  284. package/dist/{enterprise-health-CWLUB77O.js.map → enterprise-health-ITUNXDIW.js.map} +1 -1
  285. package/dist/enterprise-health-UHHPVPU6.cjs +19 -0
  286. package/dist/{enterprise-health-75VYWAVG.cjs.map → enterprise-health-UHHPVPU6.cjs.map} +1 -1
  287. package/dist/esheet.cjs +18 -18
  288. package/dist/esheet.js +15 -15
  289. package/dist/globe.cjs +306 -0
  290. package/dist/globe.cjs.map +1 -0
  291. package/dist/globe.d.cts +99 -0
  292. package/dist/globe.d.ts +99 -0
  293. package/dist/globe.js +279 -0
  294. package/dist/globe.js.map +1 -0
  295. package/dist/hooks/index.cjs +29 -24
  296. package/dist/hooks/index.d.cts +41 -1
  297. package/dist/hooks/index.d.ts +41 -1
  298. package/dist/hooks/index.js +5 -4
  299. package/dist/index.cjs +1160 -1108
  300. package/dist/index.cjs.map +1 -1
  301. package/dist/index.d.cts +69 -24
  302. package/dist/index.d.ts +69 -24
  303. package/dist/index.js +265 -285
  304. package/dist/index.js.map +1 -1
  305. package/dist/{speaker-verify-5GTWAN5Y.cjs → speaker-verify-4NEJAK6C.cjs} +57 -90
  306. package/dist/speaker-verify-4NEJAK6C.cjs.map +1 -0
  307. package/dist/{speaker-verify-R67P433H.js → speaker-verify-AWSKI6DI.js} +57 -90
  308. package/dist/speaker-verify-AWSKI6DI.js.map +1 -0
  309. package/dist/styles/effects.css +128 -0
  310. package/dist/styles/init.css +15 -0
  311. package/dist/styles.css +1 -1
  312. package/dist/tailwind-preset.cjs +4 -4
  313. package/dist/tailwind-preset.js +1 -1
  314. package/dist/utils/index.cjs +5 -5
  315. package/dist/utils/index.js +1 -1
  316. package/package.json +23 -2
  317. package/dist/CsvBlock-CVYA3HYS.cjs +0 -16
  318. package/dist/CsvBlock-SM4NKSHA.js +0 -7
  319. package/dist/HtmlPreviewBlock-FAMF4W24.js +0 -7
  320. package/dist/HtmlPreviewBlock-JF454L2L.cjs +0 -16
  321. package/dist/MermaidBlock-7V5G4K5A.js +0 -7
  322. package/dist/MermaidBlock-FR5SQX4Q.cjs +0 -16
  323. package/dist/SurveyBlock-6K2POV7S.js +0 -7
  324. package/dist/SurveyBlock-MCJVWR7H.cjs +0 -16
  325. package/dist/chunk-IINZWUGK.cjs.map +0 -1
  326. package/dist/chunk-J644FU54.cjs.map +0 -1
  327. package/dist/chunk-KREUYVMZ.js.map +0 -1
  328. package/dist/chunk-MTZPVOP6.js.map +0 -1
  329. package/dist/chunk-P52GA3GJ.cjs.map +0 -1
  330. package/dist/chunk-PY7XAG4D.cjs.map +0 -1
  331. package/dist/chunk-WOYUQ4AT.js.map +0 -1
  332. package/dist/chunk-X5YM3KXY.js.map +0 -1
  333. package/dist/enterprise-health-75VYWAVG.cjs +0 -19
  334. package/dist/enterprise-health-CWLUB77O.js +0 -4
  335. package/dist/speaker-verify-5GTWAN5Y.cjs.map +0 -1
  336. package/dist/speaker-verify-R67P433H.js.map +0 -1
package/dist/esheet.js CHANGED
@@ -1,27 +1,27 @@
1
- import { MedicationReconciliation, useCodeLookupConfig, AllergyManager } from './chunk-7KWNY3HG.js';
1
+ import { MedicationReconciliation, useCodeLookupConfig, AllergyManager } from './chunk-2YCERQWC.js';
2
2
  import './chunk-H3YO5GBM.js';
3
- import './chunk-MUIDWFYJ.js';
3
+ import './chunk-FJ7YPVKV.js';
4
4
  import './chunk-EPSB4WTL.js';
5
5
  import './chunk-I3WGZPI6.js';
6
- import './chunk-IGNWT6RP.js';
7
- import './chunk-OAZUDUGX.js';
8
- import './chunk-QYSUYB3S.js';
9
- import './chunk-RC2YMOMS.js';
10
- import './chunk-WUBMDOTG.js';
6
+ import './chunk-S7WCHDBO.js';
7
+ import './chunk-7IBZA7G6.js';
11
8
  import './chunk-6NZXWKUE.js';
9
+ import './chunk-QYSUYB3S.js';
12
10
  import './chunk-3IMM2PM4.js';
13
- import './chunk-BKSPDTX4.js';
14
- import './chunk-BMSG4NBH.js';
15
- import './chunk-KREUYVMZ.js';
16
- import './chunk-XCP454Q6.js';
17
- import './chunk-TQONQSJO.js';
18
11
  import './chunk-7ZVTLTJF.js';
19
- import './chunk-HB7C7NB5.js';
12
+ import './chunk-62ZOA6PX.js';
13
+ import './chunk-WSNMQQ4P.js';
14
+ import './chunk-RC2YMOMS.js';
15
+ import './chunk-5JJ2DAE4.js';
20
16
  import './chunk-4SMSH4OY.js';
21
17
  import './chunk-T4ME7QCT.js';
22
18
  import './chunk-VSQF22GL.js';
23
- import './chunk-62ZOA6PX.js';
24
- import './chunk-WSNMQQ4P.js';
19
+ import './chunk-BKSPDTX4.js';
20
+ import './chunk-HB7C7NB5.js';
21
+ import './chunk-BMSG4NBH.js';
22
+ import './chunk-GOALNQZ2.js';
23
+ import './chunk-XCP454Q6.js';
24
+ import './chunk-TQONQSJO.js';
25
25
  import './chunk-PX6F3LHL.js';
26
26
  export { EsheetBuilder } from '@esheet/builder';
27
27
  export { EsheetRenderer } from '@esheet/renderer';
package/dist/globe.cjs ADDED
@@ -0,0 +1,306 @@
1
+ 'use strict';
2
+
3
+ var chunk6HFFWEM3_cjs = require('./chunk-6HFFWEM3.cjs');
4
+ var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
5
+ require('./chunk-EUAMEVVI.cjs');
6
+ var React = require('react');
7
+ var ReactGlobe = require('react-globe.gl');
8
+ var three = require('three');
9
+ var lucideReact = require('lucide-react');
10
+ var jsxRuntime = require('react/jsx-runtime');
11
+
12
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
+
14
+ function _interopNamespace(e) {
15
+ if (e && e.__esModule) return e;
16
+ var n = Object.create(null);
17
+ if (e) {
18
+ Object.keys(e).forEach(function (k) {
19
+ if (k !== 'default') {
20
+ var d = Object.getOwnPropertyDescriptor(e, k);
21
+ Object.defineProperty(n, k, d.get ? d : {
22
+ enumerable: true,
23
+ get: function () { return e[k]; }
24
+ });
25
+ }
26
+ });
27
+ }
28
+ n.default = e;
29
+ return Object.freeze(n);
30
+ }
31
+
32
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
33
+ var ReactGlobe__default = /*#__PURE__*/_interopDefault(ReactGlobe);
34
+
35
+ var DEFAULT_GEO_URL = "https://raw.githubusercontent.com/vasturiano/react-globe.gl/master/example/datasets/ne_110m_admin_0_countries.geojson";
36
+ var DEFAULT_THEME = {
37
+ surface: "#0a1322",
38
+ emissive: "#0a1b2e",
39
+ atmosphere: "#5b8fb0",
40
+ land: "rgba(123,156,201,0.5)",
41
+ hub: "#ffe7b0",
42
+ city: "rgba(201,168,116,0.72)",
43
+ backbone: ["rgba(63,169,155,0.12)", "rgba(160,235,224,0.95)"],
44
+ spoke: ["rgba(63,169,155,0)", "rgba(150,225,214,0.5)"]
45
+ };
46
+ function haversine(a, b) {
47
+ const toRad = (d) => d * Math.PI / 180;
48
+ const dLat = toRad(b.lat - a.lat);
49
+ const dLng = toRad(b.lng - a.lng);
50
+ const h = Math.sin(dLat / 2) ** 2 + Math.cos(toRad(a.lat)) * Math.cos(toRad(b.lat)) * Math.sin(dLng / 2) ** 2;
51
+ return 2 * Math.asin(Math.sqrt(h));
52
+ }
53
+ function escapeHtml(s) {
54
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
55
+ }
56
+ function buildArcs(points, connectHubs = true) {
57
+ const hubs = points.filter((p) => p.hub);
58
+ if (hubs.length === 0) return [];
59
+ const spokes = points.filter((p) => !p.hub).map((c, i) => {
60
+ const hub = hubs.reduce(
61
+ (best, h) => haversine(c, h) < haversine(c, best) ? h : best,
62
+ hubs[0]
63
+ );
64
+ return {
65
+ startLat: c.lat,
66
+ startLng: c.lng,
67
+ endLat: hub.lat,
68
+ endLng: hub.lng,
69
+ kind: "spoke",
70
+ speed: 4200 + i * 137 % 2800,
71
+ gap: i * 13 % 100 / 100
72
+ };
73
+ });
74
+ const ring = connectHubs && hubs.length > 1 ? hubs.map((h, i) => {
75
+ const next = hubs[(i + 1) % hubs.length];
76
+ return {
77
+ startLat: h.lat,
78
+ startLng: h.lng,
79
+ endLat: next.lat,
80
+ endLng: next.lng,
81
+ kind: "backbone",
82
+ speed: 4600,
83
+ gap: i * 33 / 100
84
+ };
85
+ }) : [];
86
+ return [...spokes, ...ring];
87
+ }
88
+ function pointId(p) {
89
+ return p.id ?? `${p.lat},${p.lng}`;
90
+ }
91
+ function Globe({
92
+ points = [],
93
+ arcs,
94
+ connectHubs = true,
95
+ geoUrl = DEFAULT_GEO_URL,
96
+ hexResolution = 3,
97
+ theme,
98
+ pointOfView = { lat: 18, lng: -22, altitude: 2.35 },
99
+ autoRotateSpeed = 0.5,
100
+ enableZoom = false,
101
+ callout = true,
102
+ selectedId,
103
+ onSelect,
104
+ onPointHover,
105
+ pointLabel,
106
+ height = "clamp(360px, 54vw, 560px)",
107
+ className
108
+ }) {
109
+ const t = { ...DEFAULT_THEME, ...theme };
110
+ const reduced = chunk6HFFWEM3_cjs.usePrefersReducedMotion();
111
+ const globeRef = React__namespace.useRef(void 0);
112
+ const frameRef = React__namespace.useRef(null);
113
+ const [size, setSize] = React__namespace.useState({ w: 0, h: 0 });
114
+ const [countries, setCountries] = React__namespace.useState([]);
115
+ const [innerSel, setInnerSel] = React__namespace.useState(null);
116
+ const sel = selectedId !== void 0 ? selectedId : innerSel;
117
+ const selected = sel ? points.find((p) => pointId(p) === sel) ?? null : null;
118
+ const material = React__namespace.useMemo(
119
+ () => new three.MeshPhongMaterial({
120
+ color: t.surface,
121
+ emissive: t.emissive,
122
+ emissiveIntensity: 0.32,
123
+ shininess: 4
124
+ }),
125
+ [t.surface, t.emissive]
126
+ );
127
+ const arcData = React__namespace.useMemo(
128
+ () => arcs ? arcs.map((a) => ({ kind: "spoke", speed: 4600, gap: 0, ...a })) : buildArcs(points, connectHubs),
129
+ [arcs, points, connectHubs]
130
+ );
131
+ React__namespace.useEffect(() => {
132
+ const el = frameRef.current;
133
+ if (!el || typeof globalThis.ResizeObserver === "undefined") return;
134
+ const ro = new globalThis.ResizeObserver(([e]) => {
135
+ const { width, height: h } = e.contentRect;
136
+ setSize({ w: Math.round(width), h: Math.round(h) });
137
+ });
138
+ ro.observe(el);
139
+ return () => ro.disconnect();
140
+ }, []);
141
+ React__namespace.useEffect(() => {
142
+ if (!geoUrl) return;
143
+ let live = true;
144
+ fetch(geoUrl).then((r) => r.json()).then(
145
+ (geo) => live && setCountries(geo.features ?? [])
146
+ ).catch(() => live && setCountries([]));
147
+ return () => {
148
+ live = false;
149
+ };
150
+ }, [geoUrl]);
151
+ const onReady = React__namespace.useCallback(() => {
152
+ const g = globeRef.current;
153
+ if (!g) return;
154
+ const c = g.controls();
155
+ c.enableZoom = enableZoom;
156
+ c.enablePan = false;
157
+ c.autoRotate = !reduced && autoRotateSpeed > 0;
158
+ c.autoRotateSpeed = autoRotateSpeed;
159
+ c.minPolarAngle = Math.PI * 0.16;
160
+ c.maxPolarAngle = Math.PI * 0.84;
161
+ g.pointOfView(pointOfView);
162
+ g.renderer().domElement.style.touchAction = "pan-y";
163
+ }, [enableZoom, reduced, autoRotateSpeed, pointOfView]);
164
+ const select = (p) => {
165
+ if (selectedId === void 0) setInnerSel(p ? pointId(p) : null);
166
+ onSelect?.(p);
167
+ };
168
+ return /* @__PURE__ */ jsxRuntime.jsxs(
169
+ "div",
170
+ {
171
+ ref: frameRef,
172
+ "data-slot": "globe",
173
+ style: { height },
174
+ className: chunkS5RVSXDV_cjs.cn("relative w-full overflow-hidden", className),
175
+ children: [
176
+ size.w > 0 && /* @__PURE__ */ jsxRuntime.jsx(
177
+ ReactGlobe__default.default,
178
+ {
179
+ ref: globeRef,
180
+ width: size.w,
181
+ height: size.h,
182
+ onGlobeReady: onReady,
183
+ backgroundColor: "rgba(0,0,0,0)",
184
+ globeMaterial: material,
185
+ showAtmosphere: true,
186
+ atmosphereColor: t.atmosphere,
187
+ atmosphereAltitude: 0.16,
188
+ hexPolygonsData: countries,
189
+ hexPolygonResolution: hexResolution,
190
+ hexPolygonMargin: 0.4,
191
+ hexPolygonUseDots: true,
192
+ hexPolygonColor: () => t.land,
193
+ pointsData: points,
194
+ pointLat: "lat",
195
+ pointLng: "lng",
196
+ pointAltitude: (d) => d.hub ? 0.013 : 6e-3,
197
+ pointRadius: (d) => d.hub ? 0.48 : 0.3,
198
+ pointResolution: 18,
199
+ pointColor: (d) => {
200
+ const p = d;
201
+ return p.color ?? (p.hub ? t.hub : t.city);
202
+ },
203
+ pointLabel: (d) => {
204
+ const p = d;
205
+ if (pointLabel) return pointLabel(p);
206
+ return `<b>${escapeHtml(p.name)}</b>${p.sub ? ` &middot; ${escapeHtml(p.sub)}` : ""}`;
207
+ },
208
+ onPointHover: (d) => onPointHover?.(d ?? null),
209
+ onPointClick: (d) => select(d),
210
+ onGlobeClick: () => select(null),
211
+ arcsData: arcData,
212
+ arcStartLat: "startLat",
213
+ arcStartLng: "startLng",
214
+ arcEndLat: "endLat",
215
+ arcEndLng: "endLng",
216
+ arcColor: (d) => d.kind === "backbone" ? t.backbone : t.spoke,
217
+ arcStroke: (d) => d.kind === "backbone" ? 0.5 : 0.3,
218
+ arcAltitudeAutoScale: 0.45,
219
+ arcDashLength: (d) => reduced ? 1 : d.kind === "backbone" ? 0.5 : 0.35,
220
+ arcDashGap: (d) => reduced ? 0 : d.kind === "backbone" ? 0.2 : 0.7,
221
+ arcDashInitialGap: (d) => reduced ? 0 : d.gap,
222
+ arcDashAnimateTime: (d) => reduced ? 0 : d.speed
223
+ }
224
+ ),
225
+ callout && selected && /* @__PURE__ */ jsxRuntime.jsx(Callout, { point: selected, onClose: () => select(null) })
226
+ ]
227
+ }
228
+ );
229
+ }
230
+ function useLocalTime(timeZone) {
231
+ const fmt = React__namespace.useMemo(
232
+ () => timeZone ? new Intl.DateTimeFormat(void 0, {
233
+ hour: "2-digit",
234
+ minute: "2-digit",
235
+ timeZone,
236
+ timeZoneName: "short"
237
+ }) : null,
238
+ [timeZone]
239
+ );
240
+ const [now, setNow] = React__namespace.useState(() => /* @__PURE__ */ new Date());
241
+ React__namespace.useEffect(() => {
242
+ if (!fmt) return;
243
+ const t = window.setInterval(() => setNow(/* @__PURE__ */ new Date()), 15e3);
244
+ return () => window.clearInterval(t);
245
+ }, [fmt]);
246
+ return fmt ? fmt.format(now) : null;
247
+ }
248
+ function Callout({
249
+ point,
250
+ onClose
251
+ }) {
252
+ const time = useLocalTime(point.timeZone);
253
+ const Body = point.href ? "a" : "span";
254
+ return /* @__PURE__ */ jsxRuntime.jsxs(
255
+ "div",
256
+ {
257
+ role: "status",
258
+ "aria-live": "polite",
259
+ "data-slot": "globe-callout",
260
+ className: "absolute bottom-4 left-1/2 z-10 inline-flex max-w-[min(90%,360px)] -translate-x-1/2 items-center gap-2.5 rounded-full border border-white/15 bg-neutral-950/70 py-1.5 ps-3.5 pe-1.5 text-white shadow-xl backdrop-blur-md motion-safe:animate-[mie-fade-in_0.28s_ease]",
261
+ children: [
262
+ /* @__PURE__ */ jsxRuntime.jsx(
263
+ "span",
264
+ {
265
+ "aria-hidden": true,
266
+ className: "h-2 w-2 shrink-0 rounded-full bg-[var(--mieweb-accent,#ffe7b0)] shadow-[0_0_8px_var(--mieweb-accent,#ffe7b0)]"
267
+ }
268
+ ),
269
+ /* @__PURE__ */ jsxRuntime.jsxs(
270
+ Body,
271
+ {
272
+ href: point.href,
273
+ className: "flex min-w-0 flex-col leading-tight no-underline",
274
+ children: [
275
+ /* @__PURE__ */ jsxRuntime.jsxs("b", { className: "truncate text-sm", children: [
276
+ point.flag && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "me-1.5", children: point.flag }),
277
+ point.name
278
+ ] }),
279
+ (point.sub || time) && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "truncate text-[11px] tracking-wider text-white/70 uppercase", children: [
280
+ point.sub,
281
+ point.sub && time && " \xB7 ",
282
+ time && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "tracking-normal normal-case tabular-nums", children: time })
283
+ ] })
284
+ ]
285
+ }
286
+ ),
287
+ /* @__PURE__ */ jsxRuntime.jsx(
288
+ "button",
289
+ {
290
+ type: "button",
291
+ onClick: onClose,
292
+ "aria-label": "Dismiss",
293
+ className: "ms-1 grid h-7 w-7 shrink-0 place-items-center rounded-full text-white/70 hover:bg-white/10 hover:text-white",
294
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { size: 14, "aria-hidden": true })
295
+ }
296
+ )
297
+ ]
298
+ }
299
+ );
300
+ }
301
+
302
+ exports.DEFAULT_GEO_URL = DEFAULT_GEO_URL;
303
+ exports.Globe = Globe;
304
+ exports.buildArcs = buildArcs;
305
+ //# sourceMappingURL=globe.cjs.map
306
+ //# sourceMappingURL=globe.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Globe/Globe.tsx"],"names":["usePrefersReducedMotion","React","MeshPhongMaterial","jsxs","cn","jsx","ReactGlobe","X"],"mappings":"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","file":"globe.cjs","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport ReactGlobe, { type GlobeMethods } from 'react-globe.gl';\nimport { MeshPhongMaterial } from 'three';\nimport { X } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { usePrefersReducedMotion } from '../../hooks/usePrefersReducedMotion';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface GlobePoint {\n id?: string;\n lat: number;\n lng: number;\n name: string;\n /** Secondary line in tooltip/callout, e.g. \"Distribution\". */\n sub?: string;\n /** Hubs are drawn larger, raised, and become arc anchors. */\n hub?: boolean;\n /** Per-point dot colour. */\n color?: string;\n /** IANA zone, e.g. `America/Sao_Paulo` — shows a live local clock in the callout. */\n timeZone?: string;\n /** Emoji flag or short code shown before the name in the callout. */\n flag?: string;\n /** Destination when the callout is clicked. */\n href?: string;\n}\n\nexport interface GlobeArc {\n startLat: number;\n startLng: number;\n endLat: number;\n endLng: number;\n /** `backbone` arcs are brighter and thicker than `spoke` arcs. */\n kind?: 'backbone' | 'spoke';\n /** Dash cycle time in ms. */\n speed?: number;\n /** Dash start offset 0–1. */\n gap?: number;\n}\n\nexport interface GlobeTheme {\n /** Globe body. */\n surface?: string;\n emissive?: string;\n atmosphere?: string;\n /** Dotted-continent colour. */\n land?: string;\n /** Hub dot / city dot. */\n hub?: string;\n city?: string;\n /** Arc gradients, start → end. */\n backbone?: [string, string];\n spoke?: [string, string];\n}\n\nexport interface GlobeProps {\n points?: GlobePoint[];\n /** Explicit arcs. Omit to auto-connect every non-hub point to its nearest hub. */\n arcs?: GlobeArc[];\n /** Also connect hubs to each other in a ring. Default true when ≥2 hubs. */\n connectHubs?: boolean;\n /**\n * GeoJSON FeatureCollection URL for the dotted continents. Defaults to the\n * Natural Earth 110m countries file shipped with react-globe.gl's examples.\n */\n geoUrl?: string | null;\n /** Hex resolution (2 coarse … 4 fine). Default 3. */\n hexResolution?: number;\n theme?: GlobeTheme;\n /** Initial camera. Default lat 18 / lng −22 / altitude 2.35. */\n pointOfView?: { lat?: number; lng?: number; altitude?: number };\n /** Auto-rotate speed; 0 disables. Default 0.5. Off under reduced motion. */\n autoRotateSpeed?: number;\n enableZoom?: boolean;\n /** Show the pill callout for the selected point. Default true. */\n callout?: boolean;\n /** Controlled selection. */\n selectedId?: string | null;\n onSelect?: (point: GlobePoint | null) => void;\n onPointHover?: (point: GlobePoint | null) => void;\n /** Custom hover tooltip HTML. */\n pointLabel?: (point: GlobePoint) => string;\n /** Fixed height. Default `clamp(360px, 54vw, 560px)`. */\n height?: string;\n className?: string;\n}\n\n// =============================================================================\n// Defaults\n// =============================================================================\n\nexport const DEFAULT_GEO_URL =\n 'https://raw.githubusercontent.com/vasturiano/react-globe.gl/master/example/datasets/ne_110m_admin_0_countries.geojson';\n\nconst DEFAULT_THEME: Required<GlobeTheme> = {\n surface: '#0a1322',\n emissive: '#0a1b2e',\n atmosphere: '#5b8fb0',\n land: 'rgba(123,156,201,0.5)',\n hub: '#ffe7b0',\n city: 'rgba(201,168,116,0.72)',\n backbone: ['rgba(63,169,155,0.12)', 'rgba(160,235,224,0.95)'],\n spoke: ['rgba(63,169,155,0)', 'rgba(150,225,214,0.5)'],\n};\n\ntype Arc = Required<\n Pick<\n GlobeArc,\n 'startLat' | 'startLng' | 'endLat' | 'endLng' | 'kind' | 'speed' | 'gap'\n >\n>;\n\nfunction haversine(a: GlobePoint, b: GlobePoint): number {\n const toRad = (d: number) => (d * Math.PI) / 180;\n const dLat = toRad(b.lat - a.lat);\n const dLng = toRad(b.lng - a.lng);\n const h =\n Math.sin(dLat / 2) ** 2 +\n Math.cos(toRad(a.lat)) * Math.cos(toRad(b.lat)) * Math.sin(dLng / 2) ** 2;\n return 2 * Math.asin(Math.sqrt(h));\n}\n\n/** Escape a string for interpolation into tooltip HTML. */\nfunction escapeHtml(s: string): string {\n return s\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&#39;');\n}\n\n/** Spokes from each city to its nearest hub, plus an optional hub ring. */\nexport function buildArcs(points: GlobePoint[], connectHubs = true): Arc[] {\n const hubs = points.filter((p) => p.hub);\n if (hubs.length === 0) return [];\n const spokes: Arc[] = points\n .filter((p) => !p.hub)\n .map((c, i) => {\n const hub = hubs.reduce(\n (best, h) => (haversine(c, h) < haversine(c, best) ? h : best),\n hubs[0]\n );\n return {\n startLat: c.lat,\n startLng: c.lng,\n endLat: hub.lat,\n endLng: hub.lng,\n kind: 'spoke',\n speed: 4200 + ((i * 137) % 2800),\n gap: ((i * 13) % 100) / 100,\n };\n });\n const ring: Arc[] =\n connectHubs && hubs.length > 1\n ? hubs.map((h, i) => {\n const next = hubs[(i + 1) % hubs.length];\n return {\n startLat: h.lat,\n startLng: h.lng,\n endLat: next.lat,\n endLng: next.lng,\n kind: 'backbone',\n speed: 4600,\n gap: (i * 33) / 100,\n };\n })\n : [];\n return [...spokes, ...ring];\n}\n\nfunction pointId(p: GlobePoint): string {\n return p.id ?? `${p.lat},${p.lng}`;\n}\n\n// =============================================================================\n// Globe\n// =============================================================================\n\n/**\n * A branded WebGL globe on react-globe.gl: dotted-hex continents, hub and\n * city dots with hover tooltips, animated hub-and-spoke arcs, slow\n * auto-rotation (paused while dragging, off under reduced motion), and a\n * pill callout for the selected point with an optional live local clock.\n * Transparent background so it sits on any surface. Ported from the\n * Enterprise Health global-reach section.\n *\n * Client-only — import from `@mieweb/ui/globe` behind `ssr: false`.\n * Requires the optional peers `react-globe.gl` and `three`.\n */\nexport function Globe({\n points = [],\n arcs,\n connectHubs = true,\n geoUrl = DEFAULT_GEO_URL,\n hexResolution = 3,\n theme,\n pointOfView = { lat: 18, lng: -22, altitude: 2.35 },\n autoRotateSpeed = 0.5,\n enableZoom = false,\n callout = true,\n selectedId,\n onSelect,\n onPointHover,\n pointLabel,\n height = 'clamp(360px, 54vw, 560px)',\n className,\n}: GlobeProps) {\n const t = { ...DEFAULT_THEME, ...theme };\n const reduced = usePrefersReducedMotion();\n const globeRef = React.useRef<GlobeMethods | undefined>(undefined);\n const frameRef = React.useRef<HTMLDivElement>(null);\n const [size, setSize] = React.useState({ w: 0, h: 0 });\n const [countries, setCountries] = React.useState<object[]>([]);\n const [innerSel, setInnerSel] = React.useState<string | null>(null);\n const sel = selectedId !== undefined ? selectedId : innerSel;\n const selected = sel\n ? (points.find((p) => pointId(p) === sel) ?? null)\n : null;\n\n const material = React.useMemo(\n () =>\n new MeshPhongMaterial({\n color: t.surface,\n emissive: t.emissive,\n emissiveIntensity: 0.32,\n shininess: 4,\n }),\n [t.surface, t.emissive]\n );\n\n const arcData = React.useMemo<Arc[]>(\n () =>\n arcs\n ? arcs.map((a) => ({ kind: 'spoke', speed: 4600, gap: 0, ...a }))\n : buildArcs(points, connectHubs),\n [arcs, points, connectHubs]\n );\n\n // Size to the frame.\n React.useEffect(() => {\n const el = frameRef.current;\n if (!el || typeof globalThis.ResizeObserver === 'undefined') return;\n const ro = new globalThis.ResizeObserver(([e]) => {\n const { width, height: h } = e.contentRect;\n setSize({ w: Math.round(width), h: Math.round(h) });\n });\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n React.useEffect(() => {\n if (!geoUrl) return;\n let live = true;\n fetch(geoUrl)\n .then((r) => r.json())\n .then(\n (geo: { features?: object[] }) =>\n live && setCountries(geo.features ?? [])\n )\n .catch(() => live && setCountries([]));\n return () => {\n live = false;\n };\n }, [geoUrl]);\n\n const onReady = React.useCallback(() => {\n const g = globeRef.current;\n if (!g) return;\n const c = g.controls();\n c.enableZoom = enableZoom;\n c.enablePan = false;\n c.autoRotate = !reduced && autoRotateSpeed > 0;\n c.autoRotateSpeed = autoRotateSpeed;\n c.minPolarAngle = Math.PI * 0.16;\n c.maxPolarAngle = Math.PI * 0.84;\n g.pointOfView(pointOfView);\n // let the page still scroll vertically over the canvas on touch\n g.renderer().domElement.style.touchAction = 'pan-y';\n }, [enableZoom, reduced, autoRotateSpeed, pointOfView]);\n\n const select = (p: GlobePoint | null) => {\n if (selectedId === undefined) setInnerSel(p ? pointId(p) : null);\n onSelect?.(p);\n };\n\n return (\n <div\n ref={frameRef}\n data-slot=\"globe\"\n style={{ height }}\n className={cn('relative w-full overflow-hidden', className)}\n >\n {size.w > 0 && (\n <ReactGlobe\n ref={globeRef}\n width={size.w}\n height={size.h}\n onGlobeReady={onReady}\n backgroundColor=\"rgba(0,0,0,0)\"\n globeMaterial={material}\n showAtmosphere\n atmosphereColor={t.atmosphere}\n atmosphereAltitude={0.16}\n hexPolygonsData={countries}\n hexPolygonResolution={hexResolution}\n hexPolygonMargin={0.4}\n hexPolygonUseDots\n hexPolygonColor={() => t.land}\n pointsData={points}\n pointLat=\"lat\"\n pointLng=\"lng\"\n pointAltitude={(d: object) => ((d as GlobePoint).hub ? 0.013 : 0.006)}\n pointRadius={(d: object) => ((d as GlobePoint).hub ? 0.48 : 0.3)}\n pointResolution={18}\n pointColor={(d: object) => {\n const p = d as GlobePoint;\n return p.color ?? (p.hub ? t.hub : t.city);\n }}\n pointLabel={(d: object) => {\n const p = d as GlobePoint;\n if (pointLabel) return pointLabel(p);\n // react-globe.gl renders this as tooltip HTML, so caller-provided\n // strings must be escaped or `<img onerror=…>` in a name executes.\n return `<b>${escapeHtml(p.name)}</b>${p.sub ? ` &middot; ${escapeHtml(p.sub)}` : ''}`;\n }}\n onPointHover={(d: object | null) =>\n onPointHover?.((d as GlobePoint) ?? null)\n }\n onPointClick={(d: object) => select(d as GlobePoint)}\n onGlobeClick={() => select(null)}\n arcsData={arcData}\n arcStartLat=\"startLat\"\n arcStartLng=\"startLng\"\n arcEndLat=\"endLat\"\n arcEndLng=\"endLng\"\n arcColor={(d: object) =>\n (d as Arc).kind === 'backbone' ? t.backbone : t.spoke\n }\n arcStroke={(d: object) =>\n (d as Arc).kind === 'backbone' ? 0.5 : 0.3\n }\n arcAltitudeAutoScale={0.45}\n arcDashLength={(d: object) =>\n reduced ? 1 : (d as Arc).kind === 'backbone' ? 0.5 : 0.35\n }\n arcDashGap={(d: object) =>\n reduced ? 0 : (d as Arc).kind === 'backbone' ? 0.2 : 0.7\n }\n arcDashInitialGap={(d: object) => (reduced ? 0 : (d as Arc).gap)}\n arcDashAnimateTime={(d: object) => (reduced ? 0 : (d as Arc).speed)}\n />\n )}\n\n {callout && selected && (\n <Callout point={selected} onClose={() => select(null)} />\n )}\n </div>\n );\n}\n\n// =============================================================================\n// Callout\n// =============================================================================\n\nfunction useLocalTime(timeZone?: string) {\n const fmt = React.useMemo(\n () =>\n timeZone\n ? new Intl.DateTimeFormat(undefined, {\n hour: '2-digit',\n minute: '2-digit',\n timeZone,\n timeZoneName: 'short',\n })\n : null,\n [timeZone]\n );\n const [now, setNow] = React.useState(() => new Date());\n React.useEffect(() => {\n if (!fmt) return;\n const t = window.setInterval(() => setNow(new Date()), 15_000);\n return () => window.clearInterval(t);\n }, [fmt]);\n return fmt ? fmt.format(now) : null;\n}\n\nfunction Callout({\n point,\n onClose,\n}: {\n point: GlobePoint;\n onClose: () => void;\n}) {\n const time = useLocalTime(point.timeZone);\n const Body = point.href ? 'a' : 'span';\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n data-slot=\"globe-callout\"\n className=\"absolute bottom-4 left-1/2 z-10 inline-flex max-w-[min(90%,360px)] -translate-x-1/2 items-center gap-2.5 rounded-full border border-white/15 bg-neutral-950/70 py-1.5 ps-3.5 pe-1.5 text-white shadow-xl backdrop-blur-md motion-safe:animate-[mie-fade-in_0.28s_ease]\"\n >\n <span\n aria-hidden\n className=\"h-2 w-2 shrink-0 rounded-full bg-[var(--mieweb-accent,#ffe7b0)] shadow-[0_0_8px_var(--mieweb-accent,#ffe7b0)]\"\n />\n <Body\n href={point.href}\n className=\"flex min-w-0 flex-col leading-tight no-underline\"\n >\n <b className=\"truncate text-sm\">\n {point.flag && <span className=\"me-1.5\">{point.flag}</span>}\n {point.name}\n </b>\n {(point.sub || time) && (\n <span className=\"truncate text-[11px] tracking-wider text-white/70 uppercase\">\n {point.sub}\n {point.sub && time && ' · '}\n {time && (\n <span className=\"tracking-normal normal-case tabular-nums\">\n {time}\n </span>\n )}\n </span>\n )}\n </Body>\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Dismiss\"\n className=\"ms-1 grid h-7 w-7 shrink-0 place-items-center rounded-full text-white/70 hover:bg-white/10 hover:text-white\"\n >\n <X size={14} aria-hidden />\n </button>\n </div>\n );\n}\n"]}
@@ -0,0 +1,99 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface GlobePoint {
4
+ id?: string;
5
+ lat: number;
6
+ lng: number;
7
+ name: string;
8
+ /** Secondary line in tooltip/callout, e.g. "Distribution". */
9
+ sub?: string;
10
+ /** Hubs are drawn larger, raised, and become arc anchors. */
11
+ hub?: boolean;
12
+ /** Per-point dot colour. */
13
+ color?: string;
14
+ /** IANA zone, e.g. `America/Sao_Paulo` — shows a live local clock in the callout. */
15
+ timeZone?: string;
16
+ /** Emoji flag or short code shown before the name in the callout. */
17
+ flag?: string;
18
+ /** Destination when the callout is clicked. */
19
+ href?: string;
20
+ }
21
+ interface GlobeArc {
22
+ startLat: number;
23
+ startLng: number;
24
+ endLat: number;
25
+ endLng: number;
26
+ /** `backbone` arcs are brighter and thicker than `spoke` arcs. */
27
+ kind?: 'backbone' | 'spoke';
28
+ /** Dash cycle time in ms. */
29
+ speed?: number;
30
+ /** Dash start offset 0–1. */
31
+ gap?: number;
32
+ }
33
+ interface GlobeTheme {
34
+ /** Globe body. */
35
+ surface?: string;
36
+ emissive?: string;
37
+ atmosphere?: string;
38
+ /** Dotted-continent colour. */
39
+ land?: string;
40
+ /** Hub dot / city dot. */
41
+ hub?: string;
42
+ city?: string;
43
+ /** Arc gradients, start → end. */
44
+ backbone?: [string, string];
45
+ spoke?: [string, string];
46
+ }
47
+ interface GlobeProps {
48
+ points?: GlobePoint[];
49
+ /** Explicit arcs. Omit to auto-connect every non-hub point to its nearest hub. */
50
+ arcs?: GlobeArc[];
51
+ /** Also connect hubs to each other in a ring. Default true when ≥2 hubs. */
52
+ connectHubs?: boolean;
53
+ /**
54
+ * GeoJSON FeatureCollection URL for the dotted continents. Defaults to the
55
+ * Natural Earth 110m countries file shipped with react-globe.gl's examples.
56
+ */
57
+ geoUrl?: string | null;
58
+ /** Hex resolution (2 coarse … 4 fine). Default 3. */
59
+ hexResolution?: number;
60
+ theme?: GlobeTheme;
61
+ /** Initial camera. Default lat 18 / lng −22 / altitude 2.35. */
62
+ pointOfView?: {
63
+ lat?: number;
64
+ lng?: number;
65
+ altitude?: number;
66
+ };
67
+ /** Auto-rotate speed; 0 disables. Default 0.5. Off under reduced motion. */
68
+ autoRotateSpeed?: number;
69
+ enableZoom?: boolean;
70
+ /** Show the pill callout for the selected point. Default true. */
71
+ callout?: boolean;
72
+ /** Controlled selection. */
73
+ selectedId?: string | null;
74
+ onSelect?: (point: GlobePoint | null) => void;
75
+ onPointHover?: (point: GlobePoint | null) => void;
76
+ /** Custom hover tooltip HTML. */
77
+ pointLabel?: (point: GlobePoint) => string;
78
+ /** Fixed height. Default `clamp(360px, 54vw, 560px)`. */
79
+ height?: string;
80
+ className?: string;
81
+ }
82
+ declare const DEFAULT_GEO_URL = "https://raw.githubusercontent.com/vasturiano/react-globe.gl/master/example/datasets/ne_110m_admin_0_countries.geojson";
83
+ type Arc = Required<Pick<GlobeArc, 'startLat' | 'startLng' | 'endLat' | 'endLng' | 'kind' | 'speed' | 'gap'>>;
84
+ /** Spokes from each city to its nearest hub, plus an optional hub ring. */
85
+ declare function buildArcs(points: GlobePoint[], connectHubs?: boolean): Arc[];
86
+ /**
87
+ * A branded WebGL globe on react-globe.gl: dotted-hex continents, hub and
88
+ * city dots with hover tooltips, animated hub-and-spoke arcs, slow
89
+ * auto-rotation (paused while dragging, off under reduced motion), and a
90
+ * pill callout for the selected point with an optional live local clock.
91
+ * Transparent background so it sits on any surface. Ported from the
92
+ * Enterprise Health global-reach section.
93
+ *
94
+ * Client-only — import from `@mieweb/ui/globe` behind `ssr: false`.
95
+ * Requires the optional peers `react-globe.gl` and `three`.
96
+ */
97
+ declare function Globe({ points, arcs, connectHubs, geoUrl, hexResolution, theme, pointOfView, autoRotateSpeed, enableZoom, callout, selectedId, onSelect, onPointHover, pointLabel, height, className, }: GlobeProps): react_jsx_runtime.JSX.Element;
98
+
99
+ export { DEFAULT_GEO_URL, Globe, type GlobeArc, type GlobePoint, type GlobeProps, type GlobeTheme, buildArcs };
@@ -0,0 +1,99 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface GlobePoint {
4
+ id?: string;
5
+ lat: number;
6
+ lng: number;
7
+ name: string;
8
+ /** Secondary line in tooltip/callout, e.g. "Distribution". */
9
+ sub?: string;
10
+ /** Hubs are drawn larger, raised, and become arc anchors. */
11
+ hub?: boolean;
12
+ /** Per-point dot colour. */
13
+ color?: string;
14
+ /** IANA zone, e.g. `America/Sao_Paulo` — shows a live local clock in the callout. */
15
+ timeZone?: string;
16
+ /** Emoji flag or short code shown before the name in the callout. */
17
+ flag?: string;
18
+ /** Destination when the callout is clicked. */
19
+ href?: string;
20
+ }
21
+ interface GlobeArc {
22
+ startLat: number;
23
+ startLng: number;
24
+ endLat: number;
25
+ endLng: number;
26
+ /** `backbone` arcs are brighter and thicker than `spoke` arcs. */
27
+ kind?: 'backbone' | 'spoke';
28
+ /** Dash cycle time in ms. */
29
+ speed?: number;
30
+ /** Dash start offset 0–1. */
31
+ gap?: number;
32
+ }
33
+ interface GlobeTheme {
34
+ /** Globe body. */
35
+ surface?: string;
36
+ emissive?: string;
37
+ atmosphere?: string;
38
+ /** Dotted-continent colour. */
39
+ land?: string;
40
+ /** Hub dot / city dot. */
41
+ hub?: string;
42
+ city?: string;
43
+ /** Arc gradients, start → end. */
44
+ backbone?: [string, string];
45
+ spoke?: [string, string];
46
+ }
47
+ interface GlobeProps {
48
+ points?: GlobePoint[];
49
+ /** Explicit arcs. Omit to auto-connect every non-hub point to its nearest hub. */
50
+ arcs?: GlobeArc[];
51
+ /** Also connect hubs to each other in a ring. Default true when ≥2 hubs. */
52
+ connectHubs?: boolean;
53
+ /**
54
+ * GeoJSON FeatureCollection URL for the dotted continents. Defaults to the
55
+ * Natural Earth 110m countries file shipped with react-globe.gl's examples.
56
+ */
57
+ geoUrl?: string | null;
58
+ /** Hex resolution (2 coarse … 4 fine). Default 3. */
59
+ hexResolution?: number;
60
+ theme?: GlobeTheme;
61
+ /** Initial camera. Default lat 18 / lng −22 / altitude 2.35. */
62
+ pointOfView?: {
63
+ lat?: number;
64
+ lng?: number;
65
+ altitude?: number;
66
+ };
67
+ /** Auto-rotate speed; 0 disables. Default 0.5. Off under reduced motion. */
68
+ autoRotateSpeed?: number;
69
+ enableZoom?: boolean;
70
+ /** Show the pill callout for the selected point. Default true. */
71
+ callout?: boolean;
72
+ /** Controlled selection. */
73
+ selectedId?: string | null;
74
+ onSelect?: (point: GlobePoint | null) => void;
75
+ onPointHover?: (point: GlobePoint | null) => void;
76
+ /** Custom hover tooltip HTML. */
77
+ pointLabel?: (point: GlobePoint) => string;
78
+ /** Fixed height. Default `clamp(360px, 54vw, 560px)`. */
79
+ height?: string;
80
+ className?: string;
81
+ }
82
+ declare const DEFAULT_GEO_URL = "https://raw.githubusercontent.com/vasturiano/react-globe.gl/master/example/datasets/ne_110m_admin_0_countries.geojson";
83
+ type Arc = Required<Pick<GlobeArc, 'startLat' | 'startLng' | 'endLat' | 'endLng' | 'kind' | 'speed' | 'gap'>>;
84
+ /** Spokes from each city to its nearest hub, plus an optional hub ring. */
85
+ declare function buildArcs(points: GlobePoint[], connectHubs?: boolean): Arc[];
86
+ /**
87
+ * A branded WebGL globe on react-globe.gl: dotted-hex continents, hub and
88
+ * city dots with hover tooltips, animated hub-and-spoke arcs, slow
89
+ * auto-rotation (paused while dragging, off under reduced motion), and a
90
+ * pill callout for the selected point with an optional live local clock.
91
+ * Transparent background so it sits on any surface. Ported from the
92
+ * Enterprise Health global-reach section.
93
+ *
94
+ * Client-only — import from `@mieweb/ui/globe` behind `ssr: false`.
95
+ * Requires the optional peers `react-globe.gl` and `three`.
96
+ */
97
+ declare function Globe({ points, arcs, connectHubs, geoUrl, hexResolution, theme, pointOfView, autoRotateSpeed, enableZoom, callout, selectedId, onSelect, onPointHover, pointLabel, height, className, }: GlobeProps): react_jsx_runtime.JSX.Element;
98
+
99
+ export { DEFAULT_GEO_URL, Globe, type GlobeArc, type GlobePoint, type GlobeProps, type GlobeTheme, buildArcs };