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

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 (423) hide show
  1. package/agent/mieweb-ui.instructions.md +13 -1
  2. package/dist/CsvBlock-ROJCKJDP.cjs +16 -0
  3. package/dist/{CsvBlock-CVYA3HYS.cjs.map → CsvBlock-ROJCKJDP.cjs.map} +1 -1
  4. package/dist/CsvBlock-UWPMTLE2.js +7 -0
  5. package/dist/{CsvBlock-SM4NKSHA.js.map → CsvBlock-UWPMTLE2.js.map} +1 -1
  6. package/dist/HtmlPreviewBlock-DWFN6EUB.cjs +16 -0
  7. package/dist/{HtmlPreviewBlock-JF454L2L.cjs.map → HtmlPreviewBlock-DWFN6EUB.cjs.map} +1 -1
  8. package/dist/HtmlPreviewBlock-ME5U3XNS.js +7 -0
  9. package/dist/{HtmlPreviewBlock-FAMF4W24.js.map → HtmlPreviewBlock-ME5U3XNS.js.map} +1 -1
  10. package/dist/MermaidBlock-2B6CPD6Y.js +7 -0
  11. package/dist/{MermaidBlock-7V5G4K5A.js.map → MermaidBlock-2B6CPD6Y.js.map} +1 -1
  12. package/dist/MermaidBlock-D2UC5M55.cjs +16 -0
  13. package/dist/{MermaidBlock-FR5SQX4Q.cjs.map → MermaidBlock-D2UC5M55.cjs.map} +1 -1
  14. package/dist/SurveyBlock-4CD4AYMJ.cjs +16 -0
  15. package/dist/{SurveyBlock-MCJVWR7H.cjs.map → SurveyBlock-4CD4AYMJ.cjs.map} +1 -1
  16. package/dist/SurveyBlock-4DO62RBT.js +7 -0
  17. package/dist/{SurveyBlock-6K2POV7S.js.map → SurveyBlock-4DO62RBT.js.map} +1 -1
  18. package/dist/brands/index.cjs +20 -20
  19. package/dist/brands/index.js +4 -4
  20. package/dist/brands/types.cjs +4 -4
  21. package/dist/brands/types.d.cts +9 -0
  22. package/dist/brands/types.d.ts +9 -0
  23. package/dist/brands/types.js +1 -1
  24. package/dist/{chunk-XTHMC76F.cjs → chunk-2G75X6TS.cjs} +4 -4
  25. package/dist/{chunk-XTHMC76F.cjs.map → chunk-2G75X6TS.cjs.map} +1 -1
  26. package/dist/chunk-2IZLKPUW.js +412 -0
  27. package/dist/chunk-2IZLKPUW.js.map +1 -0
  28. package/dist/{chunk-VSVGMMNO.js → chunk-3M7TAXNR.js} +3 -3
  29. package/dist/{chunk-VSVGMMNO.js.map → chunk-3M7TAXNR.js.map} +1 -1
  30. package/dist/{chunk-5Z6UPVGC.cjs → chunk-3QEVGSFG.cjs} +5 -5
  31. package/dist/{chunk-5Z6UPVGC.cjs.map → chunk-3QEVGSFG.cjs.map} +1 -1
  32. package/dist/{chunk-PYHFVYVZ.js → chunk-3QGS6CXD.js} +3 -3
  33. package/dist/{chunk-PYHFVYVZ.js.map → chunk-3QGS6CXD.js.map} +1 -1
  34. package/dist/chunk-3YBS4WUQ.js +52 -0
  35. package/dist/chunk-3YBS4WUQ.js.map +1 -0
  36. package/dist/chunk-462XSCP3.cjs +199 -0
  37. package/dist/chunk-462XSCP3.cjs.map +1 -0
  38. package/dist/{chunk-X5YM3KXY.js → chunk-4A3W4TQF.js} +201 -4
  39. package/dist/chunk-4A3W4TQF.js.map +1 -0
  40. package/dist/chunk-4IS3QCOQ.cjs +453 -0
  41. package/dist/chunk-4IS3QCOQ.cjs.map +1 -0
  42. package/dist/chunk-4NCDU5IG.cjs +56 -0
  43. package/dist/chunk-4NCDU5IG.cjs.map +1 -0
  44. package/dist/{chunk-WOYUQ4AT.js → chunk-5GOWFNQ6.js} +9 -3
  45. package/dist/chunk-5GOWFNQ6.js.map +1 -0
  46. package/dist/chunk-5GUOOLPR.cjs +436 -0
  47. package/dist/chunk-5GUOOLPR.cjs.map +1 -0
  48. package/dist/{chunk-WUBMDOTG.js → chunk-5JJ2DAE4.js} +4 -4
  49. package/dist/{chunk-WUBMDOTG.js.map → chunk-5JJ2DAE4.js.map} +1 -1
  50. package/dist/{chunk-RSCA5AZW.cjs → chunk-5MCBWTIF.cjs} +4 -4
  51. package/dist/{chunk-RSCA5AZW.cjs.map → chunk-5MCBWTIF.cjs.map} +1 -1
  52. package/dist/chunk-6EN3IQQI.cjs +332 -0
  53. package/dist/chunk-6EN3IQQI.cjs.map +1 -0
  54. package/dist/chunk-74ENCTIK.js +162 -0
  55. package/dist/chunk-74ENCTIK.js.map +1 -0
  56. package/dist/chunk-76TBQDED.js +166 -0
  57. package/dist/chunk-76TBQDED.js.map +1 -0
  58. package/dist/{chunk-OAZUDUGX.js → chunk-7IBZA7G6.js} +4 -4
  59. package/dist/{chunk-OAZUDUGX.js.map → chunk-7IBZA7G6.js.map} +1 -1
  60. package/dist/{chunk-AUOTJQGO.cjs → chunk-7ZDPD5ZX.cjs} +4 -4
  61. package/dist/{chunk-AUOTJQGO.cjs.map → chunk-7ZDPD5ZX.cjs.map} +1 -1
  62. package/dist/{chunk-IB54SKWB.cjs → chunk-7ZXAQTV4.cjs} +8 -8
  63. package/dist/{chunk-IB54SKWB.cjs.map → chunk-7ZXAQTV4.cjs.map} +1 -1
  64. package/dist/{chunk-IIFQ6BSJ.js → chunk-ACCAXVOG.js} +6 -6
  65. package/dist/{chunk-IIFQ6BSJ.js.map → chunk-ACCAXVOG.js.map} +1 -1
  66. package/dist/{chunk-QO6PRHDX.cjs → chunk-AR7AKDM2.cjs} +2 -2
  67. package/dist/{chunk-QO6PRHDX.cjs.map → chunk-AR7AKDM2.cjs.map} +1 -1
  68. package/dist/{chunk-PY7XAG4D.cjs → chunk-ASSDGS4F.cjs} +201 -4
  69. package/dist/chunk-ASSDGS4F.cjs.map +1 -0
  70. package/dist/{chunk-24SEAAOH.js → chunk-AWJBOND5.js} +2 -2
  71. package/dist/{chunk-24SEAAOH.js.map → chunk-AWJBOND5.js.map} +1 -1
  72. package/dist/chunk-BM35CACB.js +148 -0
  73. package/dist/chunk-BM35CACB.js.map +1 -0
  74. package/dist/chunk-CR2SDI23.cjs +322 -0
  75. package/dist/chunk-CR2SDI23.cjs.map +1 -0
  76. package/dist/{chunk-OSPTA4UR.js → chunk-DEDN5HAG.js} +3 -3
  77. package/dist/{chunk-OSPTA4UR.js.map → chunk-DEDN5HAG.js.map} +1 -1
  78. package/dist/chunk-DZ5HFLRC.js +258 -0
  79. package/dist/chunk-DZ5HFLRC.js.map +1 -0
  80. package/dist/{chunk-PKD3JLS2.cjs → chunk-E4IBHYJ7.cjs} +9 -9
  81. package/dist/{chunk-PKD3JLS2.cjs.map → chunk-E4IBHYJ7.cjs.map} +1 -1
  82. package/dist/{chunk-QSVQABXD.js → chunk-ENKFJJZX.js} +7 -7
  83. package/dist/{chunk-QSVQABXD.js.map → chunk-ENKFJJZX.js.map} +1 -1
  84. package/dist/{chunk-MUIDWFYJ.js → chunk-FJ7YPVKV.js} +3 -3
  85. package/dist/{chunk-MUIDWFYJ.js.map → chunk-FJ7YPVKV.js.map} +1 -1
  86. package/dist/{chunk-3LHICE4I.cjs → chunk-FXO5ARBB.cjs} +5 -5
  87. package/dist/{chunk-3LHICE4I.cjs.map → chunk-FXO5ARBB.cjs.map} +1 -1
  88. package/dist/{chunk-QKAYRHWP.cjs → chunk-G3JX3UAU.cjs} +12 -12
  89. package/dist/{chunk-QKAYRHWP.cjs.map → chunk-G3JX3UAU.cjs.map} +1 -1
  90. package/dist/chunk-G4D6CLBT.js +333 -0
  91. package/dist/chunk-G4D6CLBT.js.map +1 -0
  92. package/dist/{chunk-OMAACCFW.cjs → chunk-GD7EBGC4.cjs} +19 -19
  93. package/dist/{chunk-OMAACCFW.cjs.map → chunk-GD7EBGC4.cjs.map} +1 -1
  94. package/dist/{chunk-KREUYVMZ.js → chunk-GOALNQZ2.js} +13 -4
  95. package/dist/chunk-GOALNQZ2.js.map +1 -0
  96. package/dist/{chunk-CK3KLRNF.js → chunk-H4ZXMQQW.js} +3 -3
  97. package/dist/{chunk-CK3KLRNF.js.map → chunk-H4ZXMQQW.js.map} +1 -1
  98. package/dist/chunk-IT775BYG.js +179 -0
  99. package/dist/chunk-IT775BYG.js.map +1 -0
  100. package/dist/{chunk-AHINB2TP.cjs → chunk-IX6KFB3K.cjs} +9 -9
  101. package/dist/{chunk-AHINB2TP.cjs.map → chunk-IX6KFB3K.cjs.map} +1 -1
  102. package/dist/chunk-IXFC7LK2.cjs +174 -0
  103. package/dist/chunk-IXFC7LK2.cjs.map +1 -0
  104. package/dist/{chunk-VNAREBLV.cjs → chunk-J5CSLNCN.cjs} +3 -3
  105. package/dist/{chunk-VNAREBLV.cjs.map → chunk-J5CSLNCN.cjs.map} +1 -1
  106. package/dist/{chunk-MM7QKUE3.cjs → chunk-JID7AZTO.cjs} +5 -5
  107. package/dist/{chunk-MM7QKUE3.cjs.map → chunk-JID7AZTO.cjs.map} +1 -1
  108. package/dist/{chunk-E3KC2XLN.cjs → chunk-KQUI4BGS.cjs} +51 -51
  109. package/dist/{chunk-E3KC2XLN.cjs.map → chunk-KQUI4BGS.cjs.map} +1 -1
  110. package/dist/{chunk-ZB54MTMQ.js → chunk-KZFBQ7GY.js} +3 -3
  111. package/dist/{chunk-ZB54MTMQ.js.map → chunk-KZFBQ7GY.js.map} +1 -1
  112. package/dist/{chunk-XBXDUAIM.js → chunk-LL6IWKI3.js} +4 -4
  113. package/dist/{chunk-XBXDUAIM.js.map → chunk-LL6IWKI3.js.map} +1 -1
  114. package/dist/{chunk-ON4JULCA.js → chunk-LMBXJZLG.js} +3 -3
  115. package/dist/{chunk-ON4JULCA.js.map → chunk-LMBXJZLG.js.map} +1 -1
  116. package/dist/{chunk-ZX2XRFE5.js → chunk-MNILXWVY.js} +7 -7
  117. package/dist/{chunk-ZX2XRFE5.js.map → chunk-MNILXWVY.js.map} +1 -1
  118. package/dist/chunk-MWVW4APN.cjs +260 -0
  119. package/dist/chunk-MWVW4APN.cjs.map +1 -0
  120. package/dist/{chunk-WIAQQNFU.cjs → chunk-MYHV2ND3.cjs} +37 -3
  121. package/dist/chunk-MYHV2ND3.cjs.map +1 -0
  122. package/dist/{chunk-BZAGP5W6.cjs → chunk-N6IY47YA.cjs} +8 -8
  123. package/dist/{chunk-BZAGP5W6.cjs.map → chunk-N6IY47YA.cjs.map} +1 -1
  124. package/dist/{chunk-OCV33S5Q.cjs → chunk-NFKX6QJP.cjs} +3 -3
  125. package/dist/{chunk-OCV33S5Q.cjs.map → chunk-NFKX6QJP.cjs.map} +1 -1
  126. package/dist/{chunk-J644FU54.cjs → chunk-NGQRS7AW.cjs} +9 -3
  127. package/dist/chunk-NGQRS7AW.cjs.map +1 -0
  128. package/dist/{chunk-QAKASRE6.js → chunk-NJ6MY6V5.js} +4 -4
  129. package/dist/{chunk-QAKASRE6.js.map → chunk-NJ6MY6V5.js.map} +1 -1
  130. package/dist/{chunk-P52GA3GJ.cjs → chunk-NM7O7RY5.cjs} +4 -2
  131. package/dist/chunk-NM7O7RY5.cjs.map +1 -0
  132. package/dist/chunk-OCSCBB52.cjs +188 -0
  133. package/dist/chunk-OCSCBB52.cjs.map +1 -0
  134. package/dist/{chunk-OFUKTVBN.cjs → chunk-OD47TTAW.cjs} +9 -9
  135. package/dist/{chunk-OFUKTVBN.cjs.map → chunk-OD47TTAW.cjs.map} +1 -1
  136. package/dist/{chunk-QKFJDQEK.js → chunk-OE5CKRUC.js} +4 -4
  137. package/dist/{chunk-QKFJDQEK.js.map → chunk-OE5CKRUC.js.map} +1 -1
  138. package/dist/chunk-OGNADPM4.cjs +170 -0
  139. package/dist/chunk-OGNADPM4.cjs.map +1 -0
  140. package/dist/{chunk-MBWF36DJ.js → chunk-P2CA3XGI.js} +3 -3
  141. package/dist/{chunk-MBWF36DJ.js.map → chunk-P2CA3XGI.js.map} +1 -1
  142. package/dist/chunk-POWS35OT.js +152 -0
  143. package/dist/chunk-POWS35OT.js.map +1 -0
  144. package/dist/chunk-PYJDVWXM.js +237 -0
  145. package/dist/chunk-PYJDVWXM.js.map +1 -0
  146. package/dist/{chunk-MTZPVOP6.js → chunk-Q77TE5DZ.js} +4 -2
  147. package/dist/chunk-Q77TE5DZ.js.map +1 -0
  148. package/dist/{chunk-L5W7TJQ5.js → chunk-RJ6NTJHC.js} +4 -4
  149. package/dist/{chunk-L5W7TJQ5.js.map → chunk-RJ6NTJHC.js.map} +1 -1
  150. package/dist/{chunk-C3DUS2VE.cjs → chunk-RS5VA6QU.cjs} +3 -3
  151. package/dist/{chunk-C3DUS2VE.cjs.map → chunk-RS5VA6QU.cjs.map} +1 -1
  152. package/dist/{chunk-IGNWT6RP.js → chunk-S7WCHDBO.js} +4 -4
  153. package/dist/{chunk-IGNWT6RP.js.map → chunk-S7WCHDBO.js.map} +1 -1
  154. package/dist/{chunk-RXPEZXAB.cjs → chunk-SGFYA22I.cjs} +5 -5
  155. package/dist/{chunk-RXPEZXAB.cjs.map → chunk-SGFYA22I.cjs.map} +1 -1
  156. package/dist/chunk-SQJFBZ42.js +297 -0
  157. package/dist/chunk-SQJFBZ42.js.map +1 -0
  158. package/dist/chunk-SUS3WFY3.js +156 -0
  159. package/dist/chunk-SUS3WFY3.js.map +1 -0
  160. package/dist/{chunk-H4AVMUOC.cjs → chunk-TAXD5ADA.cjs} +4 -4
  161. package/dist/{chunk-H4AVMUOC.cjs.map → chunk-TAXD5ADA.cjs.map} +1 -1
  162. package/dist/{chunk-NHN6A3ZO.js → chunk-TMMVIUUN.js} +4 -4
  163. package/dist/{chunk-NHN6A3ZO.js.map → chunk-TMMVIUUN.js.map} +1 -1
  164. package/dist/chunk-TPWKM7JH.js +196 -0
  165. package/dist/chunk-TPWKM7JH.js.map +1 -0
  166. package/dist/chunk-TU63764L.cjs +158 -0
  167. package/dist/chunk-TU63764L.cjs.map +1 -0
  168. package/dist/{chunk-7KWNY3HG.js → chunk-TVTIGV7Q.js} +9 -9
  169. package/dist/{chunk-7KWNY3HG.js.map → chunk-TVTIGV7Q.js.map} +1 -1
  170. package/dist/{chunk-22CYDCXA.js → chunk-TZJQB4P2.js} +37 -4
  171. package/dist/chunk-TZJQB4P2.js.map +1 -0
  172. package/dist/{chunk-X5QRRMGB.cjs → chunk-UAMXCMST.cjs} +4 -4
  173. package/dist/{chunk-X5QRRMGB.cjs.map → chunk-UAMXCMST.cjs.map} +1 -1
  174. package/dist/{chunk-QAQOCS2J.js → chunk-UBOVDAD7.js} +3 -3
  175. package/dist/{chunk-QAQOCS2J.js.map → chunk-UBOVDAD7.js.map} +1 -1
  176. package/dist/{chunk-IGSIWNX3.cjs → chunk-UQ3VVR6A.cjs} +4 -4
  177. package/dist/{chunk-IGSIWNX3.cjs.map → chunk-UQ3VVR6A.cjs.map} +1 -1
  178. package/dist/chunk-URAQIF67.cjs +356 -0
  179. package/dist/chunk-URAQIF67.cjs.map +1 -0
  180. package/dist/{chunk-6QKMMKRY.cjs → chunk-UV2FVNWT.cjs} +5 -5
  181. package/dist/{chunk-6QKMMKRY.cjs.map → chunk-UV2FVNWT.cjs.map} +1 -1
  182. package/dist/{chunk-EG7XFZ3W.js → chunk-V7D3YGUV.js} +4 -4
  183. package/dist/{chunk-EG7XFZ3W.js.map → chunk-V7D3YGUV.js.map} +1 -1
  184. package/dist/{chunk-Y6DFMDMH.js → chunk-VILW53UZ.js} +3 -3
  185. package/dist/{chunk-Y6DFMDMH.js.map → chunk-VILW53UZ.js.map} +1 -1
  186. package/dist/chunk-VINZZQBD.cjs +323 -0
  187. package/dist/chunk-VINZZQBD.cjs.map +1 -0
  188. package/dist/{chunk-5WOB4UBD.js → chunk-VKELAMAZ.js} +3 -3
  189. package/dist/{chunk-5WOB4UBD.js.map → chunk-VKELAMAZ.js.map} +1 -1
  190. package/dist/{chunk-IINZWUGK.cjs → chunk-VNYW4C4J.cjs} +13 -4
  191. package/dist/chunk-VNYW4C4J.cjs.map +1 -0
  192. package/dist/{chunk-RD3JDFYJ.js → chunk-VOKVG3ER.js} +4 -4
  193. package/dist/{chunk-RD3JDFYJ.js.map → chunk-VOKVG3ER.js.map} +1 -1
  194. package/dist/chunk-VPTASZ2O.cjs +171 -0
  195. package/dist/chunk-VPTASZ2O.cjs.map +1 -0
  196. package/dist/{chunk-37UZHCLM.cjs → chunk-VPWJCJCX.cjs} +3 -3
  197. package/dist/{chunk-37UZHCLM.cjs.map → chunk-VPWJCJCX.cjs.map} +1 -1
  198. package/dist/{chunk-3RB35GYK.js → chunk-VU6UTJRM.js} +4 -4
  199. package/dist/{chunk-3RB35GYK.js.map → chunk-VU6UTJRM.js.map} +1 -1
  200. package/dist/{chunk-6SAYPXHX.js → chunk-WGPLUCBD.js} +4 -4
  201. package/dist/{chunk-6SAYPXHX.js.map → chunk-WGPLUCBD.js.map} +1 -1
  202. package/dist/{chunk-KLJGJJHN.cjs → chunk-WNZAYBVB.cjs} +49 -49
  203. package/dist/{chunk-KLJGJJHN.cjs.map → chunk-WNZAYBVB.cjs.map} +1 -1
  204. package/dist/{chunk-BVMABVC4.cjs → chunk-WWJIW2IH.cjs} +3 -3
  205. package/dist/{chunk-BVMABVC4.cjs.map → chunk-WWJIW2IH.cjs.map} +1 -1
  206. package/dist/{chunk-OYQ7GYAA.cjs → chunk-X4XPNTCZ.cjs} +12 -12
  207. package/dist/{chunk-OYQ7GYAA.cjs.map → chunk-X4XPNTCZ.cjs.map} +1 -1
  208. package/dist/chunk-XDIMTPZU.cjs +202 -0
  209. package/dist/chunk-XDIMTPZU.cjs.map +1 -0
  210. package/dist/{chunk-IFDC4TXM.cjs → chunk-XEAT7XJG.cjs} +4 -4
  211. package/dist/{chunk-IFDC4TXM.cjs.map → chunk-XEAT7XJG.cjs.map} +1 -1
  212. package/dist/{chunk-S3BCHPXT.cjs → chunk-XI34EGK5.cjs} +9 -9
  213. package/dist/{chunk-S3BCHPXT.cjs.map → chunk-XI34EGK5.cjs.map} +1 -1
  214. package/dist/chunk-XVW5DPPP.js +429 -0
  215. package/dist/chunk-XVW5DPPP.js.map +1 -0
  216. package/dist/chunk-XZNN3S3S.cjs +281 -0
  217. package/dist/chunk-XZNN3S3S.cjs.map +1 -0
  218. package/dist/chunk-Y4QNLW7W.js +300 -0
  219. package/dist/chunk-Y4QNLW7W.js.map +1 -0
  220. package/dist/chunk-Y5HFM7LO.js +310 -0
  221. package/dist/chunk-Y5HFM7LO.js.map +1 -0
  222. package/dist/{chunk-LECJMLNE.js → chunk-YQDA366U.js} +3 -3
  223. package/dist/{chunk-LECJMLNE.js.map → chunk-YQDA366U.js.map} +1 -1
  224. package/dist/{chunk-PHK4XBO5.js → chunk-Z5V7SAZ4.js} +4 -4
  225. package/dist/{chunk-PHK4XBO5.js.map → chunk-Z5V7SAZ4.js.map} +1 -1
  226. package/dist/{chunk-TZX76ZNZ.js → chunk-ZGRCSNPK.js} +5 -5
  227. package/dist/{chunk-TZX76ZNZ.js.map → chunk-ZGRCSNPK.js.map} +1 -1
  228. package/dist/{chunk-AZP3DDBT.cjs → chunk-ZPSJ2UV6.cjs} +8 -8
  229. package/dist/{chunk-AZP3DDBT.cjs.map → chunk-ZPSJ2UV6.cjs.map} +1 -1
  230. package/dist/{chunk-SRA2L3SQ.cjs → chunk-ZSGEGISB.cjs} +4 -4
  231. package/dist/{chunk-SRA2L3SQ.cjs.map → chunk-ZSGEGISB.cjs.map} +1 -1
  232. package/dist/components/AlertDialog/index.cjs +6 -6
  233. package/dist/components/AlertDialog/index.js +5 -5
  234. package/dist/components/Autocomplete/index.cjs +3 -3
  235. package/dist/components/Autocomplete/index.js +2 -2
  236. package/dist/components/BoardView/index.cjs +24 -0
  237. package/dist/components/BoardView/index.cjs.map +1 -0
  238. package/dist/components/BoardView/index.d.cts +42 -0
  239. package/dist/components/BoardView/index.d.ts +42 -0
  240. package/dist/components/BoardView/index.js +7 -0
  241. package/dist/components/BoardView/index.js.map +1 -0
  242. package/dist/components/Button/index.cjs +3 -3
  243. package/dist/components/Button/index.d.cts +3 -0
  244. package/dist/components/Button/index.d.ts +3 -0
  245. package/dist/components/Button/index.js +1 -1
  246. package/dist/components/CalendarView/index.cjs +22 -0
  247. package/dist/components/CalendarView/index.cjs.map +1 -0
  248. package/dist/components/CalendarView/index.d.cts +40 -0
  249. package/dist/components/CalendarView/index.d.ts +40 -0
  250. package/dist/components/CalendarView/index.js +9 -0
  251. package/dist/components/CalendarView/index.js.map +1 -0
  252. package/dist/components/Collapsible/index.cjs +5 -5
  253. package/dist/components/Collapsible/index.js +2 -2
  254. package/dist/components/CountryCodeDropdown/index.cjs +6 -6
  255. package/dist/components/CountryCodeDropdown/index.js +3 -3
  256. package/dist/components/CustomizableDashboard/index.cjs +11 -11
  257. package/dist/components/CustomizableDashboard/index.js +4 -4
  258. package/dist/components/DateInput/index.cjs +4 -4
  259. package/dist/components/DateInput/index.js +3 -3
  260. package/dist/components/Dropdown/index.cjs +11 -11
  261. package/dist/components/Dropdown/index.js +4 -4
  262. package/dist/components/FloatingWindow/index.cjs +4 -4
  263. package/dist/components/FloatingWindow/index.js +2 -2
  264. package/dist/components/GanttView/index.cjs +20 -0
  265. package/dist/components/GanttView/index.cjs.map +1 -0
  266. package/dist/components/GanttView/index.d.cts +37 -0
  267. package/dist/components/GanttView/index.d.ts +37 -0
  268. package/dist/components/GanttView/index.js +7 -0
  269. package/dist/components/GanttView/index.js.map +1 -0
  270. package/dist/components/GlossaryTooltip/index.cjs +4 -4
  271. package/dist/components/GlossaryTooltip/index.js +3 -3
  272. package/dist/components/KeyboardShortcutsOverlay/index.cjs +6 -6
  273. package/dist/components/KeyboardShortcutsOverlay/index.js +4 -4
  274. package/dist/components/ListView/index.cjs +22 -0
  275. package/dist/components/ListView/index.cjs.map +1 -0
  276. package/dist/components/ListView/index.d.cts +37 -0
  277. package/dist/components/ListView/index.d.ts +37 -0
  278. package/dist/components/ListView/index.js +9 -0
  279. package/dist/components/ListView/index.js.map +1 -0
  280. package/dist/components/Markdown/index.cjs +19 -19
  281. package/dist/components/Markdown/index.js +7 -7
  282. package/dist/components/MediaEditor/index.cjs +16 -16
  283. package/dist/components/MediaEditor/index.js +11 -11
  284. package/dist/components/MediaPlayer/index.cjs +6 -6
  285. package/dist/components/MediaPlayer/index.js +3 -3
  286. package/dist/components/MegaMenu/index.cjs +23 -0
  287. package/dist/components/MegaMenu/index.cjs.map +1 -0
  288. package/dist/components/MegaMenu/index.d.cts +106 -0
  289. package/dist/components/MegaMenu/index.d.ts +106 -0
  290. package/dist/components/MegaMenu/index.js +6 -0
  291. package/dist/components/MegaMenu/index.js.map +1 -0
  292. package/dist/components/Modal/index.cjs +11 -11
  293. package/dist/components/Modal/index.js +3 -3
  294. package/dist/components/OrbitRing/index.cjs +14 -0
  295. package/dist/components/OrbitRing/index.cjs.map +1 -0
  296. package/dist/components/OrbitRing/index.d.cts +64 -0
  297. package/dist/components/OrbitRing/index.d.ts +64 -0
  298. package/dist/components/OrbitRing/index.js +5 -0
  299. package/dist/components/OrbitRing/index.js.map +1 -0
  300. package/dist/components/QuickAction/index.d.cts +1 -1
  301. package/dist/components/QuickAction/index.d.ts +1 -1
  302. package/dist/components/RadialExplorer/index.cjs +18 -0
  303. package/dist/components/RadialExplorer/index.cjs.map +1 -0
  304. package/dist/components/RadialExplorer/index.d.cts +83 -0
  305. package/dist/components/RadialExplorer/index.d.ts +83 -0
  306. package/dist/components/RadialExplorer/index.js +9 -0
  307. package/dist/components/RadialExplorer/index.js.map +1 -0
  308. package/dist/components/RichTextEditor/index.cjs +9 -9
  309. package/dist/components/RichTextEditor/index.js +6 -6
  310. package/dist/components/SectionSpyNav/index.cjs +4 -4
  311. package/dist/components/SectionSpyNav/index.js +3 -3
  312. package/dist/components/Select/index.cjs +5 -5
  313. package/dist/components/Select/index.js +3 -3
  314. package/dist/components/Sheet/index.cjs +11 -11
  315. package/dist/components/Sheet/index.js +2 -2
  316. package/dist/components/SliderCalculator/index.cjs +20 -0
  317. package/dist/components/SliderCalculator/index.cjs.map +1 -0
  318. package/dist/components/SliderCalculator/index.d.cts +100 -0
  319. package/dist/components/SliderCalculator/index.d.ts +100 -0
  320. package/dist/components/SliderCalculator/index.js +7 -0
  321. package/dist/components/SliderCalculator/index.js.map +1 -0
  322. package/dist/components/SourceTip/index.cjs +4 -4
  323. package/dist/components/SourceTip/index.js +3 -3
  324. package/dist/components/SuperChat/index.cjs +454 -279
  325. package/dist/components/SuperChat/index.cjs.map +1 -1
  326. package/dist/components/SuperChat/index.js +444 -269
  327. package/dist/components/SuperChat/index.js.map +1 -1
  328. package/dist/components/SuperChat/plugins/index.cjs +8 -8
  329. package/dist/components/SuperChat/plugins/index.js +7 -7
  330. package/dist/components/ThemeProvider/index.cjs +9 -9
  331. package/dist/components/ThemeProvider/index.js +3 -3
  332. package/dist/components/Tooltip/index.cjs +3 -3
  333. package/dist/components/Tooltip/index.js +2 -2
  334. package/dist/components/VideoCard/index.cjs +21 -0
  335. package/dist/components/VideoCard/index.cjs.map +1 -0
  336. package/dist/components/VideoCard/index.d.cts +75 -0
  337. package/dist/components/VideoCard/index.d.ts +75 -0
  338. package/dist/components/VideoCard/index.js +8 -0
  339. package/dist/components/VideoCard/index.js.map +1 -0
  340. package/dist/components/ViewSet/index.cjs +23 -0
  341. package/dist/components/ViewSet/index.cjs.map +1 -0
  342. package/dist/components/ViewSet/index.d.cts +89 -0
  343. package/dist/components/ViewSet/index.d.ts +89 -0
  344. package/dist/components/ViewSet/index.js +14 -0
  345. package/dist/components/ViewSet/index.js.map +1 -0
  346. package/dist/components/ViewSwitcher/index.cjs +20 -0
  347. package/dist/components/ViewSwitcher/index.cjs.map +1 -0
  348. package/dist/components/ViewSwitcher/index.d.cts +40 -0
  349. package/dist/components/ViewSwitcher/index.d.ts +40 -0
  350. package/dist/components/ViewSwitcher/index.js +7 -0
  351. package/dist/components/ViewSwitcher/index.js.map +1 -0
  352. package/dist/components/YearTimeline/index.cjs +26 -0
  353. package/dist/components/YearTimeline/index.cjs.map +1 -0
  354. package/dist/components/YearTimeline/index.d.cts +82 -0
  355. package/dist/components/YearTimeline/index.d.ts +82 -0
  356. package/dist/components/YearTimeline/index.js +5 -0
  357. package/dist/components/YearTimeline/index.js.map +1 -0
  358. package/dist/datavis.cjs +2 -2
  359. package/dist/datavis.js +1 -1
  360. package/dist/enterprise-health-ITUNXDIW.js +4 -0
  361. package/dist/{enterprise-health-CWLUB77O.js.map → enterprise-health-ITUNXDIW.js.map} +1 -1
  362. package/dist/enterprise-health-UHHPVPU6.cjs +19 -0
  363. package/dist/{enterprise-health-75VYWAVG.cjs.map → enterprise-health-UHHPVPU6.cjs.map} +1 -1
  364. package/dist/esheet.cjs +18 -18
  365. package/dist/esheet.js +15 -15
  366. package/dist/globe.cjs +306 -0
  367. package/dist/globe.cjs.map +1 -0
  368. package/dist/globe.d.cts +99 -0
  369. package/dist/globe.d.ts +99 -0
  370. package/dist/globe.js +279 -0
  371. package/dist/globe.js.map +1 -0
  372. package/dist/hooks/index.cjs +38 -24
  373. package/dist/hooks/index.d.cts +141 -1
  374. package/dist/hooks/index.d.ts +141 -1
  375. package/dist/hooks/index.js +6 -4
  376. package/dist/index.cjs +1510 -1205
  377. package/dist/index.cjs.map +1 -1
  378. package/dist/index.d.cts +97 -25
  379. package/dist/index.d.ts +97 -25
  380. package/dist/index.js +546 -379
  381. package/dist/index.js.map +1 -1
  382. package/dist/kerebron.cjs +58 -19
  383. package/dist/kerebron.cjs.map +1 -1
  384. package/dist/kerebron.d.cts +37 -0
  385. package/dist/kerebron.d.ts +37 -0
  386. package/dist/kerebron.js +58 -19
  387. package/dist/kerebron.js.map +1 -1
  388. package/dist/{speaker-verify-5GTWAN5Y.cjs → speaker-verify-4NEJAK6C.cjs} +57 -90
  389. package/dist/speaker-verify-4NEJAK6C.cjs.map +1 -0
  390. package/dist/{speaker-verify-R67P433H.js → speaker-verify-AWSKI6DI.js} +57 -90
  391. package/dist/speaker-verify-AWSKI6DI.js.map +1 -0
  392. package/dist/styles/effects.css +128 -0
  393. package/dist/styles/init.css +15 -0
  394. package/dist/styles.css +1 -1
  395. package/dist/tailwind-preset.cjs +4 -4
  396. package/dist/tailwind-preset.js +1 -1
  397. package/dist/types-CbWXIKbe.d.cts +119 -0
  398. package/dist/types-CbWXIKbe.d.ts +119 -0
  399. package/dist/utils/index.cjs +5 -5
  400. package/dist/utils/index.js +1 -1
  401. package/package.json +28 -2
  402. package/dist/CsvBlock-CVYA3HYS.cjs +0 -16
  403. package/dist/CsvBlock-SM4NKSHA.js +0 -7
  404. package/dist/HtmlPreviewBlock-FAMF4W24.js +0 -7
  405. package/dist/HtmlPreviewBlock-JF454L2L.cjs +0 -16
  406. package/dist/MermaidBlock-7V5G4K5A.js +0 -7
  407. package/dist/MermaidBlock-FR5SQX4Q.cjs +0 -16
  408. package/dist/SurveyBlock-6K2POV7S.js +0 -7
  409. package/dist/SurveyBlock-MCJVWR7H.cjs +0 -16
  410. package/dist/chunk-22CYDCXA.js.map +0 -1
  411. package/dist/chunk-IINZWUGK.cjs.map +0 -1
  412. package/dist/chunk-J644FU54.cjs.map +0 -1
  413. package/dist/chunk-KREUYVMZ.js.map +0 -1
  414. package/dist/chunk-MTZPVOP6.js.map +0 -1
  415. package/dist/chunk-P52GA3GJ.cjs.map +0 -1
  416. package/dist/chunk-PY7XAG4D.cjs.map +0 -1
  417. package/dist/chunk-WIAQQNFU.cjs.map +0 -1
  418. package/dist/chunk-WOYUQ4AT.js.map +0 -1
  419. package/dist/chunk-X5YM3KXY.js.map +0 -1
  420. package/dist/enterprise-health-75VYWAVG.cjs +0 -19
  421. package/dist/enterprise-health-CWLUB77O.js +0 -4
  422. package/dist/speaker-verify-5GTWAN5Y.cjs.map +0 -1
  423. package/dist/speaker-verify-R67P433H.js.map +0 -1
@@ -0,0 +1,429 @@
1
+ import { defaultViewLabels, 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 { useSensors, useSensor, PointerSensor, DndContext, pointerWithin, DragOverlay, useDroppable, useDraggable } from '@dnd-kit/core';
6
+ import { cva } from 'class-variance-authority';
7
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
8
+
9
+ var defaultBoardLabels = {
10
+ ...defaultViewLabels,
11
+ empty: "Nothing in this stage",
12
+ board: "Board",
13
+ moved: "{item} moved to {stage}",
14
+ moveFailed: "Could not move {item}",
15
+ moveHint: "Press Control with the arrow keys to move between stages"
16
+ };
17
+ var cardVariants = cva(
18
+ [
19
+ "w-full rounded-md border border-border bg-card p-2 text-start",
20
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
21
+ ],
22
+ {
23
+ variants: {
24
+ density: {
25
+ comfortable: "p-3",
26
+ compact: "p-2"
27
+ },
28
+ interactive: { true: "hover:border-primary-500/40", false: "" },
29
+ selected: { true: "ring-2 ring-primary-500/50", false: "" },
30
+ pending: { true: "opacity-60", false: "" }
31
+ },
32
+ defaultVariants: {
33
+ density: "comfortable",
34
+ interactive: false,
35
+ selected: false,
36
+ pending: false
37
+ }
38
+ }
39
+ );
40
+ var fill = (template, values) => template.replace(/\{(\w+)\}/g, (_, key) => values[key] ?? "");
41
+ function BoardCard({
42
+ id,
43
+ title,
44
+ subtitle,
45
+ accent,
46
+ selected,
47
+ pending,
48
+ draggable,
49
+ hint,
50
+ href,
51
+ className,
52
+ children,
53
+ onOpen,
54
+ onKeyDown
55
+ }) {
56
+ const { attributes, listeners, setNodeRef, isDragging } = useDraggable({
57
+ id,
58
+ disabled: !draggable
59
+ });
60
+ const body = children ?? /* @__PURE__ */ jsxs("span", { className: "flex items-start gap-2", children: [
61
+ accent && /* @__PURE__ */ jsx(
62
+ "span",
63
+ {
64
+ "aria-hidden": true,
65
+ className: cn(
66
+ "mt-1.5 size-2 shrink-0 rounded-full",
67
+ accentClasses[accent].marker
68
+ )
69
+ }
70
+ ),
71
+ /* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1", children: [
72
+ /* @__PURE__ */ jsx("span", { className: "text-foreground block text-sm font-medium", children: title }),
73
+ subtitle && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground block truncate text-xs", children: subtitle })
74
+ ] })
75
+ ] });
76
+ const onCardKeyDown = (event) => {
77
+ if (onOpen && !href && (event.key === "Enter" || event.key === " ")) {
78
+ if (!event.ctrlKey && !event.metaKey) {
79
+ event.preventDefault();
80
+ onOpen();
81
+ return;
82
+ }
83
+ }
84
+ onKeyDown?.(event);
85
+ };
86
+ const shared = {
87
+ ref: setNodeRef,
88
+ // Only the pointer listeners are shared. dnd-kit's `attributes` carry
89
+ // `role="button"` and a `tabIndex`, which on an `<a href>` would override
90
+ // the native link role — the card would announce as a button, and the
91
+ // middle-click / "copy link" affordance this branch exists to preserve
92
+ // would no longer be what assistive tech describes. The non-link card takes
93
+ // them below, where button semantics are the correct answer.
94
+ ...draggable ? listeners : {},
95
+ "aria-current": selected ? "true" : void 0,
96
+ "aria-describedby": hint,
97
+ "aria-busy": pending || void 0,
98
+ "data-slot": "board-view-card",
99
+ className: cn(className, isDragging && "opacity-40")
100
+ };
101
+ return /* @__PURE__ */ jsx("li", { children: href ? (
102
+ // An anchor, like every other view: the card stays middle-clickable and
103
+ // "copy link" works. dnd-kit's listeners still own the drag.
104
+ /* @__PURE__ */ jsx(
105
+ "a",
106
+ {
107
+ ...shared,
108
+ href,
109
+ onKeyDown: onCardKeyDown,
110
+ onClick: (event) => {
111
+ if (!onOpen || event.defaultPrevented || event.metaKey || event.ctrlKey || event.shiftKey || event.button !== 0)
112
+ return;
113
+ event.preventDefault();
114
+ onOpen();
115
+ },
116
+ children: body
117
+ }
118
+ )
119
+ ) : /* @__PURE__ */ jsx(
120
+ "div",
121
+ {
122
+ ...shared,
123
+ ...draggable ? attributes : {},
124
+ role: onOpen ? "button" : void 0,
125
+ tabIndex: draggable || onOpen ? 0 : void 0,
126
+ onKeyDown: onCardKeyDown,
127
+ onClick: onOpen,
128
+ children: body
129
+ }
130
+ ) });
131
+ }
132
+ function BoardColumn({
133
+ stage,
134
+ headerId,
135
+ count,
136
+ headingLevel: Heading,
137
+ droppable,
138
+ classNames,
139
+ children
140
+ }) {
141
+ const { setNodeRef, isOver } = useDroppable({
142
+ id: stage.id,
143
+ disabled: !droppable
144
+ });
145
+ const accent = stage.accent ?? "neutral";
146
+ return /* @__PURE__ */ jsxs(
147
+ "section",
148
+ {
149
+ ref: setNodeRef,
150
+ "data-slot": "board-view-column",
151
+ "data-over": isOver || void 0,
152
+ className: cn(
153
+ "bg-muted/40 flex min-w-0 flex-col rounded-lg border",
154
+ isOver ? accentClasses[accent].border : "border-border",
155
+ "sm:w-72 sm:shrink-0",
156
+ classNames?.column
157
+ ),
158
+ children: [
159
+ /* @__PURE__ */ jsx(Heading, { children: /* @__PURE__ */ jsxs(
160
+ "span",
161
+ {
162
+ id: headerId,
163
+ "data-slot": "board-view-column-header",
164
+ className: cn(
165
+ "border-border text-muted-foreground flex items-center gap-2 border-b px-3 py-2 text-xs font-semibold tracking-wide uppercase",
166
+ classNames?.columnHeader
167
+ ),
168
+ children: [
169
+ /* @__PURE__ */ jsx(
170
+ "span",
171
+ {
172
+ "aria-hidden": true,
173
+ className: cn(
174
+ "size-2 shrink-0 rounded-full",
175
+ accentClasses[accent].marker
176
+ )
177
+ }
178
+ ),
179
+ /* @__PURE__ */ jsx("span", { children: stage.label }),
180
+ /* @__PURE__ */ jsx("span", { className: "ms-auto font-normal tabular-nums", children: count })
181
+ ]
182
+ }
183
+ ) }),
184
+ children
185
+ ]
186
+ }
187
+ );
188
+ }
189
+ function BoardView({
190
+ items,
191
+ accessors,
192
+ stages,
193
+ loading = false,
194
+ error = null,
195
+ selectedId = null,
196
+ onOpen,
197
+ getHref,
198
+ onMove,
199
+ renderItem,
200
+ emptyState,
201
+ labels,
202
+ density,
203
+ className,
204
+ classNames,
205
+ headingLevel = "h3"
206
+ }) {
207
+ const text = { ...defaultBoardLabels, ...labels };
208
+ const hintId = React.useId();
209
+ const baseId = React.useId();
210
+ const [announcement, setAnnouncement] = React.useState("");
211
+ const [draggingId, setDraggingId] = React.useState(null);
212
+ const [pending, setPending] = React.useState(
213
+ () => /* @__PURE__ */ new Map()
214
+ );
215
+ const byId = React.useMemo(() => {
216
+ const map = /* @__PURE__ */ new Map();
217
+ for (const item of items) map.set(accessors.getId(item), item);
218
+ return map;
219
+ }, [items, accessors]);
220
+ const stageOf = React.useCallback(
221
+ (item) => pending.get(accessors.getId(item)) ?? accessors.getStatus?.(item),
222
+ [pending, accessors]
223
+ );
224
+ const columns = React.useMemo(() => {
225
+ const buckets = new Map(stages.map((s) => [s.id, []]));
226
+ const extra = /* @__PURE__ */ new Map();
227
+ for (const item of items) {
228
+ const key = stageOf(item) ?? "";
229
+ const bucket = buckets.get(key);
230
+ if (bucket) bucket.push(item);
231
+ else {
232
+ const spill = extra.get(key);
233
+ if (spill) spill.push(item);
234
+ else extra.set(key, [item]);
235
+ }
236
+ }
237
+ return [
238
+ ...stages.map((stage) => ({
239
+ stage,
240
+ declared: true,
241
+ items: buckets.get(stage.id) ?? []
242
+ })),
243
+ // Never silently drop a record whose status matches no stage. These are
244
+ // shown so the record stays visible, but they are not drop targets: their
245
+ // ids were never declared, and `onMove` promises a named stage.
246
+ ...[...extra].map(([key, bucket]) => ({
247
+ stage: { id: key, label: key || text.ungrouped },
248
+ declared: false,
249
+ items: bucket
250
+ }))
251
+ ];
252
+ }, [items, stages, stageOf, text.ungrouped]);
253
+ const commit = React.useCallback(
254
+ async (id, toStage) => {
255
+ const item = byId.get(id);
256
+ if (!item || !onMove) return;
257
+ if (pending.has(id)) return;
258
+ const stage = stages.find((s) => s.id === toStage);
259
+ if (!stage) return;
260
+ const from = accessors.getStatus?.(item);
261
+ if (from === toStage) return;
262
+ const title = accessors.getTitle(item);
263
+ setPending((prev) => new Map(prev).set(id, toStage));
264
+ setAnnouncement(
265
+ fill(text.moved, { item: title, stage: stage.label ?? toStage })
266
+ );
267
+ try {
268
+ await onMove(id, toStage, item);
269
+ } catch {
270
+ setAnnouncement(fill(text.moveFailed, { item: title }));
271
+ } finally {
272
+ setPending((prev) => {
273
+ const next = new Map(prev);
274
+ next.delete(id);
275
+ return next;
276
+ });
277
+ }
278
+ },
279
+ [byId, onMove, pending, accessors, stages, text.moved, text.moveFailed]
280
+ );
281
+ const sensors = useSensors(
282
+ useSensor(PointerSensor, { activationConstraint: { distance: 5 } })
283
+ );
284
+ const onDragStart = (event) => setDraggingId(String(event.active.id));
285
+ const onDragEnd = (event) => {
286
+ setDraggingId(null);
287
+ if (event.over) void commit(String(event.active.id), String(event.over.id));
288
+ };
289
+ const onCardKeyDown = (event, id, columnIndex) => {
290
+ if (!onMove || !(event.ctrlKey || event.metaKey)) return;
291
+ const rtl = getComputedStyle(event.currentTarget).direction === "rtl";
292
+ let delta = 0;
293
+ if (event.key === "ArrowRight") delta = rtl ? -1 : 1;
294
+ else if (event.key === "ArrowLeft") delta = rtl ? 1 : -1;
295
+ else return;
296
+ let target;
297
+ for (let i = columnIndex + delta; i >= 0 && i < columns.length; i += delta) {
298
+ if (columns[i].declared) {
299
+ target = columns[i];
300
+ break;
301
+ }
302
+ }
303
+ if (!target) return;
304
+ event.preventDefault();
305
+ void commit(id, target.stage.id);
306
+ };
307
+ const state = (content) => /* @__PURE__ */ jsx(
308
+ "div",
309
+ {
310
+ "data-slot": "board-view-state",
311
+ className: cn(
312
+ "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",
313
+ classNames?.state
314
+ ),
315
+ children: content
316
+ }
317
+ );
318
+ if (error) {
319
+ return state(
320
+ /* @__PURE__ */ jsx("p", { role: "alert", className: "text-destructive", children: text.error })
321
+ );
322
+ }
323
+ if (loading) {
324
+ return state(
325
+ /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-2", children: [
326
+ /* @__PURE__ */ jsx(Spinner, { size: "sm", label: text.loading }),
327
+ /* @__PURE__ */ jsx("span", { "aria-hidden": true, children: text.loading })
328
+ ] })
329
+ );
330
+ }
331
+ if (items.length === 0 && emptyState) return /* @__PURE__ */ jsx(Fragment, { children: emptyState });
332
+ const draggingItem = draggingId ? byId.get(draggingId) : void 0;
333
+ return /* @__PURE__ */ jsxs(
334
+ DndContext,
335
+ {
336
+ sensors,
337
+ collisionDetection: pointerWithin,
338
+ onDragStart,
339
+ onDragEnd,
340
+ onDragCancel: () => setDraggingId(null),
341
+ children: [
342
+ /* @__PURE__ */ jsx(
343
+ "div",
344
+ {
345
+ "data-slot": "board-view",
346
+ tabIndex: 0,
347
+ role: "group",
348
+ "aria-label": text.board,
349
+ className: cn(
350
+ // Columns on one scrolling row once there is room; stacked below it,
351
+ // because five 288px columns on a phone is a horizontal maze.
352
+ "flex flex-col gap-3 sm:flex-row sm:overflow-x-auto sm:pb-2",
353
+ className
354
+ ),
355
+ children: columns.map((column, columnIndex) => /* @__PURE__ */ jsx(
356
+ BoardColumn,
357
+ {
358
+ stage: column.stage,
359
+ droppable: column.declared && Boolean(onMove),
360
+ headerId: `${baseId}-col-${columnIndex}`,
361
+ count: column.items.length,
362
+ headingLevel,
363
+ classNames,
364
+ children: /* @__PURE__ */ jsxs(
365
+ "ul",
366
+ {
367
+ "aria-labelledby": `${baseId}-col-${columnIndex}`,
368
+ className: "flex flex-1 flex-col gap-2 p-2",
369
+ children: [
370
+ column.items.map((item) => {
371
+ const id = accessors.getId(item);
372
+ return /* @__PURE__ */ jsx(
373
+ BoardCard,
374
+ {
375
+ id,
376
+ title: accessors.getTitle(item),
377
+ subtitle: accessors.getSubtitle?.(item),
378
+ accent: accessors.getAccent?.(item),
379
+ selected: id === selectedId,
380
+ pending: pending.has(id),
381
+ draggable: Boolean(onMove),
382
+ hint: onMove ? hintId : void 0,
383
+ href: getHref?.(id, item),
384
+ className: cn(
385
+ cardVariants({
386
+ density,
387
+ interactive: Boolean(onOpen),
388
+ selected: id === selectedId,
389
+ pending: pending.has(id)
390
+ }),
391
+ classNames?.card,
392
+ id === selectedId && classNames?.selectedCard
393
+ ),
394
+ onOpen: onOpen ? () => onOpen(id, item) : void 0,
395
+ onKeyDown: (event) => onCardKeyDown(event, id, columnIndex),
396
+ children: renderItem?.(item, { view: "board" })
397
+ },
398
+ id
399
+ );
400
+ }),
401
+ column.items.length === 0 && /* @__PURE__ */ jsx("li", { className: "text-muted-foreground px-1 py-2 text-xs", children: text.empty })
402
+ ]
403
+ }
404
+ )
405
+ },
406
+ column.stage.id
407
+ ))
408
+ }
409
+ ),
410
+ onMove && /* @__PURE__ */ jsx("span", { id: hintId, className: "sr-only", children: text.moveHint }),
411
+ /* @__PURE__ */ jsx(
412
+ "span",
413
+ {
414
+ "data-slot": "board-view-announcer",
415
+ role: "status",
416
+ "aria-live": "polite",
417
+ className: "sr-only",
418
+ children: announcement
419
+ }
420
+ ),
421
+ /* @__PURE__ */ jsx(DragOverlay, { children: draggingItem && /* @__PURE__ */ jsx("div", { className: cn(cardVariants({ density }), "shadow-lg"), children: /* @__PURE__ */ jsx("span", { className: "text-foreground block text-sm font-medium", children: accessors.getTitle(draggingItem) }) }) })
422
+ ]
423
+ }
424
+ );
425
+ }
426
+
427
+ export { BoardView, cardVariants, defaultBoardLabels };
428
+ //# sourceMappingURL=chunk-XVW5DPPP.js.map
429
+ //# sourceMappingURL=chunk-XVW5DPPP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/BoardView/BoardView.tsx"],"names":[],"mappings":";;;;;;;;AAiDO,IAAM,kBAAA,GAAkC;AAAA,EAC7C,GAAG,iBAAA;AAAA,EACH,KAAA,EAAO,uBAAA;AAAA,EACP,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,yBAAA;AAAA,EACP,UAAA,EAAY,uBAAA;AAAA,EACZ,QAAA,EAAU;AACZ;AAsBA,IAAM,YAAA,GAAe,GAAA;AAAA,EACnB;AAAA,IACE,+DAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,WAAA,EAAa,KAAA;AAAA,QACb,OAAA,EAAS;AAAA,OACX;AAAA,MACA,WAAA,EAAa,EAAE,IAAA,EAAM,6BAAA,EAA+B,OAAO,EAAA,EAAG;AAAA,MAC9D,QAAA,EAAU,EAAE,IAAA,EAAM,4BAAA,EAA8B,OAAO,EAAA,EAAG;AAAA,MAC1D,OAAA,EAAS,EAAE,IAAA,EAAM,YAAA,EAAc,OAAO,EAAA;AAAG,KAC3C;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,aAAA;AAAA,MACT,WAAA,EAAa,KAAA;AAAA,MACb,QAAA,EAAU,KAAA;AAAA,MACV,OAAA,EAAS;AAAA;AACX;AAEJ;AAEA,IAAM,IAAA,GAAO,CAAC,QAAA,EAAkB,MAAA,KAC9B,QAAA,CAAS,OAAA,CAAQ,YAAA,EAAc,CAAC,CAAA,EAAG,GAAA,KAAQ,MAAA,CAAO,GAAG,KAAK,EAAE,CAAA;AAsB9D,SAAS,SAAA,CAAU;AAAA,EACjB,EAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAAc;AACZ,EAAA,MAAM,EAAE,UAAA,EAAY,SAAA,EAAW,UAAA,EAAY,UAAA,KAAe,YAAA,CAAa;AAAA,IACrE,EAAA;AAAA,IACA,UAAU,CAAC;AAAA,GACZ,CAAA;AAED,EAAA,MAAM,IAAA,GAAO,QAAA,oBACX,IAAA,CAAC,MAAA,EAAA,EAAK,WAAU,wBAAA,EACb,QAAA,EAAA;AAAA,IAAA,MAAA,oBACC,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAW,IAAA;AAAA,QACX,SAAA,EAAW,EAAA;AAAA,UACT,qCAAA;AAAA,UACA,aAAA,CAAc,MAAM,CAAA,CAAE;AAAA;AACxB;AAAA,KACF;AAAA,oBAEF,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EACd,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2CAAA,EACb,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,MACC,QAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gDACb,QAAA,EAAA,QAAA,EACH;AAAA,KAAA,EAEJ;AAAA,GAAA,EACF,CAAA;AAGF,EAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAA+B;AACpD,IAAA,IAAI,MAAA,IAAU,CAAC,IAAA,KAAS,KAAA,CAAM,QAAQ,OAAA,IAAW,KAAA,CAAM,QAAQ,GAAA,CAAA,EAAM;AAGnE,MAAA,IAAI,CAAC,KAAA,CAAM,OAAA,IAAW,CAAC,MAAM,OAAA,EAAS;AACpC,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,MAAA,EAAO;AACP,QAAA;AAAA,MACF;AAAA,IACF;AACA,IAAA,SAAA,GAAY,KAAK,CAAA;AAAA,EACnB,CAAA;AAEA,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,GAAA,EAAK,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL,GAAI,SAAA,GAAY,SAAA,GAAY,EAAC;AAAA,IAC7B,cAAA,EAAgB,WAAY,MAAA,GAAmB,MAAA;AAAA,IAC/C,kBAAA,EAAoB,IAAA;AAAA,IACpB,aAAa,OAAA,IAAW,MAAA;AAAA,IACxB,WAAA,EAAa,iBAAA;AAAA,IACb,SAAA,EAAW,EAAA,CAAG,SAAA,EAAW,UAAA,IAAc,YAAY;AAAA,GACrD;AAEA,EAAA,2BACG,IAAA,EAAA,EACE,QAAA,EAAA,IAAA;AAAA;AAAA;AAAA,oBAGC,GAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACE,GAAG,MAAA;AAAA,QACJ,IAAA;AAAA,QACA,SAAA,EAAW,aAAA;AAAA,QACX,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,UAAA,IACE,CAAC,MAAA,IACD,KAAA,CAAM,gBAAA,IACN,KAAA,CAAM,OAAA,IACN,KAAA,CAAM,OAAA,IACN,KAAA,CAAM,QAAA,IACN,KAAA,CAAM,MAAA,KAAW,CAAA;AAEjB,YAAA;AACF,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,MAAA,EAAO;AAAA,QACT,CAAA;AAAA,QAEC,QAAA,EAAA;AAAA;AAAA;AACH,sBAEA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,MAAA;AAAA,MACH,GAAI,SAAA,GAAY,UAAA,GAAa,EAAC;AAAA,MAC/B,IAAA,EAAM,SAAS,QAAA,GAAW,MAAA;AAAA,MAC1B,QAAA,EAAU,SAAA,IAAa,MAAA,GAAS,CAAA,GAAI,MAAA;AAAA,MACpC,SAAA,EAAW,aAAA;AAAA,MACX,OAAA,EAAS,MAAA;AAAA,MAER,QAAA,EAAA;AAAA;AAAA,GACH,EAEJ,CAAA;AAEJ;AAMA,SAAS,WAAA,CAAY;AAAA,EACnB,KAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA,EAAc,OAAA;AAAA,EACd,SAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAA,EAQG;AACD,EAAA,MAAM,EAAE,UAAA,EAAY,MAAA,EAAO,GAAI,YAAA,CAAa;AAAA,IAC1C,IAAI,KAAA,CAAM,EAAA;AAAA,IACV,UAAU,CAAC;AAAA,GACZ,CAAA;AACD,EAAA,MAAM,MAAA,GAAS,MAAM,MAAA,IAAU,SAAA;AAC/B,EAAA,uBACE,IAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,UAAA;AAAA,MACL,WAAA,EAAU,mBAAA;AAAA,MACV,aAAW,MAAA,IAAU,MAAA;AAAA,MACrB,SAAA,EAAW,EAAA;AAAA,QACT,qDAAA;AAAA,QACA,MAAA,GAAS,aAAA,CAAc,MAAM,CAAA,CAAE,MAAA,GAAS,eAAA;AAAA,QACxC,qBAAA;AAAA,QACA,UAAA,EAAY;AAAA,OACd;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,OAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,EAAA,EAAI,QAAA;AAAA,YACJ,WAAA,EAAU,0BAAA;AAAA,YACV,SAAA,EAAW,EAAA;AAAA,cACT,8HAAA;AAAA,cACA,UAAA,EAAY;AAAA,aACd;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,aAAA,EAAW,IAAA;AAAA,kBACX,SAAA,EAAW,EAAA;AAAA,oBACT,8BAAA;AAAA,oBACA,aAAA,CAAc,MAAM,CAAA,CAAE;AAAA;AACxB;AAAA,eACF;AAAA,8BACA,GAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,KAAA,CAAM,KAAA,EAAM,CAAA;AAAA,8BACnB,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,kCAAA,EAAoC,QAAA,EAAA,KAAA,EAAM;AAAA;AAAA;AAAA,SAC5D,EACF,CAAA;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ;AAMO,SAAS,SAAA,CAAa;AAAA,EAC3B,KAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV,KAAA,GAAQ,IAAA;AAAA,EACR,UAAA,GAAa,IAAA;AAAA,EACb,MAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA,GAAe;AACjB,CAAA,EAAsB;AACpB,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,kBAAA,EAAoB,GAAG,MAAA,EAAO;AAChD,EAAA,MAAM,SAAe,KAAA,CAAA,KAAA,EAAM;AAI3B,EAAA,MAAM,SAAe,KAAA,CAAA,KAAA,EAAM;AAC3B,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAU,eAAS,EAAE,CAAA;AACzD,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAU,eAAwB,IAAI,CAAA;AAQtE,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAU,KAAA,CAAA,QAAA;AAAA,IAClC,0BAAU,GAAA;AAAI,GAChB;AAEA,EAAA,MAAM,IAAA,GAAa,cAAQ,MAAM;AAC/B,IAAA,MAAM,GAAA,uBAAU,GAAA,EAAe;AAC/B,IAAA,KAAA,MAAW,IAAA,IAAQ,OAAO,GAAA,CAAI,GAAA,CAAI,UAAU,KAAA,CAAM,IAAI,GAAG,IAAI,CAAA;AAC7D,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,CAAC,KAAA,EAAO,SAAS,CAAC,CAAA;AAErB,EAAA,MAAM,OAAA,GAAgB,KAAA,CAAA,WAAA;AAAA,IACpB,CAAC,IAAA,KACC,OAAA,CAAQ,GAAA,CAAI,SAAA,CAAU,KAAA,CAAM,IAAI,CAAC,CAAA,IAAK,SAAA,CAAU,SAAA,GAAY,IAAI,CAAA;AAAA,IAClE,CAAC,SAAS,SAAS;AAAA,GACrB;AAEA,EAAA,MAAM,OAAA,GAAgB,cAAQ,MAAM;AAClC,IAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAiB,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,KAAM,CAAC,CAAA,CAAE,EAAA,EAAI,EAAE,CAAC,CAAC,CAAA;AAClE,IAAA,MAAM,KAAA,uBAAY,GAAA,EAAiB;AACnC,IAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,MAAA,MAAM,GAAA,GAAM,OAAA,CAAQ,IAAI,CAAA,IAAK,EAAA;AAC7B,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,GAAA,CAAI,GAAG,CAAA;AAC9B,MAAA,IAAI,MAAA,EAAQ,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AAAA,WACvB;AACH,QAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,GAAA,CAAI,GAAG,CAAA;AAC3B,QAAA,IAAI,KAAA,EAAO,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AAAA,aACrB,KAAA,CAAM,GAAA,CAAI,GAAA,EAAK,CAAC,IAAI,CAAC,CAAA;AAAA,MAC5B;AAAA,IACF;AACA,IAAA,OAAO;AAAA,MACL,GAAG,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,MAAW;AAAA,QACxB,KAAA;AAAA,QACA,QAAA,EAAU,IAAA;AAAA,QACV,OAAO,OAAA,CAAQ,GAAA,CAAI,KAAA,CAAM,EAAE,KAAK;AAAC,OACnC,CAAE,CAAA;AAAA;AAAA;AAAA;AAAA,MAIF,GAAG,CAAC,GAAG,KAAK,CAAA,CAAE,IAAI,CAAC,CAAC,GAAA,EAAK,MAAM,CAAA,MAAO;AAAA,QACpC,OAAO,EAAE,EAAA,EAAI,KAAK,KAAA,EAAO,GAAA,IAAO,KAAK,SAAA,EAAU;AAAA,QAC/C,QAAA,EAAU,KAAA;AAAA,QACV,KAAA,EAAO;AAAA,OACT,CAAE;AAAA,KACJ;AAAA,EACF,GAAG,CAAC,KAAA,EAAO,QAAQ,OAAA,EAAS,IAAA,CAAK,SAAS,CAAC,CAAA;AAE3C,EAAA,MAAM,MAAA,GAAe,KAAA,CAAA,WAAA;AAAA,IACnB,OAAO,IAAY,OAAA,KAAoB;AACrC,MAAA,MAAM,IAAA,GAAO,IAAA,CAAK,GAAA,CAAI,EAAE,CAAA;AACxB,MAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,MAAA,EAAQ;AAItB,MAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,EAAE,CAAA,EAAG;AACrB,MAAA,MAAM,QAAQ,MAAA,CAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,OAAO,CAAA;AAKjD,MAAA,IAAI,CAAC,KAAA,EAAO;AACZ,MAAA,MAAM,IAAA,GAAO,SAAA,CAAU,SAAA,GAAY,IAAI,CAAA;AACvC,MAAA,IAAI,SAAS,OAAA,EAAS;AACtB,MAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,QAAA,CAAS,IAAI,CAAA;AAErC,MAAA,UAAA,CAAW,CAAC,SAAS,IAAI,GAAA,CAAI,IAAI,CAAA,CAAE,GAAA,CAAI,EAAA,EAAI,OAAO,CAAC,CAAA;AACnD,MAAA,eAAA;AAAA,QACE,IAAA,CAAK,IAAA,CAAK,KAAA,EAAO,EAAE,IAAA,EAAM,OAAO,KAAA,EAAO,KAAA,CAAM,KAAA,IAAS,OAAA,EAAS;AAAA,OACjE;AACA,MAAA,IAAI;AACF,QAAA,MAAM,MAAA,CAAO,EAAA,EAAI,OAAA,EAAS,IAAI,CAAA;AAAA,MAChC,CAAA,CAAA,MAAQ;AACN,QAAA,eAAA,CAAgB,KAAK,IAAA,CAAK,UAAA,EAAY,EAAE,IAAA,EAAM,KAAA,EAAO,CAAC,CAAA;AAAA,MACxD,CAAA,SAAE;AACA,QAAA,UAAA,CAAW,CAAC,IAAA,KAAS;AACnB,UAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,IAAI,CAAA;AACzB,UAAA,IAAA,CAAK,OAAO,EAAE,CAAA;AACd,UAAA,OAAO,IAAA;AAAA,QACT,CAAC,CAAA;AAAA,MACH;AAAA,IACF,CAAA;AAAA,IACA,CAAC,MAAM,MAAA,EAAQ,OAAA,EAAS,WAAW,MAAA,EAAQ,IAAA,CAAK,KAAA,EAAO,IAAA,CAAK,UAAU;AAAA,GACxE;AAEA,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,SAAA,CAAU,eAAe,EAAE,oBAAA,EAAsB,EAAE,QAAA,EAAU,CAAA,IAAK;AAAA,GACpE;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KACnB,aAAA,CAAc,OAAO,KAAA,CAAM,MAAA,CAAO,EAAE,CAAC,CAAA;AAEvC,EAAA,MAAM,SAAA,GAAY,CAAC,KAAA,KAAwB;AACzC,IAAA,aAAA,CAAc,IAAI,CAAA;AAClB,IAAA,IAAI,KAAA,CAAM,IAAA,EAAM,KAAK,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,EAAE,CAAA,EAAG,MAAA,CAAO,KAAA,CAAM,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,EAC5E,CAAA;AAKA,EAAA,MAAM,aAAA,GAAgB,CACpB,KAAA,EACA,EAAA,EACA,WAAA,KACG;AACH,IAAA,IAAI,CAAC,MAAA,IAAU,EAAE,KAAA,CAAM,OAAA,IAAW,MAAM,OAAA,CAAA,EAAU;AAClD,IAAA,MAAM,GAAA,GAAM,gBAAA,CAAiB,KAAA,CAAM,aAAa,EAAE,SAAA,KAAc,KAAA;AAChE,IAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,IAAA,IAAI,KAAA,CAAM,GAAA,KAAQ,YAAA,EAAc,KAAA,GAAQ,MAAM,EAAA,GAAK,CAAA;AAAA,SAAA,IAC1C,KAAA,CAAM,GAAA,KAAQ,WAAA,EAAa,KAAA,GAAQ,MAAM,CAAA,GAAI,EAAA;AAAA,SACjD;AAIL,IAAA,IAAI,MAAA;AACJ,IAAA,KAAA,IACM,CAAA,GAAI,cAAc,KAAA,EACtB,CAAA,IAAK,KAAK,CAAA,GAAI,OAAA,CAAQ,MAAA,EACtB,CAAA,IAAK,KAAA,EACL;AACA,MAAA,IAAI,OAAA,CAAQ,CAAC,CAAA,CAAE,QAAA,EAAU;AACvB,QAAA,MAAA,GAAS,QAAQ,CAAC,CAAA;AAClB,QAAA;AAAA,MACF;AAAA,IACF;AACA,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,KAAA,CAAM,cAAA,EAAe;AACrB,IAAA,KAAK,MAAA,CAAO,EAAA,EAAI,MAAA,CAAO,KAAA,CAAM,EAAE,CAAA;AAAA,EACjC,CAAA;AAEA,EAAA,MAAM,KAAA,GAAQ,CAAC,OAAA,qBACb,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,8IAAA;AAAA,QACA,UAAA,EAAY;AAAA,OACd;AAAA,MAEC,QAAA,EAAA;AAAA;AAAA,GACH;AAGF,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,OAAO,KAAA;AAAA,0BACJ,GAAA,EAAA,EAAE,IAAA,EAAK,SAAQ,SAAA,EAAU,kBAAA,EACvB,eAAK,KAAA,EACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAO,KAAA;AAAA,sBACL,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAA,EACd,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAK,IAAA,EAAK,KAAA,EAAO,KAAK,OAAA,EAAS,CAAA;AAAA,wBACxC,GAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAW,IAAA,EAAE,eAAK,OAAA,EAAQ;AAAA,OAAA,EAClC;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,MAAM,MAAA,KAAW,CAAA,IAAK,UAAA,EAAY,uCAAU,QAAA,EAAA,UAAA,EAAW,CAAA;AAE3D,EAAA,MAAM,YAAA,GAAe,UAAA,GAAa,IAAA,CAAK,GAAA,CAAI,UAAU,CAAA,GAAI,MAAA;AAEzD,EAAA,uBACE,IAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,kBAAA,EAAoB,aAAA;AAAA,MACpB,WAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA,EAAc,MAAM,aAAA,CAAc,IAAI,CAAA;AAAA,MAEtC,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,YAAA;AAAA,YAKV,QAAA,EAAU,CAAA;AAAA,YACV,IAAA,EAAK,OAAA;AAAA,YACL,cAAY,IAAA,CAAK,KAAA;AAAA,YACjB,SAAA,EAAW,EAAA;AAAA;AAAA;AAAA,cAGT,4DAAA;AAAA,cACA;AAAA,aACF;AAAA,YAEC,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,EAAQ,WAAA,qBACpB,GAAA;AAAA,cAAC,WAAA;AAAA,cAAA;AAAA,gBAEC,OAAO,MAAA,CAAO,KAAA;AAAA,gBACd,SAAA,EAAW,MAAA,CAAO,QAAA,IAAY,OAAA,CAAQ,MAAM,CAAA;AAAA,gBAC5C,QAAA,EAAU,CAAA,EAAG,MAAM,CAAA,KAAA,EAAQ,WAAW,CAAA,CAAA;AAAA,gBACtC,KAAA,EAAO,OAAO,KAAA,CAAM,MAAA;AAAA,gBACpB,YAAA;AAAA,gBACA,UAAA;AAAA,gBAEA,QAAA,kBAAA,IAAA;AAAA,kBAAC,IAAA;AAAA,kBAAA;AAAA,oBACC,iBAAA,EAAiB,CAAA,EAAG,MAAM,CAAA,KAAA,EAAQ,WAAW,CAAA,CAAA;AAAA,oBAC7C,SAAA,EAAU,gCAAA;AAAA,oBAET,QAAA,EAAA;AAAA,sBAAA,MAAA,CAAO,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AAC1B,wBAAA,MAAM,EAAA,GAAK,SAAA,CAAU,KAAA,CAAM,IAAI,CAAA;AAC/B,wBAAA,uBACE,GAAA;AAAA,0BAAC,SAAA;AAAA,0BAAA;AAAA,4BAEC,EAAA;AAAA,4BACA,KAAA,EAAO,SAAA,CAAU,QAAA,CAAS,IAAI,CAAA;AAAA,4BAC9B,QAAA,EAAU,SAAA,CAAU,WAAA,GAAc,IAAI,CAAA;AAAA,4BACtC,MAAA,EAAQ,SAAA,CAAU,SAAA,GAAY,IAAI,CAAA;AAAA,4BAClC,UAAU,EAAA,KAAO,UAAA;AAAA,4BACjB,OAAA,EAAS,OAAA,CAAQ,GAAA,CAAI,EAAE,CAAA;AAAA,4BACvB,SAAA,EAAW,QAAQ,MAAM,CAAA;AAAA,4BACzB,IAAA,EAAM,SAAS,MAAA,GAAS,MAAA;AAAA,4BACxB,IAAA,EAAM,OAAA,GAAU,EAAA,EAAI,IAAI,CAAA;AAAA,4BACxB,SAAA,EAAW,EAAA;AAAA,8BACT,YAAA,CAAa;AAAA,gCACX,OAAA;AAAA,gCACA,WAAA,EAAa,QAAQ,MAAM,CAAA;AAAA,gCAC3B,UAAU,EAAA,KAAO,UAAA;AAAA,gCACjB,OAAA,EAAS,OAAA,CAAQ,GAAA,CAAI,EAAE;AAAA,+BACxB,CAAA;AAAA,8BACD,UAAA,EAAY,IAAA;AAAA,8BACZ,EAAA,KAAO,cAAc,UAAA,EAAY;AAAA,6BACnC;AAAA,4BACA,QAAQ,MAAA,GAAS,MAAM,MAAA,CAAO,EAAA,EAAI,IAAI,CAAA,GAAI,MAAA;AAAA,4BAC1C,WAAW,CAAC,KAAA,KAAU,aAAA,CAAc,KAAA,EAAO,IAAI,WAAW,CAAA;AAAA,4BAEzD,QAAA,EAAA,UAAA,GAAa,IAAA,EAAM,EAAE,IAAA,EAAM,SAAS;AAAA,2BAAA;AAAA,0BAvBhC;AAAA,yBAwBP;AAAA,sBAEJ,CAAC,CAAA;AAAA,sBACA,MAAA,CAAO,MAAM,MAAA,KAAW,CAAA,wBACtB,IAAA,EAAA,EAAG,SAAA,EAAU,yCAAA,EACX,QAAA,EAAA,IAAA,CAAK,KAAA,EACR;AAAA;AAAA;AAAA;AAEJ,eAAA;AAAA,cAhDK,OAAO,KAAA,CAAM;AAAA,aAkDrB;AAAA;AAAA,SACH;AAAA,QAEC,MAAA,wBACE,MAAA,EAAA,EAAK,EAAA,EAAI,QAAQ,SAAA,EAAU,SAAA,EACzB,eAAK,QAAA,EACR,CAAA;AAAA,wBAIF,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,sBAAA;AAAA,YACV,IAAA,EAAK,QAAA;AAAA,YACL,WAAA,EAAU,QAAA;AAAA,YACV,SAAA,EAAU,SAAA;AAAA,YAET,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBAEA,GAAA,CAAC,eACE,QAAA,EAAA,YAAA,oBACC,GAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,YAAA,CAAa,EAAE,OAAA,EAAS,GAAG,WAAW,CAAA,EACvD,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2CAAA,EACb,oBAAU,QAAA,CAAS,YAAY,CAAA,EAClC,CAAA,EACF,CAAA,EAEJ;AAAA;AAAA;AAAA,GACF;AAEJ","file":"chunk-XVW5DPPP.js","sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport {\n DndContext,\n DragOverlay,\n PointerSensor,\n pointerWithin,\n useDraggable,\n useDroppable,\n useSensor,\n useSensors,\n type DragEndEvent,\n type DragStartEvent,\n} from '@dnd-kit/core';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { Spinner } from '../Spinner';\nimport {\n accentClasses,\n defaultViewLabels,\n type Accent,\n type Stage,\n type ViewBaseProps,\n type ViewLabels,\n} from '../../views/types';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type BoardViewSlot =\n | 'column'\n | 'columnHeader'\n | 'card'\n | 'selectedCard'\n | 'state';\n\nexport interface BoardLabels extends ViewLabels {\n /** Accessible name of the scrollable board region. */\n board: string;\n /** Announced when a card starts moving. `{item}` and `{stage}` are substituted. */\n moved: string;\n /** Announced when `onMove` rejects. */\n moveFailed: string;\n /** Hint on a focusable card describing the keyboard move. */\n moveHint: string;\n}\n\nexport const defaultBoardLabels: BoardLabels = {\n ...defaultViewLabels,\n empty: 'Nothing in this stage',\n board: 'Board',\n moved: '{item} moved to {stage}',\n moveFailed: 'Could not move {item}',\n moveHint: 'Press Control with the arrow keys to move between stages',\n};\n\nexport interface BoardViewProps<T>\n extends ViewBaseProps<T>, VariantProps<typeof cardVariants> {\n /** Columns, in order. A board without stages has nothing to draw. */\n stages: readonly Stage[];\n /**\n * Commits a move. The board shows the card in its new column while this is\n * pending and puts it back if the promise rejects, so the caller never has to\n * re-render it home.\n */\n onMove?: (id: string, toStage: string, item: T) => void | Promise<void>;\n labels?: Partial<BoardLabels>;\n classNames?: Partial<Record<BoardViewSlot, string>>;\n /** Heading level for column headers, under the page's own heading. */\n headingLevel?: 'h2' | 'h3' | 'h4';\n}\n\n// =============================================================================\n// Variants\n// =============================================================================\n\nconst cardVariants = cva(\n [\n 'w-full rounded-md border border-border bg-card p-2 text-start',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n ],\n {\n variants: {\n density: {\n comfortable: 'p-3',\n compact: 'p-2',\n },\n interactive: { true: 'hover:border-primary-500/40', false: '' },\n selected: { true: 'ring-2 ring-primary-500/50', false: '' },\n pending: { true: 'opacity-60', false: '' },\n },\n defaultVariants: {\n density: 'comfortable',\n interactive: false,\n selected: false,\n pending: false,\n },\n }\n);\n\nconst fill = (template: string, values: Record<string, string>) =>\n template.replace(/\\{(\\w+)\\}/g, (_, key) => values[key] ?? '');\n\n// =============================================================================\n// Card\n// =============================================================================\n\ninterface CardProps {\n id: string;\n title: string;\n subtitle?: string;\n accent?: Accent;\n selected: boolean;\n pending: boolean;\n draggable: boolean;\n hint?: string;\n href?: string;\n className?: string;\n children?: React.ReactNode;\n onOpen?: () => void;\n onKeyDown?: (event: React.KeyboardEvent) => void;\n}\n\nfunction BoardCard({\n id,\n title,\n subtitle,\n accent,\n selected,\n pending,\n draggable,\n hint,\n href,\n className,\n children,\n onOpen,\n onKeyDown,\n}: CardProps) {\n const { attributes, listeners, setNodeRef, isDragging } = useDraggable({\n id,\n disabled: !draggable,\n });\n\n const body = children ?? (\n <span className=\"flex items-start gap-2\">\n {accent && (\n <span\n aria-hidden\n className={cn(\n 'mt-1.5 size-2 shrink-0 rounded-full',\n accentClasses[accent].marker\n )}\n />\n )}\n <span className=\"min-w-0 flex-1\">\n <span className=\"text-foreground block text-sm font-medium\">\n {title}\n </span>\n {subtitle && (\n <span className=\"text-muted-foreground block truncate text-xs\">\n {subtitle}\n </span>\n )}\n </span>\n </span>\n );\n\n const onCardKeyDown = (event: React.KeyboardEvent) => {\n if (onOpen && !href && (event.key === 'Enter' || event.key === ' ')) {\n // Space is dnd-kit's pick-up key only while dragging; here the card is at\n // rest, so it activates like any other button.\n if (!event.ctrlKey && !event.metaKey) {\n event.preventDefault();\n onOpen();\n return;\n }\n }\n onKeyDown?.(event);\n };\n\n const shared = {\n ref: setNodeRef,\n // Only the pointer listeners are shared. dnd-kit's `attributes` carry\n // `role=\"button\"` and a `tabIndex`, which on an `<a href>` would override\n // the native link role — the card would announce as a button, and the\n // middle-click / \"copy link\" affordance this branch exists to preserve\n // would no longer be what assistive tech describes. The non-link card takes\n // them below, where button semantics are the correct answer.\n ...(draggable ? listeners : {}),\n 'aria-current': selected ? ('true' as const) : undefined,\n 'aria-describedby': hint,\n 'aria-busy': pending || undefined,\n 'data-slot': 'board-view-card',\n className: cn(className, isDragging && 'opacity-40'),\n };\n\n return (\n <li>\n {href ? (\n // An anchor, like every other view: the card stays middle-clickable and\n // \"copy link\" works. dnd-kit's listeners still own the drag.\n <a\n {...shared}\n href={href}\n onKeyDown={onCardKeyDown}\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();\n }}\n >\n {body}\n </a>\n ) : (\n <div\n {...shared}\n {...(draggable ? attributes : {})}\n role={onOpen ? 'button' : undefined}\n tabIndex={draggable || onOpen ? 0 : undefined}\n onKeyDown={onCardKeyDown}\n onClick={onOpen}\n >\n {body}\n </div>\n )}\n </li>\n );\n}\n\n// =============================================================================\n// Column\n// =============================================================================\n\nfunction BoardColumn({\n stage,\n headerId,\n count,\n headingLevel: Heading,\n droppable,\n classNames,\n children,\n}: {\n stage: Stage;\n droppable: boolean;\n headerId: string;\n count: number;\n headingLevel: 'h2' | 'h3' | 'h4';\n classNames?: BoardViewProps<unknown>['classNames'];\n children: React.ReactNode;\n}) {\n const { setNodeRef, isOver } = useDroppable({\n id: stage.id,\n disabled: !droppable,\n });\n const accent = stage.accent ?? 'neutral';\n return (\n <section\n ref={setNodeRef}\n data-slot=\"board-view-column\"\n data-over={isOver || undefined}\n className={cn(\n 'bg-muted/40 flex min-w-0 flex-col rounded-lg border',\n isOver ? accentClasses[accent].border : 'border-border',\n 'sm:w-72 sm:shrink-0',\n classNames?.column\n )}\n >\n <Heading>\n <span\n id={headerId}\n data-slot=\"board-view-column-header\"\n className={cn(\n 'border-border text-muted-foreground flex items-center gap-2 border-b px-3 py-2 text-xs font-semibold tracking-wide uppercase',\n classNames?.columnHeader\n )}\n >\n <span\n aria-hidden\n className={cn(\n 'size-2 shrink-0 rounded-full',\n accentClasses[accent].marker\n )}\n />\n <span>{stage.label}</span>\n <span className=\"ms-auto font-normal tabular-nums\">{count}</span>\n </span>\n </Heading>\n {children}\n </section>\n );\n}\n\n// =============================================================================\n// Component\n// =============================================================================\n\nexport function BoardView<T>({\n items,\n accessors,\n stages,\n loading = false,\n error = null,\n selectedId = null,\n onOpen,\n getHref,\n onMove,\n renderItem,\n emptyState,\n labels,\n density,\n className,\n classNames,\n headingLevel = 'h3',\n}: BoardViewProps<T>) {\n const text = { ...defaultBoardLabels, ...labels };\n const hintId = React.useId();\n // Ids come from position, not from the stage id: two distinct statuses can\n // normalise to the same string, and a duplicate id makes `aria-labelledby`\n // resolve to the wrong heading.\n const baseId = React.useId();\n const [announcement, setAnnouncement] = React.useState('');\n const [draggingId, setDraggingId] = React.useState<string | null>(null);\n // Where a card is shown while its move is in flight, so the column it landed\n // in is the one the user sees before the caller's data catches up.\n // A Map, not an object. Ids come from the caller's `getId` and are only\n // typed `string`, so a collection keyed by user data can legitimately produce\n // `toString`, `constructor` or `__proto__`. On a plain object `'toString' in\n // pending` is true before anything is pending, which would pin that card as\n // permanently in-flight and make it impossible to move.\n const [pending, setPending] = React.useState<Map<string, string>>(\n () => new Map()\n );\n\n const byId = React.useMemo(() => {\n const map = new Map<string, T>();\n for (const item of items) map.set(accessors.getId(item), item);\n return map;\n }, [items, accessors]);\n\n const stageOf = React.useCallback(\n (item: T) =>\n pending.get(accessors.getId(item)) ?? accessors.getStatus?.(item),\n [pending, accessors]\n );\n\n const columns = React.useMemo(() => {\n const buckets = new Map<string, T[]>(stages.map((s) => [s.id, []]));\n const extra = new Map<string, T[]>();\n for (const item of items) {\n const key = stageOf(item) ?? '';\n const bucket = buckets.get(key);\n if (bucket) bucket.push(item);\n else {\n const spill = extra.get(key);\n if (spill) spill.push(item);\n else extra.set(key, [item]);\n }\n }\n return [\n ...stages.map((stage) => ({\n stage,\n declared: true,\n items: buckets.get(stage.id) ?? [],\n })),\n // Never silently drop a record whose status matches no stage. These are\n // shown so the record stays visible, but they are not drop targets: their\n // ids were never declared, and `onMove` promises a named stage.\n ...[...extra].map(([key, bucket]) => ({\n stage: { id: key, label: key || text.ungrouped } as Stage,\n declared: false,\n items: bucket,\n })),\n ];\n }, [items, stages, stageOf, text.ungrouped]);\n\n const commit = React.useCallback(\n async (id: string, toStage: string) => {\n const item = byId.get(id);\n if (!item || !onMove) return;\n // One move per card at a time: a second would overwrite the first's\n // pending stage, and the first `finally` would then clear it, snapping\n // the card home while the second mutation is still in flight.\n if (pending.has(id)) return;\n const stage = stages.find((s) => s.id === toStage);\n // `onMove` promises a move to a stage the caller declared. Columns\n // synthesized for unknown statuses exist so a record is never silently\n // dropped, not as somewhere to put things — accepting a drop there would\n // hand back an id that was never in `stages`.\n if (!stage) return;\n const from = accessors.getStatus?.(item);\n if (from === toStage) return;\n const title = accessors.getTitle(item);\n\n setPending((prev) => new Map(prev).set(id, toStage));\n setAnnouncement(\n fill(text.moved, { item: title, stage: stage.label ?? toStage })\n );\n try {\n await onMove(id, toStage, item);\n } catch {\n setAnnouncement(fill(text.moveFailed, { item: title }));\n } finally {\n setPending((prev) => {\n const next = new Map(prev);\n next.delete(id);\n return next;\n });\n }\n },\n [byId, onMove, pending, accessors, stages, text.moved, text.moveFailed]\n );\n\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 5 } })\n );\n\n const onDragStart = (event: DragStartEvent) =>\n setDraggingId(String(event.active.id));\n\n const onDragEnd = (event: DragEndEvent) => {\n setDraggingId(null);\n if (event.over) void commit(String(event.active.id), String(event.over.id));\n };\n\n // Pointer drag has no keyboard equivalent that is pleasant to use, so moving\n // by keyboard is its own command on the focused card rather than a simulated\n // drag: Ctrl/Cmd with the arrow keys steps it between adjacent stages.\n const onCardKeyDown = (\n event: React.KeyboardEvent,\n id: string,\n columnIndex: number\n ) => {\n if (!onMove || !(event.ctrlKey || event.metaKey)) return;\n const rtl = getComputedStyle(event.currentTarget).direction === 'rtl';\n let delta = 0;\n if (event.key === 'ArrowRight') delta = rtl ? -1 : 1;\n else if (event.key === 'ArrowLeft') delta = rtl ? 1 : -1;\n else return;\n // Step to the next *declared* stage. A fallback column is not a move\n // target, so stopping on one would strand the card there; skipping it\n // keeps arrowing continuous and still lets a card leave one.\n let target;\n for (\n let i = columnIndex + delta;\n i >= 0 && i < columns.length;\n i += delta\n ) {\n if (columns[i].declared) {\n target = columns[i];\n break;\n }\n }\n if (!target) return;\n event.preventDefault();\n void commit(id, target.stage.id);\n };\n\n const state = (content: React.ReactNode) => (\n <div\n data-slot=\"board-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 (items.length === 0 && emptyState) return <>{emptyState}</>;\n\n const draggingItem = draggingId ? byId.get(draggingId) : undefined;\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={pointerWithin}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n onDragCancel={() => setDraggingId(null)}\n >\n <div\n data-slot=\"board-view\"\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 // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n role=\"group\"\n aria-label={text.board}\n className={cn(\n // Columns on one scrolling row once there is room; stacked below it,\n // because five 288px columns on a phone is a horizontal maze.\n 'flex flex-col gap-3 sm:flex-row sm:overflow-x-auto sm:pb-2',\n className\n )}\n >\n {columns.map((column, columnIndex) => (\n <BoardColumn\n key={column.stage.id}\n stage={column.stage}\n droppable={column.declared && Boolean(onMove)}\n headerId={`${baseId}-col-${columnIndex}`}\n count={column.items.length}\n headingLevel={headingLevel}\n classNames={classNames}\n >\n <ul\n aria-labelledby={`${baseId}-col-${columnIndex}`}\n className=\"flex flex-1 flex-col gap-2 p-2\"\n >\n {column.items.map((item) => {\n const id = accessors.getId(item);\n return (\n <BoardCard\n key={id}\n id={id}\n title={accessors.getTitle(item)}\n subtitle={accessors.getSubtitle?.(item)}\n accent={accessors.getAccent?.(item)}\n selected={id === selectedId}\n pending={pending.has(id)}\n draggable={Boolean(onMove)}\n hint={onMove ? hintId : undefined}\n href={getHref?.(id, item)}\n className={cn(\n cardVariants({\n density,\n interactive: Boolean(onOpen),\n selected: id === selectedId,\n pending: pending.has(id),\n }),\n classNames?.card,\n id === selectedId && classNames?.selectedCard\n )}\n onOpen={onOpen ? () => onOpen(id, item) : undefined}\n onKeyDown={(event) => onCardKeyDown(event, id, columnIndex)}\n >\n {renderItem?.(item, { view: 'board' })}\n </BoardCard>\n );\n })}\n {column.items.length === 0 && (\n <li className=\"text-muted-foreground px-1 py-2 text-xs\">\n {text.empty}\n </li>\n )}\n </ul>\n </BoardColumn>\n ))}\n </div>\n\n {onMove && (\n <span id={hintId} className=\"sr-only\">\n {text.moveHint}\n </span>\n )}\n {/* Separate from dnd-kit's own drag live region: this announces moves\n made by keyboard command, which are not drags. */}\n <span\n data-slot=\"board-view-announcer\"\n role=\"status\"\n aria-live=\"polite\"\n className=\"sr-only\"\n >\n {announcement}\n </span>\n\n <DragOverlay>\n {draggingItem && (\n <div className={cn(cardVariants({ density }), 'shadow-lg')}>\n <span className=\"text-foreground block text-sm font-medium\">\n {accessors.getTitle(draggingItem)}\n </span>\n </div>\n )}\n </DragOverlay>\n </DndContext>\n );\n}\n\nexport { cardVariants as boardViewCardVariants };\n"]}