@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
@@ -0,0 +1,297 @@
1
+ import { cn } from './chunk-TQONQSJO.js';
2
+ import * as React from 'react';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ var MONTH_LETTERS = [
6
+ "J",
7
+ "F",
8
+ "M",
9
+ "A",
10
+ "M",
11
+ "J",
12
+ "J",
13
+ "A",
14
+ "S",
15
+ "O",
16
+ "N",
17
+ "D"
18
+ ];
19
+ var MONTH_NAMES = [
20
+ "Jan",
21
+ "Feb",
22
+ "Mar",
23
+ "Apr",
24
+ "May",
25
+ "Jun",
26
+ "Jul",
27
+ "Aug",
28
+ "Sep",
29
+ "Oct",
30
+ "Nov",
31
+ "Dec"
32
+ ];
33
+ var TONES = [
34
+ "primary",
35
+ "accent",
36
+ "info",
37
+ "success",
38
+ "warning",
39
+ "neutral"
40
+ ];
41
+ var TONE_COLORS = {
42
+ primary: ["var(--mieweb-primary-600)", "var(--mieweb-primary-400)"],
43
+ accent: [
44
+ "var(--mieweb-accent, var(--mieweb-primary-500))",
45
+ "var(--mieweb-accent-light, var(--mieweb-primary-300))"
46
+ ],
47
+ success: [
48
+ "var(--mieweb-success)",
49
+ "color-mix(in srgb, var(--mieweb-success) 60%, #fff)"
50
+ ],
51
+ warning: [
52
+ "var(--mieweb-warning)",
53
+ "color-mix(in srgb, var(--mieweb-warning) 60%, #fff)"
54
+ ],
55
+ info: [
56
+ "var(--mieweb-info, var(--mieweb-primary-400))",
57
+ "color-mix(in srgb, var(--mieweb-info, var(--mieweb-primary-400)) 60%, #fff)"
58
+ ],
59
+ neutral: ["var(--mieweb-neutral-500)", "var(--mieweb-neutral-400)"]
60
+ };
61
+ var GROUP_TEXT = {
62
+ scheduled: "text-primary-800 dark:text-primary-300",
63
+ continuous: "text-success-800 dark:text-success",
64
+ event: "text-muted-foreground"
65
+ };
66
+ function cadenceOf(item) {
67
+ return item.cadence ?? (item.months?.length ? "scheduled" : "continuous");
68
+ }
69
+ function windowOf(item) {
70
+ if (!item.months?.length) return null;
71
+ return { start: Math.min(...item.months), end: Math.max(...item.months) };
72
+ }
73
+ function formatWindow(item, names) {
74
+ const w = windowOf(item);
75
+ if (!w) return null;
76
+ return w.start === w.end ? names[w.start - 1] : `${names[w.start - 1]}\u2013${names[w.end - 1]}`;
77
+ }
78
+ function resolveCurrent(items, month) {
79
+ const live = items.find((it) => it.months?.includes(month));
80
+ if (live) return { id: live.id, live: true };
81
+ let best = null;
82
+ let bestDelta = 99;
83
+ for (const it of items) {
84
+ if (!it.months?.length) continue;
85
+ const delta = (Math.min(...it.months) - month + 12) % 12;
86
+ if (delta > 0 && delta < bestDelta) {
87
+ bestDelta = delta;
88
+ best = it;
89
+ }
90
+ }
91
+ return best ? { id: best.id, live: false } : null;
92
+ }
93
+ function toMonth(today) {
94
+ return typeof today === "number" ? today : today.getMonth() + 1;
95
+ }
96
+ function YearTimeline({
97
+ items,
98
+ today,
99
+ labelHeading = "Obligation",
100
+ monthLabels = MONTH_LETTERS,
101
+ monthNames = MONTH_NAMES,
102
+ groupLabels,
103
+ labels,
104
+ highlightCurrent = true,
105
+ labelWidth = "300px",
106
+ className
107
+ }) {
108
+ const [mountedMonth, setMountedMonth] = React.useState(null);
109
+ React.useEffect(() => {
110
+ if (today === void 0) setMountedMonth((/* @__PURE__ */ new Date()).getMonth() + 1);
111
+ }, [today]);
112
+ const month = today === null ? null : today === void 0 ? mountedMonth : toMonth(today);
113
+ const current = month != null && highlightCurrent ? resolveCurrent(items, month) : null;
114
+ const nowFraction = month != null ? (month - 0.5) / 12 : null;
115
+ const groupTitle = {
116
+ scheduled: groupLabels?.scheduled ?? "On the calendar",
117
+ continuous: groupLabels?.continuous ?? "Runs all year",
118
+ event: groupLabels?.event ?? "As it happens"
119
+ };
120
+ const text = { today: "Today", now: "Now", upNext: "Up next", ...labels };
121
+ const groups = ["scheduled", "continuous", "event"].map((key) => ({
122
+ key,
123
+ items: items.filter((it) => cadenceOf(it) === key).sort(
124
+ (a, b) => (windowOf(a)?.start ?? 13) - (windowOf(b)?.start ?? 13)
125
+ )
126
+ })).filter((g) => g.items.length > 0);
127
+ let toneIndex = 0;
128
+ return /* @__PURE__ */ jsxs(
129
+ "div",
130
+ {
131
+ "data-slot": "year-timeline",
132
+ style: {
133
+ "--yt-label": labelWidth,
134
+ "--yt-now": nowFraction ?? void 0
135
+ },
136
+ className: cn(
137
+ "border-border bg-card text-card-foreground relative overflow-hidden rounded-xl border shadow-md",
138
+ // year ribbon
139
+ 'before:absolute before:inset-x-0 before:top-0 before:z-[4] before:h-1 before:content-[""]',
140
+ "before:[background:linear-gradient(90deg,var(--mieweb-accent,var(--mieweb-primary-400))_0%,var(--mieweb-primary-500)_50%,var(--mieweb-success)_80%,var(--mieweb-accent,var(--mieweb-primary-400))_100%)]",
141
+ className
142
+ ),
143
+ children: [
144
+ /* @__PURE__ */ jsxs("div", { className: "border-border bg-muted/50 hidden border-b md:grid md:grid-cols-[var(--yt-label)_1fr]", children: [
145
+ /* @__PURE__ */ jsx("div", { className: "border-border flex items-end border-e px-5 pt-3 pb-2.5", children: /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-[10px] font-bold tracking-[0.11em] uppercase", children: labelHeading }) }),
146
+ /* @__PURE__ */ jsxs("div", { className: "relative grid grid-cols-12", children: [
147
+ monthLabels.map((m, i) => /* @__PURE__ */ jsx(
148
+ "span",
149
+ {
150
+ className: cn(
151
+ "text-muted-foreground pt-3 pb-2.5 text-center text-[11px] font-bold tracking-wide",
152
+ i > 0 && "border-border/60 border-s"
153
+ ),
154
+ children: m
155
+ },
156
+ i
157
+ )),
158
+ nowFraction != null && /* @__PURE__ */ jsxs(
159
+ "span",
160
+ {
161
+ "data-slot": "year-timeline-today",
162
+ style: { left: `calc(var(--yt-now) * 100%)` },
163
+ className: "bg-primary-800 absolute top-1.5 z-[5] inline-flex -translate-x-1/2 items-center gap-1.5 rounded-full px-2 py-0.5 text-[9px] font-bold tracking-[0.09em] whitespace-nowrap text-white uppercase",
164
+ children: [
165
+ /* @__PURE__ */ jsx("i", { "aria-hidden": true, className: "h-1.5 w-1.5 rounded-full bg-white" }),
166
+ text.today
167
+ ]
168
+ }
169
+ )
170
+ ] })
171
+ ] }),
172
+ /* @__PURE__ */ jsxs("div", { className: "relative", children: [
173
+ /* @__PURE__ */ jsx(
174
+ "div",
175
+ {
176
+ "aria-hidden": true,
177
+ className: "pointer-events-none absolute inset-y-0 end-0 z-0 hidden md:block",
178
+ style: {
179
+ left: "var(--yt-label)",
180
+ backgroundImage: "repeating-linear-gradient(90deg, var(--mieweb-border) 0, var(--mieweb-border) 1px, transparent 1px, transparent calc(100% / 12))",
181
+ opacity: 0.5
182
+ }
183
+ }
184
+ ),
185
+ nowFraction != null && /* @__PURE__ */ jsx(
186
+ "span",
187
+ {
188
+ "aria-hidden": true,
189
+ "data-slot": "year-timeline-playhead",
190
+ style: {
191
+ left: "calc(var(--yt-label) + (100% - var(--yt-label)) * var(--yt-now))"
192
+ },
193
+ className: cn(
194
+ "pointer-events-none absolute inset-y-0 z-[3] hidden w-0.5 -translate-x-px md:block",
195
+ "[background:linear-gradient(180deg,var(--mieweb-primary-700),color-mix(in_srgb,var(--mieweb-primary-700)_15%,transparent))]",
196
+ 'before:bg-primary-700 before:absolute before:top-0 before:left-1/2 before:h-2.5 before:w-2.5 before:-translate-x-1/2 before:rounded-full before:content-[""]'
197
+ )
198
+ }
199
+ ),
200
+ groups.map((g, gi) => /* @__PURE__ */ jsxs("div", { "data-cadence": g.key, children: [
201
+ /* @__PURE__ */ jsx(
202
+ "div",
203
+ {
204
+ className: cn(
205
+ "bg-muted/30 relative z-[1] flex items-center gap-2 px-5 py-2.5 text-[10px] font-bold tracking-[0.12em] uppercase",
206
+ gi > 0 && "border-border border-t",
207
+ GROUP_TEXT[g.key]
208
+ ),
209
+ children: groupTitle[g.key]
210
+ }
211
+ ),
212
+ g.items.map((it) => {
213
+ const cadence = cadenceOf(it);
214
+ const w = windowOf(it);
215
+ const isCurrent = current?.id === it.id;
216
+ const [c1, c2] = it.colors ?? TONE_COLORS[it.tone ?? TONES[toneIndex++ % TONES.length]];
217
+ const caption = cadence === "scheduled" ? formatWindow(it, monthNames) : null;
218
+ const period = it.period ?? caption ?? groupTitle[cadence];
219
+ const Title = it.href ? "a" : "span";
220
+ return /* @__PURE__ */ jsxs(
221
+ "div",
222
+ {
223
+ "data-slot": "year-timeline-row",
224
+ "data-current": isCurrent ? current?.live ? "now" : "next" : void 0,
225
+ className: cn(
226
+ "border-border/60 relative z-[1] grid border-t transition-colors md:grid-cols-[var(--yt-label)_1fr]",
227
+ "hover:bg-muted/40",
228
+ isCurrent && "bg-primary-500/10 hover:bg-primary-500/10"
229
+ ),
230
+ children: [
231
+ /* @__PURE__ */ jsxs("div", { className: "md:border-border/60 px-5 pt-4 pb-2 md:border-e md:pb-4", children: [
232
+ /* @__PURE__ */ jsxs(
233
+ "div",
234
+ {
235
+ className: "mb-1.5 flex items-center gap-1.5 text-[10px] font-bold tracking-[0.09em] uppercase [&_svg]:h-3.5 [&_svg]:w-3.5",
236
+ style: { color: c1 },
237
+ children: [
238
+ it.icon,
239
+ /* @__PURE__ */ jsx("span", { children: period }),
240
+ isCurrent && /* @__PURE__ */ jsx("span", { className: "bg-primary-800 ms-auto rounded-full px-1.5 py-0.5 text-[9px] tracking-[0.08em] text-white", children: current?.live ? text.now : text.upNext })
241
+ ]
242
+ }
243
+ ),
244
+ /* @__PURE__ */ jsx(
245
+ Title,
246
+ {
247
+ href: it.href,
248
+ className: cn(
249
+ "text-foreground block text-base font-semibold",
250
+ it.href && "hover:underline"
251
+ ),
252
+ children: it.label
253
+ }
254
+ ),
255
+ it.detail && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground mt-1 text-sm leading-relaxed", children: it.detail })
256
+ ] }),
257
+ /* @__PURE__ */ jsx("div", { className: "grid grid-cols-12 items-center px-5 pb-4 md:px-0 md:py-3.5", children: /* @__PURE__ */ jsx(
258
+ "span",
259
+ {
260
+ "data-slot": "year-timeline-bar",
261
+ "data-cadence": cadence,
262
+ style: {
263
+ gridColumn: cadence === "scheduled" && w ? `${w.start} / ${w.end + 1}` : "1 / 13",
264
+ ...cadence === "scheduled" ? {
265
+ background: `linear-gradient(90deg, ${c1}, ${c2})`
266
+ } : cadence === "continuous" ? {
267
+ background: `linear-gradient(90deg, color-mix(in srgb, ${c1} 22%, transparent), color-mix(in srgb, ${c2} 22%, transparent))`,
268
+ borderColor: `color-mix(in srgb, ${c1} 45%, transparent)`
269
+ } : {
270
+ background: `repeating-linear-gradient(45deg, color-mix(in srgb, ${c1} 30%, transparent) 0 6px, transparent 6px 12px)`,
271
+ borderColor: `color-mix(in srgb, ${c1} 60%, transparent)`
272
+ }
273
+ },
274
+ className: cn(
275
+ "row-start-1 flex h-3.5 min-w-2.5 items-center justify-end rounded-full px-2 md:h-[22px]",
276
+ cadence === "scheduled" && "shadow-sm",
277
+ cadence === "continuous" && "border",
278
+ cadence === "event" && "border border-dashed"
279
+ ),
280
+ children: caption && /* @__PURE__ */ jsx("span", { className: "hidden text-[10px] font-bold tracking-wide text-white [text-shadow:0_1px_1px_rgba(0,0,0,0.3)] md:inline", children: caption })
281
+ }
282
+ ) })
283
+ ]
284
+ },
285
+ it.id
286
+ );
287
+ })
288
+ ] }, g.key))
289
+ ] })
290
+ ]
291
+ }
292
+ );
293
+ }
294
+
295
+ export { MONTH_LETTERS, MONTH_NAMES, YearTimeline, resolveCurrent };
296
+ //# sourceMappingURL=chunk-SQJFBZ42.js.map
297
+ //# sourceMappingURL=chunk-SQJFBZ42.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/YearTimeline/YearTimeline.tsx"],"names":[],"mappings":"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","file":"chunk-SQJFBZ42.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../utils/cn';\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/** How an item lives in the year. */\nexport type YearTimelineCadence = 'scheduled' | 'continuous' | 'event';\n\nexport type YearTimelineTone =\n | 'primary'\n | 'accent'\n | 'success'\n | 'warning'\n | 'info'\n | 'neutral';\n\nexport interface YearTimelineItem {\n id: string;\n /** Row title. */\n label: string;\n /** Supporting copy under the title. */\n detail?: string;\n /**\n * Eyebrow above the title, e.g. \"Jan–Feb\" or \"Year-round\". Defaults to the\n * formatted month window for scheduled items.\n */\n period?: string;\n /** Months (1–12) the item occupies. Drives the bar span and the live marker. */\n months?: number[];\n /**\n * `scheduled` bars span `months`; `continuous` and `event` run full-width in\n * their own lanes. Defaults to `scheduled` when `months` is set, else\n * `continuous`.\n */\n cadence?: YearTimelineCadence;\n /** Bar colour family. Default cycles through the tones. */\n tone?: YearTimelineTone;\n /** Any two CSS colours for a custom bar gradient — overrides `tone`. */\n colors?: [string, string];\n /** Small icon before the eyebrow (Lucide, 13px). */\n icon?: React.ReactNode;\n /** Makes the row title a link. */\n href?: string;\n}\n\nexport interface YearTimelineProps {\n items: YearTimelineItem[];\n /**\n * Which month (1–12) or date the playhead marks. Default: the viewer's\n * current month, resolved after mount. Pass `null` to hide the marker.\n */\n today?: Date | number | null;\n /** Column heading over the row labels. Default \"Obligation\". */\n labelHeading?: string;\n /** Twelve month tick labels. Default single letters. */\n monthLabels?: readonly string[];\n /** Twelve short month names used in period fallbacks and bar captions. */\n monthNames?: readonly string[];\n /** Lane headings by cadence. */\n groupLabels?: Partial<Record<YearTimelineCadence, string>>;\n /** Copy for the live marker and row badges. */\n labels?: { today?: string; now?: string; upNext?: string };\n /** Highlight the item happening now (or coming up next). Default true. */\n highlightCurrent?: boolean;\n /** Width of the label column. Default `300px`. */\n labelWidth?: string;\n className?: string;\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\nexport const MONTH_LETTERS = [\n 'J',\n 'F',\n 'M',\n 'A',\n 'M',\n 'J',\n 'J',\n 'A',\n 'S',\n 'O',\n 'N',\n 'D',\n] as const;\nexport const MONTH_NAMES = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n] as const;\n\nconst TONES: YearTimelineTone[] = [\n 'primary',\n 'accent',\n 'info',\n 'success',\n 'warning',\n 'neutral',\n];\n\nconst TONE_COLORS: Record<YearTimelineTone, [string, string]> = {\n primary: ['var(--mieweb-primary-600)', 'var(--mieweb-primary-400)'],\n accent: [\n 'var(--mieweb-accent, var(--mieweb-primary-500))',\n 'var(--mieweb-accent-light, var(--mieweb-primary-300))',\n ],\n success: [\n 'var(--mieweb-success)',\n 'color-mix(in srgb, var(--mieweb-success) 60%, #fff)',\n ],\n warning: [\n 'var(--mieweb-warning)',\n 'color-mix(in srgb, var(--mieweb-warning) 60%, #fff)',\n ],\n info: [\n 'var(--mieweb-info, var(--mieweb-primary-400))',\n 'color-mix(in srgb, var(--mieweb-info, var(--mieweb-primary-400)) 60%, #fff)',\n ],\n neutral: ['var(--mieweb-neutral-500)', 'var(--mieweb-neutral-400)'],\n};\n\nconst GROUP_TEXT: Record<YearTimelineCadence, string> = {\n scheduled: 'text-primary-800 dark:text-primary-300',\n continuous: 'text-success-800 dark:text-success',\n event: 'text-muted-foreground',\n};\n\nfunction cadenceOf(item: YearTimelineItem): YearTimelineCadence {\n return item.cadence ?? (item.months?.length ? 'scheduled' : 'continuous');\n}\n\nfunction windowOf(\n item: YearTimelineItem\n): { start: number; end: number } | null {\n if (!item.months?.length) return null;\n return { start: Math.min(...item.months), end: Math.max(...item.months) };\n}\n\nfunction formatWindow(\n item: YearTimelineItem,\n names: readonly string[]\n): string | null {\n const w = windowOf(item);\n if (!w) return null;\n return w.start === w.end\n ? names[w.start - 1]\n : `${names[w.start - 1]}–${names[w.end - 1]}`;\n}\n\n/** Item in `month`, else the next one coming up (wrapping the year). */\nexport function resolveCurrent(\n items: YearTimelineItem[],\n month: number\n): { id: string; live: boolean } | null {\n const live = items.find((it) => it.months?.includes(month));\n if (live) return { id: live.id, live: true };\n let best: YearTimelineItem | null = null;\n let bestDelta = 99;\n for (const it of items) {\n if (!it.months?.length) continue;\n const delta = (Math.min(...it.months) - month + 12) % 12;\n if (delta > 0 && delta < bestDelta) {\n bestDelta = delta;\n best = it;\n }\n }\n return best ? { id: best.id, live: false } : null;\n}\n\nfunction toMonth(today: Date | number): number {\n return typeof today === 'number' ? today : today.getMonth() + 1;\n}\n\n// =============================================================================\n// YearTimeline\n// =============================================================================\n\n/**\n * A year on one Gantt-style timeline: twelve month columns, rows grouped by\n * cadence (scheduled windows as gradient pill bars; continuous and\n * event-driven items in full-width lanes), month gridlines, and a live\n * playhead + \"Today\" pill marking the current month. The item happening now\n * (or up next) is highlighted. Ported from the Enterprise Health compliance\n * calendar; fits any recurring annual schedule — audits, filings, campaigns,\n * maintenance.\n *\n * Collapses to stacked rows without the month scale below `md`.\n */\nexport function YearTimeline({\n items,\n today,\n labelHeading = 'Obligation',\n monthLabels = MONTH_LETTERS,\n monthNames = MONTH_NAMES,\n groupLabels,\n labels,\n highlightCurrent = true,\n labelWidth = '300px',\n className,\n}: YearTimelineProps) {\n // The viewer's clock is only known after mount (SSR-safe).\n const [mountedMonth, setMountedMonth] = React.useState<number | null>(null);\n React.useEffect(() => {\n if (today === undefined) setMountedMonth(new Date().getMonth() + 1);\n }, [today]);\n\n const month =\n today === null ? null : today === undefined ? mountedMonth : toMonth(today);\n const current =\n month != null && highlightCurrent ? resolveCurrent(items, month) : null;\n const nowFraction = month != null ? (month - 0.5) / 12 : null;\n\n const groupTitle: Record<YearTimelineCadence, string> = {\n scheduled: groupLabels?.scheduled ?? 'On the calendar',\n continuous: groupLabels?.continuous ?? 'Runs all year',\n event: groupLabels?.event ?? 'As it happens',\n };\n const text = { today: 'Today', now: 'Now', upNext: 'Up next', ...labels };\n\n const groups = (['scheduled', 'continuous', 'event'] as const)\n .map((key) => ({\n key,\n items: items\n .filter((it) => cadenceOf(it) === key)\n .sort(\n (a, b) => (windowOf(a)?.start ?? 13) - (windowOf(b)?.start ?? 13)\n ),\n }))\n .filter((g) => g.items.length > 0);\n\n let toneIndex = 0;\n\n return (\n <div\n data-slot=\"year-timeline\"\n style={\n {\n '--yt-label': labelWidth,\n '--yt-now': nowFraction ?? undefined,\n } as React.CSSProperties\n }\n className={cn(\n 'border-border bg-card text-card-foreground relative overflow-hidden rounded-xl border shadow-md',\n // year ribbon\n 'before:absolute before:inset-x-0 before:top-0 before:z-[4] before:h-1 before:content-[\"\"]',\n 'before:[background:linear-gradient(90deg,var(--mieweb-accent,var(--mieweb-primary-400))_0%,var(--mieweb-primary-500)_50%,var(--mieweb-success)_80%,var(--mieweb-accent,var(--mieweb-primary-400))_100%)]',\n className\n )}\n >\n {/* Head: label heading + month scale */}\n <div className=\"border-border bg-muted/50 hidden border-b md:grid md:grid-cols-[var(--yt-label)_1fr]\">\n <div className=\"border-border flex items-end border-e px-5 pt-3 pb-2.5\">\n <span className=\"text-muted-foreground text-[10px] font-bold tracking-[0.11em] uppercase\">\n {labelHeading}\n </span>\n </div>\n <div className=\"relative grid grid-cols-12\">\n {monthLabels.map((m, i) => (\n <span\n key={i}\n className={cn(\n 'text-muted-foreground pt-3 pb-2.5 text-center text-[11px] font-bold tracking-wide',\n i > 0 && 'border-border/60 border-s'\n )}\n >\n {m}\n </span>\n ))}\n {nowFraction != null && (\n <span\n data-slot=\"year-timeline-today\"\n style={{ left: `calc(var(--yt-now) * 100%)` }}\n className=\"bg-primary-800 absolute top-1.5 z-[5] inline-flex -translate-x-1/2 items-center gap-1.5 rounded-full px-2 py-0.5 text-[9px] font-bold tracking-[0.09em] whitespace-nowrap text-white uppercase\"\n >\n <i aria-hidden className=\"h-1.5 w-1.5 rounded-full bg-white\" />\n {text.today}\n </span>\n )}\n </div>\n </div>\n\n {/* Body */}\n <div className=\"relative\">\n {/* month gridlines */}\n <div\n aria-hidden\n className=\"pointer-events-none absolute inset-y-0 end-0 z-0 hidden md:block\"\n style={{\n left: 'var(--yt-label)',\n backgroundImage:\n 'repeating-linear-gradient(90deg, var(--mieweb-border) 0, var(--mieweb-border) 1px, transparent 1px, transparent calc(100% / 12))',\n opacity: 0.5,\n }}\n />\n {nowFraction != null && (\n <span\n aria-hidden\n data-slot=\"year-timeline-playhead\"\n style={{\n left: 'calc(var(--yt-label) + (100% - var(--yt-label)) * var(--yt-now))',\n }}\n className={cn(\n 'pointer-events-none absolute inset-y-0 z-[3] hidden w-0.5 -translate-x-px md:block',\n '[background:linear-gradient(180deg,var(--mieweb-primary-700),color-mix(in_srgb,var(--mieweb-primary-700)_15%,transparent))]',\n 'before:bg-primary-700 before:absolute before:top-0 before:left-1/2 before:h-2.5 before:w-2.5 before:-translate-x-1/2 before:rounded-full before:content-[\"\"]'\n )}\n />\n )}\n\n {groups.map((g, gi) => (\n <div key={g.key} data-cadence={g.key}>\n <div\n className={cn(\n 'bg-muted/30 relative z-[1] flex items-center gap-2 px-5 py-2.5 text-[10px] font-bold tracking-[0.12em] uppercase',\n gi > 0 && 'border-border border-t',\n GROUP_TEXT[g.key]\n )}\n >\n {groupTitle[g.key]}\n </div>\n\n {g.items.map((it) => {\n const cadence = cadenceOf(it);\n const w = windowOf(it);\n const isCurrent = current?.id === it.id;\n const [c1, c2] =\n it.colors ??\n TONE_COLORS[it.tone ?? TONES[toneIndex++ % TONES.length]];\n const caption =\n cadence === 'scheduled' ? formatWindow(it, monthNames) : null;\n const period = it.period ?? caption ?? groupTitle[cadence];\n const Title = it.href ? 'a' : 'span';\n\n return (\n <div\n key={it.id}\n data-slot=\"year-timeline-row\"\n data-current={\n isCurrent ? (current?.live ? 'now' : 'next') : undefined\n }\n className={cn(\n 'border-border/60 relative z-[1] grid border-t transition-colors md:grid-cols-[var(--yt-label)_1fr]',\n 'hover:bg-muted/40',\n isCurrent && 'bg-primary-500/10 hover:bg-primary-500/10'\n )}\n >\n <div className=\"md:border-border/60 px-5 pt-4 pb-2 md:border-e md:pb-4\">\n <div\n className=\"mb-1.5 flex items-center gap-1.5 text-[10px] font-bold tracking-[0.09em] uppercase [&_svg]:h-3.5 [&_svg]:w-3.5\"\n style={{ color: c1 }}\n >\n {it.icon}\n <span>{period}</span>\n {isCurrent && (\n <span className=\"bg-primary-800 ms-auto rounded-full px-1.5 py-0.5 text-[9px] tracking-[0.08em] text-white\">\n {current?.live ? text.now : text.upNext}\n </span>\n )}\n </div>\n <Title\n href={it.href}\n className={cn(\n 'text-foreground block text-base font-semibold',\n it.href && 'hover:underline'\n )}\n >\n {it.label}\n </Title>\n {it.detail && (\n <p className=\"text-muted-foreground mt-1 text-sm leading-relaxed\">\n {it.detail}\n </p>\n )}\n </div>\n\n <div className=\"grid grid-cols-12 items-center px-5 pb-4 md:px-0 md:py-3.5\">\n <span\n data-slot=\"year-timeline-bar\"\n data-cadence={cadence}\n style={{\n gridColumn:\n cadence === 'scheduled' && w\n ? `${w.start} / ${w.end + 1}`\n : '1 / 13',\n ...(cadence === 'scheduled'\n ? {\n background: `linear-gradient(90deg, ${c1}, ${c2})`,\n }\n : cadence === 'continuous'\n ? {\n background: `linear-gradient(90deg, color-mix(in srgb, ${c1} 22%, transparent), color-mix(in srgb, ${c2} 22%, transparent))`,\n borderColor: `color-mix(in srgb, ${c1} 45%, transparent)`,\n }\n : {\n background: `repeating-linear-gradient(45deg, color-mix(in srgb, ${c1} 30%, transparent) 0 6px, transparent 6px 12px)`,\n borderColor: `color-mix(in srgb, ${c1} 60%, transparent)`,\n }),\n }}\n className={cn(\n 'row-start-1 flex h-3.5 min-w-2.5 items-center justify-end rounded-full px-2 md:h-[22px]',\n cadence === 'scheduled' && 'shadow-sm',\n cadence === 'continuous' && 'border',\n cadence === 'event' && 'border border-dashed'\n )}\n >\n {caption && (\n <span className=\"hidden text-[10px] font-bold tracking-wide text-white [text-shadow:0_1px_1px_rgba(0,0,0,0.3)] md:inline\">\n {caption}\n </span>\n )}\n </span>\n </div>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n );\n}\n"]}
@@ -0,0 +1,156 @@
1
+ import { cn } from './chunk-TQONQSJO.js';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+
4
+ function OrbitRing({
5
+ rings,
6
+ center,
7
+ centerSize = 0.21,
8
+ chipSize = 0.13,
9
+ glow = true,
10
+ size = "min(440px, 86vw)",
11
+ pauseOnHover = true,
12
+ className
13
+ }) {
14
+ return /* @__PURE__ */ jsxs(
15
+ "div",
16
+ {
17
+ "data-slot": "orbit-ring",
18
+ style: { width: size },
19
+ className: cn(
20
+ "group/orbit [container-type:size] relative mx-auto aspect-square",
21
+ className
22
+ ),
23
+ children: [
24
+ glow && /* @__PURE__ */ jsx(
25
+ "span",
26
+ {
27
+ "aria-hidden": true,
28
+ className: "pointer-events-none absolute inset-0 rounded-full [background:radial-gradient(closest-side,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-300))_30%,transparent)_0%,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-300))_12%,transparent)_42%,transparent_78%)]"
29
+ }
30
+ ),
31
+ rings.map((r, i) => /* @__PURE__ */ jsx(
32
+ "span",
33
+ {
34
+ "aria-hidden": true,
35
+ style: {
36
+ width: `${r.radius * 200}cqmin`,
37
+ height: `${r.radius * 200}cqmin`
38
+ },
39
+ className: cn(
40
+ "border-primary-200 dark:border-primary-800 pointer-events-none absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full border",
41
+ r.dashed ?? i % 2 === 1 ? "border-dashed opacity-40" : "opacity-50"
42
+ )
43
+ },
44
+ `path-${i}`
45
+ )),
46
+ /* @__PURE__ */ jsx(
47
+ "span",
48
+ {
49
+ "aria-hidden": true,
50
+ "data-slot": "orbit-ring-center",
51
+ style: {
52
+ width: `${centerSize * 100}cqmin`,
53
+ height: `${centerSize * 100}cqmin`
54
+ },
55
+ className: cn(
56
+ "pointer-events-none absolute top-1/2 left-1/2 grid -translate-x-1/2 -translate-y-1/2 place-items-center rounded-full",
57
+ "[background:radial-gradient(circle_at_50%_38%,#fff_0%,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-200))_14%,#fff)_52%,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-200))_30%,#fff)_100%)]",
58
+ "shadow-[0_0_0_1px_color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-400))_35%,transparent),0_10px_30px_rgba(0,0,0,0.18),0_0_46px_color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-400))_42%,transparent)]",
59
+ "[&>svg]:text-primary-800 [&>*]:h-[64%] [&>*]:w-[64%] [&>img]:object-contain"
60
+ ),
61
+ children: center
62
+ }
63
+ ),
64
+ rings.map((r, i) => {
65
+ const direction = r.direction ?? (i % 2 === 0 ? "normal" : "reverse");
66
+ const dur = `${r.durationSec ?? (i === 0 ? 88 : 88 + 36 * i)}s`;
67
+ const n = r.satellites.length;
68
+ return /* @__PURE__ */ jsx(
69
+ "div",
70
+ {
71
+ "data-slot": "orbit-ring-track",
72
+ style: {
73
+ "--dur": dur,
74
+ animationDirection: direction
75
+ },
76
+ className: cn(
77
+ "pointer-events-none absolute inset-0",
78
+ "motion-safe:animate-[mie-spin_var(--dur)_linear_infinite]",
79
+ pauseOnHover && "group-focus-within/orbit:[animation-play-state:paused] group-hover/orbit:[animation-play-state:paused]"
80
+ ),
81
+ children: r.satellites.map((s, j) => {
82
+ const a = (360 / n * j + (r.offsetDeg ?? 0)) * (Math.PI / 180);
83
+ const x = (r.radius * 100 * Math.cos(a)).toFixed(2);
84
+ const y = (r.radius * 100 * Math.sin(a)).toFixed(2);
85
+ const shell = {
86
+ "aria-label": s.name,
87
+ "data-slot": "orbit-ring-satellite",
88
+ style: {
89
+ width: `${chipSize * 100}cqmin`,
90
+ height: `${chipSize * 100}cqmin`,
91
+ transform: `translate(-50%, -50%) translate(${x}cqmin, ${y}cqmin)`
92
+ },
93
+ className: (
94
+ // rtl-ignore -- satellites are placed by trig math with a physical translate(); the ring is rotationally symmetric
95
+ "group/sat pointer-events-auto absolute left-1/2 top-1/2 grid place-items-center focus-visible:outline-none"
96
+ )
97
+ };
98
+ const chip = /* @__PURE__ */ jsxs(
99
+ "span",
100
+ {
101
+ style: {
102
+ animationDirection: direction === "normal" ? "reverse" : "normal"
103
+ },
104
+ className: cn(
105
+ "border-border bg-card/90 relative grid h-full w-full place-items-center rounded-full border shadow-md transition-[transform,box-shadow,background] duration-200",
106
+ "motion-safe:animate-[mie-spin_var(--dur)_linear_infinite]",
107
+ pauseOnHover && "group-focus-within/orbit:[animation-play-state:paused] group-hover/orbit:[animation-play-state:paused]",
108
+ "group-hover/sat:bg-card group-hover/sat:scale-[1.12] group-hover/sat:shadow-xl",
109
+ "group-focus-visible/sat:outline-primary-500 group-focus-visible/sat:scale-[1.12] group-focus-visible/sat:outline group-focus-visible/sat:outline-2 group-focus-visible/sat:outline-offset-[3px]",
110
+ "[&>img]:h-[64%] [&>img]:w-[64%] [&>img]:object-contain [&>img]:opacity-90 [&>img]:saturate-[0.9] group-hover/sat:[&>img]:opacity-100 group-hover/sat:[&>img]:saturate-100",
111
+ "[&>svg]:text-primary-800 [&>svg]:h-[46%] [&>svg]:w-[46%]"
112
+ ),
113
+ children: [
114
+ s.children ?? /* @__PURE__ */ jsx("span", { className: "text-primary-800 text-sm font-bold", children: s.name.slice(0, 2) }),
115
+ /* @__PURE__ */ jsx(
116
+ "span",
117
+ {
118
+ className: cn(
119
+ "border-border bg-card text-foreground pointer-events-none absolute top-[calc(100%+5px)] left-1/2 -translate-x-1/2 rounded-md border px-1.5 py-0.5 text-[11px] font-semibold whitespace-nowrap shadow-md",
120
+ "opacity-0 transition-opacity duration-150 group-hover/sat:opacity-100 group-focus-visible/sat:opacity-100"
121
+ ),
122
+ children: s.name
123
+ }
124
+ )
125
+ ]
126
+ }
127
+ );
128
+ if (s.href) {
129
+ return /* @__PURE__ */ jsx("a", { href: s.href, onClick: s.onClick, ...shell, children: chip }, s.id);
130
+ }
131
+ if (s.onClick) {
132
+ return /* @__PURE__ */ jsx(
133
+ "button",
134
+ {
135
+ type: "button",
136
+ onClick: s.onClick,
137
+ ...shell,
138
+ children: chip
139
+ },
140
+ s.id
141
+ );
142
+ }
143
+ return /* @__PURE__ */ jsx("span", { role: "img", ...shell, children: chip }, s.id);
144
+ })
145
+ },
146
+ `ring-${i}`
147
+ );
148
+ })
149
+ ]
150
+ }
151
+ );
152
+ }
153
+
154
+ export { OrbitRing };
155
+ //# sourceMappingURL=chunk-SUS3WFY3.js.map
156
+ //# sourceMappingURL=chunk-SUS3WFY3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/OrbitRing/OrbitRing.tsx"],"names":[],"mappings":"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","file":"chunk-SUS3WFY3.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../utils/cn';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface OrbitSatellite {\n id: string;\n /** Accessible name; shown as a hover label. */\n name: string;\n /** Logo/icon content — an `<img>`, a Lucide icon, or a lettermark. */\n children?: React.ReactNode;\n /** Makes the chip a link. */\n href?: string;\n onClick?: () => void;\n}\n\nexport interface OrbitRingDef {\n satellites: OrbitSatellite[];\n /** Orbit radius as a fraction of the stage (0–0.5). */\n radius: number;\n /** One rotation, in seconds. Default 88 (inner) / 124 (outer). */\n durationSec?: number;\n /** Spin direction. Default alternates per ring. */\n direction?: 'normal' | 'reverse';\n /** Starting angle offset in degrees. */\n offsetDeg?: number;\n /** Draw the orbit path as a dashed rather than solid circle. */\n dashed?: boolean;\n}\n\nexport interface OrbitRingProps {\n /** Concentric rings, inner first. */\n rings: OrbitRingDef[];\n /** What sits at the centre — a brand mark, a product tile. */\n center?: React.ReactNode;\n /** Diameter of the centre disc as a fraction of the stage. Default 0.21. */\n centerSize?: number;\n /** Diameter of each satellite chip as a fraction of the stage. Default 0.13. */\n chipSize?: number;\n /** Show the warm radial glow behind the centre. Default true. */\n glow?: boolean;\n /** Stage width. Default `min(440px, 86vw)`. */\n size?: string;\n /** Pause everything while hovered/focused. Default true. */\n pauseOnHover?: boolean;\n className?: string;\n}\n\n// =============================================================================\n// OrbitRing\n// =============================================================================\n\n/**\n * A \"solar system\" of logos: concentric rings of satellite chips orbiting a\n * centre mark at different speeds and directions, chips counter-rotating so\n * they stay upright, the whole system pausing while a visitor explores it.\n * Sizes are container-relative, so it scales with its box. Ported from the\n * Enterprise Health integrations section.\n *\n * @example\n * ```tsx\n * <OrbitRing\n * center={<img src=\"/logo.svg\" alt=\"\" />}\n * rings={[\n * { radius: 0.26, satellites: partners.slice(0, 5).map(p => ({ id: p.slug, name: p.name, href: p.href, children: <img src={p.logo} alt=\"\" /> })) },\n * { radius: 0.4, satellites: partners.slice(5).map(...) , dashed: true },\n * ]}\n * />\n * ```\n */\nexport function OrbitRing({\n rings,\n center,\n centerSize = 0.21,\n chipSize = 0.13,\n glow = true,\n size = 'min(440px, 86vw)',\n pauseOnHover = true,\n className,\n}: OrbitRingProps) {\n return (\n <div\n data-slot=\"orbit-ring\"\n style={{ width: size }}\n className={cn(\n 'group/orbit [container-type:size] relative mx-auto aspect-square',\n className\n )}\n >\n {glow && (\n <span\n aria-hidden\n className=\"pointer-events-none absolute inset-0 rounded-full [background:radial-gradient(closest-side,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-300))_30%,transparent)_0%,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-300))_12%,transparent)_42%,transparent_78%)]\"\n />\n )}\n\n {/* orbit paths */}\n {rings.map((r, i) => (\n <span\n key={`path-${i}`}\n aria-hidden\n style={{\n width: `${r.radius * 200}cqmin`,\n height: `${r.radius * 200}cqmin`,\n }}\n className={cn(\n 'border-primary-200 dark:border-primary-800 pointer-events-none absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full border',\n (r.dashed ?? i % 2 === 1)\n ? 'border-dashed opacity-40'\n : 'opacity-50'\n )}\n />\n ))}\n\n {/* centre */}\n <span\n aria-hidden\n data-slot=\"orbit-ring-center\"\n style={{\n width: `${centerSize * 100}cqmin`,\n height: `${centerSize * 100}cqmin`,\n }}\n className={cn(\n 'pointer-events-none absolute top-1/2 left-1/2 grid -translate-x-1/2 -translate-y-1/2 place-items-center rounded-full',\n '[background:radial-gradient(circle_at_50%_38%,#fff_0%,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-200))_14%,#fff)_52%,color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-200))_30%,#fff)_100%)]',\n 'shadow-[0_0_0_1px_color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-400))_35%,transparent),0_10px_30px_rgba(0,0,0,0.18),0_0_46px_color-mix(in_srgb,var(--mieweb-accent,var(--mieweb-primary-400))_42%,transparent)]',\n '[&>svg]:text-primary-800 [&>*]:h-[64%] [&>*]:w-[64%] [&>img]:object-contain'\n )}\n >\n {center}\n </span>\n\n {/* rings */}\n {rings.map((r, i) => {\n const direction = r.direction ?? (i % 2 === 0 ? 'normal' : 'reverse');\n const dur = `${r.durationSec ?? (i === 0 ? 88 : 88 + 36 * i)}s`;\n const n = r.satellites.length;\n return (\n <div\n key={`ring-${i}`}\n data-slot=\"orbit-ring-track\"\n style={\n {\n '--dur': dur,\n animationDirection: direction,\n } as React.CSSProperties\n }\n className={cn(\n 'pointer-events-none absolute inset-0',\n 'motion-safe:animate-[mie-spin_var(--dur)_linear_infinite]',\n pauseOnHover &&\n 'group-focus-within/orbit:[animation-play-state:paused] group-hover/orbit:[animation-play-state:paused]'\n )}\n >\n {r.satellites.map((s, j) => {\n const a = ((360 / n) * j + (r.offsetDeg ?? 0)) * (Math.PI / 180);\n const x = (r.radius * 100 * Math.cos(a)).toFixed(2);\n const y = (r.radius * 100 * Math.sin(a)).toFixed(2);\n const shell = {\n 'aria-label': s.name,\n 'data-slot': 'orbit-ring-satellite',\n style: {\n width: `${chipSize * 100}cqmin`,\n height: `${chipSize * 100}cqmin`,\n transform: `translate(-50%, -50%) translate(${x}cqmin, ${y}cqmin)`,\n },\n className:\n // rtl-ignore -- satellites are placed by trig math with a physical translate(); the ring is rotationally symmetric\n 'group/sat pointer-events-auto absolute left-1/2 top-1/2 grid place-items-center focus-visible:outline-none',\n };\n const chip = (\n <span\n // counter-spin keeps the logo upright; direction is the inverse of the ring's\n style={{\n animationDirection:\n direction === 'normal' ? 'reverse' : 'normal',\n }}\n className={cn(\n 'border-border bg-card/90 relative grid h-full w-full place-items-center rounded-full border shadow-md transition-[transform,box-shadow,background] duration-200',\n 'motion-safe:animate-[mie-spin_var(--dur)_linear_infinite]',\n pauseOnHover &&\n 'group-focus-within/orbit:[animation-play-state:paused] group-hover/orbit:[animation-play-state:paused]',\n 'group-hover/sat:bg-card group-hover/sat:scale-[1.12] group-hover/sat:shadow-xl',\n 'group-focus-visible/sat:outline-primary-500 group-focus-visible/sat:scale-[1.12] group-focus-visible/sat:outline group-focus-visible/sat:outline-2 group-focus-visible/sat:outline-offset-[3px]',\n '[&>img]:h-[64%] [&>img]:w-[64%] [&>img]:object-contain [&>img]:opacity-90 [&>img]:saturate-[0.9] group-hover/sat:[&>img]:opacity-100 group-hover/sat:[&>img]:saturate-100',\n '[&>svg]:text-primary-800 [&>svg]:h-[46%] [&>svg]:w-[46%]'\n )}\n >\n {s.children ?? (\n <span className=\"text-primary-800 text-sm font-bold\">\n {s.name.slice(0, 2)}\n </span>\n )}\n <span\n className={cn(\n 'border-border bg-card text-foreground pointer-events-none absolute top-[calc(100%+5px)] left-1/2 -translate-x-1/2 rounded-md border px-1.5 py-0.5 text-[11px] font-semibold whitespace-nowrap shadow-md',\n 'opacity-0 transition-opacity duration-150 group-hover/sat:opacity-100 group-focus-visible/sat:opacity-100'\n )}\n >\n {s.name}\n </span>\n </span>\n );\n if (s.href) {\n return (\n <a key={s.id} href={s.href} onClick={s.onClick} {...shell}>\n {chip}\n </a>\n );\n }\n if (s.onClick) {\n return (\n <button\n key={s.id}\n type=\"button\"\n onClick={s.onClick}\n {...shell}\n >\n {chip}\n </button>\n );\n }\n return (\n <span key={s.id} role=\"img\" {...shell}>\n {chip}\n </span>\n );\n })}\n </div>\n );\n })}\n </div>\n );\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
4
- var chunkFHY3K6PL_cjs = require('./chunk-FHY3K6PL.cjs');
5
3
  var chunkAOHJILLU_cjs = require('./chunk-AOHJILLU.cjs');
4
+ var chunkFHY3K6PL_cjs = require('./chunk-FHY3K6PL.cjs');
5
+ var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
6
6
  var React = require('react');
7
7
  var reactDom = require('react-dom');
8
8
  var lucideReact = require('lucide-react');
@@ -293,5 +293,5 @@ function GlossaryTooltip({
293
293
  }
294
294
 
295
295
  exports.GlossaryTooltip = GlossaryTooltip;
296
- //# sourceMappingURL=chunk-H4AVMUOC.cjs.map
297
- //# sourceMappingURL=chunk-H4AVMUOC.cjs.map
296
+ //# sourceMappingURL=chunk-TAXD5ADA.cjs.map
297
+ //# sourceMappingURL=chunk-TAXD5ADA.cjs.map