@mieweb/ui 0.10.0-dev.9 → 0.11.0-dev.0

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 (807) hide show
  1. package/README.md +4 -4
  2. package/agent/mieweb-ui.instructions.md +77 -0
  3. package/dist/CsvBlock-CFXSDPBI.js +9 -0
  4. package/dist/{CsvBlock-UWPMTLE2.js.map → CsvBlock-CFXSDPBI.js.map} +1 -1
  5. package/dist/CsvBlock-RGO7JXHJ.cjs +18 -0
  6. package/dist/{CsvBlock-ROJCKJDP.cjs.map → CsvBlock-RGO7JXHJ.cjs.map} +1 -1
  7. package/dist/HtmlPreviewBlock-VBYXCXVT.cjs +18 -0
  8. package/dist/{HtmlPreviewBlock-DWFN6EUB.cjs.map → HtmlPreviewBlock-VBYXCXVT.cjs.map} +1 -1
  9. package/dist/HtmlPreviewBlock-Z2GCK325.js +9 -0
  10. package/dist/{HtmlPreviewBlock-ME5U3XNS.js.map → HtmlPreviewBlock-Z2GCK325.js.map} +1 -1
  11. package/dist/MermaidBlock-I2R2BQOX.cjs +18 -0
  12. package/dist/{MermaidBlock-D2UC5M55.cjs.map → MermaidBlock-I2R2BQOX.cjs.map} +1 -1
  13. package/dist/MermaidBlock-XCAK7IA5.js +9 -0
  14. package/dist/{MermaidBlock-2B6CPD6Y.js.map → MermaidBlock-XCAK7IA5.js.map} +1 -1
  15. package/dist/SurveyBlock-KI5JOWCL.js +9 -0
  16. package/dist/{SurveyBlock-4DO62RBT.js.map → SurveyBlock-KI5JOWCL.js.map} +1 -1
  17. package/dist/SurveyBlock-UKSGISRT.cjs +18 -0
  18. package/dist/{SurveyBlock-4CD4AYMJ.cjs.map → SurveyBlock-UKSGISRT.cjs.map} +1 -1
  19. package/dist/ag-grid.d.cts +142 -1
  20. package/dist/ag-grid.d.ts +142 -1
  21. package/dist/brands/bluehive.cjs +3 -3
  22. package/dist/brands/bluehive.css +3 -0
  23. package/dist/brands/bluehive.js +1 -1
  24. package/dist/brands/index.cjs +17 -17
  25. package/dist/brands/index.js +4 -4
  26. package/dist/{chunk-JYZW2PZS.cjs → chunk-254QK722.cjs} +7 -7
  27. package/dist/chunk-254QK722.cjs.map +1 -0
  28. package/dist/{chunk-4IS3QCOQ.cjs → chunk-2FZYZ4HT.cjs} +4 -3
  29. package/dist/chunk-2FZYZ4HT.cjs.map +1 -0
  30. package/dist/{chunk-VPIYTQCV.cjs → chunk-2I4IRQQG.cjs} +12 -5
  31. package/dist/chunk-2I4IRQQG.cjs.map +1 -0
  32. package/dist/{chunk-IT775BYG.js → chunk-2W73UQ3T.js} +4 -3
  33. package/dist/chunk-2W73UQ3T.js.map +1 -0
  34. package/dist/chunk-2X54ZLT6.js +874 -0
  35. package/dist/chunk-2X54ZLT6.js.map +1 -0
  36. package/dist/{chunk-5MCBWTIF.cjs → chunk-32ZCJOSR.cjs} +4 -4
  37. package/dist/{chunk-5MCBWTIF.cjs.map → chunk-32ZCJOSR.cjs.map} +1 -1
  38. package/dist/{chunk-WNJRS7Y7.cjs → chunk-3ZWCIPFT.cjs} +4 -2
  39. package/dist/chunk-3ZWCIPFT.cjs.map +1 -0
  40. package/dist/chunk-434L5RYF.js +314 -0
  41. package/dist/chunk-434L5RYF.js.map +1 -0
  42. package/dist/{chunk-TPWKM7JH.js → chunk-43K7OQ3E.js} +3 -3
  43. package/dist/{chunk-TPWKM7JH.js.map → chunk-43K7OQ3E.js.map} +1 -1
  44. package/dist/chunk-47P5QLX4.cjs +42 -0
  45. package/dist/chunk-47P5QLX4.cjs.map +1 -0
  46. package/dist/{chunk-CR2SDI23.cjs → chunk-4QYYWYFD.cjs} +8 -7
  47. package/dist/chunk-4QYYWYFD.cjs.map +1 -0
  48. package/dist/{chunk-76TBQDED.js → chunk-4RI3CQGE.js} +6 -6
  49. package/dist/{chunk-76TBQDED.js.map → chunk-4RI3CQGE.js.map} +1 -1
  50. package/dist/chunk-4ZB7RSMY.cjs +306 -0
  51. package/dist/chunk-4ZB7RSMY.cjs.map +1 -0
  52. package/dist/chunk-522WJIVI.js +99 -0
  53. package/dist/chunk-522WJIVI.js.map +1 -0
  54. package/dist/chunk-56VTM4OX.js +261 -0
  55. package/dist/chunk-56VTM4OX.js.map +1 -0
  56. package/dist/chunk-5HKZR6UG.js +248 -0
  57. package/dist/chunk-5HKZR6UG.js.map +1 -0
  58. package/dist/chunk-6BNZLN4B.cjs +548 -0
  59. package/dist/chunk-6BNZLN4B.cjs.map +1 -0
  60. package/dist/chunk-6N7NMOSV.js +233 -0
  61. package/dist/chunk-6N7NMOSV.js.map +1 -0
  62. package/dist/chunk-6TTCZY3P.cjs +4 -0
  63. package/dist/chunk-6TTCZY3P.cjs.map +1 -0
  64. package/dist/{chunk-YQDA366U.js → chunk-753ENNB6.js} +2 -2
  65. package/dist/{chunk-YQDA366U.js.map → chunk-753ENNB6.js.map} +1 -1
  66. package/dist/{chunk-N6IY47YA.cjs → chunk-7C5W744U.cjs} +8 -8
  67. package/dist/{chunk-N6IY47YA.cjs.map → chunk-7C5W744U.cjs.map} +1 -1
  68. package/dist/chunk-7E46YDOT.cjs +122 -0
  69. package/dist/chunk-7E46YDOT.cjs.map +1 -0
  70. package/dist/chunk-7HUTR6RX.js +178 -0
  71. package/dist/chunk-7HUTR6RX.js.map +1 -0
  72. package/dist/chunk-7IRTD4JT.cjs +61 -0
  73. package/dist/chunk-7IRTD4JT.cjs.map +1 -0
  74. package/dist/{chunk-KZFBQ7GY.js → chunk-7QW6TU4X.js} +3 -3
  75. package/dist/{chunk-KZFBQ7GY.js.map → chunk-7QW6TU4X.js.map} +1 -1
  76. package/dist/{chunk-MWVW4APN.cjs → chunk-7UTBDFFL.cjs} +4 -4
  77. package/dist/{chunk-MWVW4APN.cjs.map → chunk-7UTBDFFL.cjs.map} +1 -1
  78. package/dist/chunk-7WJ6MBF5.cjs +47 -0
  79. package/dist/chunk-7WJ6MBF5.cjs.map +1 -0
  80. package/dist/{chunk-FJ7YPVKV.js → chunk-7X6R3JIA.js} +3 -3
  81. package/dist/{chunk-FJ7YPVKV.js.map → chunk-7X6R3JIA.js.map} +1 -1
  82. package/dist/chunk-A4W5CSK7.cjs +216 -0
  83. package/dist/chunk-A4W5CSK7.cjs.map +1 -0
  84. package/dist/{chunk-2G75X6TS.cjs → chunk-AHHFFXJR.cjs} +3 -3
  85. package/dist/{chunk-2G75X6TS.cjs.map → chunk-AHHFFXJR.cjs.map} +1 -1
  86. package/dist/chunk-AJPFQF3H.cjs +896 -0
  87. package/dist/chunk-AJPFQF3H.cjs.map +1 -0
  88. package/dist/chunk-AMYFRY7K.js +3 -0
  89. package/dist/chunk-AMYFRY7K.js.map +1 -0
  90. package/dist/{chunk-VNYW4C4J.cjs → chunk-ANMX7YDL.cjs} +4 -84
  91. package/dist/chunk-ANMX7YDL.cjs.map +1 -0
  92. package/dist/chunk-ARIJ5OHW.cjs +139 -0
  93. package/dist/chunk-ARIJ5OHW.cjs.map +1 -0
  94. package/dist/{chunk-GD7EBGC4.cjs → chunk-ATRW3J5Z.cjs} +49 -19
  95. package/dist/chunk-ATRW3J5Z.cjs.map +1 -0
  96. package/dist/chunk-BJ6ABRSQ.cjs +256 -0
  97. package/dist/chunk-BJ6ABRSQ.cjs.map +1 -0
  98. package/dist/{chunk-G3JX3UAU.cjs → chunk-BWSZ2BHJ.cjs} +6 -6
  99. package/dist/{chunk-G3JX3UAU.cjs.map → chunk-BWSZ2BHJ.cjs.map} +1 -1
  100. package/dist/chunk-BXRQ6HEP.cjs +4 -0
  101. package/dist/chunk-BXRQ6HEP.cjs.map +1 -0
  102. package/dist/chunk-CBBKWRLG.js +213 -0
  103. package/dist/chunk-CBBKWRLG.js.map +1 -0
  104. package/dist/{chunk-UAMXCMST.cjs → chunk-CFI3TQMA.cjs} +3 -3
  105. package/dist/{chunk-UAMXCMST.cjs.map → chunk-CFI3TQMA.cjs.map} +1 -1
  106. package/dist/chunk-CLQW724U.cjs +271 -0
  107. package/dist/chunk-CLQW724U.cjs.map +1 -0
  108. package/dist/chunk-CPDNX3LS.cjs +47 -0
  109. package/dist/chunk-CPDNX3LS.cjs.map +1 -0
  110. package/dist/chunk-CVNPNZMX.js +44 -0
  111. package/dist/chunk-CVNPNZMX.js.map +1 -0
  112. package/dist/chunk-DGHS5IVD.js +305 -0
  113. package/dist/chunk-DGHS5IVD.js.map +1 -0
  114. package/dist/chunk-DHGCLPFZ.js +91 -0
  115. package/dist/chunk-DHGCLPFZ.js.map +1 -0
  116. package/dist/chunk-DO2YN46R.cjs +201 -0
  117. package/dist/chunk-DO2YN46R.cjs.map +1 -0
  118. package/dist/chunk-DVDT7TX7.js +151 -0
  119. package/dist/chunk-DVDT7TX7.js.map +1 -0
  120. package/dist/chunk-DXEPYK3I.cjs +92 -0
  121. package/dist/chunk-DXEPYK3I.cjs.map +1 -0
  122. package/dist/chunk-DXFP53KF.js +283 -0
  123. package/dist/chunk-DXFP53KF.js.map +1 -0
  124. package/dist/chunk-EACNRR3C.cjs +4 -0
  125. package/dist/chunk-EACNRR3C.cjs.map +1 -0
  126. package/dist/{chunk-TVTIGV7Q.js → chunk-EBKE4DLU.js} +18 -11
  127. package/dist/chunk-EBKE4DLU.js.map +1 -0
  128. package/dist/{chunk-ASSDGS4F.cjs → chunk-ECYIDXG6.cjs} +254 -4
  129. package/dist/chunk-ECYIDXG6.cjs.map +1 -0
  130. package/dist/chunk-EGPDT7SM.js +195 -0
  131. package/dist/chunk-EGPDT7SM.js.map +1 -0
  132. package/dist/chunk-EPCUPHEO.js +193 -0
  133. package/dist/chunk-EPCUPHEO.js.map +1 -0
  134. package/dist/{chunk-7ZXAQTV4.cjs → chunk-ERACGSDY.cjs} +8 -8
  135. package/dist/{chunk-7ZXAQTV4.cjs.map → chunk-ERACGSDY.cjs.map} +1 -1
  136. package/dist/{chunk-XCP454Q6.js → chunk-F4N67NAF.js} +12 -3
  137. package/dist/chunk-F4N67NAF.js.map +1 -0
  138. package/dist/{chunk-WGPLUCBD.js → chunk-F6W62K4J.js} +4 -4
  139. package/dist/{chunk-WGPLUCBD.js.map → chunk-F6W62K4J.js.map} +1 -1
  140. package/dist/{chunk-XVW5DPPP.js → chunk-F7SZSOB3.js} +4 -3
  141. package/dist/chunk-F7SZSOB3.js.map +1 -0
  142. package/dist/chunk-FBCDYTWM.js +385 -0
  143. package/dist/chunk-FBCDYTWM.js.map +1 -0
  144. package/dist/{chunk-KQUI4BGS.cjs → chunk-FBN2VHUV.cjs} +68 -61
  145. package/dist/chunk-FBN2VHUV.cjs.map +1 -0
  146. package/dist/{chunk-V7D3YGUV.js → chunk-FGLIP6YR.js} +4 -4
  147. package/dist/{chunk-V7D3YGUV.js.map → chunk-FGLIP6YR.js.map} +1 -1
  148. package/dist/{chunk-VU6UTJRM.js → chunk-FIKO4WR6.js} +3 -3
  149. package/dist/{chunk-VU6UTJRM.js.map → chunk-FIKO4WR6.js.map} +1 -1
  150. package/dist/{chunk-OD47TTAW.cjs → chunk-FMEA6WAY.cjs} +9 -9
  151. package/dist/{chunk-OD47TTAW.cjs.map → chunk-FMEA6WAY.cjs.map} +1 -1
  152. package/dist/chunk-FSGJXCBG.cjs +318 -0
  153. package/dist/chunk-FSGJXCBG.cjs.map +1 -0
  154. package/dist/chunk-FSWHZY3T.cjs +328 -0
  155. package/dist/chunk-FSWHZY3T.cjs.map +1 -0
  156. package/dist/chunk-FTEZNCRI.js +29 -0
  157. package/dist/chunk-FTEZNCRI.js.map +1 -0
  158. package/dist/{chunk-YVPC65ZJ.cjs → chunk-GF2BE4FB.cjs} +91 -32
  159. package/dist/chunk-GF2BE4FB.cjs.map +1 -0
  160. package/dist/{chunk-JEIW7BSV.cjs → chunk-GKDHMNUA.cjs} +2 -52
  161. package/dist/chunk-GKDHMNUA.cjs.map +1 -0
  162. package/dist/{chunk-URAQIF67.cjs → chunk-GM32IDVL.cjs} +6 -6
  163. package/dist/{chunk-URAQIF67.cjs.map → chunk-GM32IDVL.cjs.map} +1 -1
  164. package/dist/chunk-GVM6DTR5.js +90 -0
  165. package/dist/chunk-GVM6DTR5.js.map +1 -0
  166. package/dist/{chunk-SQHMGT4W.js → chunk-GW4RFJZ5.js} +7 -7
  167. package/dist/chunk-GW4RFJZ5.js.map +1 -0
  168. package/dist/chunk-GY5SP4ST.js +3 -0
  169. package/dist/chunk-GY5SP4ST.js.map +1 -0
  170. package/dist/{chunk-OCSCBB52.cjs → chunk-GYXSF6BJ.cjs} +10 -10
  171. package/dist/{chunk-OCSCBB52.cjs.map → chunk-GYXSF6BJ.cjs.map} +1 -1
  172. package/dist/chunk-H2Y7HZV5.js +3 -0
  173. package/dist/chunk-H2Y7HZV5.js.map +1 -0
  174. package/dist/chunk-H3P7POFC.cjs +337 -0
  175. package/dist/chunk-H3P7POFC.cjs.map +1 -0
  176. package/dist/{chunk-JID7AZTO.cjs → chunk-H3ROMJYI.cjs} +4 -4
  177. package/dist/{chunk-JID7AZTO.cjs.map → chunk-H3ROMJYI.cjs.map} +1 -1
  178. package/dist/{chunk-462XSCP3.cjs → chunk-HCIXGFWR.cjs} +4 -4
  179. package/dist/{chunk-462XSCP3.cjs.map → chunk-HCIXGFWR.cjs.map} +1 -1
  180. package/dist/{chunk-H4ZXMQQW.js → chunk-HDY7YQFX.js} +3 -3
  181. package/dist/{chunk-H4ZXMQQW.js.map → chunk-HDY7YQFX.js.map} +1 -1
  182. package/dist/chunk-HNFFFFYH.cjs +114 -0
  183. package/dist/chunk-HNFFFFYH.cjs.map +1 -0
  184. package/dist/chunk-HNXLLDPN.js +25 -0
  185. package/dist/chunk-HNXLLDPN.js.map +1 -0
  186. package/dist/{chunk-NV2CWBI2.cjs → chunk-IEY3ZJIT.cjs} +12 -3
  187. package/dist/chunk-IEY3ZJIT.cjs.map +1 -0
  188. package/dist/chunk-IEZXJWHJ.cjs +306 -0
  189. package/dist/chunk-IEZXJWHJ.cjs.map +1 -0
  190. package/dist/{chunk-3QEVGSFG.cjs → chunk-IGDO62KR.cjs} +5 -5
  191. package/dist/{chunk-3QEVGSFG.cjs.map → chunk-IGDO62KR.cjs.map} +1 -1
  192. package/dist/{chunk-N5O47VGS.cjs → chunk-IVGI353O.cjs} +2 -2
  193. package/dist/{chunk-N5O47VGS.cjs.map → chunk-IVGI353O.cjs.map} +1 -1
  194. package/dist/chunk-IWRBJHO3.cjs +51 -0
  195. package/dist/chunk-IWRBJHO3.cjs.map +1 -0
  196. package/dist/{chunk-2IZLKPUW.js → chunk-J2CKXXOW.js} +27 -6
  197. package/dist/chunk-J2CKXXOW.js.map +1 -0
  198. package/dist/{chunk-VILW53UZ.js → chunk-JMAZ2GKT.js} +3 -3
  199. package/dist/{chunk-VILW53UZ.js.map → chunk-JMAZ2GKT.js.map} +1 -1
  200. package/dist/{chunk-WWJIW2IH.cjs → chunk-JSXIB6EJ.cjs} +4 -4
  201. package/dist/{chunk-WWJIW2IH.cjs.map → chunk-JSXIB6EJ.cjs.map} +1 -1
  202. package/dist/{chunk-KRU6IGV7.js → chunk-JUJGWUAN.js} +28 -6
  203. package/dist/chunk-JUJGWUAN.js.map +1 -0
  204. package/dist/{chunk-FXO5ARBB.cjs → chunk-KDW6BD4O.cjs} +4 -4
  205. package/dist/{chunk-FXO5ARBB.cjs.map → chunk-KDW6BD4O.cjs.map} +1 -1
  206. package/dist/{chunk-Z5V7SAZ4.js → chunk-KFEN2SRZ.js} +3 -3
  207. package/dist/{chunk-Z5V7SAZ4.js.map → chunk-KFEN2SRZ.js.map} +1 -1
  208. package/dist/chunk-KIVEYQGA.cjs +319 -0
  209. package/dist/chunk-KIVEYQGA.cjs.map +1 -0
  210. package/dist/{chunk-XEAT7XJG.cjs → chunk-KQ6GLYFZ.cjs} +29 -13
  211. package/dist/chunk-KQ6GLYFZ.cjs.map +1 -0
  212. package/dist/{chunk-4A3W4TQF.js → chunk-KVTKSPX5.js} +254 -4
  213. package/dist/chunk-KVTKSPX5.js.map +1 -0
  214. package/dist/{chunk-6EN3IQQI.cjs → chunk-L5Y52F2E.cjs} +9 -9
  215. package/dist/chunk-L5Y52F2E.cjs.map +1 -0
  216. package/dist/chunk-L6K4PRZK.cjs +4 -0
  217. package/dist/chunk-L6K4PRZK.cjs.map +1 -0
  218. package/dist/chunk-LAN5VWGC.js +2540 -0
  219. package/dist/chunk-LAN5VWGC.js.map +1 -0
  220. package/dist/{chunk-7ZDPD5ZX.cjs → chunk-LC3JL2HB.cjs} +11 -7
  221. package/dist/chunk-LC3JL2HB.cjs.map +1 -0
  222. package/dist/chunk-LRAAJRE7.cjs +2707 -0
  223. package/dist/chunk-LRAAJRE7.cjs.map +1 -0
  224. package/dist/{chunk-OE5CKRUC.js → chunk-LX323IMT.js} +34 -4
  225. package/dist/chunk-LX323IMT.js.map +1 -0
  226. package/dist/chunk-M3VPGJMV.js +283 -0
  227. package/dist/chunk-M3VPGJMV.js.map +1 -0
  228. package/dist/{chunk-DVOQ3JNO.js → chunk-ME7EVT6F.js} +23 -9
  229. package/dist/chunk-ME7EVT6F.js.map +1 -0
  230. package/dist/{chunk-SQJFBZ42.js → chunk-MUYUFOGL.js} +8 -7
  231. package/dist/chunk-MUYUFOGL.js.map +1 -0
  232. package/dist/{chunk-VKELAMAZ.js → chunk-N54FYWG6.js} +27 -11
  233. package/dist/chunk-N54FYWG6.js.map +1 -0
  234. package/dist/chunk-N5JDL4VE.js +3 -0
  235. package/dist/chunk-N5JDL4VE.js.map +1 -0
  236. package/dist/{chunk-ZPSJ2UV6.cjs → chunk-NAH65KPK.cjs} +8 -8
  237. package/dist/{chunk-ZPSJ2UV6.cjs.map → chunk-NAH65KPK.cjs.map} +1 -1
  238. package/dist/{chunk-PYJDVWXM.js → chunk-NUB5HRKS.js} +3 -3
  239. package/dist/{chunk-PYJDVWXM.js.map → chunk-NUB5HRKS.js.map} +1 -1
  240. package/dist/{chunk-WNZAYBVB.cjs → chunk-O6BJMVGT.cjs} +48 -48
  241. package/dist/{chunk-WNZAYBVB.cjs.map → chunk-O6BJMVGT.cjs.map} +1 -1
  242. package/dist/{chunk-SVSHA7XV.js → chunk-O6XDA3SI.js} +31 -33
  243. package/dist/chunk-O6XDA3SI.js.map +1 -0
  244. package/dist/chunk-OIF34LEN.cjs +425 -0
  245. package/dist/chunk-OIF34LEN.cjs.map +1 -0
  246. package/dist/{chunk-J5CSLNCN.cjs → chunk-OODVC2UD.cjs} +2 -2
  247. package/dist/{chunk-J5CSLNCN.cjs.map → chunk-OODVC2UD.cjs.map} +1 -1
  248. package/dist/{chunk-LL6IWKI3.js → chunk-OW3SQJ7P.js} +3 -3
  249. package/dist/{chunk-LL6IWKI3.js.map → chunk-OW3SQJ7P.js.map} +1 -1
  250. package/dist/{chunk-ZGRCSNPK.js → chunk-OYUIEJPN.js} +17 -8
  251. package/dist/chunk-OYUIEJPN.js.map +1 -0
  252. package/dist/chunk-P22YCUVM.cjs +4 -0
  253. package/dist/chunk-P22YCUVM.cjs.map +1 -0
  254. package/dist/{chunk-CEQJGUAS.js → chunk-P4E3K3ND.js} +12 -5
  255. package/dist/chunk-P4E3K3ND.js.map +1 -0
  256. package/dist/{chunk-TMMVIUUN.js → chunk-P7D7BYFE.js} +4 -4
  257. package/dist/{chunk-TMMVIUUN.js.map → chunk-P7D7BYFE.js.map} +1 -1
  258. package/dist/{chunk-SGFYA22I.cjs → chunk-PINIBEIU.cjs} +21 -12
  259. package/dist/chunk-PINIBEIU.cjs.map +1 -0
  260. package/dist/{chunk-3T7QGLNB.js → chunk-PJEL5ZZV.js} +4 -2
  261. package/dist/chunk-PJEL5ZZV.js.map +1 -0
  262. package/dist/chunk-PWXDRFJL.cjs +218 -0
  263. package/dist/chunk-PWXDRFJL.cjs.map +1 -0
  264. package/dist/{chunk-XZNN3S3S.cjs → chunk-PYI2IWNX.cjs} +4 -4
  265. package/dist/{chunk-XZNN3S3S.cjs.map → chunk-PYI2IWNX.cjs.map} +1 -1
  266. package/dist/chunk-Q3YVLO52.cjs +174 -0
  267. package/dist/chunk-Q3YVLO52.cjs.map +1 -0
  268. package/dist/{chunk-MNILXWVY.js → chunk-QJ2L5RU6.js} +7 -7
  269. package/dist/{chunk-MNILXWVY.js.map → chunk-QJ2L5RU6.js.map} +1 -1
  270. package/dist/{chunk-X4LBUPJO.cjs → chunk-QX6AAVDE.cjs} +31 -33
  271. package/dist/chunk-QX6AAVDE.cjs.map +1 -0
  272. package/dist/{chunk-UV2FVNWT.cjs → chunk-RIUQP2QS.cjs} +5 -5
  273. package/dist/{chunk-UV2FVNWT.cjs.map → chunk-RIUQP2QS.cjs.map} +1 -1
  274. package/dist/chunk-RLVYWUXG.js +115 -0
  275. package/dist/chunk-RLVYWUXG.js.map +1 -0
  276. package/dist/{chunk-HACNIFO3.js → chunk-RM2HPQIC.js} +77 -14
  277. package/dist/chunk-RM2HPQIC.js.map +1 -0
  278. package/dist/{chunk-DEDN5HAG.js → chunk-RSJGTWLM.js} +3 -3
  279. package/dist/{chunk-DEDN5HAG.js.map → chunk-RSJGTWLM.js.map} +1 -1
  280. package/dist/{chunk-G4D6CLBT.js → chunk-RZSSQ7AT.js} +3 -3
  281. package/dist/{chunk-G4D6CLBT.js.map → chunk-RZSSQ7AT.js.map} +1 -1
  282. package/dist/{chunk-ENKFJJZX.js → chunk-S2JZL4JC.js} +6 -6
  283. package/dist/{chunk-ENKFJJZX.js.map → chunk-S2JZL4JC.js.map} +1 -1
  284. package/dist/{chunk-P7UMS4E6.cjs → chunk-S7AMZ4RD.cjs} +23 -9
  285. package/dist/chunk-S7AMZ4RD.cjs.map +1 -0
  286. package/dist/{chunk-VROIMIHB.cjs → chunk-SHBCUXFS.cjs} +28 -6
  287. package/dist/chunk-SHBCUXFS.cjs.map +1 -0
  288. package/dist/{chunk-RJ6NTJHC.js → chunk-SRMTRD7F.js} +3 -3
  289. package/dist/{chunk-RJ6NTJHC.js.map → chunk-SRMTRD7F.js.map} +1 -1
  290. package/dist/{chunk-IX6KFB3K.cjs → chunk-SW2E7XKY.cjs} +9 -9
  291. package/dist/{chunk-IX6KFB3K.cjs.map → chunk-SW2E7XKY.cjs.map} +1 -1
  292. package/dist/chunk-SZSRGUVO.js +402 -0
  293. package/dist/chunk-SZSRGUVO.js.map +1 -0
  294. package/dist/{chunk-NJ6MY6V5.js → chunk-T5BBZQ66.js} +3 -3
  295. package/dist/{chunk-NJ6MY6V5.js.map → chunk-T5BBZQ66.js.map} +1 -1
  296. package/dist/{chunk-HZ4MBUC3.js → chunk-TI3TQQ7F.js} +4 -53
  297. package/dist/chunk-TI3TQQ7F.js.map +1 -0
  298. package/dist/{chunk-ACCAXVOG.js → chunk-TJ4GWQPM.js} +137 -57
  299. package/dist/chunk-TJ4GWQPM.js.map +1 -0
  300. package/dist/{chunk-5JJ2DAE4.js → chunk-TWQSMUE6.js} +7 -3
  301. package/dist/chunk-TWQSMUE6.js.map +1 -0
  302. package/dist/{chunk-X4XPNTCZ.cjs → chunk-U2RS574O.cjs} +139 -59
  303. package/dist/chunk-U2RS574O.cjs.map +1 -0
  304. package/dist/{chunk-TAXD5ADA.cjs → chunk-UEDTZYGI.cjs} +3 -3
  305. package/dist/{chunk-TAXD5ADA.cjs.map → chunk-UEDTZYGI.cjs.map} +1 -1
  306. package/dist/{chunk-3QGS6CXD.js → chunk-UJDWFDKE.js} +3 -3
  307. package/dist/{chunk-3QGS6CXD.js.map → chunk-UJDWFDKE.js.map} +1 -1
  308. package/dist/{chunk-DZ5HFLRC.js → chunk-UNFDIBKJ.js} +3 -3
  309. package/dist/{chunk-DZ5HFLRC.js.map → chunk-UNFDIBKJ.js.map} +1 -1
  310. package/dist/{chunk-UQ3VVR6A.cjs → chunk-UPWIJC6I.cjs} +3 -3
  311. package/dist/{chunk-UQ3VVR6A.cjs.map → chunk-UPWIJC6I.cjs.map} +1 -1
  312. package/dist/chunk-UTIPENPW.cjs +286 -0
  313. package/dist/chunk-UTIPENPW.cjs.map +1 -0
  314. package/dist/{chunk-S7WCHDBO.js → chunk-VCI2Y7ST.js} +3 -3
  315. package/dist/{chunk-S7WCHDBO.js.map → chunk-VCI2Y7ST.js.map} +1 -1
  316. package/dist/{chunk-Y5HFM7LO.js → chunk-VOEXGDL5.js} +6 -6
  317. package/dist/chunk-VOEXGDL5.js.map +1 -0
  318. package/dist/{chunk-P2CA3XGI.js → chunk-VSRO4PAI.js} +23 -5
  319. package/dist/chunk-VSRO4PAI.js.map +1 -0
  320. package/dist/{chunk-L6MDULYB.js → chunk-VU3ZMJBN.js} +2 -2
  321. package/dist/{chunk-L6MDULYB.js.map → chunk-VU3ZMJBN.js.map} +1 -1
  322. package/dist/{chunk-XI34EGK5.cjs → chunk-VV2U36T6.cjs} +9 -9
  323. package/dist/{chunk-XI34EGK5.cjs.map → chunk-VV2U36T6.cjs.map} +1 -1
  324. package/dist/{chunk-VPWJCJCX.cjs → chunk-VXW7D5LR.cjs} +26 -8
  325. package/dist/chunk-VXW7D5LR.cjs.map +1 -0
  326. package/dist/{chunk-GOALNQZ2.js → chunk-WFBUBT54.js} +4 -83
  327. package/dist/chunk-WFBUBT54.js.map +1 -0
  328. package/dist/chunk-WQHBMZSC.js +295 -0
  329. package/dist/chunk-WQHBMZSC.js.map +1 -0
  330. package/dist/chunk-WSMBIXPU.cjs +2573 -0
  331. package/dist/chunk-WSMBIXPU.cjs.map +1 -0
  332. package/dist/chunk-X5JOEZVR.js +525 -0
  333. package/dist/chunk-X5JOEZVR.js.map +1 -0
  334. package/dist/chunk-XBAAHOCP.js +3 -0
  335. package/dist/chunk-XBAAHOCP.js.map +1 -0
  336. package/dist/chunk-XDU65GLW.js +21 -0
  337. package/dist/chunk-XDU65GLW.js.map +1 -0
  338. package/dist/{chunk-5GUOOLPR.cjs → chunk-XHK5VZ4L.cjs} +29 -8
  339. package/dist/chunk-XHK5VZ4L.cjs.map +1 -0
  340. package/dist/chunk-XI74P5F2.cjs +424 -0
  341. package/dist/chunk-XI74P5F2.cjs.map +1 -0
  342. package/dist/chunk-XNPDZANN.cjs +238 -0
  343. package/dist/chunk-XNPDZANN.cjs.map +1 -0
  344. package/dist/{chunk-XDIMTPZU.cjs → chunk-XPWFIDZM.cjs} +4 -3
  345. package/dist/chunk-XPWFIDZM.cjs.map +1 -0
  346. package/dist/{chunk-FS4VZUFV.cjs → chunk-XRVMYT5G.cjs} +77 -13
  347. package/dist/chunk-XRVMYT5G.cjs.map +1 -0
  348. package/dist/chunk-XXA4NZUC.js +3 -0
  349. package/dist/chunk-XXA4NZUC.js.map +1 -0
  350. package/dist/chunk-Y424YL55.js +59 -0
  351. package/dist/chunk-Y424YL55.js.map +1 -0
  352. package/dist/chunk-Y7ZJZLJY.js +2657 -0
  353. package/dist/chunk-Y7ZJZLJY.js.map +1 -0
  354. package/dist/chunk-YG7BR76Y.js +281 -0
  355. package/dist/chunk-YG7BR76Y.js.map +1 -0
  356. package/dist/chunk-YGS2TRMP.js +38 -0
  357. package/dist/chunk-YGS2TRMP.js.map +1 -0
  358. package/dist/chunk-YUMOM3KE.js +167 -0
  359. package/dist/chunk-YUMOM3KE.js.map +1 -0
  360. package/dist/chunk-YVKBXNPK.js +41 -0
  361. package/dist/chunk-YVKBXNPK.js.map +1 -0
  362. package/dist/chunk-YW2AKBLS.cjs +23 -0
  363. package/dist/chunk-YW2AKBLS.cjs.map +1 -0
  364. package/dist/{chunk-3M7TAXNR.js → chunk-YZCM7CXK.js} +3 -3
  365. package/dist/{chunk-3M7TAXNR.js.map → chunk-YZCM7CXK.js.map} +1 -1
  366. package/dist/chunk-Z3WMDVMR.cjs +46 -0
  367. package/dist/chunk-Z3WMDVMR.cjs.map +1 -0
  368. package/dist/chunk-ZNUMOJOI.cjs +4 -0
  369. package/dist/chunk-ZNUMOJOI.cjs.map +1 -0
  370. package/dist/components/Accordion/index.cjs +2 -2
  371. package/dist/components/Accordion/index.d.cts +6 -0
  372. package/dist/components/Accordion/index.d.ts +6 -0
  373. package/dist/components/Accordion/index.js +1 -1
  374. package/dist/components/ActionPlan/index.cjs +34 -0
  375. package/dist/components/ActionPlan/index.cjs.map +1 -0
  376. package/dist/components/ActionPlan/index.d.cts +65 -0
  377. package/dist/components/ActionPlan/index.d.ts +65 -0
  378. package/dist/components/ActionPlan/index.js +21 -0
  379. package/dist/components/ActionPlan/index.js.map +1 -0
  380. package/dist/components/ActivityFeed/index.cjs +31 -0
  381. package/dist/components/ActivityFeed/index.cjs.map +1 -0
  382. package/dist/components/ActivityFeed/index.d.cts +99 -0
  383. package/dist/components/ActivityFeed/index.d.ts +99 -0
  384. package/dist/components/ActivityFeed/index.js +18 -0
  385. package/dist/components/ActivityFeed/index.js.map +1 -0
  386. package/dist/components/Alert/index.d.cts +1 -1
  387. package/dist/components/Alert/index.d.ts +1 -1
  388. package/dist/components/AlertDialog/index.cjs +19 -5
  389. package/dist/components/AlertDialog/index.d.cts +94 -16
  390. package/dist/components/AlertDialog/index.d.ts +94 -16
  391. package/dist/components/AlertDialog/index.js +6 -4
  392. package/dist/components/AssociationList/index.cjs +29 -0
  393. package/dist/components/AssociationList/index.cjs.map +1 -0
  394. package/dist/components/AssociationList/index.d.cts +50 -0
  395. package/dist/components/AssociationList/index.d.ts +50 -0
  396. package/dist/components/AssociationList/index.js +16 -0
  397. package/dist/components/AssociationList/index.js.map +1 -0
  398. package/dist/components/AudioRecorder/index.d.cts +2 -2
  399. package/dist/components/AudioRecorder/index.d.ts +2 -2
  400. package/dist/components/Autocomplete/index.d.cts +8 -2
  401. package/dist/components/Autocomplete/index.d.ts +8 -2
  402. package/dist/components/Avatar/index.cjs +9 -7
  403. package/dist/components/Avatar/index.d.cts +46 -15
  404. package/dist/components/Avatar/index.d.ts +46 -15
  405. package/dist/components/Avatar/index.js +3 -1
  406. package/dist/components/AvatarGroup/index.cjs +20 -0
  407. package/dist/components/AvatarGroup/index.cjs.map +1 -0
  408. package/dist/components/AvatarGroup/index.d.cts +57 -0
  409. package/dist/components/AvatarGroup/index.d.ts +57 -0
  410. package/dist/components/AvatarGroup/index.js +7 -0
  411. package/dist/components/AvatarGroup/index.js.map +1 -0
  412. package/dist/components/Badge/index.cjs +3 -3
  413. package/dist/components/Badge/index.d.cts +16 -2
  414. package/dist/components/Badge/index.d.ts +16 -2
  415. package/dist/components/Badge/index.js +1 -1
  416. package/dist/components/BoardView/index.cjs +5 -4
  417. package/dist/components/BoardView/index.d.cts +2 -3
  418. package/dist/components/BoardView/index.d.ts +2 -3
  419. package/dist/components/BoardView/index.js +2 -1
  420. package/dist/components/Button/index.cjs +5 -3
  421. package/dist/components/Button/index.d.cts +2 -1
  422. package/dist/components/Button/index.d.ts +2 -1
  423. package/dist/components/Button/index.js +3 -1
  424. package/dist/components/CalendarHeatmap/index.cjs +18 -0
  425. package/dist/components/CalendarHeatmap/index.cjs.map +1 -0
  426. package/dist/components/CalendarHeatmap/index.d.cts +47 -0
  427. package/dist/components/CalendarHeatmap/index.d.ts +47 -0
  428. package/dist/components/CalendarHeatmap/index.js +5 -0
  429. package/dist/components/CalendarHeatmap/index.js.map +1 -0
  430. package/dist/components/CalendarView/index.cjs +6 -4
  431. package/dist/components/CalendarView/index.d.cts +1 -2
  432. package/dist/components/CalendarView/index.d.ts +1 -2
  433. package/dist/components/CalendarView/index.js +4 -2
  434. package/dist/components/Card/index.d.cts +3 -3
  435. package/dist/components/Card/index.d.ts +3 -3
  436. package/dist/components/ClampedText/index.cjs +3 -2
  437. package/dist/components/ClampedText/index.js +2 -1
  438. package/dist/components/CollabStatus/index.cjs +6 -4
  439. package/dist/components/CollabStatus/index.d.cts +11 -0
  440. package/dist/components/CollabStatus/index.d.ts +11 -0
  441. package/dist/components/CollabStatus/index.js +3 -1
  442. package/dist/components/Collapsible/index.cjs +6 -6
  443. package/dist/components/Collapsible/index.d.cts +6 -0
  444. package/dist/components/Collapsible/index.d.ts +6 -0
  445. package/dist/components/Collapsible/index.js +3 -3
  446. package/dist/components/CompletenessMeter/index.cjs +23 -0
  447. package/dist/components/CompletenessMeter/index.cjs.map +1 -0
  448. package/dist/components/CompletenessMeter/index.d.cts +52 -0
  449. package/dist/components/CompletenessMeter/index.d.ts +52 -0
  450. package/dist/components/CompletenessMeter/index.js +6 -0
  451. package/dist/components/CompletenessMeter/index.js.map +1 -0
  452. package/dist/components/CountryCodeDropdown/index.cjs +5 -5
  453. package/dist/components/CountryCodeDropdown/index.js +2 -2
  454. package/dist/components/CustomizableDashboard/index.cjs +12 -10
  455. package/dist/components/CustomizableDashboard/index.js +5 -3
  456. package/dist/components/DateInput/index.d.cts +36 -4
  457. package/dist/components/DateInput/index.d.ts +36 -4
  458. package/dist/components/Dropdown/index.cjs +12 -10
  459. package/dist/components/Dropdown/index.d.cts +6 -4
  460. package/dist/components/Dropdown/index.d.ts +6 -4
  461. package/dist/components/Dropdown/index.js +5 -3
  462. package/dist/components/EmailEditor/index.cjs +68 -0
  463. package/dist/components/EmailEditor/index.cjs.map +1 -0
  464. package/dist/components/EmailEditor/index.d.cts +347 -0
  465. package/dist/components/EmailEditor/index.d.ts +347 -0
  466. package/dist/components/EmailEditor/index.js +27 -0
  467. package/dist/components/EmailEditor/index.js.map +1 -0
  468. package/dist/components/FieldHistory/index.cjs +34 -0
  469. package/dist/components/FieldHistory/index.cjs.map +1 -0
  470. package/dist/components/FieldHistory/index.d.cts +66 -0
  471. package/dist/components/FieldHistory/index.d.ts +66 -0
  472. package/dist/components/FieldHistory/index.js +21 -0
  473. package/dist/components/FieldHistory/index.js.map +1 -0
  474. package/dist/components/FloatingWindow/index.cjs +6 -4
  475. package/dist/components/FloatingWindow/index.js +4 -2
  476. package/dist/components/GanttView/index.d.cts +1 -2
  477. package/dist/components/GanttView/index.d.ts +1 -2
  478. package/dist/components/GlossaryTooltip/index.cjs +3 -3
  479. package/dist/components/GlossaryTooltip/index.js +2 -2
  480. package/dist/components/InlineEdit/index.cjs +20 -0
  481. package/dist/components/InlineEdit/index.cjs.map +1 -0
  482. package/dist/components/InlineEdit/index.d.cts +56 -0
  483. package/dist/components/InlineEdit/index.d.ts +56 -0
  484. package/dist/components/InlineEdit/index.js +7 -0
  485. package/dist/components/InlineEdit/index.js.map +1 -0
  486. package/dist/components/KeyboardShortcutsOverlay/index.cjs +5 -5
  487. package/dist/components/KeyboardShortcutsOverlay/index.js +3 -3
  488. package/dist/components/ListView/index.cjs +6 -4
  489. package/dist/components/ListView/index.d.cts +91 -4
  490. package/dist/components/ListView/index.d.ts +91 -4
  491. package/dist/components/ListView/index.js +4 -2
  492. package/dist/components/LogoUploader/index.cjs +18 -0
  493. package/dist/components/LogoUploader/index.cjs.map +1 -0
  494. package/dist/components/LogoUploader/index.d.cts +49 -0
  495. package/dist/components/LogoUploader/index.d.ts +49 -0
  496. package/dist/components/LogoUploader/index.js +5 -0
  497. package/dist/components/LogoUploader/index.js.map +1 -0
  498. package/dist/components/Markdown/index.cjs +21 -19
  499. package/dist/components/Markdown/index.js +9 -7
  500. package/dist/components/MediaEditor/index.cjs +16 -14
  501. package/dist/components/MediaEditor/index.d.cts +91 -2
  502. package/dist/components/MediaEditor/index.d.ts +91 -2
  503. package/dist/components/MediaEditor/index.js +11 -9
  504. package/dist/components/MediaFeed/index.cjs +29 -0
  505. package/dist/components/MediaFeed/index.cjs.map +1 -0
  506. package/dist/components/MediaFeed/index.d.cts +104 -0
  507. package/dist/components/MediaFeed/index.d.ts +104 -0
  508. package/dist/components/MediaFeed/index.js +20 -0
  509. package/dist/components/MediaFeed/index.js.map +1 -0
  510. package/dist/components/MediaPlayer/index.cjs +8 -6
  511. package/dist/components/MediaPlayer/index.d.cts +19 -1
  512. package/dist/components/MediaPlayer/index.d.ts +19 -1
  513. package/dist/components/MediaPlayer/index.js +5 -3
  514. package/dist/components/MegaMenu/index.cjs +7 -5
  515. package/dist/components/MegaMenu/index.js +4 -2
  516. package/dist/components/Modal/index.cjs +10 -10
  517. package/dist/components/Modal/index.js +2 -2
  518. package/dist/components/Pagination/index.d.cts +1 -1
  519. package/dist/components/Pagination/index.d.ts +1 -1
  520. package/dist/components/PhiMask/index.cjs +18 -0
  521. package/dist/components/PhiMask/index.cjs.map +1 -0
  522. package/dist/components/PhiMask/index.d.cts +45 -0
  523. package/dist/components/PhiMask/index.d.ts +45 -0
  524. package/dist/components/PhiMask/index.js +5 -0
  525. package/dist/components/PhiMask/index.js.map +1 -0
  526. package/dist/components/Progress/index.cjs +6 -6
  527. package/dist/components/Progress/index.d.cts +8 -2
  528. package/dist/components/Progress/index.d.ts +8 -2
  529. package/dist/components/Progress/index.js +1 -1
  530. package/dist/components/PropertyList/index.cjs +25 -0
  531. package/dist/components/PropertyList/index.cjs.map +1 -0
  532. package/dist/components/PropertyList/index.d.cts +87 -0
  533. package/dist/components/PropertyList/index.d.ts +87 -0
  534. package/dist/components/PropertyList/index.js +12 -0
  535. package/dist/components/PropertyList/index.js.map +1 -0
  536. package/dist/components/Q/index.d.cts +2 -2
  537. package/dist/components/Q/index.d.ts +2 -2
  538. package/dist/components/QuickAction/index.d.cts +1 -1
  539. package/dist/components/QuickAction/index.d.ts +1 -1
  540. package/dist/components/RadialExplorer/index.cjs +7 -5
  541. package/dist/components/RadialExplorer/index.js +6 -4
  542. package/dist/components/Rating/index.cjs +28 -0
  543. package/dist/components/Rating/index.cjs.map +1 -0
  544. package/dist/components/Rating/index.d.cts +85 -0
  545. package/dist/components/Rating/index.d.ts +85 -0
  546. package/dist/components/Rating/index.js +7 -0
  547. package/dist/components/Rating/index.js.map +1 -0
  548. package/dist/components/RecordButton/index.d.cts +1 -1
  549. package/dist/components/RecordButton/index.d.ts +1 -1
  550. package/dist/components/RecordHeader/index.cjs +30 -0
  551. package/dist/components/RecordHeader/index.cjs.map +1 -0
  552. package/dist/components/RecordHeader/index.d.cts +96 -0
  553. package/dist/components/RecordHeader/index.d.ts +96 -0
  554. package/dist/components/RecordHeader/index.js +17 -0
  555. package/dist/components/RecordHeader/index.js.map +1 -0
  556. package/dist/components/RecordLayout/index.cjs +22 -0
  557. package/dist/components/RecordLayout/index.cjs.map +1 -0
  558. package/dist/components/RecordLayout/index.d.cts +40 -0
  559. package/dist/components/RecordLayout/index.d.ts +40 -0
  560. package/dist/components/RecordLayout/index.js +9 -0
  561. package/dist/components/RecordLayout/index.js.map +1 -0
  562. package/dist/components/RichTextEditor/index.cjs +12 -8
  563. package/dist/components/RichTextEditor/index.d.cts +12 -2
  564. package/dist/components/RichTextEditor/index.d.ts +12 -2
  565. package/dist/components/RichTextEditor/index.js +9 -5
  566. package/dist/components/ScrollArea/index.d.cts +1 -1
  567. package/dist/components/ScrollArea/index.d.ts +1 -1
  568. package/dist/components/SectionSpyNav/index.cjs +5 -3
  569. package/dist/components/SectionSpyNav/index.js +4 -2
  570. package/dist/components/Select/index.cjs +4 -4
  571. package/dist/components/Select/index.d.cts +2 -2
  572. package/dist/components/Select/index.d.ts +2 -2
  573. package/dist/components/Select/index.js +2 -2
  574. package/dist/components/Skeleton/index.d.cts +1 -1
  575. package/dist/components/Skeleton/index.d.ts +1 -1
  576. package/dist/components/Slider/index.d.cts +2 -2
  577. package/dist/components/Slider/index.d.ts +2 -2
  578. package/dist/components/SliderCalculator/index.cjs +4 -4
  579. package/dist/components/SliderCalculator/index.js +2 -2
  580. package/dist/components/SourceTip/index.cjs +3 -3
  581. package/dist/components/SourceTip/index.js +2 -2
  582. package/dist/components/Spinner/index.d.cts +2 -2
  583. package/dist/components/Spinner/index.d.ts +2 -2
  584. package/dist/components/SuperChat/index.cjs +735 -322
  585. package/dist/components/SuperChat/index.cjs.map +1 -1
  586. package/dist/components/SuperChat/index.d.cts +126 -8
  587. package/dist/components/SuperChat/index.d.ts +126 -8
  588. package/dist/components/SuperChat/index.js +721 -308
  589. package/dist/components/SuperChat/index.js.map +1 -1
  590. package/dist/components/SuperChat/plugins/index.cjs +8 -6
  591. package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
  592. package/dist/components/SuperChat/plugins/index.d.cts +2 -3
  593. package/dist/components/SuperChat/plugins/index.d.ts +2 -3
  594. package/dist/components/SuperChat/plugins/index.js +7 -5
  595. package/dist/components/SuperChat/plugins/index.js.map +1 -1
  596. package/dist/components/Tabs/index.cjs +10 -7
  597. package/dist/components/Tabs/index.d.cts +12 -1
  598. package/dist/components/Tabs/index.d.ts +12 -1
  599. package/dist/components/Tabs/index.js +4 -1
  600. package/dist/components/TagEditor/index.cjs +22 -0
  601. package/dist/components/TagEditor/index.cjs.map +1 -0
  602. package/dist/components/TagEditor/index.d.cts +46 -0
  603. package/dist/components/TagEditor/index.d.ts +46 -0
  604. package/dist/components/TagEditor/index.js +9 -0
  605. package/dist/components/TagEditor/index.js.map +1 -0
  606. package/dist/components/Text/index.d.cts +3 -3
  607. package/dist/components/Text/index.d.ts +3 -3
  608. package/dist/components/Textarea/index.d.cts +2 -2
  609. package/dist/components/Textarea/index.d.ts +2 -2
  610. package/dist/components/ThemeProvider/index.cjs +9 -9
  611. package/dist/components/ThemeProvider/index.d.cts +3 -1
  612. package/dist/components/ThemeProvider/index.d.ts +3 -1
  613. package/dist/components/ThemeProvider/index.js +3 -3
  614. package/dist/components/Tooltip/index.cjs +3 -3
  615. package/dist/components/Tooltip/index.js +2 -2
  616. package/dist/components/TranscriptView/index.d.cts +85 -4
  617. package/dist/components/TranscriptView/index.d.ts +85 -4
  618. package/dist/components/UserPicker/index.cjs +24 -0
  619. package/dist/components/UserPicker/index.cjs.map +1 -0
  620. package/dist/components/UserPicker/index.d.cts +60 -0
  621. package/dist/components/UserPicker/index.d.ts +60 -0
  622. package/dist/components/UserPicker/index.js +11 -0
  623. package/dist/components/UserPicker/index.js.map +1 -0
  624. package/dist/components/VideoCard/index.cjs +4 -4
  625. package/dist/components/VideoCard/index.js +2 -2
  626. package/dist/components/ViewSet/index.cjs +10 -7
  627. package/dist/components/ViewSet/index.d.cts +120 -8
  628. package/dist/components/ViewSet/index.d.ts +120 -8
  629. package/dist/components/ViewSet/index.js +9 -6
  630. package/dist/components/ViewSwitcher/index.cjs +4 -3
  631. package/dist/components/ViewSwitcher/index.d.cts +1 -2
  632. package/dist/components/ViewSwitcher/index.d.ts +1 -2
  633. package/dist/components/ViewSwitcher/index.js +2 -1
  634. package/dist/components/YearTimeline/index.cjs +5 -5
  635. package/dist/components/YearTimeline/index.js +1 -1
  636. package/dist/datavis.cjs +6 -4
  637. package/dist/datavis.cjs.map +1 -1
  638. package/dist/datavis.d.cts +167 -13
  639. package/dist/datavis.d.ts +167 -13
  640. package/dist/datavis.js +4 -2
  641. package/dist/datavis.js.map +1 -1
  642. package/dist/deck.cjs +3374 -0
  643. package/dist/deck.cjs.map +1 -0
  644. package/dist/deck.d.cts +712 -0
  645. package/dist/deck.d.ts +712 -0
  646. package/dist/deck.js +3330 -0
  647. package/dist/deck.js.map +1 -0
  648. package/dist/esheet.cjs +20 -16
  649. package/dist/esheet.cjs.map +1 -1
  650. package/dist/esheet.d.cts +183 -1
  651. package/dist/esheet.d.ts +183 -1
  652. package/dist/esheet.js +17 -13
  653. package/dist/esheet.js.map +1 -1
  654. package/dist/globe.cjs +2 -2
  655. package/dist/globe.js +1 -1
  656. package/dist/{hey-buddy-INNUFFJJ.cjs → hey-buddy-5WOBYZRJ.cjs} +22 -11
  657. package/dist/hey-buddy-5WOBYZRJ.cjs.map +1 -0
  658. package/dist/{hey-buddy-V6FC5UKB.js → hey-buddy-AHUHCDBC.js} +22 -11
  659. package/dist/hey-buddy-AHUHCDBC.js.map +1 -0
  660. package/dist/hooks/index.cjs +88 -33
  661. package/dist/hooks/index.d.cts +592 -36
  662. package/dist/hooks/index.d.ts +592 -36
  663. package/dist/hooks/index.js +9 -6
  664. package/dist/icons-wBacj6BW.d.cts +142 -0
  665. package/dist/icons-wBacj6BW.d.ts +142 -0
  666. package/dist/index.cjs +2056 -1349
  667. package/dist/index.cjs.map +1 -1
  668. package/dist/index.d.cts +10401 -637
  669. package/dist/index.d.ts +10401 -637
  670. package/dist/index.js +674 -352
  671. package/dist/index.js.map +1 -1
  672. package/dist/kerebron.css +115 -0
  673. package/dist/maps.cjs +160 -0
  674. package/dist/maps.cjs.map +1 -0
  675. package/dist/maps.d.cts +42 -0
  676. package/dist/maps.d.ts +42 -0
  677. package/dist/maps.js +138 -0
  678. package/dist/maps.js.map +1 -0
  679. package/dist/motion.cjs +7 -7
  680. package/dist/motion.d.cts +186 -2
  681. package/dist/motion.d.ts +186 -2
  682. package/dist/motion.js +2 -2
  683. package/dist/org-chart.cjs +1303 -0
  684. package/dist/org-chart.cjs.map +1 -0
  685. package/dist/org-chart.d.cts +164 -0
  686. package/dist/org-chart.d.ts +164 -0
  687. package/dist/org-chart.js +1278 -0
  688. package/dist/org-chart.js.map +1 -0
  689. package/dist/q.d.cts +25 -3
  690. package/dist/q.d.ts +25 -3
  691. package/dist/styles/effects.css +133 -0
  692. package/dist/styles/init.css +22 -3
  693. package/dist/styles.css +1 -1
  694. package/dist/tailwind-preset.cjs +4 -4
  695. package/dist/tailwind-preset.js +1 -1
  696. package/dist/templates.cjs +156 -0
  697. package/dist/templates.cjs.map +1 -0
  698. package/dist/templates.d.cts +734 -0
  699. package/dist/templates.d.ts +734 -0
  700. package/dist/templates.js +11 -0
  701. package/dist/templates.js.map +1 -0
  702. package/dist/{types-CbWXIKbe.d.cts → types-CDeBNZiE.d.cts} +1 -28
  703. package/dist/{types-CbWXIKbe.d.ts → types-CDeBNZiE.d.ts} +1 -28
  704. package/dist/types-Cx1FHLq2.d.cts +548 -0
  705. package/dist/types-Cx1FHLq2.d.ts +548 -0
  706. package/dist/types-DsdZvEI1.d.cts +92 -0
  707. package/dist/types-DsdZvEI1.d.ts +92 -0
  708. package/dist/utils/index.cjs +9 -9
  709. package/dist/utils/index.d.cts +13 -2
  710. package/dist/utils/index.d.ts +13 -2
  711. package/dist/utils/index.js +1 -1
  712. package/package.json +79 -15
  713. package/dist/Animated-XmH6k8pZ.d.cts +0 -188
  714. package/dist/Animated-XmH6k8pZ.d.ts +0 -188
  715. package/dist/CsvBlock-ROJCKJDP.cjs +0 -16
  716. package/dist/CsvBlock-UWPMTLE2.js +0 -7
  717. package/dist/HtmlPreviewBlock-DWFN6EUB.cjs +0 -16
  718. package/dist/HtmlPreviewBlock-ME5U3XNS.js +0 -7
  719. package/dist/MedicationEditor-Bp4NLy7y.d.cts +0 -352
  720. package/dist/MedicationEditor-Bp4NLy7y.d.ts +0 -352
  721. package/dist/MermaidBlock-2B6CPD6Y.js +0 -7
  722. package/dist/MermaidBlock-D2UC5M55.cjs +0 -16
  723. package/dist/SurveyBlock-4CD4AYMJ.cjs +0 -16
  724. package/dist/SurveyBlock-4DO62RBT.js +0 -7
  725. package/dist/chunk-2IZLKPUW.js.map +0 -1
  726. package/dist/chunk-3T7QGLNB.js.map +0 -1
  727. package/dist/chunk-4A3W4TQF.js.map +0 -1
  728. package/dist/chunk-4IS3QCOQ.cjs.map +0 -1
  729. package/dist/chunk-5GUOOLPR.cjs.map +0 -1
  730. package/dist/chunk-5JJ2DAE4.js.map +0 -1
  731. package/dist/chunk-6EN3IQQI.cjs.map +0 -1
  732. package/dist/chunk-6HFFWEM3.cjs +0 -22
  733. package/dist/chunk-6HFFWEM3.cjs.map +0 -1
  734. package/dist/chunk-7ZDPD5ZX.cjs.map +0 -1
  735. package/dist/chunk-7ZVTLTJF.js +0 -109
  736. package/dist/chunk-7ZVTLTJF.js.map +0 -1
  737. package/dist/chunk-ACCAXVOG.js.map +0 -1
  738. package/dist/chunk-AR7AKDM2.cjs +0 -143
  739. package/dist/chunk-AR7AKDM2.cjs.map +0 -1
  740. package/dist/chunk-ASSDGS4F.cjs.map +0 -1
  741. package/dist/chunk-AWJBOND5.js +0 -130
  742. package/dist/chunk-AWJBOND5.js.map +0 -1
  743. package/dist/chunk-BMSG4NBH.js +0 -56
  744. package/dist/chunk-BMSG4NBH.js.map +0 -1
  745. package/dist/chunk-CEQJGUAS.js.map +0 -1
  746. package/dist/chunk-CR2SDI23.cjs.map +0 -1
  747. package/dist/chunk-DVOQ3JNO.js.map +0 -1
  748. package/dist/chunk-E4IBHYJ7.cjs +0 -80
  749. package/dist/chunk-E4IBHYJ7.cjs.map +0 -1
  750. package/dist/chunk-FS4VZUFV.cjs.map +0 -1
  751. package/dist/chunk-GD7EBGC4.cjs.map +0 -1
  752. package/dist/chunk-GOALNQZ2.js.map +0 -1
  753. package/dist/chunk-HACNIFO3.js.map +0 -1
  754. package/dist/chunk-HB7C7NB5.js +0 -20
  755. package/dist/chunk-HB7C7NB5.js.map +0 -1
  756. package/dist/chunk-HZ4MBUC3.js.map +0 -1
  757. package/dist/chunk-IT775BYG.js.map +0 -1
  758. package/dist/chunk-JEIW7BSV.cjs.map +0 -1
  759. package/dist/chunk-JYZW2PZS.cjs.map +0 -1
  760. package/dist/chunk-KQUI4BGS.cjs.map +0 -1
  761. package/dist/chunk-KRU6IGV7.js.map +0 -1
  762. package/dist/chunk-NV2CWBI2.cjs.map +0 -1
  763. package/dist/chunk-OE5CKRUC.js.map +0 -1
  764. package/dist/chunk-P2CA3XGI.js.map +0 -1
  765. package/dist/chunk-P7UMS4E6.cjs.map +0 -1
  766. package/dist/chunk-SGFYA22I.cjs.map +0 -1
  767. package/dist/chunk-SQHMGT4W.js.map +0 -1
  768. package/dist/chunk-SQJFBZ42.js.map +0 -1
  769. package/dist/chunk-SVSHA7XV.js.map +0 -1
  770. package/dist/chunk-TVTIGV7Q.js.map +0 -1
  771. package/dist/chunk-VKELAMAZ.js.map +0 -1
  772. package/dist/chunk-VNYW4C4J.cjs.map +0 -1
  773. package/dist/chunk-VOKVG3ER.js +0 -78
  774. package/dist/chunk-VOKVG3ER.js.map +0 -1
  775. package/dist/chunk-VPIYTQCV.cjs.map +0 -1
  776. package/dist/chunk-VPWJCJCX.cjs.map +0 -1
  777. package/dist/chunk-VROIMIHB.cjs.map +0 -1
  778. package/dist/chunk-WNJRS7Y7.cjs.map +0 -1
  779. package/dist/chunk-X4LBUPJO.cjs.map +0 -1
  780. package/dist/chunk-X4XPNTCZ.cjs.map +0 -1
  781. package/dist/chunk-XCP454Q6.js.map +0 -1
  782. package/dist/chunk-XDIMTPZU.cjs.map +0 -1
  783. package/dist/chunk-XEAT7XJG.cjs.map +0 -1
  784. package/dist/chunk-XVW5DPPP.js.map +0 -1
  785. package/dist/chunk-Y5HFM7LO.js.map +0 -1
  786. package/dist/chunk-YVL3XATO.cjs +0 -79
  787. package/dist/chunk-YVL3XATO.cjs.map +0 -1
  788. package/dist/chunk-YVPC65ZJ.cjs.map +0 -1
  789. package/dist/chunk-ZGRCSNPK.js.map +0 -1
  790. package/dist/hey-buddy-INNUFFJJ.cjs.map +0 -1
  791. package/dist/hey-buddy-V6FC5UKB.js.map +0 -1
  792. package/dist/html-MdxqSzjD.d.cts +0 -13
  793. package/dist/html-MdxqSzjD.d.ts +0 -13
  794. package/dist/orderRows-BUJYgSc7.d.cts +0 -221
  795. package/dist/orderRows-BUJYgSc7.d.ts +0 -221
  796. package/dist/transcript-Cg7uSW-C.d.cts +0 -84
  797. package/dist/transcript-Cg7uSW-C.d.ts +0 -84
  798. package/dist/types-B97JNRNQ.d.cts +0 -251
  799. package/dist/types-CnPEwzlp.d.cts +0 -254
  800. package/dist/types-CnPEwzlp.d.ts +0 -254
  801. package/dist/types-gZXrfLj6.d.ts +0 -251
  802. package/dist/useAnchoredPosition-CKwLSQW8.d.cts +0 -76
  803. package/dist/useAnchoredPosition-CKwLSQW8.d.ts +0 -76
  804. package/dist/useTheme-B9SWu6ui.d.cts +0 -24
  805. package/dist/useTheme-B9SWu6ui.d.ts +0 -24
  806. package/dist/useTranscriptEdits-CGzlemHT.d.cts +0 -182
  807. package/dist/useTranscriptEdits-D32bLs0l.d.ts +0 -182
@@ -0,0 +1,195 @@
1
+ import { Tabs, TabsList, TabsTrigger, TabsContent } from './chunk-ME7EVT6F.js';
2
+ import { Badge } from './chunk-522WJIVI.js';
3
+ import { cn } from './chunk-TQONQSJO.js';
4
+ import * as React from 'react';
5
+ import { cva } from 'class-variance-authority';
6
+ import { ChevronDown } from 'lucide-react';
7
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
+
9
+ var defaultRecordLayoutLabels = {
10
+ sidebar: "Record details",
11
+ aside: "Related records",
12
+ main: "Record content",
13
+ tabs: "Record sections",
14
+ sidebarToggle: "Details"
15
+ };
16
+ var bodyVariants = cva("grid grid-cols-1 items-start gap-6 p-4 sm:p-6", {
17
+ variants: {
18
+ sidebar: { true: "", false: "" },
19
+ aside: { true: "", false: "" }
20
+ },
21
+ compoundVariants: [
22
+ {
23
+ sidebar: true,
24
+ aside: false,
25
+ class: "md:grid-cols-[18rem_minmax(0,1fr)] xl:grid-cols-[20rem_minmax(0,1fr)]"
26
+ },
27
+ {
28
+ sidebar: true,
29
+ aside: true,
30
+ class: "md:grid-cols-[18rem_minmax(0,1fr)] xl:grid-cols-[20rem_minmax(0,1fr)_20rem]"
31
+ },
32
+ {
33
+ sidebar: false,
34
+ aside: true,
35
+ class: "xl:grid-cols-[minmax(0,1fr)_20rem]"
36
+ }
37
+ ]
38
+ });
39
+ function readOpen(key) {
40
+ try {
41
+ const raw = window.localStorage.getItem(key);
42
+ return raw === null ? void 0 : raw === "true";
43
+ } catch {
44
+ return void 0;
45
+ }
46
+ }
47
+ var RecordLayout = React.forwardRef(
48
+ ({
49
+ header,
50
+ sidebar,
51
+ aside,
52
+ tabs,
53
+ activeTab,
54
+ defaultTab,
55
+ onTabChange,
56
+ tabsUrlParam,
57
+ sidebarCollapsible = true,
58
+ defaultSidebarOpen = false,
59
+ sidebarStorageKey,
60
+ labels: labelsProp,
61
+ className,
62
+ children,
63
+ ...rest
64
+ }, ref) => {
65
+ const labels = { ...defaultRecordLayoutLabels, ...labelsProp };
66
+ const sidebarId = React.useId();
67
+ const [open, setOpen] = React.useState(defaultSidebarOpen);
68
+ React.useEffect(() => {
69
+ if (!sidebarStorageKey) return;
70
+ const stored = readOpen(sidebarStorageKey);
71
+ if (stored !== void 0) setOpen(stored);
72
+ }, [sidebarStorageKey]);
73
+ const toggle = () => {
74
+ const next = !open;
75
+ setOpen(next);
76
+ if (!sidebarStorageKey) return;
77
+ try {
78
+ window.localStorage.setItem(sidebarStorageKey, String(next));
79
+ } catch {
80
+ }
81
+ };
82
+ const hasSidebar = sidebar != null;
83
+ const hasAside = aside != null;
84
+ return /* @__PURE__ */ jsxs(
85
+ "div",
86
+ {
87
+ ref,
88
+ "data-slot": "record-layout",
89
+ className: cn("bg-background flex flex-col", className),
90
+ ...rest,
91
+ children: [
92
+ header,
93
+ /* @__PURE__ */ jsxs(
94
+ "div",
95
+ {
96
+ "data-slot": "record-layout-body",
97
+ className: bodyVariants({ sidebar: hasSidebar, aside: hasAside }),
98
+ children: [
99
+ hasSidebar && /* @__PURE__ */ jsxs(
100
+ "aside",
101
+ {
102
+ "data-slot": "record-layout-sidebar",
103
+ "aria-label": labels.sidebar,
104
+ className: cn(
105
+ "min-w-0 md:sticky md:top-[var(--record-layout-sticky-top,1rem)] md:max-h-[calc(100dvh-var(--record-layout-sticky-top,1rem)-1rem)] md:overflow-y-auto",
106
+ hasAside && "md:row-span-2 xl:row-span-1"
107
+ ),
108
+ children: [
109
+ sidebarCollapsible && /* @__PURE__ */ jsxs(
110
+ "button",
111
+ {
112
+ type: "button",
113
+ "aria-expanded": open,
114
+ "aria-controls": sidebarId,
115
+ onClick: toggle,
116
+ className: "border-border bg-card text-foreground hover:bg-muted focus-visible:ring-ring flex w-full items-center justify-between rounded-lg border px-4 py-3 text-sm font-medium focus-visible:ring-2 focus-visible:outline-none md:hidden",
117
+ children: [
118
+ labels.sidebarToggle,
119
+ /* @__PURE__ */ jsx(
120
+ ChevronDown,
121
+ {
122
+ "aria-hidden": "true",
123
+ className: cn(
124
+ "h-4 w-4 transition-transform motion-reduce:transition-none",
125
+ open && "rotate-180"
126
+ )
127
+ }
128
+ )
129
+ ]
130
+ }
131
+ ),
132
+ /* @__PURE__ */ jsx(
133
+ "div",
134
+ {
135
+ id: sidebarId,
136
+ className: cn(
137
+ sidebarCollapsible && "mt-3 md:mt-0",
138
+ sidebarCollapsible && !open && "hidden md:block"
139
+ ),
140
+ children: sidebar
141
+ }
142
+ )
143
+ ]
144
+ }
145
+ ),
146
+ /* @__PURE__ */ jsx(
147
+ "section",
148
+ {
149
+ "data-slot": "record-layout-main",
150
+ "aria-label": labels.main,
151
+ className: "min-w-0",
152
+ children: tabs && tabs.length > 0 ? /* @__PURE__ */ jsxs(
153
+ Tabs,
154
+ {
155
+ value: activeTab,
156
+ defaultValue: defaultTab ?? tabs[0].id,
157
+ onValueChange: onTabChange,
158
+ urlParam: tabsUrlParam,
159
+ urlValues: tabs.map((t) => t.id),
160
+ children: [
161
+ /* @__PURE__ */ jsx(TabsList, { "aria-label": labels.tabs, className: "overflow-x-auto", children: tabs.map((t) => /* @__PURE__ */ jsxs(TabsTrigger, { value: t.id, children: [
162
+ t.label,
163
+ t.count != null && /* @__PURE__ */ jsxs(Fragment, { children: [
164
+ " ",
165
+ /* @__PURE__ */ jsx(Badge, { size: "sm", variant: "secondary", children: t.count })
166
+ ] })
167
+ ] }, t.id)) }),
168
+ tabs.map((t) => /* @__PURE__ */ jsx(TabsContent, { value: t.id, children: t.content }, t.id))
169
+ ]
170
+ }
171
+ ) : children
172
+ }
173
+ ),
174
+ hasAside && /* @__PURE__ */ jsx(
175
+ "aside",
176
+ {
177
+ "data-slot": "record-layout-aside",
178
+ "aria-label": labels.aside,
179
+ className: "flex min-w-0 flex-col gap-4",
180
+ children: aside
181
+ }
182
+ )
183
+ ]
184
+ }
185
+ )
186
+ ]
187
+ }
188
+ );
189
+ }
190
+ );
191
+ RecordLayout.displayName = "RecordLayout";
192
+
193
+ export { RecordLayout, defaultRecordLayoutLabels };
194
+ //# sourceMappingURL=chunk-EGPDT7SM.js.map
195
+ //# sourceMappingURL=chunk-EGPDT7SM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/RecordLayout/RecordLayout.tsx"],"names":[],"mappings":"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","file":"chunk-EGPDT7SM.js","sourcesContent":["import * as React from 'react';\nimport { cva } from 'class-variance-authority';\nimport { ChevronDown } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { Badge } from '../Badge/Badge';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '../Tabs/Tabs';\n\nexport interface RecordLayoutTab {\n id: string;\n label: string;\n count?: number;\n content: React.ReactNode;\n}\n\nexport interface RecordLayoutLabels {\n sidebar: string;\n aside: string;\n main: string;\n tabs: string;\n sidebarToggle: string;\n}\n\nexport const defaultRecordLayoutLabels: RecordLayoutLabels = {\n sidebar: 'Record details',\n aside: 'Related records',\n main: 'Record content',\n tabs: 'Record sections',\n sidebarToggle: 'Details',\n};\n\nconst bodyVariants = cva('grid grid-cols-1 items-start gap-6 p-4 sm:p-6', {\n variants: {\n sidebar: { true: '', false: '' },\n aside: { true: '', false: '' },\n },\n compoundVariants: [\n {\n sidebar: true,\n aside: false,\n class:\n 'md:grid-cols-[18rem_minmax(0,1fr)] xl:grid-cols-[20rem_minmax(0,1fr)]',\n },\n {\n sidebar: true,\n aside: true,\n class:\n 'md:grid-cols-[18rem_minmax(0,1fr)] xl:grid-cols-[20rem_minmax(0,1fr)_20rem]',\n },\n {\n sidebar: false,\n aside: true,\n class: 'xl:grid-cols-[minmax(0,1fr)_20rem]',\n },\n ],\n});\n\nexport interface RecordLayoutProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Usually a `RecordHeader`. */\n header?: React.ReactNode;\n /** Start column: the record's fields. */\n sidebar?: React.ReactNode;\n /** End column from `xl`; below the main column on tablet and mobile. */\n aside?: React.ReactNode;\n /** Rendered with `Tabs` in the main column; replaces `children`. */\n tabs?: RecordLayoutTab[];\n activeTab?: string;\n defaultTab?: string;\n onTabChange?: (id: string) => void;\n /** Query parameter that mirrors the active tab (uncontrolled only). */\n tabsUrlParam?: string;\n /** Below `md`, hide the sidebar behind a toggle. */\n sidebarCollapsible?: boolean;\n defaultSidebarOpen?: boolean;\n /** Persists the mobile sidebar's open state in `localStorage`. */\n sidebarStorageKey?: string;\n labels?: Partial<RecordLayoutLabels>;\n}\n\nfunction readOpen(key: string): boolean | undefined {\n try {\n const raw = window.localStorage.getItem(key);\n return raw === null ? undefined : raw === 'true';\n } catch {\n return undefined;\n }\n}\n\nexport const RecordLayout = React.forwardRef<HTMLDivElement, RecordLayoutProps>(\n (\n {\n header,\n sidebar,\n aside,\n tabs,\n activeTab,\n defaultTab,\n onTabChange,\n tabsUrlParam,\n sidebarCollapsible = true,\n defaultSidebarOpen = false,\n sidebarStorageKey,\n labels: labelsProp,\n className,\n children,\n ...rest\n },\n ref\n ) => {\n const labels = { ...defaultRecordLayoutLabels, ...labelsProp };\n const sidebarId = React.useId();\n const [open, setOpen] = React.useState(defaultSidebarOpen);\n\n React.useEffect(() => {\n if (!sidebarStorageKey) return;\n const stored = readOpen(sidebarStorageKey);\n if (stored !== undefined) setOpen(stored);\n }, [sidebarStorageKey]);\n\n const toggle = () => {\n const next = !open;\n setOpen(next);\n if (!sidebarStorageKey) return;\n try {\n window.localStorage.setItem(sidebarStorageKey, String(next));\n } catch {\n // Storage blocked: the preference just doesn't persist.\n }\n };\n\n const hasSidebar = sidebar != null;\n const hasAside = aside != null;\n\n return (\n <div\n ref={ref}\n data-slot=\"record-layout\"\n className={cn('bg-background flex flex-col', className)}\n {...rest}\n >\n {header}\n <div\n data-slot=\"record-layout-body\"\n className={bodyVariants({ sidebar: hasSidebar, aside: hasAside })}\n >\n {hasSidebar && (\n <aside\n data-slot=\"record-layout-sidebar\"\n aria-label={labels.sidebar}\n className={cn(\n 'min-w-0 md:sticky md:top-[var(--record-layout-sticky-top,1rem)] md:max-h-[calc(100dvh-var(--record-layout-sticky-top,1rem)-1rem)] md:overflow-y-auto',\n hasAside && 'md:row-span-2 xl:row-span-1'\n )}\n >\n {sidebarCollapsible && (\n <button\n type=\"button\"\n aria-expanded={open}\n aria-controls={sidebarId}\n onClick={toggle}\n className=\"border-border bg-card text-foreground hover:bg-muted focus-visible:ring-ring flex w-full items-center justify-between rounded-lg border px-4 py-3 text-sm font-medium focus-visible:ring-2 focus-visible:outline-none md:hidden\"\n >\n {labels.sidebarToggle}\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n 'h-4 w-4 transition-transform motion-reduce:transition-none',\n open && 'rotate-180'\n )}\n />\n </button>\n )}\n <div\n id={sidebarId}\n className={cn(\n sidebarCollapsible && 'mt-3 md:mt-0',\n sidebarCollapsible && !open && 'hidden md:block'\n )}\n >\n {sidebar}\n </div>\n </aside>\n )}\n <section\n data-slot=\"record-layout-main\"\n aria-label={labels.main}\n className=\"min-w-0\"\n >\n {tabs && tabs.length > 0 ? (\n <Tabs\n value={activeTab}\n defaultValue={defaultTab ?? tabs[0].id}\n onValueChange={onTabChange}\n urlParam={tabsUrlParam}\n urlValues={tabs.map((t) => t.id)}\n >\n <TabsList aria-label={labels.tabs} className=\"overflow-x-auto\">\n {tabs.map((t) => (\n <TabsTrigger key={t.id} value={t.id}>\n {t.label}\n {t.count != null && (\n <>\n {' '}\n <Badge size=\"sm\" variant=\"secondary\">\n {t.count}\n </Badge>\n </>\n )}\n </TabsTrigger>\n ))}\n </TabsList>\n {tabs.map((t) => (\n <TabsContent key={t.id} value={t.id}>\n {t.content}\n </TabsContent>\n ))}\n </Tabs>\n ) : (\n children\n )}\n </section>\n {hasAside && (\n <aside\n data-slot=\"record-layout-aside\"\n aria-label={labels.aside}\n className=\"flex min-w-0 flex-col gap-4\"\n >\n {aside}\n </aside>\n )}\n </div>\n </div>\n );\n }\n);\n\nRecordLayout.displayName = 'RecordLayout';\n"]}
@@ -0,0 +1,193 @@
1
+ import { cn } from './chunk-TQONQSJO.js';
2
+ import * as React from 'react';
3
+ import { DateTime } from 'luxon';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+
6
+ var defaultCalendarHeatmapLabels = {
7
+ title: "Activity calendar",
8
+ cellLabel: (date, value) => `${date}: ${value}`,
9
+ summary: (total, activeDays) => `${total} total across ${activeDays} active ${activeDays === 1 ? "day" : "days"}`,
10
+ less: "Less",
11
+ more: "More"
12
+ };
13
+ var LEVELS = [
14
+ "bg-muted ring-1 ring-inset ring-border",
15
+ "bg-primary-500/25",
16
+ "bg-primary-500/50",
17
+ "bg-primary-500/75",
18
+ "bg-primary-500"
19
+ ];
20
+ function level(value, max) {
21
+ if (value <= 0 || max <= 0) return 0;
22
+ return Math.min(4, Math.max(1, Math.ceil(value / max * 4)));
23
+ }
24
+ var CELL = "block h-3 w-3 rounded-sm";
25
+ var CalendarHeatmap = React.forwardRef(function CalendarHeatmap2({
26
+ data,
27
+ start,
28
+ end,
29
+ weekStartsOn = 0,
30
+ locale,
31
+ onDayClick,
32
+ labels: labelOverrides,
33
+ className,
34
+ ...props
35
+ }, ref) {
36
+ const labels = { ...defaultCalendarHeatmapLabels, ...labelOverrides };
37
+ const loc = (d) => locale ? d.setLocale(locale) : d;
38
+ const cells = React.useRef(/* @__PURE__ */ new Map());
39
+ const [active, setActive] = React.useState(null);
40
+ const grid = React.useMemo(() => {
41
+ const parse = (iso) => {
42
+ const d = iso ? DateTime.fromISO(iso) : null;
43
+ return d?.isValid ? d.startOf("day") : null;
44
+ };
45
+ const end_ = parse(end) ?? DateTime.now().startOf("day");
46
+ const start_ = parse(start) ?? end_.minus({ weeks: 12 }).plus({ days: 1 });
47
+ const [first, last] = start_ <= end_ ? [start_, end_] : [end_, start_];
48
+ const origin = first.minus({
49
+ days: (first.weekday % 7 - weekStartsOn + 7) % 7
50
+ });
51
+ const weeks = Math.ceil(
52
+ (Math.round(last.diff(origin, "days").days) + 1) / 7
53
+ );
54
+ const values = /* @__PURE__ */ new Map();
55
+ for (const d of data) {
56
+ const key = DateTime.fromISO(d.date).toISODate();
57
+ if (key) values.set(key, (values.get(key) ?? 0) + d.value);
58
+ }
59
+ const days = Array.from(
60
+ { length: weeks },
61
+ (_, w) => Array.from({ length: 7 }, (_2, r) => {
62
+ const date = origin.plus({ days: w * 7 + r });
63
+ const iso = date.toISODate();
64
+ const inRange2 = date >= first && date <= last;
65
+ return {
66
+ date,
67
+ iso,
68
+ inRange: inRange2,
69
+ value: inRange2 ? values.get(iso) ?? 0 : 0
70
+ };
71
+ })
72
+ );
73
+ const inRange = days.flat().filter((d) => d.inRange);
74
+ const max = Math.max(0, ...inRange.map((d) => d.value));
75
+ const total = inRange.reduce((sum, d) => sum + d.value, 0);
76
+ const activeDays = inRange.filter((d) => d.value > 0).length;
77
+ const months = [];
78
+ for (const week of days) {
79
+ const date = (week.find((d) => d.inRange) ?? week[0]).date;
80
+ const key = date.toFormat("yyyy-MM");
81
+ const prev = months[months.length - 1];
82
+ if (prev?.key === key) prev.span += 1;
83
+ else months.push({ key, date, span: 1 });
84
+ }
85
+ return { days, first, last, max, total, activeDays, months };
86
+ }, [data, start, end, weekStartsOn]);
87
+ const activeDate = active ? DateTime.fromISO(active) : null;
88
+ const focusable = activeDate && activeDate >= grid.first && activeDate <= grid.last ? active : grid.last.toISODate();
89
+ const onKeyDown = (e) => {
90
+ if (!focusable) return;
91
+ const rtl = getComputedStyle(e.currentTarget).direction === "rtl";
92
+ const delta = {
93
+ ArrowUp: -1,
94
+ ArrowDown: 1,
95
+ ArrowLeft: rtl ? 7 : -7,
96
+ ArrowRight: rtl ? -7 : 7
97
+ };
98
+ if (!delta[e.key]) return;
99
+ e.preventDefault();
100
+ const next = DateTime.fromISO(focusable).plus({ days: delta[e.key] });
101
+ if (next < grid.first || next > grid.last) return;
102
+ const iso = next.toISODate();
103
+ setActive(iso);
104
+ cells.current.get(iso)?.focus();
105
+ };
106
+ return /* @__PURE__ */ jsxs(
107
+ "div",
108
+ {
109
+ ref,
110
+ "data-slot": "calendar-heatmap",
111
+ className: cn("inline-flex max-w-full flex-col gap-2", className),
112
+ ...props,
113
+ children: [
114
+ /* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsxs(
115
+ "table",
116
+ {
117
+ role: onDayClick ? "grid" : void 0,
118
+ "aria-label": labels.title,
119
+ className: "text-muted-foreground border-separate border-spacing-[3px] text-[10px] leading-none",
120
+ children: [
121
+ /* @__PURE__ */ jsx("caption", { className: "sr-only", children: labels.summary(grid.total, grid.activeDays) }),
122
+ /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
123
+ /* @__PURE__ */ jsx("td", {}),
124
+ grid.months.map((m) => /* @__PURE__ */ jsx(
125
+ "th",
126
+ {
127
+ scope: "colgroup",
128
+ colSpan: m.span,
129
+ className: "pb-1 text-start font-normal whitespace-nowrap",
130
+ children: /* @__PURE__ */ jsx("span", { className: m.span < 2 ? "sr-only" : void 0, children: loc(m.date).toFormat("LLL") })
131
+ },
132
+ m.key
133
+ ))
134
+ ] }) }),
135
+ /* @__PURE__ */ jsx("tbody", { children: Array.from({ length: 7 }, (_, r) => /* @__PURE__ */ jsxs("tr", { children: [
136
+ /* @__PURE__ */ jsx("th", { scope: "row", className: "pe-1 text-start font-normal", children: /* @__PURE__ */ jsx("span", { className: r % 2 === 1 ? void 0 : "sr-only", children: loc(grid.days[0][r].date).toFormat("ccc") }) }),
137
+ grid.days.map((week) => {
138
+ const day = week[r];
139
+ if (!day.inRange) return /* @__PURE__ */ jsx("td", {}, day.iso);
140
+ const label = labels.cellLabel(
141
+ loc(day.date).toLocaleString(
142
+ DateTime.DATE_MED_WITH_WEEKDAY
143
+ ),
144
+ day.value,
145
+ day.iso
146
+ );
147
+ const swatch = cn(CELL, LEVELS[level(day.value, grid.max)]);
148
+ return /* @__PURE__ */ jsx("td", { className: "p-0", children: onDayClick ? /* @__PURE__ */ jsx(
149
+ "button",
150
+ {
151
+ type: "button",
152
+ ref: (el) => {
153
+ if (el) cells.current.set(day.iso, el);
154
+ else cells.current.delete(day.iso);
155
+ },
156
+ title: label,
157
+ tabIndex: day.iso === focusable ? 0 : -1,
158
+ onFocus: () => setActive(day.iso),
159
+ onClick: () => onDayClick(day.iso),
160
+ onKeyDown,
161
+ className: cn(
162
+ swatch,
163
+ "focus-visible:outline-ring focus-visible:outline-2 focus-visible:outline-offset-1"
164
+ ),
165
+ children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: label })
166
+ }
167
+ ) : /* @__PURE__ */ jsx("span", { className: swatch, title: label, children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: label }) }) }, day.iso);
168
+ })
169
+ ] }, r)) })
170
+ ]
171
+ }
172
+ ) }),
173
+ /* @__PURE__ */ jsxs(
174
+ "div",
175
+ {
176
+ "aria-hidden": "true",
177
+ "data-slot": "calendar-heatmap-legend",
178
+ className: "text-muted-foreground flex items-center gap-1 self-end text-[10px]",
179
+ children: [
180
+ /* @__PURE__ */ jsx("span", { className: "me-1", children: labels.less }),
181
+ LEVELS.map((cls) => /* @__PURE__ */ jsx("span", { className: cn(CELL, cls) }, cls)),
182
+ /* @__PURE__ */ jsx("span", { className: "ms-1", children: labels.more })
183
+ ]
184
+ }
185
+ )
186
+ ]
187
+ }
188
+ );
189
+ });
190
+
191
+ export { CalendarHeatmap, defaultCalendarHeatmapLabels };
192
+ //# sourceMappingURL=chunk-EPCUPHEO.js.map
193
+ //# sourceMappingURL=chunk-EPCUPHEO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/CalendarHeatmap/CalendarHeatmap.tsx"],"names":["CalendarHeatmap","_","inRange"],"mappings":"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","file":"chunk-EPCUPHEO.js","sourcesContent":["import * as React from 'react';\nimport { DateTime } from 'luxon';\nimport { cn } from '../../utils/cn';\n\nexport interface CalendarHeatmapDatum {\n /** ISO date (or date-time) the value belongs to; same-day values are summed. */\n date: string;\n value: number;\n}\n\nexport interface CalendarHeatmapLabels {\n /** Accessible name of the table. */\n title: string;\n /** Accessible name and tooltip of a day cell. */\n cellLabel: (formattedDate: string, value: number, isoDate: string) => string;\n /** Visually hidden summary of the whole range. */\n summary: (total: number, activeDays: number) => string;\n /** Legend ends. */\n less: string;\n more: string;\n}\n\nexport const defaultCalendarHeatmapLabels: CalendarHeatmapLabels = {\n title: 'Activity calendar',\n cellLabel: (date, value) => `${date}: ${value}`,\n summary: (total, activeDays) =>\n `${total} total across ${activeDays} active ${activeDays === 1 ? 'day' : 'days'}`,\n less: 'Less',\n more: 'More',\n};\n\nexport interface CalendarHeatmapProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Values per day. */\n data: CalendarHeatmapDatum[];\n /** First day shown (ISO date). Defaults to 12 weeks before `end`. */\n start?: string;\n /** Last day shown (ISO date). Defaults to today. */\n end?: string;\n /** First day of each column: 0 = Sunday … 6 = Saturday. */\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n /** BCP 47 locale for month, weekday and date names. */\n locale?: string;\n /** Makes days focusable buttons (arrow-key navigable) reporting their ISO date. */\n onDayClick?: (date: string) => void;\n /** Overrides for any user-facing string. */\n labels?: Partial<CalendarHeatmapLabels>;\n}\n\nconst LEVELS = [\n 'bg-muted ring-1 ring-inset ring-border',\n 'bg-primary-500/25',\n 'bg-primary-500/50',\n 'bg-primary-500/75',\n 'bg-primary-500',\n];\n\nfunction level(value: number, max: number) {\n if (value <= 0 || max <= 0) return 0;\n return Math.min(4, Math.max(1, Math.ceil((value / max) * 4)));\n}\n\nconst CELL = 'block h-3 w-3 rounded-sm';\n\n/**\n * Contribution-style calendar: one column per week, one row per weekday, each\n * day tinted on a five-step primary scale.\n *\n * @example\n * ```tsx\n * <CalendarHeatmap data={activity} onDayClick={(date) => openDay(date)} />\n * ```\n */\nexport const CalendarHeatmap = React.forwardRef<\n HTMLDivElement,\n CalendarHeatmapProps\n>(function CalendarHeatmap(\n {\n data,\n start,\n end,\n weekStartsOn = 0,\n locale,\n onDayClick,\n labels: labelOverrides,\n className,\n ...props\n },\n ref\n) {\n const labels = { ...defaultCalendarHeatmapLabels, ...labelOverrides };\n const loc = (d: DateTime) => (locale ? d.setLocale(locale) : d);\n const cells = React.useRef(new Map<string, HTMLButtonElement>());\n const [active, setActive] = React.useState<string | null>(null);\n\n const grid = React.useMemo(() => {\n const parse = (iso?: string) => {\n const d = iso ? DateTime.fromISO(iso) : null;\n return d?.isValid ? d.startOf('day') : null;\n };\n const end_ = parse(end) ?? DateTime.now().startOf('day');\n const start_ = parse(start) ?? end_.minus({ weeks: 12 }).plus({ days: 1 });\n // A reversed range is swapped so there is always at least one day.\n const [first, last] = start_ <= end_ ? [start_, end_] : [end_, start_];\n const origin = first.minus({\n days: ((first.weekday % 7) - weekStartsOn + 7) % 7,\n });\n const weeks = Math.ceil(\n (Math.round(last.diff(origin, 'days').days) + 1) / 7\n );\n\n const values = new Map<string, number>();\n for (const d of data) {\n const key = DateTime.fromISO(d.date).toISODate();\n if (key) values.set(key, (values.get(key) ?? 0) + d.value);\n }\n\n const days = Array.from({ length: weeks }, (_, w) =>\n Array.from({ length: 7 }, (_, r) => {\n const date = origin.plus({ days: w * 7 + r });\n const iso = date.toISODate()!;\n const inRange = date >= first && date <= last;\n return {\n date,\n iso,\n inRange,\n value: inRange ? (values.get(iso) ?? 0) : 0,\n };\n })\n );\n const inRange = days.flat().filter((d) => d.inRange);\n const max = Math.max(0, ...inRange.map((d) => d.value));\n const total = inRange.reduce((sum, d) => sum + d.value, 0);\n const activeDays = inRange.filter((d) => d.value > 0).length;\n\n // Consecutive weeks grouped by the month of their first in-range day.\n const months: { key: string; date: DateTime; span: number }[] = [];\n for (const week of days) {\n const date = (week.find((d) => d.inRange) ?? week[0]).date;\n const key = date.toFormat('yyyy-MM');\n const prev = months[months.length - 1];\n if (prev?.key === key) prev.span += 1;\n else months.push({ key, date, span: 1 });\n }\n\n return { days, first, last, max, total, activeDays, months };\n }, [data, start, end, weekStartsOn]);\n\n const activeDate = active ? DateTime.fromISO(active) : null;\n // Keep one tab stop even when the range changes and drops the active day.\n const focusable =\n activeDate && activeDate >= grid.first && activeDate <= grid.last\n ? active\n : grid.last.toISODate();\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (!focusable) return;\n const rtl = getComputedStyle(e.currentTarget).direction === 'rtl';\n const delta: Record<string, number> = {\n ArrowUp: -1,\n ArrowDown: 1,\n ArrowLeft: rtl ? 7 : -7,\n ArrowRight: rtl ? -7 : 7,\n };\n if (!delta[e.key]) return;\n e.preventDefault();\n const next = DateTime.fromISO(focusable).plus({ days: delta[e.key] });\n if (next < grid.first || next > grid.last) return;\n const iso = next.toISODate()!;\n setActive(iso);\n cells.current.get(iso)?.focus();\n };\n\n return (\n <div\n ref={ref}\n data-slot=\"calendar-heatmap\"\n className={cn('inline-flex max-w-full flex-col gap-2', className)}\n {...props}\n >\n <div className=\"overflow-x-auto\">\n <table\n role={onDayClick ? 'grid' : undefined}\n aria-label={labels.title}\n className=\"text-muted-foreground border-separate border-spacing-[3px] text-[10px] leading-none\"\n >\n <caption className=\"sr-only\">\n {labels.summary(grid.total, grid.activeDays)}\n </caption>\n <thead>\n <tr>\n <td />\n {grid.months.map((m) => (\n <th\n key={m.key}\n scope=\"colgroup\"\n colSpan={m.span}\n className=\"pb-1 text-start font-normal whitespace-nowrap\"\n >\n <span className={m.span < 2 ? 'sr-only' : undefined}>\n {loc(m.date).toFormat('LLL')}\n </span>\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: 7 }, (_, r) => (\n <tr key={r}>\n <th scope=\"row\" className=\"pe-1 text-start font-normal\">\n <span className={r % 2 === 1 ? undefined : 'sr-only'}>\n {loc(grid.days[0][r].date).toFormat('ccc')}\n </span>\n </th>\n {grid.days.map((week) => {\n const day = week[r];\n if (!day.inRange) return <td key={day.iso} />;\n const label = labels.cellLabel(\n loc(day.date).toLocaleString(\n DateTime.DATE_MED_WITH_WEEKDAY\n ),\n day.value,\n day.iso\n );\n const swatch = cn(CELL, LEVELS[level(day.value, grid.max)]);\n return (\n <td key={day.iso} className=\"p-0\">\n {onDayClick ? (\n <button\n type=\"button\"\n ref={(el) => {\n if (el) cells.current.set(day.iso, el);\n else cells.current.delete(day.iso);\n }}\n title={label}\n tabIndex={day.iso === focusable ? 0 : -1}\n onFocus={() => setActive(day.iso)}\n onClick={() => onDayClick(day.iso)}\n onKeyDown={onKeyDown}\n className={cn(\n swatch,\n 'focus-visible:outline-ring focus-visible:outline-2 focus-visible:outline-offset-1'\n )}\n >\n <span className=\"sr-only\">{label}</span>\n </button>\n ) : (\n <span className={swatch} title={label}>\n <span className=\"sr-only\">{label}</span>\n </span>\n )}\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n <div\n aria-hidden=\"true\"\n data-slot=\"calendar-heatmap-legend\"\n className=\"text-muted-foreground flex items-center gap-1 self-end text-[10px]\"\n >\n <span className=\"me-1\">{labels.less}</span>\n {LEVELS.map((cls) => (\n <span key={cls} className={cn(CELL, cls)} />\n ))}\n <span className=\"ms-1\">{labels.more}</span>\n </div>\n </div>\n );\n});\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkUV2FVNWT_cjs = require('./chunk-UV2FVNWT.cjs');
4
- var chunkVNYW4C4J_cjs = require('./chunk-VNYW4C4J.cjs');
3
+ var chunkRIUQP2QS_cjs = require('./chunk-RIUQP2QS.cjs');
4
+ var chunkANMX7YDL_cjs = require('./chunk-ANMX7YDL.cjs');
5
5
  var lucideReact = require('lucide-react');
6
6
  var react = require('react');
7
7
  var jsxRuntime = require('react/jsx-runtime');
@@ -48,7 +48,7 @@ var HtmlPreviewBlock = ({
48
48
  const togglePreview = react.useCallback(() => setShowPreview((v) => !v), []);
49
49
  const headerActions = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
50
50
  /* @__PURE__ */ jsxRuntime.jsxs(
51
- chunkVNYW4C4J_cjs.Button,
51
+ chunkANMX7YDL_cjs.Button,
52
52
  {
53
53
  variant: "ghost",
54
54
  size: "sm",
@@ -61,7 +61,7 @@ var HtmlPreviewBlock = ({
61
61
  }
62
62
  ),
63
63
  showPreview && /* @__PURE__ */ jsxRuntime.jsx(
64
- chunkVNYW4C4J_cjs.Button,
64
+ chunkANMX7YDL_cjs.Button,
65
65
  {
66
66
  variant: "ghost",
67
67
  size: "sm",
@@ -73,7 +73,7 @@ var HtmlPreviewBlock = ({
73
73
  )
74
74
  ] });
75
75
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
76
- /* @__PURE__ */ jsxRuntime.jsx(chunkUV2FVNWT_cjs.FenceBlock, { code, language: "html", headerActions, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: showPreview ? /* @__PURE__ */ jsxRuntime.jsx(
76
+ /* @__PURE__ */ jsxRuntime.jsx(chunkRIUQP2QS_cjs.FenceBlock, { code, language: "html", headerActions, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: showPreview ? /* @__PURE__ */ jsxRuntime.jsx(
77
77
  "iframe",
78
78
  {
79
79
  ref: iframeRef,
@@ -106,7 +106,7 @@ var HtmlPreviewBlock = ({
106
106
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between border-b border-neutral-200 px-4 py-2 dark:border-neutral-700", children: [
107
107
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: "HTML Preview" }),
108
108
  /* @__PURE__ */ jsxRuntime.jsx(
109
- chunkVNYW4C4J_cjs.Button,
109
+ chunkANMX7YDL_cjs.Button,
110
110
  {
111
111
  variant: "ghost",
112
112
  size: "sm",
@@ -133,5 +133,5 @@ var HtmlPreviewBlock = ({
133
133
  };
134
134
 
135
135
  exports.HtmlPreviewBlock = HtmlPreviewBlock;
136
- //# sourceMappingURL=chunk-7ZXAQTV4.cjs.map
137
- //# sourceMappingURL=chunk-7ZXAQTV4.cjs.map
136
+ //# sourceMappingURL=chunk-ERACGSDY.cjs.map
137
+ //# sourceMappingURL=chunk-ERACGSDY.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Markdown/HtmlPreviewBlock.tsx"],"names":["useState","useRef","useEffect","useCallback","jsxs","Fragment","Button","jsx","Code","Eye","Maximize2","FenceBlock"],"mappings":"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","file":"chunk-7ZXAQTV4.cjs","sourcesContent":["/** Sandboxed iframe preview for HTML code blocks. */\nimport { Code, Eye, Maximize2 } from 'lucide-react';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Button } from '../Button';\nimport { FenceBlock } from './FenceBlock';\n\ninterface HtmlPreviewBlockProps {\n code: string;\n id: string;\n}\n\nfunction isFullDocument(html: string): boolean {\n return /<!DOCTYPE|<html/i.test(html);\n}\n\nfunction wrapFragment(html: string): string {\n return `<!DOCTYPE html>\n<html>\n<head><meta charset=\"utf-8\"><style>body{margin:0;padding:8px;font-family:system-ui,sans-serif;font-size:14px}</style></head>\n<body>${html}</body>\n</html>`;\n}\n\nexport const HtmlPreviewBlock: React.FC<HtmlPreviewBlockProps> = ({\n code,\n id,\n}) => {\n const [showPreview, setShowPreview] = useState(false);\n const [expanded, setExpanded] = useState(false);\n const iframeRef = useRef<HTMLIFrameElement>(null);\n const [iframeHeight, setIframeHeight] = useState(200);\n\n const srcdoc = isFullDocument(code) ? code : wrapFragment(code);\n\n useEffect(() => {\n function handleMessage(event: globalThis.MessageEvent) {\n // Sandboxed srcDoc iframes report origin \"null\"; validate source to prevent spoofing.\n if (event.origin !== 'null' && event.origin !== window.location.origin)\n return;\n if (event.source !== iframeRef.current?.contentWindow) return;\n if (event.data?.type === 'HTML_PREVIEW_RESIZE' && event.data?.id === id) {\n setIframeHeight(Math.min(Math.max(event.data.height, 200), 4000));\n }\n }\n window.addEventListener('message', handleMessage);\n return () => window.removeEventListener('message', handleMessage);\n }, [id]);\n\n useEffect(() => {\n if (!expanded) return;\n function handleKey(e: KeyboardEvent) {\n if (e.key === 'Escape') setExpanded(false);\n }\n document.addEventListener('keydown', handleKey);\n return () => document.removeEventListener('keydown', handleKey);\n }, [expanded]);\n\n const togglePreview = useCallback(() => setShowPreview((v) => !v), []);\n\n const headerActions = (\n <>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={togglePreview}\n className=\"h-7 gap-1 px-2 text-xs\"\n >\n {showPreview ? (\n <Code className=\"h-3 w-3\" />\n ) : (\n <Eye className=\"h-3 w-3\" />\n )}\n {showPreview ? 'Code' : 'Preview'}\n </Button>\n {showPreview && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setExpanded(true)}\n className=\"h-7 w-7 p-0\"\n aria-label=\"Expand preview\"\n >\n <Maximize2 className=\"h-3 w-3\" />\n </Button>\n )}\n </>\n );\n\n return (\n <>\n <FenceBlock code={code} language=\"html\" headerActions={headerActions}>\n <div className=\"relative\">\n {showPreview ? (\n <iframe\n ref={iframeRef}\n srcDoc={srcdoc}\n // `allow-scripts` lets previewed HTML run its own JS (charts, demos,\n // and the optional resize-postMessage handshake). It is intentionally\n // NOT paired with `allow-same-origin`, so the content runs in an\n // opaque (null) origin with no access to this page, cookies, or storage.\n sandbox=\"allow-scripts allow-forms\"\n referrerPolicy=\"no-referrer\"\n className=\"w-full border-0\"\n style={{ height: iframeHeight }}\n title=\"HTML Preview\"\n />\n ) : (\n <pre className=\"overflow-x-auto p-3 text-sm\">\n <code>{code}</code>\n </pre>\n )}\n </div>\n </FenceBlock>\n\n {expanded && (\n <div\n className=\"fixed inset-0 z-50 flex items-center justify-center bg-black/50\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"HTML Preview\"\n >\n <button\n type=\"button\"\n aria-label=\"Close preview\"\n className=\"absolute inset-0 h-full w-full cursor-default border-0 bg-transparent p-0\"\n onClick={() => setExpanded(false)}\n />\n <div className=\"relative h-[90vh] w-[90vw] overflow-hidden rounded-lg bg-white shadow-xl dark:bg-neutral-900\">\n <div className=\"flex items-center justify-between border-b border-neutral-200 px-4 py-2 dark:border-neutral-700\">\n <span className=\"text-sm font-medium\">HTML Preview</span>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setExpanded(false)}\n >\n Close\n </Button>\n </div>\n <iframe\n srcDoc={srcdoc}\n sandbox=\"allow-scripts allow-forms\"\n referrerPolicy=\"no-referrer\"\n className=\"h-full w-full border-0\"\n title=\"HTML Preview (expanded)\"\n />\n </div>\n </div>\n )}\n </>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/components/Markdown/HtmlPreviewBlock.tsx"],"names":["useState","useRef","useEffect","useCallback","jsxs","Fragment","Button","jsx","Code","Eye","Maximize2","FenceBlock"],"mappings":"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","file":"chunk-ERACGSDY.cjs","sourcesContent":["/** Sandboxed iframe preview for HTML code blocks. */\nimport { Code, Eye, Maximize2 } from 'lucide-react';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Button } from '../Button';\nimport { FenceBlock } from './FenceBlock';\n\ninterface HtmlPreviewBlockProps {\n code: string;\n id: string;\n}\n\nfunction isFullDocument(html: string): boolean {\n return /<!DOCTYPE|<html/i.test(html);\n}\n\nfunction wrapFragment(html: string): string {\n return `<!DOCTYPE html>\n<html>\n<head><meta charset=\"utf-8\"><style>body{margin:0;padding:8px;font-family:system-ui,sans-serif;font-size:14px}</style></head>\n<body>${html}</body>\n</html>`;\n}\n\nexport const HtmlPreviewBlock: React.FC<HtmlPreviewBlockProps> = ({\n code,\n id,\n}) => {\n const [showPreview, setShowPreview] = useState(false);\n const [expanded, setExpanded] = useState(false);\n const iframeRef = useRef<HTMLIFrameElement>(null);\n const [iframeHeight, setIframeHeight] = useState(200);\n\n const srcdoc = isFullDocument(code) ? code : wrapFragment(code);\n\n useEffect(() => {\n function handleMessage(event: globalThis.MessageEvent) {\n // Sandboxed srcDoc iframes report origin \"null\"; validate source to prevent spoofing.\n if (event.origin !== 'null' && event.origin !== window.location.origin)\n return;\n if (event.source !== iframeRef.current?.contentWindow) return;\n if (event.data?.type === 'HTML_PREVIEW_RESIZE' && event.data?.id === id) {\n setIframeHeight(Math.min(Math.max(event.data.height, 200), 4000));\n }\n }\n window.addEventListener('message', handleMessage);\n return () => window.removeEventListener('message', handleMessage);\n }, [id]);\n\n useEffect(() => {\n if (!expanded) return;\n function handleKey(e: KeyboardEvent) {\n if (e.key === 'Escape') setExpanded(false);\n }\n document.addEventListener('keydown', handleKey);\n return () => document.removeEventListener('keydown', handleKey);\n }, [expanded]);\n\n const togglePreview = useCallback(() => setShowPreview((v) => !v), []);\n\n const headerActions = (\n <>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={togglePreview}\n className=\"h-7 gap-1 px-2 text-xs\"\n >\n {showPreview ? (\n <Code className=\"h-3 w-3\" />\n ) : (\n <Eye className=\"h-3 w-3\" />\n )}\n {showPreview ? 'Code' : 'Preview'}\n </Button>\n {showPreview && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setExpanded(true)}\n className=\"h-7 w-7 p-0\"\n aria-label=\"Expand preview\"\n >\n <Maximize2 className=\"h-3 w-3\" />\n </Button>\n )}\n </>\n );\n\n return (\n <>\n <FenceBlock code={code} language=\"html\" headerActions={headerActions}>\n <div className=\"relative\">\n {showPreview ? (\n <iframe\n ref={iframeRef}\n srcDoc={srcdoc}\n // `allow-scripts` lets previewed HTML run its own JS (charts, demos,\n // and the optional resize-postMessage handshake). It is intentionally\n // NOT paired with `allow-same-origin`, so the content runs in an\n // opaque (null) origin with no access to this page, cookies, or storage.\n sandbox=\"allow-scripts allow-forms\"\n referrerPolicy=\"no-referrer\"\n className=\"w-full border-0\"\n style={{ height: iframeHeight }}\n title=\"HTML Preview\"\n />\n ) : (\n <pre className=\"overflow-x-auto p-3 text-sm\">\n <code>{code}</code>\n </pre>\n )}\n </div>\n </FenceBlock>\n\n {expanded && (\n <div\n className=\"fixed inset-0 z-50 flex items-center justify-center bg-black/50\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"HTML Preview\"\n >\n <button\n type=\"button\"\n aria-label=\"Close preview\"\n className=\"absolute inset-0 h-full w-full cursor-default border-0 bg-transparent p-0\"\n onClick={() => setExpanded(false)}\n />\n <div className=\"relative h-[90vh] w-[90vw] overflow-hidden rounded-lg bg-white shadow-xl dark:bg-neutral-900\">\n <div className=\"flex items-center justify-between border-b border-neutral-200 px-4 py-2 dark:border-neutral-700\">\n <span className=\"text-sm font-medium\">HTML Preview</span>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setExpanded(false)}\n >\n Close\n </Button>\n </div>\n <iframe\n srcDoc={srcdoc}\n sandbox=\"allow-scripts allow-forms\"\n referrerPolicy=\"no-referrer\"\n className=\"h-full w-full border-0\"\n title=\"HTML Preview (expanded)\"\n />\n </div>\n </div>\n )}\n </>\n );\n};\n"]}
@@ -178,7 +178,16 @@ var motionPresets = {
178
178
  // `times` front-loads the overshoot so it reads as a pop rather than an
179
179
  // even swell. Keyframe arrays need a duration-based tween; a spring has no
180
180
  // way to run through intermediate values.
181
- transition: { duration: 0.28, ease: "easeOut", times: [0, 0.45, 1] }
181
+ //
182
+ // `times` is scoped to `scale` on purpose. At the top level it also
183
+ // applies to `opacity`, whose two-value tween then gets three time stops:
184
+ // it overshoots to 1 early, falls back toward 0, and snaps to 1 at the end,
185
+ // so the badge flickers instead of fading in.
186
+ transition: {
187
+ duration: 0.15,
188
+ ease: "easeOut",
189
+ scale: { duration: 0.28, ease: "easeOut", times: [0, 0.45, 1] }
190
+ }
182
191
  }
183
192
  };
184
193
  var CONTEXT_KEY = /* @__PURE__ */ Symbol.for("@mieweb/ui.motionRuntimeContext.v1");
@@ -259,5 +268,5 @@ function AnimatedPresence({
259
268
  AnimatedPresence.displayName = "AnimatedPresence";
260
269
 
261
270
  export { Animated, AnimatedPresence, MotionRuntimeContext, createPresetPropBuilders, motionPresets, useMotionRuntime };
262
- //# sourceMappingURL=chunk-XCP454Q6.js.map
263
- //# sourceMappingURL=chunk-XCP454Q6.js.map
271
+ //# sourceMappingURL=chunk-F4N67NAF.js.map
272
+ //# sourceMappingURL=chunk-F4N67NAF.js.map