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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. package/README.md +4 -4
  2. package/agent/mieweb-ui.instructions.md +90 -1
  3. package/dist/CsvBlock-FX5YNGNE.cjs +17 -0
  4. package/dist/{CsvBlock-ROJCKJDP.cjs.map → CsvBlock-FX5YNGNE.cjs.map} +1 -1
  5. package/dist/CsvBlock-VLMG7GUO.js +8 -0
  6. package/dist/{CsvBlock-UWPMTLE2.js.map → CsvBlock-VLMG7GUO.js.map} +1 -1
  7. package/dist/HtmlPreviewBlock-5JE7L3GR.js +8 -0
  8. package/dist/{HtmlPreviewBlock-ME5U3XNS.js.map → HtmlPreviewBlock-5JE7L3GR.js.map} +1 -1
  9. package/dist/HtmlPreviewBlock-UO37JQ3K.cjs +17 -0
  10. package/dist/{HtmlPreviewBlock-DWFN6EUB.cjs.map → HtmlPreviewBlock-UO37JQ3K.cjs.map} +1 -1
  11. package/dist/Input-yN516s5_.d.cts +3 -0
  12. package/dist/Input-yN516s5_.d.ts +3 -0
  13. package/dist/MermaidBlock-3XHFBAMV.js +8 -0
  14. package/dist/{MermaidBlock-2B6CPD6Y.js.map → MermaidBlock-3XHFBAMV.js.map} +1 -1
  15. package/dist/MermaidBlock-RZ75RPZA.cjs +17 -0
  16. package/dist/{MermaidBlock-D2UC5M55.cjs.map → MermaidBlock-RZ75RPZA.cjs.map} +1 -1
  17. package/dist/SurveyBlock-MUVJ3JUI.js +8 -0
  18. package/dist/{SurveyBlock-4DO62RBT.js.map → SurveyBlock-MUVJ3JUI.js.map} +1 -1
  19. package/dist/SurveyBlock-VH47YXZC.cjs +17 -0
  20. package/dist/{SurveyBlock-4CD4AYMJ.cjs.map → SurveyBlock-VH47YXZC.cjs.map} +1 -1
  21. package/dist/ag-grid.d.cts +142 -1
  22. package/dist/ag-grid.d.ts +142 -1
  23. package/dist/brands/bluehive.cjs +3 -3
  24. package/dist/brands/bluehive.css +3 -0
  25. package/dist/brands/bluehive.js +1 -1
  26. package/dist/brands/index.cjs +14 -14
  27. package/dist/brands/index.js +4 -4
  28. package/dist/{chunk-JYZW2PZS.cjs → chunk-254QK722.cjs} +7 -7
  29. package/dist/chunk-254QK722.cjs.map +1 -0
  30. package/dist/{chunk-VKELAMAZ.js → chunk-2JICT4A2.js} +27 -11
  31. package/dist/chunk-2JICT4A2.js.map +1 -0
  32. package/dist/{chunk-VPWJCJCX.cjs → chunk-35Y4ILCU.cjs} +7 -7
  33. package/dist/{chunk-VPWJCJCX.cjs.map → chunk-35Y4ILCU.cjs.map} +1 -1
  34. package/dist/{chunk-G3JX3UAU.cjs → chunk-3KPDQG5O.cjs} +5 -5
  35. package/dist/{chunk-G3JX3UAU.cjs.map → chunk-3KPDQG5O.cjs.map} +1 -1
  36. package/dist/{chunk-Y5HFM7LO.js → chunk-3RXZWHCU.js} +4 -4
  37. package/dist/{chunk-Y5HFM7LO.js.map → chunk-3RXZWHCU.js.map} +1 -1
  38. package/dist/chunk-3YBS4WUQ.js +52 -0
  39. package/dist/chunk-3YBS4WUQ.js.map +1 -0
  40. package/dist/{chunk-WNJRS7Y7.cjs → chunk-3ZWCIPFT.cjs} +4 -2
  41. package/dist/chunk-3ZWCIPFT.cjs.map +1 -0
  42. package/dist/chunk-4HC2IBOX.js +258 -0
  43. package/dist/chunk-4HC2IBOX.js.map +1 -0
  44. package/dist/chunk-4IS3QCOQ.cjs +453 -0
  45. package/dist/chunk-4IS3QCOQ.cjs.map +1 -0
  46. package/dist/chunk-4NCDU5IG.cjs +56 -0
  47. package/dist/chunk-4NCDU5IG.cjs.map +1 -0
  48. package/dist/{chunk-E4IBHYJ7.cjs → chunk-6N6LIAUJ.cjs} +9 -9
  49. package/dist/{chunk-E4IBHYJ7.cjs.map → chunk-6N6LIAUJ.cjs.map} +1 -1
  50. package/dist/{chunk-3M7TAXNR.js → chunk-6ZPTZTKN.js} +3 -3
  51. package/dist/{chunk-3M7TAXNR.js.map → chunk-6ZPTZTKN.js.map} +1 -1
  52. package/dist/{chunk-MWVW4APN.cjs → chunk-7UTBDFFL.cjs} +4 -4
  53. package/dist/{chunk-MWVW4APN.cjs.map → chunk-7UTBDFFL.cjs.map} +1 -1
  54. package/dist/{chunk-FJ7YPVKV.js → chunk-7X6R3JIA.js} +3 -3
  55. package/dist/{chunk-FJ7YPVKV.js.map → chunk-7X6R3JIA.js.map} +1 -1
  56. package/dist/{chunk-GOALNQZ2.js → chunk-7YO7DNUV.js} +4 -83
  57. package/dist/chunk-7YO7DNUV.js.map +1 -0
  58. package/dist/{chunk-P2CA3XGI.js → chunk-7ZV67VZE.js} +4 -4
  59. package/dist/{chunk-P2CA3XGI.js.map → chunk-7ZV67VZE.js.map} +1 -1
  60. package/dist/chunk-ADW7ZYCY.cjs +2707 -0
  61. package/dist/chunk-ADW7ZYCY.cjs.map +1 -0
  62. package/dist/{chunk-2G75X6TS.cjs → chunk-AHHFFXJR.cjs} +3 -3
  63. package/dist/{chunk-2G75X6TS.cjs.map → chunk-AHHFFXJR.cjs.map} +1 -1
  64. package/dist/{chunk-VILW53UZ.js → chunk-BIQ7GSO2.js} +3 -3
  65. package/dist/{chunk-VILW53UZ.js.map → chunk-BIQ7GSO2.js.map} +1 -1
  66. package/dist/chunk-BM35CACB.js +148 -0
  67. package/dist/chunk-BM35CACB.js.map +1 -0
  68. package/dist/chunk-BNH4SXJB.js +874 -0
  69. package/dist/chunk-BNH4SXJB.js.map +1 -0
  70. package/dist/{chunk-XEAT7XJG.cjs → chunk-BUT6MF5K.cjs} +29 -13
  71. package/dist/chunk-BUT6MF5K.cjs.map +1 -0
  72. package/dist/{chunk-UAMXCMST.cjs → chunk-CFI3TQMA.cjs} +3 -3
  73. package/dist/{chunk-UAMXCMST.cjs.map → chunk-CFI3TQMA.cjs.map} +1 -1
  74. package/dist/{chunk-J5CSLNCN.cjs → chunk-COM7RNZU.cjs} +2 -2
  75. package/dist/{chunk-J5CSLNCN.cjs.map → chunk-COM7RNZU.cjs.map} +1 -1
  76. package/dist/{chunk-XI34EGK5.cjs → chunk-CPPUT74P.cjs} +9 -9
  77. package/dist/{chunk-XI34EGK5.cjs.map → chunk-CPPUT74P.cjs.map} +1 -1
  78. package/dist/{chunk-ACCAXVOG.js → chunk-CRS2CQWM.js} +134 -56
  79. package/dist/chunk-CRS2CQWM.js.map +1 -0
  80. package/dist/{chunk-OE5CKRUC.js → chunk-D22GE27K.js} +4 -4
  81. package/dist/{chunk-OE5CKRUC.js.map → chunk-D22GE27K.js.map} +1 -1
  82. package/dist/chunk-DXEPYK3I.cjs +92 -0
  83. package/dist/chunk-DXEPYK3I.cjs.map +1 -0
  84. package/dist/{chunk-ZGRCSNPK.js → chunk-E2PBPQGS.js} +4 -4
  85. package/dist/{chunk-ZGRCSNPK.js.map → chunk-E2PBPQGS.js.map} +1 -1
  86. package/dist/{chunk-5JJ2DAE4.js → chunk-ENMXHZNE.js} +3 -3
  87. package/dist/{chunk-5JJ2DAE4.js.map → chunk-ENMXHZNE.js.map} +1 -1
  88. package/dist/{chunk-XCP454Q6.js → chunk-F4N67NAF.js} +12 -3
  89. package/dist/chunk-F4N67NAF.js.map +1 -0
  90. package/dist/chunk-FBCDYTWM.js +385 -0
  91. package/dist/chunk-FBCDYTWM.js.map +1 -0
  92. package/dist/{chunk-VU6UTJRM.js → chunk-FIKO4WR6.js} +3 -3
  93. package/dist/{chunk-VU6UTJRM.js.map → chunk-FIKO4WR6.js.map} +1 -1
  94. package/dist/{chunk-DEDN5HAG.js → chunk-FZURBQJ2.js} +3 -3
  95. package/dist/{chunk-DEDN5HAG.js.map → chunk-FZURBQJ2.js.map} +1 -1
  96. package/dist/{chunk-JHULS3EC.js → chunk-GBUVIGD5.js} +89 -3
  97. package/dist/chunk-GBUVIGD5.js.map +1 -0
  98. package/dist/chunk-GU5OS7JJ.cjs +281 -0
  99. package/dist/chunk-GU5OS7JJ.cjs.map +1 -0
  100. package/dist/{chunk-V7D3YGUV.js → chunk-GVLNXPJX.js} +4 -4
  101. package/dist/{chunk-V7D3YGUV.js.map → chunk-GVLNXPJX.js.map} +1 -1
  102. package/dist/chunk-GVM6DTR5.js +90 -0
  103. package/dist/chunk-GVM6DTR5.js.map +1 -0
  104. package/dist/{chunk-SQHMGT4W.js → chunk-GW4RFJZ5.js} +7 -7
  105. package/dist/chunk-GW4RFJZ5.js.map +1 -0
  106. package/dist/{chunk-3QEVGSFG.cjs → chunk-GYXUS65N.cjs} +5 -5
  107. package/dist/{chunk-3QEVGSFG.cjs.map → chunk-GYXUS65N.cjs.map} +1 -1
  108. package/dist/{chunk-WGPLUCBD.js → chunk-H2IAMSHK.js} +3 -3
  109. package/dist/{chunk-WGPLUCBD.js.map → chunk-H2IAMSHK.js.map} +1 -1
  110. package/dist/{chunk-JID7AZTO.cjs → chunk-H3ROMJYI.cjs} +4 -4
  111. package/dist/{chunk-JID7AZTO.cjs.map → chunk-H3ROMJYI.cjs.map} +1 -1
  112. package/dist/{chunk-GD7EBGC4.cjs → chunk-HC3NAN55.cjs} +19 -19
  113. package/dist/{chunk-GD7EBGC4.cjs.map → chunk-HC3NAN55.cjs.map} +1 -1
  114. package/dist/{chunk-7ZXAQTV4.cjs → chunk-HIZWOAWY.cjs} +8 -8
  115. package/dist/{chunk-7ZXAQTV4.cjs.map → chunk-HIZWOAWY.cjs.map} +1 -1
  116. package/dist/{chunk-NV2CWBI2.cjs → chunk-IEY3ZJIT.cjs} +12 -3
  117. package/dist/chunk-IEY3ZJIT.cjs.map +1 -0
  118. package/dist/chunk-IT775BYG.js +179 -0
  119. package/dist/chunk-IT775BYG.js.map +1 -0
  120. package/dist/chunk-IYWG72DM.js +166 -0
  121. package/dist/chunk-IYWG72DM.js.map +1 -0
  122. package/dist/{chunk-2YCERQWC.js → chunk-JBIGSP2T.js} +6 -6
  123. package/dist/{chunk-2YCERQWC.js.map → chunk-JBIGSP2T.js.map} +1 -1
  124. package/dist/{chunk-IX6KFB3K.cjs → chunk-JELTRRR5.cjs} +9 -9
  125. package/dist/{chunk-IX6KFB3K.cjs.map → chunk-JELTRRR5.cjs.map} +1 -1
  126. package/dist/{chunk-YQDA366U.js → chunk-JHG3ELS2.js} +2 -2
  127. package/dist/{chunk-YQDA366U.js.map → chunk-JHG3ELS2.js.map} +1 -1
  128. package/dist/{chunk-WWJIW2IH.cjs → chunk-JSXIB6EJ.cjs} +4 -4
  129. package/dist/{chunk-WWJIW2IH.cjs.map → chunk-JSXIB6EJ.cjs.map} +1 -1
  130. package/dist/{chunk-WNM7IZJ7.js → chunk-K34DXMLZ.js} +7 -7
  131. package/dist/{chunk-WNM7IZJ7.js.map → chunk-K34DXMLZ.js.map} +1 -1
  132. package/dist/{chunk-FXO5ARBB.cjs → chunk-KDW6BD4O.cjs} +4 -4
  133. package/dist/{chunk-FXO5ARBB.cjs.map → chunk-KDW6BD4O.cjs.map} +1 -1
  134. package/dist/{chunk-Z5V7SAZ4.js → chunk-KFEN2SRZ.js} +3 -3
  135. package/dist/{chunk-Z5V7SAZ4.js.map → chunk-KFEN2SRZ.js.map} +1 -1
  136. package/dist/{chunk-2QKBTPUC.cjs → chunk-KGKBZN3T.cjs} +8 -8
  137. package/dist/{chunk-2QKBTPUC.cjs.map → chunk-KGKBZN3T.cjs.map} +1 -1
  138. package/dist/{chunk-UV2FVNWT.cjs → chunk-LFPJ3OUM.cjs} +5 -5
  139. package/dist/{chunk-UV2FVNWT.cjs.map → chunk-LFPJ3OUM.cjs.map} +1 -1
  140. package/dist/{chunk-WNAA6CLE.cjs → chunk-LHBWRMNC.cjs} +94 -2
  141. package/dist/chunk-LHBWRMNC.cjs.map +1 -0
  142. package/dist/{chunk-JI244Y7C.js → chunk-MLAWXPRY.js} +190 -5
  143. package/dist/chunk-MLAWXPRY.js.map +1 -0
  144. package/dist/chunk-N7C4OEP7.cjs +356 -0
  145. package/dist/chunk-N7C4OEP7.cjs.map +1 -0
  146. package/dist/{chunk-WNZAYBVB.cjs → chunk-NKV76R65.cjs} +48 -48
  147. package/dist/{chunk-WNZAYBVB.cjs.map → chunk-NKV76R65.cjs.map} +1 -1
  148. package/dist/{chunk-PYJDVWXM.js → chunk-NUB5HRKS.js} +3 -3
  149. package/dist/{chunk-PYJDVWXM.js.map → chunk-NUB5HRKS.js.map} +1 -1
  150. package/dist/{chunk-LL6IWKI3.js → chunk-OW3SQJ7P.js} +3 -3
  151. package/dist/{chunk-LL6IWKI3.js.map → chunk-OW3SQJ7P.js.map} +1 -1
  152. package/dist/{chunk-5GUOOLPR.cjs → chunk-P5CMZZRZ.cjs} +5 -5
  153. package/dist/{chunk-5GUOOLPR.cjs.map → chunk-P5CMZZRZ.cjs.map} +1 -1
  154. package/dist/{chunk-3T7QGLNB.js → chunk-PJEL5ZZV.js} +4 -2
  155. package/dist/chunk-PJEL5ZZV.js.map +1 -0
  156. package/dist/{chunk-H4ZXMQQW.js → chunk-QOVJ6Z6R.js} +3 -3
  157. package/dist/{chunk-H4ZXMQQW.js.map → chunk-QOVJ6Z6R.js.map} +1 -1
  158. package/dist/{chunk-U42F3HLE.cjs → chunk-QURJVPRH.cjs} +190 -5
  159. package/dist/chunk-QURJVPRH.cjs.map +1 -0
  160. package/dist/{chunk-X4XPNTCZ.cjs → chunk-R5Z7AOVU.cjs} +136 -58
  161. package/dist/chunk-R5Z7AOVU.cjs.map +1 -0
  162. package/dist/{chunk-TMMVIUUN.js → chunk-R6KPWIGO.js} +4 -4
  163. package/dist/{chunk-TMMVIUUN.js.map → chunk-R6KPWIGO.js.map} +1 -1
  164. package/dist/{chunk-22CYDCXA.js → chunk-RM2HPQIC.js} +105 -14
  165. package/dist/chunk-RM2HPQIC.js.map +1 -0
  166. package/dist/{chunk-ENKFJJZX.js → chunk-SD7ONW6S.js} +6 -6
  167. package/dist/{chunk-ENKFJJZX.js.map → chunk-SD7ONW6S.js.map} +1 -1
  168. package/dist/{chunk-RJ6NTJHC.js → chunk-SRMTRD7F.js} +3 -3
  169. package/dist/{chunk-RJ6NTJHC.js.map → chunk-SRMTRD7F.js.map} +1 -1
  170. package/dist/chunk-T4JYUICS.js +2657 -0
  171. package/dist/chunk-T4JYUICS.js.map +1 -0
  172. package/dist/{chunk-7ZDPD5ZX.cjs → chunk-T4L7Q5FA.cjs} +7 -7
  173. package/dist/{chunk-7ZDPD5ZX.cjs.map → chunk-T4L7Q5FA.cjs.map} +1 -1
  174. package/dist/{chunk-NJ6MY6V5.js → chunk-T5BBZQ66.js} +3 -3
  175. package/dist/{chunk-NJ6MY6V5.js.map → chunk-T5BBZQ66.js.map} +1 -1
  176. package/dist/{chunk-2IZLKPUW.js → chunk-THLIL6PY.js} +3 -3
  177. package/dist/{chunk-2IZLKPUW.js.map → chunk-THLIL6PY.js.map} +1 -1
  178. package/dist/{chunk-SGFYA22I.cjs → chunk-TJCX4OML.cjs} +8 -8
  179. package/dist/{chunk-SGFYA22I.cjs.map → chunk-TJCX4OML.cjs.map} +1 -1
  180. package/dist/{chunk-N6IY47YA.cjs → chunk-TTSSUOEV.cjs} +8 -8
  181. package/dist/{chunk-N6IY47YA.cjs.map → chunk-TTSSUOEV.cjs.map} +1 -1
  182. package/dist/{chunk-5MCBWTIF.cjs → chunk-TYE5K5WV.cjs} +4 -4
  183. package/dist/{chunk-5MCBWTIF.cjs.map → chunk-TYE5K5WV.cjs.map} +1 -1
  184. package/dist/{chunk-VOKVG3ER.js → chunk-UBSH27C2.js} +4 -4
  185. package/dist/{chunk-VOKVG3ER.js.map → chunk-UBSH27C2.js.map} +1 -1
  186. package/dist/{chunk-TAXD5ADA.cjs → chunk-UEDTZYGI.cjs} +3 -3
  187. package/dist/{chunk-TAXD5ADA.cjs.map → chunk-UEDTZYGI.cjs.map} +1 -1
  188. package/dist/{chunk-UQ3VVR6A.cjs → chunk-UPWIJC6I.cjs} +3 -3
  189. package/dist/{chunk-UQ3VVR6A.cjs.map → chunk-UPWIJC6I.cjs.map} +1 -1
  190. package/dist/{chunk-S7WCHDBO.js → chunk-VCI2Y7ST.js} +3 -3
  191. package/dist/{chunk-S7WCHDBO.js.map → chunk-VCI2Y7ST.js.map} +1 -1
  192. package/dist/chunk-VINZZQBD.cjs +323 -0
  193. package/dist/chunk-VINZZQBD.cjs.map +1 -0
  194. package/dist/{chunk-OD47TTAW.cjs → chunk-VOQJHSXN.cjs} +9 -9
  195. package/dist/{chunk-OD47TTAW.cjs.map → chunk-VOQJHSXN.cjs.map} +1 -1
  196. package/dist/chunk-VPTASZ2O.cjs +171 -0
  197. package/dist/chunk-VPTASZ2O.cjs.map +1 -0
  198. package/dist/chunk-WXFGHDTV.cjs +896 -0
  199. package/dist/chunk-WXFGHDTV.cjs.map +1 -0
  200. package/dist/{chunk-VNYW4C4J.cjs → chunk-X6A27RGO.cjs} +4 -84
  201. package/dist/chunk-X6A27RGO.cjs.map +1 -0
  202. package/dist/chunk-XBTKZCZF.js +333 -0
  203. package/dist/chunk-XBTKZCZF.js.map +1 -0
  204. package/dist/chunk-XDIMTPZU.cjs +202 -0
  205. package/dist/chunk-XDIMTPZU.cjs.map +1 -0
  206. package/dist/chunk-XDU65GLW.js +21 -0
  207. package/dist/chunk-XDU65GLW.js.map +1 -0
  208. package/dist/chunk-XI74P5F2.cjs +424 -0
  209. package/dist/chunk-XI74P5F2.cjs.map +1 -0
  210. package/dist/{chunk-WIAQQNFU.cjs → chunk-XRVMYT5G.cjs} +106 -13
  211. package/dist/chunk-XRVMYT5G.cjs.map +1 -0
  212. package/dist/chunk-XVW5DPPP.js +429 -0
  213. package/dist/chunk-XVW5DPPP.js.map +1 -0
  214. package/dist/chunk-Y4E2WRUR.cjs +188 -0
  215. package/dist/chunk-Y4E2WRUR.cjs.map +1 -0
  216. package/dist/chunk-Y4QNLW7W.js +300 -0
  217. package/dist/chunk-Y4QNLW7W.js.map +1 -0
  218. package/dist/{chunk-6EN3IQQI.cjs → chunk-YRHBSSQ3.cjs} +6 -6
  219. package/dist/{chunk-6EN3IQQI.cjs.map → chunk-YRHBSSQ3.cjs.map} +1 -1
  220. package/dist/{chunk-KZFBQ7GY.js → chunk-YU55JD35.js} +3 -3
  221. package/dist/{chunk-KZFBQ7GY.js.map → chunk-YU55JD35.js.map} +1 -1
  222. package/dist/chunk-YW2AKBLS.cjs +23 -0
  223. package/dist/chunk-YW2AKBLS.cjs.map +1 -0
  224. package/dist/{chunk-ELPW32ZI.cjs → chunk-ZTMYKAVU.cjs} +45 -45
  225. package/dist/{chunk-ELPW32ZI.cjs.map → chunk-ZTMYKAVU.cjs.map} +1 -1
  226. package/dist/{chunk-3QGS6CXD.js → chunk-ZYL4SNOR.js} +3 -3
  227. package/dist/{chunk-3QGS6CXD.js.map → chunk-ZYL4SNOR.js.map} +1 -1
  228. package/dist/components/Alert/index.d.cts +1 -1
  229. package/dist/components/Alert/index.d.ts +1 -1
  230. package/dist/components/AlertDialog/index.cjs +6 -5
  231. package/dist/components/AlertDialog/index.d.cts +28 -3
  232. package/dist/components/AlertDialog/index.d.ts +28 -3
  233. package/dist/components/AlertDialog/index.js +5 -4
  234. package/dist/components/AudioRecorder/index.d.cts +2 -2
  235. package/dist/components/AudioRecorder/index.d.ts +2 -2
  236. package/dist/components/Autocomplete/index.d.cts +8 -2
  237. package/dist/components/Autocomplete/index.d.ts +8 -2
  238. package/dist/components/Avatar/index.d.cts +1 -1
  239. package/dist/components/Avatar/index.d.ts +1 -1
  240. package/dist/components/Badge/index.d.cts +1 -1
  241. package/dist/components/Badge/index.d.ts +1 -1
  242. package/dist/components/BoardView/index.cjs +24 -0
  243. package/dist/components/BoardView/index.cjs.map +1 -0
  244. package/dist/components/BoardView/index.d.cts +41 -0
  245. package/dist/components/BoardView/index.d.ts +41 -0
  246. package/dist/components/BoardView/index.js +7 -0
  247. package/dist/components/BoardView/index.js.map +1 -0
  248. package/dist/components/Button/index.cjs +4 -3
  249. package/dist/components/Button/index.d.cts +2 -1
  250. package/dist/components/Button/index.d.ts +2 -1
  251. package/dist/components/Button/index.js +2 -1
  252. package/dist/components/CalendarView/index.cjs +23 -0
  253. package/dist/components/CalendarView/index.cjs.map +1 -0
  254. package/dist/components/CalendarView/index.d.cts +39 -0
  255. package/dist/components/CalendarView/index.d.ts +39 -0
  256. package/dist/components/CalendarView/index.js +10 -0
  257. package/dist/components/CalendarView/index.js.map +1 -0
  258. package/dist/components/Card/index.d.cts +3 -3
  259. package/dist/components/Card/index.d.ts +3 -3
  260. package/dist/components/Collapsible/index.cjs +6 -6
  261. package/dist/components/Collapsible/index.js +3 -3
  262. package/dist/components/CountryCodeDropdown/index.cjs +5 -5
  263. package/dist/components/CountryCodeDropdown/index.js +2 -2
  264. package/dist/components/CustomizableDashboard/index.cjs +10 -9
  265. package/dist/components/CustomizableDashboard/index.js +3 -2
  266. package/dist/components/Dropdown/index.cjs +10 -10
  267. package/dist/components/Dropdown/index.d.cts +2 -1
  268. package/dist/components/Dropdown/index.d.ts +2 -1
  269. package/dist/components/Dropdown/index.js +3 -3
  270. package/dist/components/FloatingWindow/index.cjs +5 -4
  271. package/dist/components/FloatingWindow/index.js +3 -2
  272. package/dist/components/GanttView/index.cjs +20 -0
  273. package/dist/components/GanttView/index.cjs.map +1 -0
  274. package/dist/components/GanttView/index.d.cts +36 -0
  275. package/dist/components/GanttView/index.d.ts +36 -0
  276. package/dist/components/GanttView/index.js +7 -0
  277. package/dist/components/GanttView/index.js.map +1 -0
  278. package/dist/components/GlossaryTooltip/index.cjs +3 -3
  279. package/dist/components/GlossaryTooltip/index.js +2 -2
  280. package/dist/components/KeyboardShortcutsOverlay/index.cjs +5 -5
  281. package/dist/components/KeyboardShortcutsOverlay/index.js +3 -3
  282. package/dist/components/ListView/index.cjs +23 -0
  283. package/dist/components/ListView/index.cjs.map +1 -0
  284. package/dist/components/ListView/index.d.cts +124 -0
  285. package/dist/components/ListView/index.d.ts +124 -0
  286. package/dist/components/ListView/index.js +10 -0
  287. package/dist/components/ListView/index.js.map +1 -0
  288. package/dist/components/Markdown/index.cjs +20 -19
  289. package/dist/components/Markdown/index.js +8 -7
  290. package/dist/components/MediaEditor/index.cjs +15 -14
  291. package/dist/components/MediaEditor/index.d.cts +91 -2
  292. package/dist/components/MediaEditor/index.d.ts +91 -2
  293. package/dist/components/MediaEditor/index.js +10 -9
  294. package/dist/components/MediaFeed/index.cjs +26 -0
  295. package/dist/components/MediaFeed/index.cjs.map +1 -0
  296. package/dist/components/MediaFeed/index.d.cts +104 -0
  297. package/dist/components/MediaFeed/index.d.ts +104 -0
  298. package/dist/components/MediaFeed/index.js +17 -0
  299. package/dist/components/MediaFeed/index.js.map +1 -0
  300. package/dist/components/MediaPlayer/index.cjs +7 -6
  301. package/dist/components/MediaPlayer/index.d.cts +19 -1
  302. package/dist/components/MediaPlayer/index.d.ts +19 -1
  303. package/dist/components/MediaPlayer/index.js +4 -3
  304. package/dist/components/MegaMenu/index.cjs +6 -5
  305. package/dist/components/MegaMenu/index.js +3 -2
  306. package/dist/components/Modal/index.cjs +10 -10
  307. package/dist/components/Modal/index.js +2 -2
  308. package/dist/components/Pagination/index.d.cts +1 -1
  309. package/dist/components/Pagination/index.d.ts +1 -1
  310. package/dist/components/PhoneInput/index.d.cts +36 -3
  311. package/dist/components/PhoneInput/index.d.ts +36 -3
  312. package/dist/components/Progress/index.d.cts +1 -1
  313. package/dist/components/Progress/index.d.ts +1 -1
  314. package/dist/components/Q/index.d.cts +2 -2
  315. package/dist/components/Q/index.d.ts +2 -2
  316. package/dist/components/QuickAction/index.d.cts +1 -1
  317. package/dist/components/QuickAction/index.d.ts +1 -1
  318. package/dist/components/RadialExplorer/index.cjs +5 -4
  319. package/dist/components/RadialExplorer/index.js +4 -3
  320. package/dist/components/RecordButton/index.d.cts +1 -1
  321. package/dist/components/RecordButton/index.d.ts +1 -1
  322. package/dist/components/RichTextEditor/index.cjs +9 -8
  323. package/dist/components/RichTextEditor/index.d.cts +7 -2
  324. package/dist/components/RichTextEditor/index.d.ts +7 -2
  325. package/dist/components/RichTextEditor/index.js +6 -5
  326. package/dist/components/ScrollArea/index.d.cts +1 -1
  327. package/dist/components/ScrollArea/index.d.ts +1 -1
  328. package/dist/components/SectionSpyNav/index.cjs +4 -3
  329. package/dist/components/SectionSpyNav/index.js +3 -2
  330. package/dist/components/Select/index.cjs +4 -4
  331. package/dist/components/Select/index.d.cts +1 -2
  332. package/dist/components/Select/index.d.ts +1 -2
  333. package/dist/components/Select/index.js +2 -2
  334. package/dist/components/Skeleton/index.d.cts +1 -1
  335. package/dist/components/Skeleton/index.d.ts +1 -1
  336. package/dist/components/Slider/index.d.cts +2 -2
  337. package/dist/components/Slider/index.d.ts +2 -2
  338. package/dist/components/SliderCalculator/index.cjs +4 -4
  339. package/dist/components/SliderCalculator/index.js +2 -2
  340. package/dist/components/SourceTip/index.cjs +3 -3
  341. package/dist/components/SourceTip/index.js +2 -2
  342. package/dist/components/Spinner/index.d.cts +2 -2
  343. package/dist/components/Spinner/index.d.ts +2 -2
  344. package/dist/components/SuperChat/index.cjs +1406 -823
  345. package/dist/components/SuperChat/index.cjs.map +1 -1
  346. package/dist/components/SuperChat/index.d.cts +126 -8
  347. package/dist/components/SuperChat/index.d.ts +126 -8
  348. package/dist/components/SuperChat/index.js +1398 -815
  349. package/dist/components/SuperChat/index.js.map +1 -1
  350. package/dist/components/SuperChat/plugins/index.cjs +6 -6
  351. package/dist/components/SuperChat/plugins/index.d.cts +2 -3
  352. package/dist/components/SuperChat/plugins/index.d.ts +2 -3
  353. package/dist/components/SuperChat/plugins/index.js +5 -5
  354. package/dist/components/Text/index.d.cts +3 -3
  355. package/dist/components/Text/index.d.ts +3 -3
  356. package/dist/components/Textarea/index.d.cts +1 -2
  357. package/dist/components/Textarea/index.d.ts +1 -2
  358. package/dist/components/ThemeProvider/index.cjs +9 -9
  359. package/dist/components/ThemeProvider/index.d.cts +3 -1
  360. package/dist/components/ThemeProvider/index.d.ts +3 -1
  361. package/dist/components/ThemeProvider/index.js +3 -3
  362. package/dist/components/Tooltip/index.cjs +3 -3
  363. package/dist/components/Tooltip/index.js +2 -2
  364. package/dist/components/TranscriptView/index.d.cts +85 -4
  365. package/dist/components/TranscriptView/index.d.ts +85 -4
  366. package/dist/components/ViewSet/index.cjs +24 -0
  367. package/dist/components/ViewSet/index.cjs.map +1 -0
  368. package/dist/components/ViewSet/index.d.cts +200 -0
  369. package/dist/components/ViewSet/index.d.ts +200 -0
  370. package/dist/components/ViewSet/index.js +15 -0
  371. package/dist/components/ViewSet/index.js.map +1 -0
  372. package/dist/components/ViewSwitcher/index.cjs +20 -0
  373. package/dist/components/ViewSwitcher/index.cjs.map +1 -0
  374. package/dist/components/ViewSwitcher/index.d.cts +4 -0
  375. package/dist/components/ViewSwitcher/index.d.ts +4 -0
  376. package/dist/components/ViewSwitcher/index.js +7 -0
  377. package/dist/components/ViewSwitcher/index.js.map +1 -0
  378. package/dist/datavis.cjs +3 -2
  379. package/dist/datavis.cjs.map +1 -1
  380. package/dist/datavis.d.cts +167 -13
  381. package/dist/datavis.d.ts +167 -13
  382. package/dist/datavis.js +2 -1
  383. package/dist/datavis.js.map +1 -1
  384. package/dist/deck.cjs +3360 -0
  385. package/dist/deck.cjs.map +1 -0
  386. package/dist/deck.d.cts +712 -0
  387. package/dist/deck.d.ts +712 -0
  388. package/dist/deck.js +3316 -0
  389. package/dist/deck.js.map +1 -0
  390. package/dist/esheet.cjs +14 -13
  391. package/dist/esheet.cjs.map +1 -1
  392. package/dist/esheet.d.cts +183 -1
  393. package/dist/esheet.d.ts +183 -1
  394. package/dist/esheet.js +11 -10
  395. package/dist/esheet.js.map +1 -1
  396. package/dist/globe.cjs +2 -2
  397. package/dist/globe.js +1 -1
  398. package/dist/hooks/index.cjs +60 -27
  399. package/dist/hooks/index.d.cts +590 -31
  400. package/dist/hooks/index.d.ts +590 -31
  401. package/dist/hooks/index.js +6 -5
  402. package/dist/icons-wBacj6BW.d.cts +142 -0
  403. package/dist/icons-wBacj6BW.d.ts +142 -0
  404. package/dist/index-DoYYWsNc.d.cts +127 -0
  405. package/dist/index-DoYYWsNc.d.ts +127 -0
  406. package/dist/index.cjs +1420 -1048
  407. package/dist/index.cjs.map +1 -1
  408. package/dist/index.d.cts +8796 -482
  409. package/dist/index.d.ts +8796 -482
  410. package/dist/index.js +368 -232
  411. package/dist/index.js.map +1 -1
  412. package/dist/kerebron.cjs +58 -19
  413. package/dist/kerebron.cjs.map +1 -1
  414. package/dist/kerebron.css +115 -0
  415. package/dist/kerebron.d.cts +37 -0
  416. package/dist/kerebron.d.ts +37 -0
  417. package/dist/kerebron.js +58 -19
  418. package/dist/kerebron.js.map +1 -1
  419. package/dist/maps.cjs +160 -0
  420. package/dist/maps.cjs.map +1 -0
  421. package/dist/maps.d.cts +42 -0
  422. package/dist/maps.d.ts +42 -0
  423. package/dist/maps.js +138 -0
  424. package/dist/maps.js.map +1 -0
  425. package/dist/motion.cjs +7 -7
  426. package/dist/motion.d.cts +186 -2
  427. package/dist/motion.d.ts +186 -2
  428. package/dist/motion.js +2 -2
  429. package/dist/q.d.cts +25 -3
  430. package/dist/q.d.ts +25 -3
  431. package/dist/styles/effects.css +133 -0
  432. package/dist/styles/init.css +3 -0
  433. package/dist/styles.css +1 -1
  434. package/dist/tailwind-preset.cjs +4 -4
  435. package/dist/tailwind-preset.js +1 -1
  436. package/dist/templates.cjs +156 -0
  437. package/dist/templates.cjs.map +1 -0
  438. package/dist/templates.d.cts +734 -0
  439. package/dist/templates.d.ts +734 -0
  440. package/dist/templates.js +11 -0
  441. package/dist/templates.js.map +1 -0
  442. package/dist/types-Cx1FHLq2.d.cts +548 -0
  443. package/dist/types-Cx1FHLq2.d.ts +548 -0
  444. package/dist/types-DsdZvEI1.d.cts +92 -0
  445. package/dist/types-DsdZvEI1.d.ts +92 -0
  446. package/dist/utils/index.d.cts +13 -2
  447. package/dist/utils/index.d.ts +13 -2
  448. package/package.json +62 -13
  449. package/dist/Animated-XmH6k8pZ.d.cts +0 -188
  450. package/dist/Animated-XmH6k8pZ.d.ts +0 -188
  451. package/dist/CsvBlock-ROJCKJDP.cjs +0 -16
  452. package/dist/CsvBlock-UWPMTLE2.js +0 -7
  453. package/dist/HtmlPreviewBlock-DWFN6EUB.cjs +0 -16
  454. package/dist/HtmlPreviewBlock-ME5U3XNS.js +0 -7
  455. package/dist/MedicationEditor-Bp4NLy7y.d.cts +0 -352
  456. package/dist/MedicationEditor-Bp4NLy7y.d.ts +0 -352
  457. package/dist/MermaidBlock-2B6CPD6Y.js +0 -7
  458. package/dist/MermaidBlock-D2UC5M55.cjs +0 -16
  459. package/dist/SurveyBlock-4CD4AYMJ.cjs +0 -16
  460. package/dist/SurveyBlock-4DO62RBT.js +0 -7
  461. package/dist/chunk-22CYDCXA.js.map +0 -1
  462. package/dist/chunk-3T7QGLNB.js.map +0 -1
  463. package/dist/chunk-6HFFWEM3.cjs +0 -22
  464. package/dist/chunk-6HFFWEM3.cjs.map +0 -1
  465. package/dist/chunk-ACCAXVOG.js.map +0 -1
  466. package/dist/chunk-GOALNQZ2.js.map +0 -1
  467. package/dist/chunk-HB7C7NB5.js +0 -20
  468. package/dist/chunk-HB7C7NB5.js.map +0 -1
  469. package/dist/chunk-JHULS3EC.js.map +0 -1
  470. package/dist/chunk-JI244Y7C.js.map +0 -1
  471. package/dist/chunk-JYZW2PZS.cjs.map +0 -1
  472. package/dist/chunk-NV2CWBI2.cjs.map +0 -1
  473. package/dist/chunk-SQHMGT4W.js.map +0 -1
  474. package/dist/chunk-U42F3HLE.cjs.map +0 -1
  475. package/dist/chunk-VKELAMAZ.js.map +0 -1
  476. package/dist/chunk-VNYW4C4J.cjs.map +0 -1
  477. package/dist/chunk-WIAQQNFU.cjs.map +0 -1
  478. package/dist/chunk-WNAA6CLE.cjs.map +0 -1
  479. package/dist/chunk-WNJRS7Y7.cjs.map +0 -1
  480. package/dist/chunk-X4XPNTCZ.cjs.map +0 -1
  481. package/dist/chunk-XCP454Q6.js.map +0 -1
  482. package/dist/chunk-XEAT7XJG.cjs.map +0 -1
  483. package/dist/html-MdxqSzjD.d.cts +0 -13
  484. package/dist/html-MdxqSzjD.d.ts +0 -13
  485. package/dist/orderRows-BUJYgSc7.d.cts +0 -221
  486. package/dist/orderRows-BUJYgSc7.d.ts +0 -221
  487. package/dist/transcript-Cg7uSW-C.d.cts +0 -84
  488. package/dist/transcript-Cg7uSW-C.d.ts +0 -84
  489. package/dist/types-B97JNRNQ.d.cts +0 -251
  490. package/dist/types-CnPEwzlp.d.cts +0 -254
  491. package/dist/types-CnPEwzlp.d.ts +0 -254
  492. package/dist/types-gZXrfLj6.d.ts +0 -251
  493. package/dist/useAnchoredPosition-CKwLSQW8.d.cts +0 -76
  494. package/dist/useAnchoredPosition-CKwLSQW8.d.ts +0 -76
  495. package/dist/useTheme-B9SWu6ui.d.cts +0 -24
  496. package/dist/useTheme-B9SWu6ui.d.ts +0 -24
  497. package/dist/useTranscriptEdits-CGzlemHT.d.cts +0 -182
  498. package/dist/useTranscriptEdits-D32bLs0l.d.ts +0 -182
@@ -0,0 +1,188 @@
1
+ 'use strict';
2
+
3
+ var chunkXDIMTPZU_cjs = require('./chunk-XDIMTPZU.cjs');
4
+ var chunkGU5OS7JJ_cjs = require('./chunk-GU5OS7JJ.cjs');
5
+ var chunkVINZZQBD_cjs = require('./chunk-VINZZQBD.cjs');
6
+ var chunkN7C4OEP7_cjs = require('./chunk-N7C4OEP7.cjs');
7
+ var chunk4IS3QCOQ_cjs = require('./chunk-4IS3QCOQ.cjs');
8
+ var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
9
+ var React = require('react');
10
+ var jsxRuntime = require('react/jsx-runtime');
11
+
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ var n = Object.create(null);
15
+ if (e) {
16
+ Object.keys(e).forEach(function (k) {
17
+ if (k !== 'default') {
18
+ var d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ n.default = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
31
+
32
+ var FIRST_ID = (views) => {
33
+ const first = views[0];
34
+ return (typeof first === "string" ? first : first?.id) ?? "list";
35
+ };
36
+ var readStored = (key) => {
37
+ try {
38
+ return globalThis.localStorage?.getItem(key) ?? null;
39
+ } catch {
40
+ return null;
41
+ }
42
+ };
43
+ var writeStored = (key, value) => {
44
+ try {
45
+ globalThis.localStorage?.setItem(key, value);
46
+ } catch {
47
+ }
48
+ };
49
+ function ViewSet({
50
+ views,
51
+ view,
52
+ defaultView,
53
+ onViewChange,
54
+ storageKey,
55
+ stages,
56
+ onMove,
57
+ toolbar,
58
+ filters,
59
+ overview,
60
+ table,
61
+ detail,
62
+ listProps,
63
+ boardProps,
64
+ calendarProps,
65
+ ganttProps,
66
+ className,
67
+ classNames,
68
+ ...shared
69
+ }) {
70
+ const [internalView, setInternalView] = React__namespace.useState(
71
+ () => defaultView ?? FIRST_ID(views)
72
+ );
73
+ const offered = React__namespace.useMemo(
74
+ () => views.filter((v) => {
75
+ const id = typeof v === "string" ? v : v.id;
76
+ if (id === "overview") return overview != null;
77
+ if (id === "table") return table != null;
78
+ return true;
79
+ }),
80
+ [views, overview, table]
81
+ );
82
+ React__namespace.useEffect(() => {
83
+ if (!storageKey || view) return;
84
+ const stored = readStored(storageKey);
85
+ if (stored && offered.some((v) => (typeof v === "string" ? v : v.id) === stored))
86
+ setInternalView(stored);
87
+ }, [storageKey, view, offered]);
88
+ const requested = view ?? internalView;
89
+ const active = offered.some(
90
+ (v) => (typeof v === "string" ? v : v.id) === requested
91
+ ) ? requested : FIRST_ID(offered);
92
+ const changeView = (next) => {
93
+ if (!view) setInternalView(next);
94
+ if (storageKey && !view) writeStored(storageKey, next);
95
+ onViewChange?.(next);
96
+ };
97
+ const body = (() => {
98
+ switch (active) {
99
+ case "overview":
100
+ return overview ?? null;
101
+ case "table":
102
+ return table ?? null;
103
+ case "board":
104
+ return /* @__PURE__ */ jsxRuntime.jsx(
105
+ chunk4IS3QCOQ_cjs.BoardView,
106
+ {
107
+ ...shared,
108
+ stages: stages ?? [],
109
+ onMove,
110
+ ...boardProps
111
+ }
112
+ );
113
+ case "calendar":
114
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkN7C4OEP7_cjs.CalendarView, { ...shared, ...calendarProps });
115
+ case "gantt":
116
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkVINZZQBD_cjs.GanttView, { ...shared, ...ganttProps });
117
+ case "roadmap":
118
+ return /* @__PURE__ */ jsxRuntime.jsx(
119
+ chunkVINZZQBD_cjs.GanttView,
120
+ {
121
+ ...shared,
122
+ ...ganttProps,
123
+ cadence: "quarter",
124
+ groupByLane: true
125
+ }
126
+ );
127
+ case "list":
128
+ default:
129
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkGU5OS7JJ_cjs.ListView, { ...shared, stages, ...listProps });
130
+ }
131
+ })();
132
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "view-set", className: chunkS5RVSXDV_cjs.cn("flex flex-col gap-3", className), children: [
133
+ /* @__PURE__ */ jsxRuntime.jsxs(
134
+ "div",
135
+ {
136
+ "data-slot": "view-set-toolbar",
137
+ className: chunkS5RVSXDV_cjs.cn("flex flex-wrap items-center gap-2", classNames?.toolbar),
138
+ children: [
139
+ toolbar,
140
+ /* @__PURE__ */ jsxRuntime.jsx(
141
+ "div",
142
+ {
143
+ "data-slot": "view-set-switcher",
144
+ className: chunkS5RVSXDV_cjs.cn("ms-auto", classNames?.switcher),
145
+ children: /* @__PURE__ */ jsxRuntime.jsx(
146
+ chunkXDIMTPZU_cjs.ViewSwitcher,
147
+ {
148
+ views: offered,
149
+ value: active,
150
+ onValueChange: changeView,
151
+ label: shared.labels?.viewSwitcher
152
+ }
153
+ )
154
+ }
155
+ )
156
+ ]
157
+ }
158
+ ),
159
+ filters,
160
+ /* @__PURE__ */ jsxRuntime.jsxs(
161
+ "div",
162
+ {
163
+ "data-slot": "view-set-body",
164
+ className: chunkS5RVSXDV_cjs.cn(
165
+ // Plain column spans rather than an arbitrary grid template, so a
166
+ // Tailwind 3 consumer needs no extra safelist entry.
167
+ detail && "gap-3 lg:grid lg:grid-cols-3",
168
+ classNames?.body
169
+ ),
170
+ children: [
171
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkS5RVSXDV_cjs.cn("min-w-0", detail && "lg:col-span-2"), children: body }),
172
+ detail && /* @__PURE__ */ jsxRuntime.jsx(
173
+ "aside",
174
+ {
175
+ "data-slot": "view-set-detail",
176
+ className: chunkS5RVSXDV_cjs.cn("min-w-0", classNames?.detail),
177
+ children: detail
178
+ }
179
+ )
180
+ ]
181
+ }
182
+ )
183
+ ] });
184
+ }
185
+
186
+ exports.ViewSet = ViewSet;
187
+ //# sourceMappingURL=chunk-Y4E2WRUR.cjs.map
188
+ //# sourceMappingURL=chunk-Y4E2WRUR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ViewSet/ViewSet.tsx"],"names":["React","jsx","BoardView","CalendarView","GanttView","ListView","jsxs","cn","ViewSwitcher"],"mappings":"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","file":"chunk-Y4E2WRUR.cjs","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../utils/cn';\nimport { ViewSwitcher, type ViewOption } from '../ViewSwitcher';\nimport { ListView, type ListViewProps } from '../ListView';\nimport { BoardView, type BoardLabels, type BoardViewProps } from '../BoardView';\nimport {\n CalendarView,\n type CalendarLabels,\n type CalendarViewProps,\n} from '../CalendarView';\nimport { GanttView, type GanttLabels, type GanttViewProps } from '../GanttView';\nimport type { Stage, ViewBaseProps, ViewId } from '../../views/types';\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * Every string any layout in the set can render.\n *\n * Each view extends `ViewLabels` with its own — the calendar's month arrows and\n * \"+n more\", the board's move announcements, the Gantt's undated footnote. They\n * are all shared props, so the per-view escape hatches below exclude `labels`;\n * without widening here a non-English host could translate the common strings\n * and nothing else, which would break the contract that every user-facing\n * string is overridable. A view ignores the keys it does not know.\n */\nexport type ViewSetLabels = Partial<CalendarLabels & BoardLabels & GanttLabels>;\n\n/**\n * Props `ViewSet` passes to every layout itself, beyond `ViewBaseProps`. Named\n * here so the per-view escape hatches below can exclude them by key rather than\n * by a hand-kept list that would drift the moment a shared prop is added.\n */\ntype ViewSetOwned = 'stages' | 'onMove' | 'timeZone' | 'locale';\n\ntype ViewOverrides<P, T> = Omit<\n Partial<P>,\n keyof ViewBaseProps<T> | ViewSetOwned\n>;\n\nexport interface ViewSetProps<T> extends ViewBaseProps<T> {\n /** Every string any offered layout can render, not just the shared ones. */\n labels?: ViewSetLabels;\n /** Views to offer, in order. The first is the default when uncontrolled. */\n views: readonly (ViewId | ViewOption)[];\n view?: ViewId;\n defaultView?: ViewId;\n onViewChange?: (view: ViewId) => void;\n /**\n * Remembers the chosen view under this key. Ignored when `view` is\n * controlled — a page with its own URL state should own it there instead.\n */\n storageKey?: string;\n /** Stages for the board and for list grouping. */\n stages?: readonly Stage[];\n onMove?: BoardViewProps<T>['onMove'];\n /**\n * IANA zone the date views read day boundaries in. Shared, because a page\n * showing one collection as a calendar and as a Gantt must place it on the\n * same days in both.\n */\n timeZone?: string;\n /** Locale for date formatting in the calendar and Gantt. */\n locale?: string;\n\n /** Rendered above the switcher row. */\n toolbar?: React.ReactNode;\n /** Rendered under the switcher row, above the view. */\n filters?: React.ReactNode;\n /** The `overview` view. Domain content — the library has no opinion on it. */\n overview?: React.ReactNode;\n /** The `table` view. A tabular collection is a grid, not a view component. */\n table?: React.ReactNode;\n /** Rendered beside the view, for a list-plus-detail layout. */\n detail?: React.ReactNode;\n\n /**\n * Per-view escape hatches for props this shell does not surface. Shared props\n * are excluded: one collection rendered several ways means switching view can\n * never change the records, the selection or the load state.\n *\n * `ViewSetOwned` covers the props the shell passes itself but that are not on\n * `ViewBaseProps`. They are spread after the shared ones, so leaving them open\n * would let one layout carry different stages, a different mutation callback\n * or a different time zone from its neighbours — the same collection quietly\n * disagreeing with itself as you switch tabs.\n */\n listProps?: ViewOverrides<ListViewProps<T>, T>;\n boardProps?: ViewOverrides<BoardViewProps<T>, T>;\n calendarProps?: ViewOverrides<CalendarViewProps<T>, T>;\n ganttProps?: ViewOverrides<GanttViewProps<T>, T>;\n\n classNames?: Partial<\n Record<'toolbar' | 'switcher' | 'body' | 'detail', string>\n >;\n}\n\nconst FIRST_ID = (views: ViewSetProps<unknown>['views']) => {\n const first = views[0];\n return (typeof first === 'string' ? first : first?.id) ?? 'list';\n};\n\n// Remembering the view is an enhancement, never a requirement. `localStorage`\n// can exist and still throw — Safari private browsing and a blocked third-party\n// storage policy both raise on access — so optional chaining is not enough; an\n// unguarded read would take the whole page down to save a preference.\nconst readStored = (key: string): ViewId | null => {\n try {\n return (globalThis.localStorage?.getItem(key) as ViewId | null) ?? null;\n } catch {\n return null;\n }\n};\n\nconst writeStored = (key: string, value: ViewId) => {\n try {\n globalThis.localStorage?.setItem(key, value);\n } catch {\n // Fall back to in-memory state for the session.\n }\n};\n\n// =============================================================================\n// Component\n// =============================================================================\n\n/**\n * The page-level composition: switcher, the enabled views, and the slots a page\n * needs around them. It owns which view is showing and nothing else — items,\n * selection and every mutation stay with the caller.\n */\nexport function ViewSet<T>({\n views,\n view,\n defaultView,\n onViewChange,\n storageKey,\n stages,\n onMove,\n toolbar,\n filters,\n overview,\n table,\n detail,\n listProps,\n boardProps,\n calendarProps,\n ganttProps,\n className,\n classNames,\n ...shared\n}: ViewSetProps<T>) {\n const [internalView, setInternalView] = React.useState<ViewId>(\n () => defaultView ?? FIRST_ID(views)\n );\n\n // `overview` and `table` are the caller's content. Offering either without\n // its slot would put a dead option in the switcher that renders a blank page.\n const offered = React.useMemo(\n () =>\n views.filter((v) => {\n const id = typeof v === 'string' ? v : v.id;\n if (id === 'overview') return overview != null;\n if (id === 'table') return table != null;\n return true;\n }),\n [views, overview, table]\n );\n\n // Read storage after mount: a server render and the first client render must\n // agree, and localStorage is not available to the former.\n React.useEffect(() => {\n if (!storageKey || view) return;\n const stored = readStored(storageKey);\n if (\n stored &&\n offered.some((v) => (typeof v === 'string' ? v : v.id) === stored)\n )\n setInternalView(stored);\n }, [storageKey, view, offered]);\n\n const requested = view ?? internalView;\n const active = offered.some(\n (v) => (typeof v === 'string' ? v : v.id) === requested\n )\n ? requested\n : FIRST_ID(offered);\n\n const changeView = (next: ViewId) => {\n if (!view) setInternalView(next);\n if (storageKey && !view) writeStored(storageKey, next);\n onViewChange?.(next);\n };\n\n const body = (() => {\n switch (active) {\n case 'overview':\n return overview ?? null;\n case 'table':\n return table ?? null;\n case 'board':\n return (\n <BoardView\n {...shared}\n stages={stages ?? []}\n onMove={onMove}\n {...boardProps}\n />\n );\n case 'calendar':\n return <CalendarView {...shared} {...calendarProps} />;\n case 'gantt':\n return <GanttView {...shared} {...ganttProps} />;\n case 'roadmap':\n // A roadmap is the Gantt at a coarse cadence; see Views.mdx. The two\n // props that make it one come last: `ganttProps` is shared with the\n // plain `gantt` case, so a `cadence: 'day'` meant for that view must\n // not quietly turn the Roadmap option into a daily chart.\n return (\n <GanttView\n {...shared}\n {...ganttProps}\n cadence=\"quarter\"\n groupByLane\n />\n );\n case 'list':\n default:\n return <ListView {...shared} stages={stages} {...listProps} />;\n }\n })();\n\n return (\n <div data-slot=\"view-set\" className={cn('flex flex-col gap-3', className)}>\n <div\n data-slot=\"view-set-toolbar\"\n className={cn('flex flex-wrap items-center gap-2', classNames?.toolbar)}\n >\n {toolbar}\n <div\n data-slot=\"view-set-switcher\"\n className={cn('ms-auto', classNames?.switcher)}\n >\n <ViewSwitcher\n views={offered}\n value={active}\n onValueChange={changeView}\n label={shared.labels?.viewSwitcher}\n />\n </div>\n </div>\n {filters}\n <div\n data-slot=\"view-set-body\"\n className={cn(\n // Plain column spans rather than an arbitrary grid template, so a\n // Tailwind 3 consumer needs no extra safelist entry.\n detail && 'gap-3 lg:grid lg:grid-cols-3',\n classNames?.body\n )}\n >\n <div className={cn('min-w-0', detail && 'lg:col-span-2')}>{body}</div>\n {detail && (\n <aside\n data-slot=\"view-set-detail\"\n className={cn('min-w-0', classNames?.detail)}\n >\n {detail}\n </aside>\n )}\n </div>\n </div>\n );\n}\n"]}
@@ -0,0 +1,300 @@
1
+ import { defaultViewLabels, toDateTime, accentClasses } from './chunk-3YBS4WUQ.js';
2
+ import { Spinner } from './chunk-UA7E7PDS.js';
3
+ import { cn } from './chunk-TQONQSJO.js';
4
+ import * as React from 'react';
5
+ import { DateTime } from 'luxon';
6
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
7
+
8
+ var defaultGanttLabels = {
9
+ ...defaultViewLabels,
10
+ empty: "Nothing to place on the timeline",
11
+ chart: "Timeline",
12
+ undated: "{count} without dates"
13
+ };
14
+ var CADENCE_UNIT = {
15
+ day: "day",
16
+ week: "week",
17
+ month: "month",
18
+ quarter: "quarter"
19
+ };
20
+ var CADENCE_FORMAT = {
21
+ day: "d LLL",
22
+ week: "'W'W",
23
+ month: "LLL",
24
+ quarter: "'Q'q yyyy"
25
+ };
26
+ function GanttView({
27
+ items,
28
+ accessors,
29
+ loading = false,
30
+ error = null,
31
+ selectedId = null,
32
+ onOpen,
33
+ getHref,
34
+ renderItem,
35
+ emptyState,
36
+ labels,
37
+ cadence = "week",
38
+ rangeStart,
39
+ rangeEnd,
40
+ groupByLane = false,
41
+ timeZone,
42
+ locale,
43
+ now,
44
+ className,
45
+ classNames,
46
+ headingLevel: Heading = "h3"
47
+ }) {
48
+ const text = { ...defaultGanttLabels, ...labels };
49
+ const zone = timeZone ?? DateTime.local().zoneName;
50
+ const unit = CADENCE_UNIT[cadence];
51
+ const today = React.useMemo(
52
+ () => DateTime.fromJSDate(now ?? /* @__PURE__ */ new Date(), { zone }).startOf("day"),
53
+ [now, zone]
54
+ );
55
+ const dated = React.useMemo(() => {
56
+ const out = [];
57
+ for (const item of items) {
58
+ const start = toDateTime(accessors.getStart?.(item), zone)?.startOf(
59
+ "day"
60
+ );
61
+ if (!start) continue;
62
+ const rawEnd = toDateTime(accessors.getEnd?.(item), zone)?.startOf("day");
63
+ const end = rawEnd ?? start;
64
+ out.push({
65
+ id: accessors.getId(item),
66
+ item,
67
+ start,
68
+ end: end < start ? start : end
69
+ });
70
+ }
71
+ return out;
72
+ }, [items, accessors, zone]);
73
+ const undatedCount = items.length - dated.length;
74
+ const columns = React.useMemo(() => {
75
+ if (dated.length === 0 && !rangeStart) return [];
76
+ const explicitStart = rangeStart ? DateTime.fromJSDate(rangeStart, { zone }) : null;
77
+ const first = explicitStart ?? dated.reduce((min, d) => d.start < min ? d.start : min, dated[0].start);
78
+ const last = rangeEnd ? DateTime.fromJSDate(rangeEnd, { zone }) : dated.length > 0 ? dated.reduce((max, d) => d.end > max ? d.end : max, dated[0].end) : first;
79
+ const out = [];
80
+ let cursor = first.startOf(unit);
81
+ const stop = last.startOf(unit);
82
+ if (stop < cursor) return [cursor];
83
+ while (cursor <= stop && out.length < 200) {
84
+ out.push(cursor);
85
+ cursor = cursor.plus({ [`${unit}s`]: 1 });
86
+ }
87
+ return out;
88
+ }, [dated, rangeStart, rangeEnd, unit, zone]);
89
+ const columnOf = React.useCallback(
90
+ (moment) => {
91
+ const target = moment.startOf(unit);
92
+ const index = columns.findIndex((c) => c.hasSame(target, unit));
93
+ return index >= 0 ? index : null;
94
+ },
95
+ [columns, unit]
96
+ );
97
+ const lanes = React.useMemo(() => {
98
+ const toBar = (d) => {
99
+ const last = columns.length - 1;
100
+ const from = columnOf(d.start);
101
+ const to = columnOf(d.end);
102
+ const start = from ?? (d.start < columns[0] ? 0 : null);
103
+ const end = to ?? (d.end > columns[last] ? last : null);
104
+ if (start === null || end === null || end < start) return null;
105
+ return {
106
+ id: d.id,
107
+ item: d.item,
108
+ column: start + 1,
109
+ span: end - start + 1
110
+ };
111
+ };
112
+ const bars = (source) => source.map(toBar).filter((b) => b !== null);
113
+ if (!groupByLane || !accessors.getGroup)
114
+ return [{ id: "", label: "", bars: bars(dated) }];
115
+ const buckets = /* @__PURE__ */ new Map();
116
+ for (const d of dated) {
117
+ const key = accessors.getGroup(d.item) ?? "";
118
+ const bucket = buckets.get(key);
119
+ if (bucket) bucket.push(d);
120
+ else buckets.set(key, [d]);
121
+ }
122
+ return [...buckets].map(([key, bucket]) => ({
123
+ id: key,
124
+ label: key || text.ungrouped,
125
+ bars: bars(bucket)
126
+ }));
127
+ }, [dated, groupByLane, accessors, columnOf, columns, text.ungrouped]);
128
+ const todayColumn = (columnOf(today) ?? -1) + 1;
129
+ const showToday = columns.length > 0 && today >= columns[0] && today <= columns[columns.length - 1].endOf(unit);
130
+ const state = (content) => /* @__PURE__ */ jsx(
131
+ "div",
132
+ {
133
+ "data-slot": "gantt-view-state",
134
+ className: cn(
135
+ "border-border bg-card text-muted-foreground flex flex-col items-center justify-center gap-2 rounded-lg border px-4 py-10 text-center text-sm",
136
+ classNames?.state
137
+ ),
138
+ children: content
139
+ }
140
+ );
141
+ if (error) {
142
+ return state(
143
+ /* @__PURE__ */ jsx("p", { role: "alert", className: "text-destructive", children: text.error })
144
+ );
145
+ }
146
+ if (loading) {
147
+ return state(
148
+ /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
149
+ /* @__PURE__ */ jsx(Spinner, { size: "sm", label: text.loading }),
150
+ /* @__PURE__ */ jsx("span", { "aria-hidden": true, children: text.loading })
151
+ ] })
152
+ );
153
+ }
154
+ if (columns.length === 0) return /* @__PURE__ */ jsx(Fragment, { children: emptyState ?? state(text.empty) });
155
+ const gridTemplate = {
156
+ gridTemplateColumns: `repeat(${columns.length}, minmax(3.5rem, 1fr))`
157
+ };
158
+ return /* @__PURE__ */ jsxs(
159
+ "div",
160
+ {
161
+ "data-slot": "gantt-view",
162
+ className: cn(
163
+ "border-border bg-card overflow-hidden rounded-lg border",
164
+ className
165
+ ),
166
+ children: [
167
+ /* @__PURE__ */ jsx(
168
+ "div",
169
+ {
170
+ className: "overflow-x-auto",
171
+ role: "group",
172
+ "aria-label": text.chart,
173
+ tabIndex: 0,
174
+ children: /* @__PURE__ */ jsxs("div", { className: "min-w-max", children: [
175
+ /* @__PURE__ */ jsx(
176
+ "div",
177
+ {
178
+ "data-slot": "gantt-view-header",
179
+ className: cn(
180
+ "border-border bg-muted/40 grid border-b",
181
+ classNames?.header
182
+ ),
183
+ style: gridTemplate,
184
+ children: columns.map((column) => /* @__PURE__ */ jsx(
185
+ "div",
186
+ {
187
+ className: "border-border text-muted-foreground border-e px-2 py-1.5 text-center text-xs last:border-e-0",
188
+ children: column.setLocale(locale ?? column.locale ?? "en").toFormat(CADENCE_FORMAT[cadence])
189
+ },
190
+ column.toISO()
191
+ ))
192
+ }
193
+ ),
194
+ lanes.map((lane) => /* @__PURE__ */ jsxs("section", { children: [
195
+ lane.label && /* @__PURE__ */ jsx(Heading, { children: /* @__PURE__ */ jsx(
196
+ "span",
197
+ {
198
+ "data-slot": "gantt-view-group-label",
199
+ className: cn(
200
+ "border-border bg-muted text-muted-foreground block border-b px-3 py-1.5 text-xs font-semibold tracking-wide uppercase",
201
+ classNames?.groupLabel
202
+ ),
203
+ children: lane.label
204
+ }
205
+ ) }),
206
+ /* @__PURE__ */ jsx("ul", { children: lane.bars.map((bar) => {
207
+ const accent = accessors.getAccent?.(bar.item) ?? "primary";
208
+ const selected = bar.id === selectedId;
209
+ const title = accessors.getTitle(bar.item);
210
+ const body = renderItem?.(bar.item, { view: "gantt" }) ?? /* @__PURE__ */ jsx("span", { className: "block truncate px-2 text-xs font-medium", children: title });
211
+ const classes = cn(
212
+ "flex h-6 items-center rounded-full border text-foreground",
213
+ accentClasses[accent].tint,
214
+ accentClasses[accent].border,
215
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
216
+ classNames?.bar,
217
+ selected && cn("ring-2 ring-primary-500/50", classNames?.selectedBar)
218
+ );
219
+ const href = getHref?.(bar.id, bar.item);
220
+ return /* @__PURE__ */ jsxs(
221
+ "li",
222
+ {
223
+ "data-slot": "gantt-view-row",
224
+ className: cn(
225
+ "border-border relative grid items-center border-b py-1 last:border-b-0",
226
+ classNames?.row
227
+ ),
228
+ style: gridTemplate,
229
+ children: [
230
+ showToday && /* @__PURE__ */ jsx(
231
+ "span",
232
+ {
233
+ "aria-hidden": true,
234
+ className: "bg-primary-500/60 pointer-events-none absolute inset-y-0 w-px",
235
+ style: {
236
+ gridColumn: `${todayColumn} / span 1`,
237
+ insetInlineStart: 0
238
+ }
239
+ }
240
+ ),
241
+ /* @__PURE__ */ jsx(
242
+ "div",
243
+ {
244
+ className: "min-w-0",
245
+ style: {
246
+ gridColumn: `${bar.column} / span ${bar.span}`
247
+ },
248
+ children: href ? /* @__PURE__ */ jsx(
249
+ "a",
250
+ {
251
+ href,
252
+ "aria-current": selected ? "true" : void 0,
253
+ "data-slot": "gantt-view-bar",
254
+ className: classes,
255
+ onClick: (event) => {
256
+ if (!onOpen || event.defaultPrevented || event.metaKey || event.ctrlKey || event.shiftKey || event.button !== 0)
257
+ return;
258
+ event.preventDefault();
259
+ onOpen(bar.id, bar.item);
260
+ },
261
+ children: body
262
+ }
263
+ ) : onOpen ? /* @__PURE__ */ jsx(
264
+ "button",
265
+ {
266
+ type: "button",
267
+ "aria-current": selected ? "true" : void 0,
268
+ "data-slot": "gantt-view-bar",
269
+ className: cn(classes, "w-full text-start"),
270
+ onClick: () => onOpen(bar.id, bar.item),
271
+ children: body
272
+ }
273
+ ) : /* @__PURE__ */ jsx("span", { "data-slot": "gantt-view-bar", className: classes, children: body })
274
+ }
275
+ )
276
+ ]
277
+ },
278
+ bar.id
279
+ );
280
+ }) })
281
+ ] }, lane.id))
282
+ ] })
283
+ }
284
+ ),
285
+ undatedCount > 0 && /* @__PURE__ */ jsx(
286
+ "p",
287
+ {
288
+ "data-slot": "gantt-view-undated",
289
+ className: "border-border text-muted-foreground border-t px-3 py-1.5 text-xs",
290
+ children: text.undated.replace("{count}", String(undatedCount))
291
+ }
292
+ )
293
+ ]
294
+ }
295
+ );
296
+ }
297
+
298
+ export { GanttView, defaultGanttLabels };
299
+ //# sourceMappingURL=chunk-Y4QNLW7W.js.map
300
+ //# sourceMappingURL=chunk-Y4QNLW7W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/GanttView/GanttView.tsx"],"names":[],"mappings":"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","file":"chunk-Y4QNLW7W.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { DateTime, type DateTimeUnit } from 'luxon';\nimport { cn } from '../../utils/cn';\nimport { Spinner } from '../Spinner';\nimport {\n accentClasses,\n defaultViewLabels,\n toDateTime,\n type ViewBaseProps,\n type ViewLabels,\n} from '../../views/types';\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * Column width in time. `month` and `quarter` are what a roadmap is — the\n * family has no separate RoadmapView, because it would be this component with\n * wider columns.\n */\nexport type GanttCadence = 'day' | 'week' | 'month' | 'quarter';\n\nexport type GanttViewSlot =\n | 'header'\n | 'groupLabel'\n | 'row'\n | 'bar'\n | 'selectedBar'\n | 'state';\n\nexport interface GanttLabels extends ViewLabels {\n /** Accessible name of the scrollable chart region. */\n chart: string;\n /** Footnote for records a time axis cannot place. `{count}` is substituted. */\n undated: string;\n}\n\nexport const defaultGanttLabels: GanttLabels = {\n ...defaultViewLabels,\n empty: 'Nothing to place on the timeline',\n chart: 'Timeline',\n undated: '{count} without dates',\n};\n\nexport interface GanttViewProps<T> extends ViewBaseProps<T> {\n /** Column width in time. Defaults to `week`. */\n cadence?: GanttCadence;\n /** First column. Defaults to the earliest start in `items`. */\n rangeStart?: Date;\n /** Last column. Defaults to the latest end in `items`. */\n rangeEnd?: Date;\n /** Group rows into swimlanes by `accessors.getGroup`. */\n groupByLane?: boolean;\n timeZone?: string;\n locale?: string;\n labels?: Partial<GanttLabels>;\n classNames?: Partial<Record<GanttViewSlot, string>>;\n headingLevel?: 'h2' | 'h3' | 'h4';\n}\n\nconst CADENCE_UNIT: Record<GanttCadence, DateTimeUnit> = {\n day: 'day',\n week: 'week',\n month: 'month',\n quarter: 'quarter',\n};\n\nconst CADENCE_FORMAT: Record<GanttCadence, string> = {\n day: 'd LLL',\n week: \"'W'W\",\n month: 'LLL',\n quarter: \"'Q'q yyyy\",\n};\n\ninterface Bar<T> {\n id: string;\n item: T;\n /** 1-based column index, for CSS grid. */\n column: number;\n span: number;\n}\n\n// =============================================================================\n// Component\n// =============================================================================\n\nexport function GanttView<T>({\n items,\n accessors,\n loading = false,\n error = null,\n selectedId = null,\n onOpen,\n getHref,\n renderItem,\n emptyState,\n labels,\n cadence = 'week',\n rangeStart,\n rangeEnd,\n groupByLane = false,\n timeZone,\n locale,\n now,\n className,\n classNames,\n headingLevel: Heading = 'h3',\n}: GanttViewProps<T>) {\n const text = { ...defaultGanttLabels, ...labels };\n const zone = timeZone ?? DateTime.local().zoneName;\n const unit = CADENCE_UNIT[cadence];\n const today = React.useMemo(\n () => DateTime.fromJSDate(now ?? new Date(), { zone }).startOf('day'),\n [now, zone]\n );\n\n const dated = React.useMemo(() => {\n const out: { id: string; item: T; start: DateTime; end: DateTime }[] = [];\n for (const item of items) {\n const start = toDateTime(accessors.getStart?.(item), zone)?.startOf(\n 'day'\n );\n if (!start) continue;\n const rawEnd = toDateTime(accessors.getEnd?.(item), zone)?.startOf('day');\n const end = rawEnd ?? start;\n out.push({\n id: accessors.getId(item),\n item,\n start,\n end: end < start ? start : end,\n });\n }\n return out;\n }, [items, accessors, zone]);\n\n const undatedCount = items.length - dated.length;\n\n const columns = React.useMemo(() => {\n if (dated.length === 0 && !rangeStart) return [];\n const explicitStart = rangeStart\n ? DateTime.fromJSDate(rangeStart, { zone })\n : null;\n // `dated` can be empty here when only a range was given, so every reduce\n // needs a seed that does not come from it.\n const first =\n explicitStart ??\n dated.reduce((min, d) => (d.start < min ? d.start : min), dated[0].start);\n const last = rangeEnd\n ? DateTime.fromJSDate(rangeEnd, { zone })\n : dated.length > 0\n ? dated.reduce((max, d) => (d.end > max ? d.end : max), dated[0].end)\n : first;\n const out: DateTime[] = [];\n let cursor = first.startOf(unit);\n const stop = last.startOf(unit);\n // An explicit range given backwards is caller data, not a crash: draw the\n // column it starts in rather than falling through to the empty state.\n if (stop < cursor) return [cursor];\n // Guard rather than trust the range: a decade of days is 3,650 columns and\n // would hang the page rather than draw a chart.\n while (cursor <= stop && out.length < 200) {\n out.push(cursor);\n cursor = cursor.plus({ [`${unit}s`]: 1 });\n }\n return out;\n }, [dated, rangeStart, rangeEnd, unit, zone]);\n\n // Returns null for a moment outside the drawn columns. Clamping it to an edge\n // would draw a record that does not intersect the range as though it started\n // or ended exactly at the boundary, which reads as data rather than as the\n // rounding it is.\n const columnOf = React.useCallback(\n (moment: DateTime) => {\n const target = moment.startOf(unit);\n const index = columns.findIndex((c) => c.hasSame(target, unit));\n return index >= 0 ? index : null;\n },\n [columns, unit]\n );\n\n const lanes = React.useMemo(() => {\n const toBar = (d: (typeof dated)[number]): Bar<T> | null => {\n const last = columns.length - 1;\n const from = columnOf(d.start);\n const to = columnOf(d.end);\n // Only the part that intersects the range is drawn; a record entirely\n // outside it is omitted rather than pinned to an edge.\n const start = from ?? (d.start < columns[0] ? 0 : null);\n const end = to ?? (d.end > columns[last] ? last : null);\n if (start === null || end === null || end < start) return null;\n return {\n id: d.id,\n item: d.item,\n column: start + 1,\n span: end - start + 1,\n };\n };\n const bars = (source: typeof dated) =>\n source.map(toBar).filter((b): b is Bar<T> => b !== null);\n\n if (!groupByLane || !accessors.getGroup)\n return [{ id: '', label: '', bars: bars(dated) }];\n const buckets = new Map<string, (typeof dated)[number][]>();\n for (const d of dated) {\n const key = accessors.getGroup(d.item) ?? '';\n const bucket = buckets.get(key);\n if (bucket) bucket.push(d);\n else buckets.set(key, [d]);\n }\n return [...buckets].map(([key, bucket]) => ({\n id: key,\n label: key || text.ungrouped,\n bars: bars(bucket),\n }));\n }, [dated, groupByLane, accessors, columnOf, columns, text.ungrouped]);\n\n const todayColumn = (columnOf(today) ?? -1) + 1;\n const showToday =\n columns.length > 0 &&\n today >= columns[0] &&\n today <= columns[columns.length - 1].endOf(unit);\n\n const state = (content: React.ReactNode) => (\n <div\n data-slot=\"gantt-view-state\"\n className={cn(\n 'border-border bg-card text-muted-foreground flex flex-col items-center justify-center gap-2 rounded-lg border px-4 py-10 text-center text-sm',\n classNames?.state\n )}\n >\n {content}\n </div>\n );\n\n if (error) {\n return state(\n <p role=\"alert\" className=\"text-destructive\">\n {text.error}\n </p>\n );\n }\n if (loading) {\n return state(\n <span className=\"flex items-center gap-2\">\n <Spinner size=\"sm\" label={text.loading} />\n <span aria-hidden>{text.loading}</span>\n </span>\n );\n }\n if (columns.length === 0) return <>{emptyState ?? state(text.empty)}</>;\n\n const gridTemplate = {\n gridTemplateColumns: `repeat(${columns.length}, minmax(3.5rem, 1fr))`,\n };\n\n return (\n <div\n data-slot=\"gantt-view\"\n className={cn(\n 'border-border bg-card overflow-hidden rounded-lg border',\n className\n )}\n >\n {/* Scrollable content must be keyboard operable (WCAG 2.1.1), which axe\n enforces as scrollable-region-focusable. jsx-a11y disagrees for\n non-interactive elements; the success criterion wins. */}\n <div\n className=\"overflow-x-auto\"\n role=\"group\"\n aria-label={text.chart}\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n >\n <div className=\"min-w-max\">\n <div\n data-slot=\"gantt-view-header\"\n className={cn(\n 'border-border bg-muted/40 grid border-b',\n classNames?.header\n )}\n style={gridTemplate}\n >\n {columns.map((column) => (\n <div\n key={column.toISO()}\n className=\"border-border text-muted-foreground border-e px-2 py-1.5 text-center text-xs last:border-e-0\"\n >\n {column\n .setLocale(locale ?? column.locale ?? 'en')\n .toFormat(CADENCE_FORMAT[cadence])}\n </div>\n ))}\n </div>\n\n {lanes.map((lane) => (\n <section key={lane.id}>\n {lane.label && (\n <Heading>\n <span\n data-slot=\"gantt-view-group-label\"\n className={cn(\n 'border-border bg-muted text-muted-foreground block border-b px-3 py-1.5 text-xs font-semibold tracking-wide uppercase',\n classNames?.groupLabel\n )}\n >\n {lane.label}\n </span>\n </Heading>\n )}\n <ul>\n {lane.bars.map((bar) => {\n const accent = accessors.getAccent?.(bar.item) ?? 'primary';\n const selected = bar.id === selectedId;\n const title = accessors.getTitle(bar.item);\n const body = renderItem?.(bar.item, { view: 'gantt' }) ?? (\n <span className=\"block truncate px-2 text-xs font-medium\">\n {title}\n </span>\n );\n const classes = cn(\n 'flex h-6 items-center rounded-full border text-foreground',\n accentClasses[accent].tint,\n accentClasses[accent].border,\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n classNames?.bar,\n selected &&\n cn('ring-2 ring-primary-500/50', classNames?.selectedBar)\n );\n const href = getHref?.(bar.id, bar.item);\n return (\n <li\n key={bar.id}\n data-slot=\"gantt-view-row\"\n className={cn(\n 'border-border relative grid items-center border-b py-1 last:border-b-0',\n classNames?.row\n )}\n style={gridTemplate}\n >\n {showToday && (\n <span\n aria-hidden\n className=\"bg-primary-500/60 pointer-events-none absolute inset-y-0 w-px\"\n style={{\n gridColumn: `${todayColumn} / span 1`,\n insetInlineStart: 0,\n }}\n />\n )}\n <div\n className=\"min-w-0\"\n style={{\n gridColumn: `${bar.column} / span ${bar.span}`,\n }}\n >\n {href ? (\n <a\n href={href}\n aria-current={selected ? 'true' : undefined}\n data-slot=\"gantt-view-bar\"\n className={classes}\n onClick={(event) => {\n if (\n !onOpen ||\n event.defaultPrevented ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.button !== 0\n )\n return;\n event.preventDefault();\n onOpen(bar.id, bar.item);\n }}\n >\n {body}\n </a>\n ) : onOpen ? (\n <button\n type=\"button\"\n aria-current={selected ? 'true' : undefined}\n data-slot=\"gantt-view-bar\"\n className={cn(classes, 'w-full text-start')}\n onClick={() => onOpen(bar.id, bar.item)}\n >\n {body}\n </button>\n ) : (\n <span data-slot=\"gantt-view-bar\" className={classes}>\n {body}\n </span>\n )}\n </div>\n </li>\n );\n })}\n </ul>\n </section>\n ))}\n </div>\n </div>\n\n {undatedCount > 0 && (\n <p\n data-slot=\"gantt-view-undated\"\n className=\"border-border text-muted-foreground border-t px-3 py-1.5 text-xs\"\n >\n {text.undated.replace('{count}', String(undatedCount))}\n </p>\n )}\n </div>\n );\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunk6HFFWEM3_cjs = require('./chunk-6HFFWEM3.cjs');
3
+ var chunkYW2AKBLS_cjs = require('./chunk-YW2AKBLS.cjs');
4
4
  var chunkYVL3XATO_cjs = require('./chunk-YVL3XATO.cjs');
5
- var chunkVNYW4C4J_cjs = require('./chunk-VNYW4C4J.cjs');
5
+ var chunkDXEPYK3I_cjs = require('./chunk-DXEPYK3I.cjs');
6
6
  var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
7
7
  var React = require('react');
8
8
  var lucideReact = require('lucide-react');
@@ -42,7 +42,7 @@ function RadialExplorer({
42
42
  groupLabel = "Modules",
43
43
  className
44
44
  }) {
45
- const reduced = chunk6HFFWEM3_cjs.usePrefersReducedMotion();
45
+ const reduced = chunkYW2AKBLS_cjs.usePrefersReducedMotion();
46
46
  const [inner, setInner] = React__namespace.useState(defaultActiveId);
47
47
  const [engaged, setEngaged] = React__namespace.useState(false);
48
48
  const activeId = controlled !== void 0 ? controlled : inner;
@@ -311,7 +311,7 @@ function Detail({
311
311
  description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground text-[15px] leading-snug", children: description }),
312
312
  caption && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground text-sm", children: caption }),
313
313
  (cta || href) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-1 flex flex-wrap items-center gap-3", children: [
314
- cta && /* @__PURE__ */ jsxRuntime.jsxs("a", { href: cta.href, className: chunkVNYW4C4J_cjs.buttonVariants({ effect: "sheen" }), children: [
314
+ cta && /* @__PURE__ */ jsxRuntime.jsxs("a", { href: cta.href, className: chunkDXEPYK3I_cjs.buttonVariants({ effect: "sheen" }), children: [
315
315
  cta.label,
316
316
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ArrowRight, { size: 16, "aria-hidden": true })
317
317
  ] }),
@@ -328,5 +328,5 @@ function Detail({
328
328
  }
329
329
 
330
330
  exports.RadialExplorer = RadialExplorer;
331
- //# sourceMappingURL=chunk-6EN3IQQI.cjs.map
332
- //# sourceMappingURL=chunk-6EN3IQQI.cjs.map
331
+ //# sourceMappingURL=chunk-YRHBSSQ3.cjs.map
332
+ //# sourceMappingURL=chunk-YRHBSSQ3.cjs.map