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

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 (493) hide show
  1. package/dist/CsvBlock-CFXSDPBI.js +9 -0
  2. package/dist/{CsvBlock-VLMG7GUO.js.map → CsvBlock-CFXSDPBI.js.map} +1 -1
  3. package/dist/CsvBlock-RGO7JXHJ.cjs +18 -0
  4. package/dist/{CsvBlock-FX5YNGNE.cjs.map → CsvBlock-RGO7JXHJ.cjs.map} +1 -1
  5. package/dist/HtmlPreviewBlock-VBYXCXVT.cjs +18 -0
  6. package/dist/{HtmlPreviewBlock-UO37JQ3K.cjs.map → HtmlPreviewBlock-VBYXCXVT.cjs.map} +1 -1
  7. package/dist/HtmlPreviewBlock-Z2GCK325.js +9 -0
  8. package/dist/{HtmlPreviewBlock-5JE7L3GR.js.map → HtmlPreviewBlock-Z2GCK325.js.map} +1 -1
  9. package/dist/MermaidBlock-I2R2BQOX.cjs +18 -0
  10. package/dist/{MermaidBlock-RZ75RPZA.cjs.map → MermaidBlock-I2R2BQOX.cjs.map} +1 -1
  11. package/dist/MermaidBlock-XCAK7IA5.js +9 -0
  12. package/dist/{MermaidBlock-3XHFBAMV.js.map → MermaidBlock-XCAK7IA5.js.map} +1 -1
  13. package/dist/SurveyBlock-KI5JOWCL.js +9 -0
  14. package/dist/{SurveyBlock-MUVJ3JUI.js.map → SurveyBlock-KI5JOWCL.js.map} +1 -1
  15. package/dist/SurveyBlock-UKSGISRT.cjs +18 -0
  16. package/dist/{SurveyBlock-VH47YXZC.cjs.map → SurveyBlock-UKSGISRT.cjs.map} +1 -1
  17. package/dist/brands/index.cjs +7 -7
  18. package/dist/brands/index.js +2 -2
  19. package/dist/{chunk-6ZPTZTKN.js → chunk-24AFHH4J.js} +3 -3
  20. package/dist/{chunk-6ZPTZTKN.js.map → chunk-24AFHH4J.js.map} +1 -1
  21. package/dist/{chunk-BNH4SXJB.js → chunk-2X54ZLT6.js} +6 -6
  22. package/dist/{chunk-BNH4SXJB.js.map → chunk-2X54ZLT6.js.map} +1 -1
  23. package/dist/{chunk-TYE5K5WV.cjs → chunk-32ZCJOSR.cjs} +4 -4
  24. package/dist/{chunk-TYE5K5WV.cjs.map → chunk-32ZCJOSR.cjs.map} +1 -1
  25. package/dist/chunk-47P5QLX4.cjs +42 -0
  26. package/dist/chunk-47P5QLX4.cjs.map +1 -0
  27. package/dist/chunk-4ZB7RSMY.cjs +306 -0
  28. package/dist/chunk-4ZB7RSMY.cjs.map +1 -0
  29. package/dist/chunk-56VTM4OX.js +261 -0
  30. package/dist/chunk-56VTM4OX.js.map +1 -0
  31. package/dist/{chunk-D22GE27K.js → chunk-5A4SL436.js} +4 -4
  32. package/dist/{chunk-D22GE27K.js.map → chunk-5A4SL436.js.map} +1 -1
  33. package/dist/chunk-6BNZLN4B.cjs +548 -0
  34. package/dist/chunk-6BNZLN4B.cjs.map +1 -0
  35. package/dist/chunk-6JSFT2J5.js +130 -0
  36. package/dist/chunk-6JSFT2J5.js.map +1 -0
  37. package/dist/chunk-6N7NMOSV.js +233 -0
  38. package/dist/chunk-6N7NMOSV.js.map +1 -0
  39. package/dist/chunk-6TTCZY3P.cjs +4 -0
  40. package/dist/chunk-6TTCZY3P.cjs.map +1 -0
  41. package/dist/{chunk-TTSSUOEV.cjs → chunk-7C5W744U.cjs} +8 -8
  42. package/dist/{chunk-TTSSUOEV.cjs.map → chunk-7C5W744U.cjs.map} +1 -1
  43. package/dist/chunk-7HUTR6RX.js +178 -0
  44. package/dist/chunk-7HUTR6RX.js.map +1 -0
  45. package/dist/chunk-7IRTD4JT.cjs +61 -0
  46. package/dist/chunk-7IRTD4JT.cjs.map +1 -0
  47. package/dist/{chunk-YU55JD35.js → chunk-7QW6TU4X.js} +3 -3
  48. package/dist/{chunk-YU55JD35.js.map → chunk-7QW6TU4X.js.map} +1 -1
  49. package/dist/chunk-7WJ6MBF5.cjs +47 -0
  50. package/dist/chunk-7WJ6MBF5.cjs.map +1 -0
  51. package/dist/chunk-A4W5CSK7.cjs +216 -0
  52. package/dist/chunk-A4W5CSK7.cjs.map +1 -0
  53. package/dist/{chunk-WXFGHDTV.cjs → chunk-AJPFQF3H.cjs} +18 -18
  54. package/dist/{chunk-WXFGHDTV.cjs.map → chunk-AJPFQF3H.cjs.map} +1 -1
  55. package/dist/chunk-AMYFRY7K.js +3 -0
  56. package/dist/chunk-AMYFRY7K.js.map +1 -0
  57. package/dist/{chunk-X6A27RGO.cjs → chunk-ANMX7YDL.cjs} +2 -2
  58. package/dist/{chunk-X6A27RGO.cjs.map → chunk-ANMX7YDL.cjs.map} +1 -1
  59. package/dist/{chunk-DVOQ3JNO.js → chunk-B4CKCNWD.js} +16 -8
  60. package/dist/chunk-B4CKCNWD.js.map +1 -0
  61. package/dist/chunk-BJ6ABRSQ.cjs +256 -0
  62. package/dist/chunk-BJ6ABRSQ.cjs.map +1 -0
  63. package/dist/chunk-BXRQ6HEP.cjs +4 -0
  64. package/dist/chunk-BXRQ6HEP.cjs.map +1 -0
  65. package/dist/{chunk-TJCX4OML.cjs → chunk-C77FAR3F.cjs} +2 -2
  66. package/dist/{chunk-TJCX4OML.cjs.map → chunk-C77FAR3F.cjs.map} +1 -1
  67. package/dist/chunk-CBBKWRLG.js +213 -0
  68. package/dist/chunk-CBBKWRLG.js.map +1 -0
  69. package/dist/{chunk-ZTMYKAVU.cjs → chunk-CCAVJSWL.cjs} +49 -48
  70. package/dist/chunk-CCAVJSWL.cjs.map +1 -0
  71. package/dist/chunk-CPDNX3LS.cjs +47 -0
  72. package/dist/chunk-CPDNX3LS.cjs.map +1 -0
  73. package/dist/chunk-CVNPNZMX.js +44 -0
  74. package/dist/chunk-CVNPNZMX.js.map +1 -0
  75. package/dist/chunk-DHGCLPFZ.js +91 -0
  76. package/dist/chunk-DHGCLPFZ.js.map +1 -0
  77. package/dist/chunk-DO2YN46R.cjs +201 -0
  78. package/dist/chunk-DO2YN46R.cjs.map +1 -0
  79. package/dist/chunk-DVDT7TX7.js +151 -0
  80. package/dist/chunk-DVDT7TX7.js.map +1 -0
  81. package/dist/{chunk-R5Z7AOVU.cjs → chunk-DZ3JTMKM.cjs} +9 -9
  82. package/dist/{chunk-R5Z7AOVU.cjs.map → chunk-DZ3JTMKM.cjs.map} +1 -1
  83. package/dist/chunk-EACNRR3C.cjs +4 -0
  84. package/dist/chunk-EACNRR3C.cjs.map +1 -0
  85. package/dist/{chunk-E2PBPQGS.js → chunk-EEOGIGIA.js} +2 -2
  86. package/dist/{chunk-E2PBPQGS.js.map → chunk-EEOGIGIA.js.map} +1 -1
  87. package/dist/chunk-EPCUPHEO.js +193 -0
  88. package/dist/chunk-EPCUPHEO.js.map +1 -0
  89. package/dist/chunk-EPTP3VKT.js +283 -0
  90. package/dist/chunk-EPTP3VKT.js.map +1 -0
  91. package/dist/{chunk-HIZWOAWY.cjs → chunk-ERACGSDY.cjs} +8 -8
  92. package/dist/{chunk-HIZWOAWY.cjs.map → chunk-ERACGSDY.cjs.map} +1 -1
  93. package/dist/{chunk-VOQJHSXN.cjs → chunk-F2FOG4EG.cjs} +9 -9
  94. package/dist/{chunk-VOQJHSXN.cjs.map → chunk-F2FOG4EG.cjs.map} +1 -1
  95. package/dist/{chunk-GBUVIGD5.js → chunk-F3EWRDIT.js} +99 -3
  96. package/dist/chunk-F3EWRDIT.js.map +1 -0
  97. package/dist/{chunk-GVLNXPJX.js → chunk-FGLIP6YR.js} +4 -4
  98. package/dist/{chunk-GVLNXPJX.js.map → chunk-FGLIP6YR.js.map} +1 -1
  99. package/dist/chunk-FKGFOBC2.js +314 -0
  100. package/dist/chunk-FKGFOBC2.js.map +1 -0
  101. package/dist/chunk-FSGJXCBG.cjs +318 -0
  102. package/dist/chunk-FSGJXCBG.cjs.map +1 -0
  103. package/dist/chunk-FTEZNCRI.js +29 -0
  104. package/dist/chunk-FTEZNCRI.js.map +1 -0
  105. package/dist/{chunk-COM7RNZU.cjs → chunk-FYQZWLAM.cjs} +2 -2
  106. package/dist/{chunk-COM7RNZU.cjs.map → chunk-FYQZWLAM.cjs.map} +1 -1
  107. package/dist/{chunk-YVPC65ZJ.cjs → chunk-GF2BE4FB.cjs} +91 -32
  108. package/dist/chunk-GF2BE4FB.cjs.map +1 -0
  109. package/dist/{chunk-JEIW7BSV.cjs → chunk-GKDHMNUA.cjs} +2 -52
  110. package/dist/chunk-GKDHMNUA.cjs.map +1 -0
  111. package/dist/{chunk-N7C4OEP7.cjs → chunk-GM32IDVL.cjs} +6 -6
  112. package/dist/{chunk-N7C4OEP7.cjs.map → chunk-GM32IDVL.cjs.map} +1 -1
  113. package/dist/chunk-GY5SP4ST.js +3 -0
  114. package/dist/chunk-GY5SP4ST.js.map +1 -0
  115. package/dist/chunk-H2Y7HZV5.js +3 -0
  116. package/dist/chunk-H2Y7HZV5.js.map +1 -0
  117. package/dist/chunk-H3QPREIJ.js +195 -0
  118. package/dist/chunk-H3QPREIJ.js.map +1 -0
  119. package/dist/{chunk-QOVJ6Z6R.js → chunk-HDY7YQFX.js} +3 -3
  120. package/dist/{chunk-QOVJ6Z6R.js.map → chunk-HDY7YQFX.js.map} +1 -1
  121. package/dist/chunk-HNFFFFYH.cjs +114 -0
  122. package/dist/chunk-HNFFFFYH.cjs.map +1 -0
  123. package/dist/chunk-HNXLLDPN.js +25 -0
  124. package/dist/chunk-HNXLLDPN.js.map +1 -0
  125. package/dist/chunk-I2MMUFCN.cjs +154 -0
  126. package/dist/chunk-I2MMUFCN.cjs.map +1 -0
  127. package/dist/{chunk-GYXUS65N.cjs → chunk-IGDO62KR.cjs} +5 -5
  128. package/dist/{chunk-GYXUS65N.cjs.map → chunk-IGDO62KR.cjs.map} +1 -1
  129. package/dist/{chunk-HC3NAN55.cjs → chunk-IPL2O2OL.cjs} +19 -19
  130. package/dist/{chunk-HC3NAN55.cjs.map → chunk-IPL2O2OL.cjs.map} +1 -1
  131. package/dist/chunk-ISUIKUX7.cjs +337 -0
  132. package/dist/chunk-ISUIKUX7.cjs.map +1 -0
  133. package/dist/{chunk-N5O47VGS.cjs → chunk-IVGI353O.cjs} +2 -2
  134. package/dist/{chunk-N5O47VGS.cjs.map → chunk-IVGI353O.cjs.map} +1 -1
  135. package/dist/chunk-IWRBJHO3.cjs +51 -0
  136. package/dist/chunk-IWRBJHO3.cjs.map +1 -0
  137. package/dist/{chunk-BIQ7GSO2.js → chunk-JMAZ2GKT.js} +3 -3
  138. package/dist/{chunk-BIQ7GSO2.js.map → chunk-JMAZ2GKT.js.map} +1 -1
  139. package/dist/{chunk-KRU6IGV7.js → chunk-JUJGWUAN.js} +28 -6
  140. package/dist/chunk-JUJGWUAN.js.map +1 -0
  141. package/dist/{chunk-BUT6MF5K.cjs → chunk-KQ6GLYFZ.cjs} +4 -4
  142. package/dist/{chunk-BUT6MF5K.cjs.map → chunk-KQ6GLYFZ.cjs.map} +1 -1
  143. package/dist/chunk-L6K4PRZK.cjs +4 -0
  144. package/dist/chunk-L6K4PRZK.cjs.map +1 -0
  145. package/dist/{chunk-T4L7Q5FA.cjs → chunk-LC3JL2HB.cjs} +6 -2
  146. package/dist/chunk-LC3JL2HB.cjs.map +1 -0
  147. package/dist/{chunk-P7UMS4E6.cjs → chunk-LC7PVBXH.cjs} +16 -8
  148. package/dist/chunk-LC7PVBXH.cjs.map +1 -0
  149. package/dist/chunk-LRRSD7LR.js +248 -0
  150. package/dist/chunk-LRRSD7LR.js.map +1 -0
  151. package/dist/chunk-LSMS6DY7.cjs +331 -0
  152. package/dist/chunk-LSMS6DY7.cjs.map +1 -0
  153. package/dist/chunk-M3VPGJMV.js +283 -0
  154. package/dist/chunk-M3VPGJMV.js.map +1 -0
  155. package/dist/{chunk-QURJVPRH.cjs → chunk-MJJJDQ5P.cjs} +46 -2
  156. package/dist/chunk-MJJJDQ5P.cjs.map +1 -0
  157. package/dist/{chunk-2JICT4A2.js → chunk-N54FYWG6.js} +3 -3
  158. package/dist/{chunk-2JICT4A2.js.map → chunk-N54FYWG6.js.map} +1 -1
  159. package/dist/chunk-N5JDL4VE.js +3 -0
  160. package/dist/chunk-N5JDL4VE.js.map +1 -0
  161. package/dist/{chunk-KGKBZN3T.cjs → chunk-NAH65KPK.cjs} +8 -8
  162. package/dist/{chunk-KGKBZN3T.cjs.map → chunk-NAH65KPK.cjs.map} +1 -1
  163. package/dist/{chunk-NKV76R65.cjs → chunk-O6BJMVGT.cjs} +45 -45
  164. package/dist/{chunk-NKV76R65.cjs.map → chunk-O6BJMVGT.cjs.map} +1 -1
  165. package/dist/{chunk-SVSHA7XV.js → chunk-O6XDA3SI.js} +31 -33
  166. package/dist/chunk-O6XDA3SI.js.map +1 -0
  167. package/dist/chunk-OIF34LEN.cjs +425 -0
  168. package/dist/chunk-OIF34LEN.cjs.map +1 -0
  169. package/dist/chunk-ORCCJ5VY.cjs +218 -0
  170. package/dist/chunk-ORCCJ5VY.cjs.map +1 -0
  171. package/dist/{chunk-CRS2CQWM.js → chunk-OSTSZDQC.js} +3 -3
  172. package/dist/{chunk-CRS2CQWM.js.map → chunk-OSTSZDQC.js.map} +1 -1
  173. package/dist/chunk-P22YCUVM.cjs +4 -0
  174. package/dist/chunk-P22YCUVM.cjs.map +1 -0
  175. package/dist/chunk-P55LNEDH.cjs +306 -0
  176. package/dist/chunk-P55LNEDH.cjs.map +1 -0
  177. package/dist/{chunk-R6KPWIGO.js → chunk-P7D7BYFE.js} +4 -4
  178. package/dist/{chunk-R6KPWIGO.js.map → chunk-P7D7BYFE.js.map} +1 -1
  179. package/dist/{chunk-GU5OS7JJ.cjs → chunk-PYI2IWNX.cjs} +4 -4
  180. package/dist/{chunk-GU5OS7JJ.cjs.map → chunk-PYI2IWNX.cjs.map} +1 -1
  181. package/dist/chunk-Q3YVLO52.cjs +174 -0
  182. package/dist/chunk-Q3YVLO52.cjs.map +1 -0
  183. package/dist/{chunk-K34DXMLZ.js → chunk-QJ2L5RU6.js} +7 -7
  184. package/dist/{chunk-K34DXMLZ.js.map → chunk-QJ2L5RU6.js.map} +1 -1
  185. package/dist/{chunk-X4LBUPJO.cjs → chunk-QX6AAVDE.cjs} +31 -33
  186. package/dist/chunk-QX6AAVDE.cjs.map +1 -0
  187. package/dist/{chunk-LFPJ3OUM.cjs → chunk-RIUQP2QS.cjs} +5 -5
  188. package/dist/{chunk-LFPJ3OUM.cjs.map → chunk-RIUQP2QS.cjs.map} +1 -1
  189. package/dist/{chunk-JHG3ELS2.js → chunk-RPFATYUI.js} +2 -2
  190. package/dist/{chunk-JHG3ELS2.js.map → chunk-RPFATYUI.js.map} +1 -1
  191. package/dist/{chunk-FZURBQJ2.js → chunk-RSJGTWLM.js} +3 -3
  192. package/dist/{chunk-FZURBQJ2.js.map → chunk-RSJGTWLM.js.map} +1 -1
  193. package/dist/{chunk-XBTKZCZF.js → chunk-RZSSQ7AT.js} +3 -3
  194. package/dist/{chunk-XBTKZCZF.js.map → chunk-RZSSQ7AT.js.map} +1 -1
  195. package/dist/{chunk-SD7ONW6S.js → chunk-S2JZL4JC.js} +5 -5
  196. package/dist/{chunk-SD7ONW6S.js.map → chunk-S2JZL4JC.js.map} +1 -1
  197. package/dist/{chunk-VROIMIHB.cjs → chunk-SHBCUXFS.cjs} +28 -6
  198. package/dist/chunk-SHBCUXFS.cjs.map +1 -0
  199. package/dist/{chunk-JELTRRR5.cjs → chunk-SW2E7XKY.cjs} +9 -9
  200. package/dist/{chunk-JELTRRR5.cjs.map → chunk-SW2E7XKY.cjs.map} +1 -1
  201. package/dist/chunk-SZSRGUVO.js +402 -0
  202. package/dist/chunk-SZSRGUVO.js.map +1 -0
  203. package/dist/{chunk-HZ4MBUC3.js → chunk-TI3TQQ7F.js} +4 -53
  204. package/dist/chunk-TI3TQQ7F.js.map +1 -0
  205. package/dist/{chunk-MLAWXPRY.js → chunk-TKWNXAFI.js} +46 -2
  206. package/dist/chunk-TKWNXAFI.js.map +1 -0
  207. package/dist/{chunk-H2IAMSHK.js → chunk-TVEJKKIM.js} +3 -3
  208. package/dist/{chunk-H2IAMSHK.js.map → chunk-TVEJKKIM.js.map} +1 -1
  209. package/dist/{chunk-LHBWRMNC.cjs → chunk-TVU4KB27.cjs} +130 -12
  210. package/dist/chunk-TVU4KB27.cjs.map +1 -0
  211. package/dist/{chunk-ENMXHZNE.js → chunk-TWQSMUE6.js} +6 -2
  212. package/dist/chunk-TWQSMUE6.js.map +1 -0
  213. package/dist/{chunk-ZYL4SNOR.js → chunk-UJDWFDKE.js} +3 -3
  214. package/dist/{chunk-ZYL4SNOR.js.map → chunk-UJDWFDKE.js.map} +1 -1
  215. package/dist/{chunk-4HC2IBOX.js → chunk-UNFDIBKJ.js} +3 -3
  216. package/dist/{chunk-4HC2IBOX.js.map → chunk-UNFDIBKJ.js.map} +1 -1
  217. package/dist/chunk-UTIPENPW.cjs +286 -0
  218. package/dist/chunk-UTIPENPW.cjs.map +1 -0
  219. package/dist/{chunk-IYWG72DM.js → chunk-VEE46VTX.js} +4 -4
  220. package/dist/{chunk-IYWG72DM.js.map → chunk-VEE46VTX.js.map} +1 -1
  221. package/dist/{chunk-Y4E2WRUR.cjs → chunk-VFFV7EMT.cjs} +6 -6
  222. package/dist/{chunk-Y4E2WRUR.cjs.map → chunk-VFFV7EMT.cjs.map} +1 -1
  223. package/dist/chunk-VNEAQCY2.js +308 -0
  224. package/dist/chunk-VNEAQCY2.js.map +1 -0
  225. package/dist/chunk-VOYLX32A.cjs +271 -0
  226. package/dist/chunk-VOYLX32A.cjs.map +1 -0
  227. package/dist/{chunk-7ZV67VZE.js → chunk-VSRO4PAI.js} +21 -3
  228. package/dist/chunk-VSRO4PAI.js.map +1 -0
  229. package/dist/{chunk-L6MDULYB.js → chunk-VU3ZMJBN.js} +2 -2
  230. package/dist/{chunk-L6MDULYB.js.map → chunk-VU3ZMJBN.js.map} +1 -1
  231. package/dist/{chunk-CPPUT74P.cjs → chunk-VV2U36T6.cjs} +9 -9
  232. package/dist/{chunk-CPPUT74P.cjs.map → chunk-VV2U36T6.cjs.map} +1 -1
  233. package/dist/{chunk-35Y4ILCU.cjs → chunk-VXW7D5LR.cjs} +21 -3
  234. package/dist/chunk-VXW7D5LR.cjs.map +1 -0
  235. package/dist/{chunk-7YO7DNUV.js → chunk-WFBUBT54.js} +2 -2
  236. package/dist/{chunk-7YO7DNUV.js.map → chunk-WFBUBT54.js.map} +1 -1
  237. package/dist/chunk-WQHBMZSC.js +295 -0
  238. package/dist/chunk-WQHBMZSC.js.map +1 -0
  239. package/dist/chunk-X5JOEZVR.js +525 -0
  240. package/dist/chunk-X5JOEZVR.js.map +1 -0
  241. package/dist/chunk-XBAAHOCP.js +3 -0
  242. package/dist/chunk-XBAAHOCP.js.map +1 -0
  243. package/dist/chunk-XNPDZANN.cjs +238 -0
  244. package/dist/chunk-XNPDZANN.cjs.map +1 -0
  245. package/dist/chunk-XXA4NZUC.js +3 -0
  246. package/dist/chunk-XXA4NZUC.js.map +1 -0
  247. package/dist/chunk-Y424YL55.js +59 -0
  248. package/dist/chunk-Y424YL55.js.map +1 -0
  249. package/dist/chunk-YGS2TRMP.js +38 -0
  250. package/dist/chunk-YGS2TRMP.js.map +1 -0
  251. package/dist/{chunk-JBIGSP2T.js → chunk-YMILRSRO.js} +6 -5
  252. package/dist/chunk-YMILRSRO.js.map +1 -0
  253. package/dist/chunk-YUMOM3KE.js +167 -0
  254. package/dist/chunk-YUMOM3KE.js.map +1 -0
  255. package/dist/{chunk-3KPDQG5O.cjs → chunk-ZG6FXMDX.cjs} +5 -5
  256. package/dist/{chunk-3KPDQG5O.cjs.map → chunk-ZG6FXMDX.cjs.map} +1 -1
  257. package/dist/chunk-ZNUMOJOI.cjs +4 -0
  258. package/dist/chunk-ZNUMOJOI.cjs.map +1 -0
  259. package/dist/components/Accordion/index.cjs +2 -2
  260. package/dist/components/Accordion/index.d.cts +6 -0
  261. package/dist/components/Accordion/index.d.ts +6 -0
  262. package/dist/components/Accordion/index.js +1 -1
  263. package/dist/components/ActionPlan/index.cjs +34 -0
  264. package/dist/components/ActionPlan/index.cjs.map +1 -0
  265. package/dist/components/ActionPlan/index.d.cts +65 -0
  266. package/dist/components/ActionPlan/index.d.ts +65 -0
  267. package/dist/components/ActionPlan/index.js +21 -0
  268. package/dist/components/ActionPlan/index.js.map +1 -0
  269. package/dist/components/ActivityFeed/index.cjs +31 -0
  270. package/dist/components/ActivityFeed/index.cjs.map +1 -0
  271. package/dist/components/ActivityFeed/index.d.cts +99 -0
  272. package/dist/components/ActivityFeed/index.d.ts +99 -0
  273. package/dist/components/ActivityFeed/index.js +18 -0
  274. package/dist/components/ActivityFeed/index.js.map +1 -0
  275. package/dist/components/AlertDialog/index.cjs +17 -4
  276. package/dist/components/AlertDialog/index.d.cts +66 -13
  277. package/dist/components/AlertDialog/index.d.ts +66 -13
  278. package/dist/components/AlertDialog/index.js +4 -3
  279. package/dist/components/AssociationList/index.cjs +29 -0
  280. package/dist/components/AssociationList/index.cjs.map +1 -0
  281. package/dist/components/AssociationList/index.d.cts +50 -0
  282. package/dist/components/AssociationList/index.d.ts +50 -0
  283. package/dist/components/AssociationList/index.js +16 -0
  284. package/dist/components/AssociationList/index.js.map +1 -0
  285. package/dist/components/Avatar/index.cjs +9 -7
  286. package/dist/components/Avatar/index.d.cts +45 -14
  287. package/dist/components/Avatar/index.d.ts +45 -14
  288. package/dist/components/Avatar/index.js +3 -1
  289. package/dist/components/AvatarGroup/index.cjs +20 -0
  290. package/dist/components/AvatarGroup/index.cjs.map +1 -0
  291. package/dist/components/AvatarGroup/index.d.cts +57 -0
  292. package/dist/components/AvatarGroup/index.d.ts +57 -0
  293. package/dist/components/AvatarGroup/index.js +7 -0
  294. package/dist/components/AvatarGroup/index.js.map +1 -0
  295. package/dist/components/Button/index.cjs +3 -2
  296. package/dist/components/Button/index.js +2 -1
  297. package/dist/components/CalendarHeatmap/index.cjs +18 -0
  298. package/dist/components/CalendarHeatmap/index.cjs.map +1 -0
  299. package/dist/components/CalendarHeatmap/index.d.cts +47 -0
  300. package/dist/components/CalendarHeatmap/index.d.ts +47 -0
  301. package/dist/components/CalendarHeatmap/index.js +5 -0
  302. package/dist/components/CalendarHeatmap/index.js.map +1 -0
  303. package/dist/components/CalendarView/index.cjs +5 -4
  304. package/dist/components/CalendarView/index.js +3 -2
  305. package/dist/components/ClampedText/index.cjs +3 -2
  306. package/dist/components/ClampedText/index.js +2 -1
  307. package/dist/components/CollabStatus/index.cjs +6 -4
  308. package/dist/components/CollabStatus/index.d.cts +11 -0
  309. package/dist/components/CollabStatus/index.d.ts +11 -0
  310. package/dist/components/CollabStatus/index.js +3 -1
  311. package/dist/components/Collapsible/index.cjs +4 -4
  312. package/dist/components/Collapsible/index.d.cts +6 -0
  313. package/dist/components/Collapsible/index.d.ts +6 -0
  314. package/dist/components/Collapsible/index.js +1 -1
  315. package/dist/components/CompletenessMeter/index.cjs +22 -0
  316. package/dist/components/CompletenessMeter/index.cjs.map +1 -0
  317. package/dist/components/CompletenessMeter/index.d.cts +52 -0
  318. package/dist/components/CompletenessMeter/index.d.ts +52 -0
  319. package/dist/components/CompletenessMeter/index.js +5 -0
  320. package/dist/components/CompletenessMeter/index.js.map +1 -0
  321. package/dist/components/CustomizableDashboard/index.cjs +10 -9
  322. package/dist/components/CustomizableDashboard/index.js +3 -2
  323. package/dist/components/DateInput/index.d.cts +36 -4
  324. package/dist/components/DateInput/index.d.ts +36 -4
  325. package/dist/components/Dropdown/index.cjs +9 -8
  326. package/dist/components/Dropdown/index.js +2 -1
  327. package/dist/components/FieldHistory/index.cjs +34 -0
  328. package/dist/components/FieldHistory/index.cjs.map +1 -0
  329. package/dist/components/FieldHistory/index.d.cts +66 -0
  330. package/dist/components/FieldHistory/index.d.ts +66 -0
  331. package/dist/components/FieldHistory/index.js +21 -0
  332. package/dist/components/FieldHistory/index.js.map +1 -0
  333. package/dist/components/FloatingWindow/index.cjs +5 -4
  334. package/dist/components/FloatingWindow/index.js +3 -2
  335. package/dist/components/InlineEdit/index.cjs +20 -0
  336. package/dist/components/InlineEdit/index.cjs.map +1 -0
  337. package/dist/components/InlineEdit/index.d.cts +56 -0
  338. package/dist/components/InlineEdit/index.d.ts +56 -0
  339. package/dist/components/InlineEdit/index.js +7 -0
  340. package/dist/components/InlineEdit/index.js.map +1 -0
  341. package/dist/components/KeyboardShortcutsOverlay/index.cjs +4 -4
  342. package/dist/components/KeyboardShortcutsOverlay/index.js +2 -2
  343. package/dist/components/ListView/index.cjs +5 -4
  344. package/dist/components/ListView/index.js +3 -2
  345. package/dist/components/LogoUploader/index.cjs +18 -0
  346. package/dist/components/LogoUploader/index.cjs.map +1 -0
  347. package/dist/components/LogoUploader/index.d.cts +49 -0
  348. package/dist/components/LogoUploader/index.d.ts +49 -0
  349. package/dist/components/LogoUploader/index.js +5 -0
  350. package/dist/components/LogoUploader/index.js.map +1 -0
  351. package/dist/components/Markdown/index.cjs +17 -16
  352. package/dist/components/Markdown/index.js +8 -7
  353. package/dist/components/MediaEditor/index.cjs +10 -9
  354. package/dist/components/MediaEditor/index.js +5 -4
  355. package/dist/components/MediaFeed/index.cjs +9 -6
  356. package/dist/components/MediaFeed/index.js +8 -5
  357. package/dist/components/MediaPlayer/index.cjs +6 -5
  358. package/dist/components/MediaPlayer/index.js +3 -2
  359. package/dist/components/MegaMenu/index.cjs +2 -1
  360. package/dist/components/MegaMenu/index.js +2 -1
  361. package/dist/components/Modal/index.cjs +9 -9
  362. package/dist/components/Modal/index.js +1 -1
  363. package/dist/components/PhiMask/index.cjs +18 -0
  364. package/dist/components/PhiMask/index.cjs.map +1 -0
  365. package/dist/components/PhiMask/index.d.cts +45 -0
  366. package/dist/components/PhiMask/index.d.ts +45 -0
  367. package/dist/components/PhiMask/index.js +5 -0
  368. package/dist/components/PhiMask/index.js.map +1 -0
  369. package/dist/components/PhoneInput/index.d.cts +3 -36
  370. package/dist/components/PhoneInput/index.d.ts +3 -36
  371. package/dist/components/PropertyList/index.cjs +25 -0
  372. package/dist/components/PropertyList/index.cjs.map +1 -0
  373. package/dist/components/PropertyList/index.d.cts +71 -0
  374. package/dist/components/PropertyList/index.d.ts +71 -0
  375. package/dist/components/PropertyList/index.js +12 -0
  376. package/dist/components/PropertyList/index.js.map +1 -0
  377. package/dist/components/RadialExplorer/index.cjs +2 -1
  378. package/dist/components/RadialExplorer/index.js +2 -1
  379. package/dist/components/Rating/index.cjs +28 -0
  380. package/dist/components/Rating/index.cjs.map +1 -0
  381. package/dist/components/Rating/index.d.cts +85 -0
  382. package/dist/components/Rating/index.d.ts +85 -0
  383. package/dist/components/Rating/index.js +7 -0
  384. package/dist/components/Rating/index.js.map +1 -0
  385. package/dist/components/RecordHeader/index.cjs +29 -0
  386. package/dist/components/RecordHeader/index.cjs.map +1 -0
  387. package/dist/components/RecordHeader/index.d.cts +86 -0
  388. package/dist/components/RecordHeader/index.d.ts +86 -0
  389. package/dist/components/RecordHeader/index.js +16 -0
  390. package/dist/components/RecordHeader/index.js.map +1 -0
  391. package/dist/components/RecordLayout/index.cjs +21 -0
  392. package/dist/components/RecordLayout/index.cjs.map +1 -0
  393. package/dist/components/RecordLayout/index.d.cts +40 -0
  394. package/dist/components/RecordLayout/index.d.ts +40 -0
  395. package/dist/components/RecordLayout/index.js +8 -0
  396. package/dist/components/RecordLayout/index.js.map +1 -0
  397. package/dist/components/RichTextEditor/index.cjs +8 -6
  398. package/dist/components/RichTextEditor/index.js +5 -3
  399. package/dist/components/SectionSpyNav/index.cjs +2 -1
  400. package/dist/components/SectionSpyNav/index.js +2 -1
  401. package/dist/components/SuperChat/index.cjs +23 -19
  402. package/dist/components/SuperChat/index.cjs.map +1 -1
  403. package/dist/components/SuperChat/index.js +11 -7
  404. package/dist/components/SuperChat/index.js.map +1 -1
  405. package/dist/components/SuperChat/plugins/index.cjs +5 -4
  406. package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
  407. package/dist/components/SuperChat/plugins/index.js +4 -3
  408. package/dist/components/SuperChat/plugins/index.js.map +1 -1
  409. package/dist/components/Tabs/index.cjs +9 -7
  410. package/dist/components/Tabs/index.d.cts +12 -1
  411. package/dist/components/Tabs/index.d.ts +12 -1
  412. package/dist/components/Tabs/index.js +3 -1
  413. package/dist/components/TagEditor/index.cjs +20 -0
  414. package/dist/components/TagEditor/index.cjs.map +1 -0
  415. package/dist/components/TagEditor/index.d.cts +46 -0
  416. package/dist/components/TagEditor/index.d.ts +46 -0
  417. package/dist/components/TagEditor/index.js +7 -0
  418. package/dist/components/TagEditor/index.js.map +1 -0
  419. package/dist/components/UserPicker/index.cjs +24 -0
  420. package/dist/components/UserPicker/index.cjs.map +1 -0
  421. package/dist/components/UserPicker/index.d.cts +60 -0
  422. package/dist/components/UserPicker/index.d.ts +60 -0
  423. package/dist/components/UserPicker/index.js +11 -0
  424. package/dist/components/UserPicker/index.js.map +1 -0
  425. package/dist/components/ViewSet/index.cjs +6 -5
  426. package/dist/components/ViewSet/index.d.cts +2 -1
  427. package/dist/components/ViewSet/index.d.ts +2 -1
  428. package/dist/components/ViewSet/index.js +5 -4
  429. package/dist/components/ViewSwitcher/index.d.cts +39 -4
  430. package/dist/components/ViewSwitcher/index.d.ts +39 -4
  431. package/dist/datavis.cjs +3 -2
  432. package/dist/datavis.cjs.map +1 -1
  433. package/dist/datavis.js +2 -1
  434. package/dist/datavis.js.map +1 -1
  435. package/dist/esheet.cjs +9 -7
  436. package/dist/esheet.cjs.map +1 -1
  437. package/dist/esheet.js +6 -4
  438. package/dist/esheet.js.map +1 -1
  439. package/dist/hooks/index.cjs +53 -27
  440. package/dist/hooks/index.d.cts +91 -6
  441. package/dist/hooks/index.d.ts +91 -6
  442. package/dist/hooks/index.js +5 -3
  443. package/dist/index.cjs +1391 -847
  444. package/dist/index.cjs.map +1 -1
  445. package/dist/index.d.cts +1253 -168
  446. package/dist/index.d.ts +1253 -168
  447. package/dist/index.js +539 -171
  448. package/dist/index.js.map +1 -1
  449. package/dist/org-chart.cjs +1302 -0
  450. package/dist/org-chart.cjs.map +1 -0
  451. package/dist/org-chart.d.cts +164 -0
  452. package/dist/org-chart.d.ts +164 -0
  453. package/dist/org-chart.js +1277 -0
  454. package/dist/org-chart.js.map +1 -0
  455. package/dist/styles.css +1 -1
  456. package/dist/tailwind-preset.cjs +4 -4
  457. package/dist/tailwind-preset.js +1 -1
  458. package/dist/{index-DoYYWsNc.d.cts → types-CDeBNZiE.d.cts} +1 -36
  459. package/dist/{index-DoYYWsNc.d.ts → types-CDeBNZiE.d.ts} +1 -36
  460. package/package.json +22 -2
  461. package/dist/CsvBlock-FX5YNGNE.cjs +0 -17
  462. package/dist/CsvBlock-VLMG7GUO.js +0 -8
  463. package/dist/HtmlPreviewBlock-5JE7L3GR.js +0 -8
  464. package/dist/HtmlPreviewBlock-UO37JQ3K.cjs +0 -17
  465. package/dist/MermaidBlock-3XHFBAMV.js +0 -8
  466. package/dist/MermaidBlock-RZ75RPZA.cjs +0 -17
  467. package/dist/SurveyBlock-MUVJ3JUI.js +0 -8
  468. package/dist/SurveyBlock-VH47YXZC.cjs +0 -17
  469. package/dist/chunk-35Y4ILCU.cjs.map +0 -1
  470. package/dist/chunk-6N6LIAUJ.cjs +0 -80
  471. package/dist/chunk-6N6LIAUJ.cjs.map +0 -1
  472. package/dist/chunk-7ZV67VZE.js.map +0 -1
  473. package/dist/chunk-7ZVTLTJF.js +0 -109
  474. package/dist/chunk-7ZVTLTJF.js.map +0 -1
  475. package/dist/chunk-DVOQ3JNO.js.map +0 -1
  476. package/dist/chunk-ENMXHZNE.js.map +0 -1
  477. package/dist/chunk-GBUVIGD5.js.map +0 -1
  478. package/dist/chunk-HZ4MBUC3.js.map +0 -1
  479. package/dist/chunk-JBIGSP2T.js.map +0 -1
  480. package/dist/chunk-JEIW7BSV.cjs.map +0 -1
  481. package/dist/chunk-KRU6IGV7.js.map +0 -1
  482. package/dist/chunk-LHBWRMNC.cjs.map +0 -1
  483. package/dist/chunk-MLAWXPRY.js.map +0 -1
  484. package/dist/chunk-P7UMS4E6.cjs.map +0 -1
  485. package/dist/chunk-QURJVPRH.cjs.map +0 -1
  486. package/dist/chunk-SVSHA7XV.js.map +0 -1
  487. package/dist/chunk-T4L7Q5FA.cjs.map +0 -1
  488. package/dist/chunk-UBSH27C2.js +0 -78
  489. package/dist/chunk-UBSH27C2.js.map +0 -1
  490. package/dist/chunk-VROIMIHB.cjs.map +0 -1
  491. package/dist/chunk-X4LBUPJO.cjs.map +0 -1
  492. package/dist/chunk-YVPC65ZJ.cjs.map +0 -1
  493. package/dist/chunk-ZTMYKAVU.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/OrgChart/layout.ts","../src/components/OrgChart/shared.ts","../src/components/OrgChart/OrgChartCanvas.tsx","../src/components/OrgChart/tree.ts","../src/components/OrgChart/OrgChartTree.tsx","../src/components/OrgChart/OrgChart.tsx"],"names":["React","React2","jsx","ChevronDown","ChevronRight","jsxs","OrgChart","Fragment","MapIcon"],"mappings":"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","file":"org-chart.js","sourcesContent":["import type { ELK, ElkNode } from 'elkjs/lib/elk-api';\n\nexport type OrgChartDirection = 'DOWN' | 'RIGHT';\n\nexport interface LayoutBox {\n x: number;\n y: number;\n}\n\nexport interface LayoutRequest {\n ids: readonly string[];\n edges: readonly { source: string; target: string }[];\n direction: OrgChartDirection;\n width: number;\n height: number;\n}\n\n/**\n * `considerModelOrder` keeps siblings in input order, so expanding one branch\n * never reshuffles its neighbours.\n */\nexport const ORG_CHART_LAYOUT_OPTIONS: Record<string, string> = {\n 'elk.algorithm': 'layered',\n 'elk.layered.considerModelOrder.strategy': 'NODES_AND_EDGES',\n 'elk.layered.nodePlacement.strategy': 'BRANDES_KOEPF',\n 'elk.layered.spacing.nodeNodeBetweenLayers': '64',\n 'elk.spacing.nodeNode': '28',\n 'elk.spacing.componentComponent': '64',\n 'elk.edgeRouting': 'ORTHOGONAL',\n};\n\nlet elkPromise: Promise<ELK> | null = null;\n\nfunction getElk(): Promise<ELK> {\n elkPromise ??= import('elkjs/lib/elk.bundled.js').then(\n (m) => new m.default()\n );\n return elkPromise;\n}\n\n/** Positions for the visible nodes; falls back to a depth grid if elk fails. */\nexport async function layoutOrgChart(\n req: LayoutRequest\n): Promise<Map<string, LayoutBox>> {\n const graph: ElkNode = {\n id: 'org-chart-root',\n layoutOptions: {\n ...ORG_CHART_LAYOUT_OPTIONS,\n 'elk.direction': req.direction,\n },\n children: req.ids.map((id) => ({\n id,\n width: req.width,\n height: req.height,\n })),\n edges: req.edges.map((e) => ({\n id: JSON.stringify([e.source, e.target]),\n sources: [e.source],\n targets: [e.target],\n })),\n };\n try {\n const elk = await getElk();\n const out = await elk.layout(graph);\n return new Map(\n (out.children ?? []).map((c) => [c.id, { x: c.x ?? 0, y: c.y ?? 0 }])\n );\n } catch {\n return gridLayout(req);\n }\n}\n\nfunction gridLayout(req: LayoutRequest): Map<string, LayoutBox> {\n const parent = new Map(req.edges.map((e) => [e.target, e.source]));\n const perDepth = new Map<number, number>();\n const out = new Map<string, LayoutBox>();\n for (const id of req.ids) {\n let depth = 0;\n for (let p = parent.get(id); p != null; p = parent.get(p)) depth++;\n const slot = perDepth.get(depth) ?? 0;\n perDepth.set(depth, slot + 1);\n const along =\n slot * (req.direction === 'DOWN' ? req.width + 28 : req.height + 28);\n const across =\n depth * (req.direction === 'DOWN' ? req.height + 64 : req.width + 64);\n out.set(\n id,\n req.direction === 'DOWN'\n ? { x: along, y: across }\n : { x: across, y: along }\n );\n }\n return out;\n}\n","import type * as React from 'react';\nimport { accentClasses, type Accent } from '../../views/types';\nimport type { OrgChartNode } from './tree';\n\nexport type OrgChartAccent = Accent;\nexport type OrgChartNodeVariant = 'person' | 'location';\nexport type OrgChartView = 'chart' | 'list';\n\nexport type OrgChartSlot =\n | 'root'\n | 'toolbar'\n | 'canvas'\n | 'node'\n | 'tree'\n | 'treeItem'\n | 'detail'\n | 'state';\n\n/** Every string the chart renders. The defaults are English. */\nexport interface OrgChartLabels {\n /** Accessible name of the chart canvas. */\n chart: string;\n /** Accessible name of the list view's tree. */\n tree: string;\n /** Accessible name of the toolbar. */\n toolbar: string;\n search: string;\n searchPlaceholder: string;\n /** Announced politely while a search is active. */\n results: (count: number) => string;\n groupFilter: string;\n allGroups: string;\n expandAll: string;\n collapseAll: string;\n fitView: string;\n minimap: string;\n fullscreen: string;\n viewToggle: string;\n chartView: string;\n listView: string;\n /** Read by assistive tech for each card on the canvas. */\n canvasHint: string;\n expand: (name: string, count: number) => string;\n collapse: (name: string) => string;\n directReports: (count: number) => string;\n orgSize: (count: number) => string;\n reportsTo: (name: string) => string;\n /** Marker on the `highlightedId` node. */\n highlighted: string;\n open: string;\n close: string;\n loading: string;\n empty: string;\n error: string;\n retry: string;\n}\n\nconst plural = (n: number, one: string, many: string) =>\n `${n} ${n === 1 ? one : many}`;\n\nexport const defaultOrgChartLabels: OrgChartLabels = {\n chart: 'Organization chart',\n tree: 'Organization',\n toolbar: 'Organization chart tools',\n search: 'Search',\n searchPlaceholder: 'Search name, title or group',\n results: (n) => (n === 0 ? 'No matches' : plural(n, 'match', 'matches')),\n groupFilter: 'Filter by group',\n allGroups: 'All groups',\n expandAll: 'Expand all',\n collapseAll: 'Collapse all',\n fitView: 'Fit to view',\n minimap: 'Minimap',\n fullscreen: 'Full screen',\n viewToggle: 'View',\n chartView: 'Chart',\n listView: 'List',\n canvasHint:\n 'Use the card buttons to show details or expand reports. Switch to the list view to browse with arrow keys.',\n expand: (name, n) => `Expand ${name}, ${plural(n, 'report', 'reports')}`,\n collapse: (name) => `Collapse ${name}`,\n directReports: (n) => plural(n, 'direct report', 'direct reports'),\n orgSize: (n) => `${n} in organization`,\n reportsTo: (name) => `Reports to ${name}`,\n highlighted: 'Current',\n open: 'Open',\n close: 'Close details',\n loading: 'Loading organization',\n empty: 'No one to show',\n error: 'Could not load the organization',\n retry: 'Try again',\n};\n\n/** Palette groups are coloured from, in order of first sorted appearance. */\nexport const ORG_CHART_GROUP_ACCENTS: readonly Accent[] = [\n 'primary',\n 'info',\n 'success',\n 'warning',\n 'neutral',\n];\n\nexport const accentClassesFor = (accent: Accent | undefined) =>\n accent ? accentClasses[accent] : undefined;\n\n/** What a `renderNode` slot gets alongside the node. */\nexport interface OrgChartNodeContext {\n variant: OrgChartNodeVariant;\n depth: number;\n directReports: number;\n expanded: boolean;\n highlighted: boolean;\n matched: boolean;\n dimmed: boolean;\n accent?: Accent;\n}\n\n/** What a `renderDetail` slot gets alongside the node. */\nexport interface OrgChartDetailContext {\n directReports: number;\n orgSize: number;\n parent: OrgChartNode | null;\n close: () => void;\n}\n\nexport type OrgChartClassNames = Partial<Record<OrgChartSlot, string>>;\n\nexport interface OrgChartRenderSlots {\n renderNode?: (\n node: OrgChartNode,\n ctx: OrgChartNodeContext\n ) => React.ReactNode;\n renderBadges?: (node: OrgChartNode) => React.ReactNode;\n}\n","'use client';\n\nimport * as React from 'react';\nimport {\n Background,\n BackgroundVariant,\n Handle,\n MiniMap,\n Panel,\n Position,\n ReactFlow,\n ReactFlowProvider,\n useReactFlow,\n type Edge,\n type Node,\n type NodeProps,\n} from '@xyflow/react';\nimport { Building2, ChevronDown, ChevronRight } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { Avatar } from '../Avatar';\nimport {\n layoutOrgChart,\n type LayoutBox,\n type OrgChartDirection,\n} from './layout';\nimport {\n accentClassesFor,\n type OrgChartAccent,\n type OrgChartClassNames,\n type OrgChartLabels,\n type OrgChartNodeContext,\n type OrgChartNodeVariant,\n type OrgChartRenderSlots,\n} from './shared';\nimport type { OrgChartNode, OrgForest, VisibleNode } from './tree';\n\nexport const ORG_CHART_NODE_SIZE: Record<\n OrgChartNodeVariant,\n { width: number; height: number }\n> = {\n person: { width: 248, height: 92 },\n location: { width: 248, height: 76 },\n};\n\nexport function prefersReducedMotion(): boolean {\n return (\n typeof window !== 'undefined' &&\n !!window.matchMedia?.('(prefers-reduced-motion: reduce)').matches\n );\n}\n\n// =============================================================================\n// Card body (shared with the detail panel)\n// =============================================================================\n\nexport function GroupPill({\n group,\n accent,\n}: {\n group: string;\n accent?: OrgChartAccent;\n}) {\n const a = accentClassesFor(accent);\n return (\n <span\n className={cn(\n 'text-foreground inline-flex max-w-full items-center gap-1.5 rounded-full px-2 py-0.5 text-[11px] font-medium',\n a?.tint ?? 'bg-muted'\n )}\n >\n <span\n aria-hidden=\"true\"\n className={cn('size-1.5 shrink-0 rounded-full', a?.marker)}\n />\n <span className=\"truncate\">{group}</span>\n </span>\n );\n}\n\nexport function NodeBody({\n node,\n variant,\n accent,\n}: {\n node: OrgChartNode;\n variant: OrgChartNodeVariant;\n accent?: OrgChartAccent;\n}) {\n const secondary = variant === 'person' ? node.title : node.subtitle;\n return (\n <>\n {variant === 'person' ? (\n <Avatar src={node.avatarUrl} name={node.name} alt=\"\" size=\"md\" />\n ) : (\n <span\n aria-hidden=\"true\"\n className=\"bg-primary-500/10 text-primary-700 dark:text-primary-300 flex size-10 shrink-0 items-center justify-center rounded-md\"\n >\n <Building2 className=\"size-5\" />\n </span>\n )}\n <span className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <span className=\"text-foreground truncate text-sm font-semibold\">\n {node.name}\n </span>\n {secondary && (\n <span className=\"text-muted-foreground truncate text-xs\">\n {secondary}\n </span>\n )}\n {node.group && (\n <span className=\"mt-0.5 flex\">\n <GroupPill group={node.group} accent={accent} />\n </span>\n )}\n </span>\n </>\n );\n}\n\n// =============================================================================\n// Flow node\n// =============================================================================\n\ninterface OrgFlowData extends Record<string, unknown> {\n node: OrgChartNode;\n ctx: OrgChartNodeContext;\n focused: boolean;\n}\n\ntype OrgFlowNode = Node<OrgFlowData, 'org'>;\n\ninterface CanvasContextValue extends OrgChartRenderSlots {\n labels: OrgChartLabels;\n classNames?: OrgChartClassNames;\n horizontal: boolean;\n rtl: boolean;\n onToggle: (id: string) => void;\n onSelect: (id: string) => void;\n}\n\nconst CanvasContext = React.createContext<CanvasContextValue | null>(null);\n\nconst hiddenHandle: React.CSSProperties = { opacity: 0, pointerEvents: 'none' };\n\nfunction OrgFlowNodeView({ data }: NodeProps<OrgFlowNode>) {\n const c = React.useContext(CanvasContext)!;\n const { node, ctx, focused } = data;\n const accent = accentClassesFor(ctx.accent);\n const start = c.horizontal\n ? c.rtl\n ? Position.Right\n : Position.Left\n : Position.Top;\n const end = c.horizontal\n ? c.rtl\n ? Position.Left\n : Position.Right\n : Position.Bottom;\n const Chevron = ctx.expanded ? ChevronDown : ChevronRight;\n\n return (\n <div\n data-slot=\"org-chart-node\"\n data-highlighted={ctx.highlighted || undefined}\n data-matched={ctx.matched || undefined}\n // React Flow disables pointer events on unselectable, undraggable nodes.\n style={{ pointerEvents: 'auto' }}\n className={cn(\n 'bg-card text-foreground relative h-full w-full rounded-lg border border-s-4 shadow-sm',\n 'motion-safe:transition-[opacity,box-shadow]',\n accent?.border ?? 'border-border',\n (ctx.highlighted || focused) &&\n 'ring-primary-500 ring-offset-background ring-2 ring-offset-2',\n ctx.matched && 'ring-ring ring-2',\n ctx.dimmed && 'opacity-40',\n c.classNames?.node\n )}\n >\n <Handle\n type=\"target\"\n position={start}\n isConnectable={false}\n style={hiddenHandle}\n />\n <button\n type=\"button\"\n aria-haspopup=\"dialog\"\n onClick={() => c.onSelect(node.id)}\n className=\"nodrag nopan focus-visible:ring-ring flex h-full w-full items-center gap-3 rounded-md px-3 text-start focus-visible:ring-2 focus-visible:outline-none\"\n >\n {c.renderNode ? (\n c.renderNode(node, ctx)\n ) : (\n <NodeBody node={node} variant={ctx.variant} accent={ctx.accent} />\n )}\n </button>\n {(ctx.highlighted || c.renderBadges) && (\n <span className=\"absolute end-2 -top-2.5 flex gap-1\">\n {ctx.highlighted && (\n <span className=\"bg-primary-600 rounded-full px-1.5 py-0.5 text-[10px] font-bold text-white uppercase shadow-sm\">\n {c.labels.highlighted}\n </span>\n )}\n {c.renderBadges?.(node)}\n </span>\n )}\n {ctx.directReports > 0 && (\n <button\n type=\"button\"\n aria-expanded={ctx.expanded}\n aria-label={\n ctx.expanded\n ? c.labels.collapse(node.name)\n : c.labels.expand(node.name, ctx.directReports)\n }\n onClick={() => c.onToggle(node.id)}\n className={cn(\n 'nodrag nopan absolute z-10 flex h-6 min-w-6 items-center justify-center gap-0.5 rounded-full border px-1.5 text-[11px] font-semibold shadow-sm',\n 'focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none',\n c.horizontal\n ? '-end-3 top-1/2 -translate-y-1/2'\n : '-bottom-3 left-1/2 -translate-x-1/2',\n ctx.expanded\n ? 'border-primary-600 bg-primary-600 text-white'\n : 'border-border bg-card text-foreground hover:border-primary-500'\n )}\n >\n <Chevron aria-hidden=\"true\" className=\"size-3 rtl:-scale-x-100\" />\n {ctx.directReports}\n </button>\n )}\n <Handle\n type=\"source\"\n position={end}\n isConnectable={false}\n style={hiddenHandle}\n />\n </div>\n );\n}\n\nconst nodeTypes = { org: OrgFlowNodeView };\n\n// Brand tokens through xyflow's own variables, so both themes follow the brand.\nconst flowStyle = {\n '--xy-background-color': 'transparent',\n '--xy-background-pattern-color': 'var(--mieweb-border)',\n '--xy-edge-stroke': 'var(--mieweb-muted-foreground)',\n '--xy-edge-stroke-width': '1.25',\n '--xy-node-background-color': 'transparent',\n '--xy-node-border': 'none',\n '--xy-node-border-radius': '0.5rem',\n '--xy-node-boxshadow-hover': 'none',\n '--xy-node-boxshadow-selected': 'none',\n '--xy-node-color': 'inherit',\n '--xy-minimap-background-color': 'var(--mieweb-card)',\n '--xy-minimap-mask-background-color':\n 'color-mix(in srgb, var(--mieweb-muted) 70%, transparent)',\n '--xy-minimap-node-background-color': 'var(--mieweb-muted-foreground)',\n '--xy-attribution-background-color': 'transparent',\n} as React.CSSProperties;\n\n// =============================================================================\n// Canvas\n// =============================================================================\n\nexport interface OrgChartCanvasProps extends OrgChartRenderSlots {\n forest: OrgForest;\n visible: VisibleNode[];\n nodeContext: (v: VisibleNode) => OrgChartNodeContext;\n focusId?: string | null;\n direction: OrgChartDirection;\n variant: OrgChartNodeVariant;\n showMinimap: boolean;\n /** Ids to frame; `null` frames everything. */\n fitTargets: readonly string[] | null;\n /** Bump to re-run fit-to-view. */\n fitRequest: number;\n labels: OrgChartLabels;\n classNames?: OrgChartClassNames;\n onToggle: (id: string) => void;\n onSelect: (id: string) => void;\n children?: React.ReactNode;\n}\n\nexport function OrgChartCanvas(props: OrgChartCanvasProps) {\n return (\n <ReactFlowProvider>\n <CanvasInner {...props} />\n </ReactFlowProvider>\n );\n}\n\nfunction CanvasInner({\n forest,\n visible,\n nodeContext,\n focusId,\n direction,\n variant,\n showMinimap,\n fitTargets,\n fitRequest,\n labels,\n classNames,\n renderNode,\n renderBadges,\n onToggle,\n onSelect,\n children,\n}: OrgChartCanvasProps) {\n const { fitView } = useReactFlow();\n const wrapRef = React.useRef<HTMLDivElement>(null);\n const [rtl, setRtl] = React.useState(false);\n const [positions, setPositions] = React.useState<Map<\n string,\n LayoutBox\n > | null>(null);\n const size = ORG_CHART_NODE_SIZE[variant];\n const horizontal = direction === 'RIGHT';\n\n React.useLayoutEffect(() => {\n const el = wrapRef.current;\n if (el) setRtl(getComputedStyle(el).direction === 'rtl');\n }, []);\n\n const edgeList = React.useMemo(() => {\n const out: { source: string; target: string }[] = [];\n for (const v of visible) {\n const p = forest.parentOf.get(v.node.id);\n if (p != null) out.push({ source: p, target: v.node.id });\n }\n return out;\n }, [visible, forest]);\n\n const layoutKey = JSON.stringify([\n direction,\n variant,\n visible.map((v) => v.node.id),\n edgeList.map((e) => [e.source, e.target]),\n ]);\n React.useEffect(() => {\n let cancelled = false;\n void layoutOrgChart({\n ids: visible.map((v) => v.node.id),\n edges: edgeList,\n direction,\n ...size,\n }).then((p) => {\n if (!cancelled) setPositions(p);\n });\n return () => {\n cancelled = true;\n };\n // layoutKey captures every input that changes positions.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [layoutKey]);\n\n const flowNodes = React.useMemo<OrgFlowNode[]>(() => {\n if (!positions) return [];\n const out: OrgFlowNode[] = [];\n for (const v of visible) {\n const pos = positions.get(v.node.id);\n if (!pos) continue;\n out.push({\n id: v.node.id,\n type: 'org',\n position: { x: rtl ? -pos.x - size.width : pos.x, y: pos.y },\n width: size.width,\n height: size.height,\n draggable: false,\n selectable: false,\n connectable: false,\n data: {\n node: v.node,\n ctx: nodeContext(v),\n focused: v.node.id === focusId,\n },\n });\n }\n return out;\n }, [positions, visible, nodeContext, focusId, rtl, size.width, size.height]);\n\n const flowEdges = React.useMemo<Edge[]>(\n () =>\n positions\n ? edgeList\n .filter((e) => positions.has(e.source) && positions.has(e.target))\n .map((e) => ({\n id: JSON.stringify([e.source, e.target]),\n source: e.source,\n target: e.target,\n type: 'smoothstep',\n focusable: false,\n }))\n : [],\n [edgeList, positions]\n );\n\n // Fit once the layout contains every target; layout is async, so the\n // request waits for positions rather than firing against stale ones.\n const fitKey = JSON.stringify(fitTargets);\n const pendingFit = React.useRef(true);\n React.useEffect(() => {\n pendingFit.current = true;\n }, [fitKey, fitRequest]);\n React.useEffect(() => {\n if (!pendingFit.current || !positions || positions.size === 0) return;\n const targets = fitTargets?.filter((id) => positions.has(id));\n if (fitTargets && fitTargets.length && !targets?.length) return;\n const raf = requestAnimationFrame(() => {\n pendingFit.current = false;\n void fitView({\n nodes: targets?.length ? targets.map((id) => ({ id })) : undefined,\n padding: 0.2,\n maxZoom: 1.1,\n duration: prefersReducedMotion() ? 0 : 300,\n });\n });\n return () => cancelAnimationFrame(raf);\n }, [positions, fitKey, fitRequest, fitTargets, fitView]);\n\n const ctxValue = React.useMemo<CanvasContextValue>(\n () => ({\n labels,\n classNames,\n horizontal,\n rtl,\n renderNode,\n renderBadges,\n onToggle,\n onSelect,\n }),\n [\n labels,\n classNames,\n horizontal,\n rtl,\n renderNode,\n renderBadges,\n onToggle,\n onSelect,\n ]\n );\n\n return (\n <CanvasContext.Provider value={ctxValue}>\n <div\n ref={wrapRef}\n role=\"region\"\n aria-label={labels.chart}\n data-slot=\"org-chart-canvas\"\n className={cn('relative h-[560px] w-full', classNames?.canvas)}\n >\n <ReactFlow\n nodes={flowNodes}\n edges={flowEdges}\n nodeTypes={nodeTypes}\n nodesDraggable={false}\n nodesConnectable={false}\n nodesFocusable={false}\n edgesFocusable={false}\n elementsSelectable={false}\n minZoom={0.1}\n maxZoom={2}\n style={flowStyle}\n // Built-in attribution is #999 (fails contrast); credit is rendered below with tokens.\n proOptions={{ hideAttribution: true }}\n ariaLabelConfig={{\n 'node.a11yDescription.default': labels.canvasHint,\n 'node.a11yDescription.keyboardDisabled': labels.canvasHint,\n 'edge.a11yDescription.default': labels.canvasHint,\n 'minimap.ariaLabel': labels.minimap,\n }}\n >\n <Background variant={BackgroundVariant.Dots} gap={20} size={1} />\n <Panel position={rtl ? 'bottom-right' : 'bottom-left'}>\n <a\n href=\"https://reactflow.dev\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-muted-foreground hover:text-foreground focus-visible:ring-ring rounded-sm text-[10px] focus-visible:ring-2 focus-visible:outline-none\"\n >\n React Flow\n </a>\n </Panel>\n {showMinimap && (\n <MiniMap\n pannable\n zoomable\n position={rtl ? 'bottom-left' : 'bottom-right'}\n className=\"border-border overflow-hidden rounded-md border\"\n />\n )}\n </ReactFlow>\n {children}\n </div>\n </CanvasContext.Provider>\n );\n}\n","/** One person, team or place in the chart. The caller owns the collection. */\nexport interface OrgChartNode {\n id: string;\n /** Parent id, or `null` for a root. An unknown parent makes the node a root. */\n parentId: string | null;\n name: string;\n /** Job title (person) — matched by search. */\n title?: string;\n /** Secondary line (location: address, type) — matched by search. */\n subtitle?: string;\n /** Department, region or any grouping — drives the filter and the colour. */\n group?: string;\n avatarUrl?: string;\n /** Anything else the caller's render slots need. Never read by the chart. */\n meta?: Record<string, unknown>;\n}\n\nexport interface OrgForest {\n byId: Map<string, OrgChartNode>;\n roots: OrgChartNode[];\n /** Effective children: each node appears under exactly one parent. */\n children: Map<string, OrgChartNode[]>;\n /** Effective parent; `null` for roots. */\n parentOf: Map<string, string | null>;\n depth: Map<string, number>;\n /** Everyone under a node, at any depth. */\n orgSize: Map<string, number>;\n}\n\nexport interface VisibleNode {\n node: OrgChartNode;\n depth: number;\n}\n\nconst EMPTY: OrgChartNode[] = [];\n\n/**\n * Builds a forest that is always a tree: duplicate ids keep the first, unknown\n * parents become roots, and a cycle is broken by promoting its first node.\n */\nexport function buildOrgForest(nodes: readonly OrgChartNode[]): OrgForest {\n const byId = new Map<string, OrgChartNode>();\n for (const n of nodes) if (!byId.has(n.id)) byId.set(n.id, n);\n\n const declared = new Map<string, OrgChartNode[]>();\n const roots: OrgChartNode[] = [];\n for (const n of byId.values()) {\n const p = n.parentId;\n if (p != null && p !== n.id && byId.has(p)) {\n const list = declared.get(p);\n if (list) list.push(n);\n else declared.set(p, [n]);\n } else {\n roots.push(n);\n }\n }\n\n const children = new Map<string, OrgChartNode[]>();\n const parentOf = new Map<string, string | null>();\n const depth = new Map<string, number>();\n const order: string[] = [];\n\n const walk = (root: OrgChartNode) => {\n parentOf.set(root.id, null);\n depth.set(root.id, 0);\n const stack = [root];\n while (stack.length) {\n const u = stack.pop()!;\n order.push(u.id);\n const kids: OrgChartNode[] = [];\n for (const c of declared.get(u.id) ?? EMPTY) {\n if (depth.has(c.id)) continue;\n depth.set(c.id, depth.get(u.id)! + 1);\n parentOf.set(c.id, u.id);\n kids.push(c);\n }\n if (kids.length) children.set(u.id, kids);\n for (let i = kids.length - 1; i >= 0; i--) stack.push(kids[i]);\n }\n };\n\n for (const r of roots) walk(r);\n for (const n of byId.values()) {\n if (depth.has(n.id)) continue;\n roots.push(n);\n walk(n);\n }\n\n const orgSize = new Map<string, number>();\n for (let i = order.length - 1; i >= 0; i--) {\n const id = order[i];\n let size = 0;\n for (const c of children.get(id) ?? EMPTY) size += 1 + orgSize.get(c.id)!;\n orgSize.set(id, size);\n }\n\n return { byId, roots, children, parentOf, depth, orgSize };\n}\n\nexport function childrenOf(forest: OrgForest, id: string): OrgChartNode[] {\n return forest.children.get(id) ?? EMPTY;\n}\n\nexport function ancestorsOf(forest: OrgForest, id: string): string[] {\n const out: string[] = [];\n let p = forest.parentOf.get(id) ?? null;\n while (p != null) {\n out.push(p);\n p = forest.parentOf.get(p) ?? null;\n }\n return out;\n}\n\n/** Expanded ids that show `levels` levels from each root. */\nexport function initialExpanded(\n forest: OrgForest,\n levels: number\n): Set<string> {\n const out = new Set<string>();\n for (const [id, d] of forest.depth) {\n if (d < levels - 1 && forest.children.has(id)) out.add(id);\n }\n return out;\n}\n\nexport function allExpandable(forest: OrgForest): Set<string> {\n return new Set(forest.children.keys());\n}\n\n/** Pre-order list of what is on screen given the expanded set. */\nexport function visibleNodes(\n forest: OrgForest,\n expanded: ReadonlySet<string>\n): VisibleNode[] {\n const out: VisibleNode[] = [];\n const visit = (n: OrgChartNode, depth: number) => {\n out.push({ node: n, depth });\n if (!expanded.has(n.id)) return;\n for (const c of childrenOf(forest, n.id)) visit(c, depth + 1);\n };\n for (const r of forest.roots) visit(r, 0);\n return out;\n}\n\nexport function matchesQuery(node: OrgChartNode, query: string): boolean {\n const q = query.trim().toLocaleLowerCase();\n if (!q) return false;\n return [node.name, node.title, node.subtitle, node.group].some((v) =>\n v?.toLocaleLowerCase().includes(q)\n );\n}\n\nexport function distinctGroups(nodes: readonly OrgChartNode[]): string[] {\n const set = new Set<string>();\n for (const n of nodes) if (n.group) set.add(n.group);\n return [...set].sort((a, b) => a.localeCompare(b));\n}\n","'use client';\n\nimport * as React from 'react';\nimport { ChevronDown, ChevronRight } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { GroupPill } from './OrgChartCanvas';\nimport type {\n OrgChartClassNames,\n OrgChartLabels,\n OrgChartNodeContext,\n OrgChartRenderSlots,\n} from './shared';\nimport { childrenOf, type OrgForest, type VisibleNode } from './tree';\n\nexport interface OrgChartTreeProps extends Pick<\n OrgChartRenderSlots,\n 'renderBadges'\n> {\n forest: OrgForest;\n visible: VisibleNode[];\n nodeContext: (v: VisibleNode) => OrgChartNodeContext;\n selectedId: string | null;\n labels: OrgChartLabels;\n classNames?: OrgChartClassNames;\n onToggle: (id: string) => void;\n onSelect: (id: string) => void;\n}\n\n/**\n * The chart as a WAI-ARIA tree: a flat list of treeitems carrying\n * `aria-level` / `aria-setsize` / `aria-posinset`, with one roving tab stop.\n */\nexport function OrgChartTree({\n forest,\n visible,\n nodeContext,\n selectedId,\n labels,\n classNames,\n renderBadges,\n onToggle,\n onSelect,\n}: OrgChartTreeProps) {\n const listRef = React.useRef<HTMLUListElement>(null);\n const items = React.useRef(new Map<string, HTMLElement>());\n const [activeId, setActiveId] = React.useState<string | null>(selectedId);\n const active =\n activeId && visible.some((v) => v.node.id === activeId)\n ? activeId\n : (visible[0]?.node.id ?? null);\n\n const move = (id: string | undefined) => {\n if (!id) return;\n setActiveId(id);\n items.current.get(id)?.focus();\n };\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n const index = visible.findIndex((v) => v.node.id === active);\n if (index < 0) return;\n const current = visible[index];\n const id = current.node.id;\n const hasKids = childrenOf(forest, id).length > 0;\n const expanded = nodeContext(current).expanded;\n const rtl =\n !!listRef.current &&\n getComputedStyle(listRef.current).direction === 'rtl';\n let key = e.key;\n if (rtl && key === 'ArrowLeft') key = 'ArrowRight';\n else if (rtl && key === 'ArrowRight') key = 'ArrowLeft';\n\n switch (key) {\n case 'ArrowDown':\n move(visible[index + 1]?.node.id);\n break;\n case 'ArrowUp':\n move(visible[index - 1]?.node.id);\n break;\n case 'Home':\n move(visible[0]?.node.id);\n break;\n case 'End':\n move(visible[visible.length - 1]?.node.id);\n break;\n case 'ArrowRight':\n if (hasKids && !expanded) onToggle(id);\n else if (hasKids) move(childrenOf(forest, id)[0]?.id);\n break;\n case 'ArrowLeft':\n if (hasKids && expanded) onToggle(id);\n else move(forest.parentOf.get(id) ?? undefined);\n break;\n case 'Enter':\n case ' ':\n onSelect(id);\n break;\n default:\n return;\n }\n e.preventDefault();\n };\n\n return (\n <ul\n ref={listRef}\n role=\"tree\"\n aria-label={labels.tree}\n data-slot=\"org-chart-tree\"\n className={cn('max-h-[560px] overflow-auto p-2', classNames?.tree)}\n >\n {visible.map((v) => {\n const { node } = v;\n const ctx = nodeContext(v);\n const parent = forest.parentOf.get(node.id);\n const siblings =\n parent != null ? childrenOf(forest, parent) : forest.roots;\n const Chevron = ctx.expanded ? ChevronDown : ChevronRight;\n const secondary = ctx.variant === 'person' ? node.title : node.subtitle;\n return (\n <li\n key={node.id}\n ref={(el) => {\n if (el) items.current.set(node.id, el);\n else items.current.delete(node.id);\n }}\n role=\"treeitem\"\n aria-level={v.depth + 1}\n aria-setsize={siblings.length}\n aria-posinset={siblings.indexOf(node) + 1}\n aria-expanded={ctx.directReports > 0 ? ctx.expanded : undefined}\n aria-selected={node.id === selectedId}\n aria-current={ctx.highlighted || undefined}\n tabIndex={node.id === active ? 0 : -1}\n data-slot=\"org-chart-tree-item\"\n data-matched={ctx.matched || undefined}\n onFocus={() => setActiveId(node.id)}\n onKeyDown={onKeyDown}\n onClick={(e) => {\n setActiveId(node.id);\n const onChevron = (e.target as HTMLElement).closest(\n '[data-slot=\"org-chart-tree-toggle\"]'\n );\n if (onChevron && ctx.directReports > 0) onToggle(node.id);\n else onSelect(node.id);\n }}\n style={{ paddingInlineStart: `${v.depth * 1.25 + 0.25}rem` }}\n className={cn(\n 'flex cursor-pointer items-center gap-2 rounded-md py-1.5 pe-2 text-sm',\n 'hover:bg-muted focus-visible:ring-ring focus-visible:ring-2 focus-visible:outline-none',\n node.id === selectedId && 'bg-primary-500/10',\n ctx.matched && 'ring-ring ring-1',\n ctx.dimmed && 'opacity-50',\n classNames?.treeItem\n )}\n >\n <span\n aria-hidden=\"true\"\n data-slot=\"org-chart-tree-toggle\"\n className=\"text-muted-foreground flex size-5 shrink-0 items-center justify-center\"\n >\n {ctx.directReports > 0 && (\n <Chevron className=\"size-4 rtl:-scale-x-100\" />\n )}\n </span>\n <span className=\"flex min-w-0 flex-1 flex-wrap items-baseline gap-x-2\">\n <span className=\"text-foreground font-medium\">{node.name}</span>\n {secondary && (\n <span className=\"text-muted-foreground text-xs\">\n {secondary}\n </span>\n )}\n </span>\n {ctx.highlighted && (\n <span className=\"bg-primary-600 rounded-full px-1.5 text-[10px] font-bold text-white uppercase\">\n {labels.highlighted}\n </span>\n )}\n {renderBadges?.(node)}\n {node.group && <GroupPill group={node.group} accent={ctx.accent} />}\n {ctx.directReports > 0 && (\n <span className=\"text-muted-foreground text-xs tabular-nums\">\n {ctx.directReports}\n </span>\n )}\n </li>\n );\n })}\n </ul>\n );\n}\n","'use client';\n\nimport * as React from 'react';\nimport {\n ExternalLink,\n FoldVertical,\n Map as MapIcon,\n Maximize,\n Minimize,\n Network,\n List,\n Scan,\n Search,\n UnfoldVertical,\n X,\n} from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { Avatar } from '../Avatar';\nimport { Button } from '../Button';\nimport { Spinner } from '../Spinner';\nimport { OrgChartCanvas, GroupPill } from './OrgChartCanvas';\nimport { OrgChartTree } from './OrgChartTree';\nimport type { OrgChartDirection } from './layout';\nimport {\n defaultOrgChartLabels,\n ORG_CHART_GROUP_ACCENTS,\n type OrgChartAccent,\n type OrgChartClassNames,\n type OrgChartDetailContext,\n type OrgChartLabels,\n type OrgChartNodeContext,\n type OrgChartNodeVariant,\n type OrgChartRenderSlots,\n type OrgChartView,\n} from './shared';\nimport {\n allExpandable,\n ancestorsOf,\n buildOrgForest,\n childrenOf,\n distinctGroups,\n initialExpanded,\n matchesQuery,\n visibleNodes,\n type OrgChartNode,\n type OrgForest,\n type VisibleNode,\n} from './tree';\n\nexport interface OrgChartProps\n extends\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>,\n OrgChartRenderSlots {\n /** The collection. The caller owns fetching it; order sets sibling order. */\n nodes: readonly OrgChartNode[];\n loading?: boolean;\n error?: Error | null;\n /** Retries a failed load. The retry action renders only when given. */\n onRetry?: () => void;\n /** `person`: avatar + name + title. `location`: icon + name + subtitle. */\n nodeVariant?: OrgChartNodeVariant;\n /** Layout direction of the chart. */\n direction?: OrgChartDirection;\n /** Levels shown on first render, counted from each root. */\n initialDepth?: number;\n /** Expanded into view and framed (e.g. the record the page is about). */\n focusId?: string | null;\n /** Expanded into view and marked (e.g. the signed-in user). */\n highlightedId?: string | null;\n /** Initial search text. */\n defaultQuery?: string;\n /** Initial group filter. */\n defaultGroup?: string;\n /** Controlled view. */\n view?: OrgChartView;\n /** Uncontrolled initial view. Defaults to `list` below 640px, else `chart`. */\n defaultView?: OrgChartView;\n onViewChange?: (view: OrgChartView) => void;\n defaultShowMinimap?: boolean;\n /** Colour per group as a token name. Defaults to `ORG_CHART_GROUP_ACCENTS`. */\n getGroupAccent?: (group: string, index: number) => OrgChartAccent;\n /** Called when a node is selected (details opened) or deselected. */\n onSelect?: (id: string | null, node: OrgChartNode | null) => void;\n /** Called by the detail panel's Open action. */\n onOpen?: (id: string, node: OrgChartNode) => void;\n /** Renders the Open action as a real link. */\n getHref?: (id: string, node: OrgChartNode) => string;\n /** Replaces the detail panel's body. */\n renderDetail?: (\n node: OrgChartNode,\n ctx: OrgChartDetailContext\n ) => React.ReactNode;\n /** Replaces the built-in empty state. */\n emptyState?: React.ReactNode;\n labels?: Partial<OrgChartLabels>;\n classNames?: OrgChartClassNames;\n}\n\nconst isNarrow = () =>\n typeof window !== 'undefined' &&\n !!window.matchMedia?.('(max-width: 639px)').matches;\n\nconst union = (a: ReadonlySet<string>, ids: Iterable<string>) => {\n let out: Set<string> | null = null;\n for (const id of ids) {\n if (a.has(id)) continue;\n out ??= new Set(a);\n out.add(id);\n }\n return out ?? a;\n};\n\nconst ancestorsOfAll = (forest: OrgForest, ids: Iterable<string>) => {\n const out: string[] = [];\n for (const id of ids) out.push(...ancestorsOf(forest, id));\n return out;\n};\n\n/**\n * Declared `parameters.catalog.collection` — loading, empty and error are part\n * of the API.\n */\nexport const OrgChart = React.forwardRef<HTMLDivElement, OrgChartProps>(\n function OrgChart(\n {\n nodes,\n loading = false,\n error = null,\n onRetry,\n nodeVariant = 'person',\n direction = 'DOWN',\n initialDepth = 2,\n focusId = null,\n highlightedId = null,\n defaultQuery = '',\n defaultGroup = '',\n view: viewProp,\n defaultView,\n onViewChange,\n defaultShowMinimap = false,\n getGroupAccent,\n onSelect,\n onOpen,\n getHref,\n renderNode,\n renderBadges,\n renderDetail,\n emptyState,\n labels: labelsProp,\n classNames,\n className,\n ...rest\n },\n ref\n ) {\n const labels = React.useMemo(\n () => ({ ...defaultOrgChartLabels, ...labelsProp }),\n [labelsProp]\n );\n const rootRef = React.useRef<HTMLDivElement>(null);\n React.useImperativeHandle(ref, () => rootRef.current as HTMLDivElement);\n const searchId = React.useId();\n\n const forest = React.useMemo(() => buildOrgForest(nodes), [nodes]);\n const groups = React.useMemo(() => distinctGroups(nodes), [nodes]);\n const accentOf = React.useMemo(() => {\n const map = new Map<string, OrgChartAccent>();\n groups.forEach((g, i) =>\n map.set(\n g,\n getGroupAccent?.(g, i) ??\n ORG_CHART_GROUP_ACCENTS[i % ORG_CHART_GROUP_ACCENTS.length]\n )\n );\n return map;\n }, [groups, getGroupAccent]);\n\n // --- state -------------------------------------------------------------\n const [expanded, setExpanded] = React.useState<ReadonlySet<string>>(() =>\n union(\n initialExpanded(forest, initialDepth),\n ancestorsOfAll(\n forest,\n [focusId, highlightedId].filter((id): id is string => !!id)\n )\n )\n );\n const seeded = React.useRef(forest.byId.size > 0);\n const [query, setQuery] = React.useState(defaultQuery);\n const [groupState, setGroup] = React.useState(defaultGroup);\n // A group that isn't in `nodes` (stale default, removed on refresh) means no filter.\n const group = groupState && groups.includes(groupState) ? groupState : '';\n const [selectedId, setSelectedId] = React.useState<string | null>(null);\n // Deterministic initial view so SSR and client hydrate the same tree;\n // the narrow-screen default is applied once after mount.\n const [viewState, setViewState] = React.useState<OrgChartView>(\n defaultView ?? 'chart'\n );\n const appliedNarrowDefault = React.useRef(false);\n React.useEffect(() => {\n if (appliedNarrowDefault.current) return;\n appliedNarrowDefault.current = true;\n if (defaultView === undefined && isNarrow()) setViewState('list');\n }, [defaultView]);\n const view = viewProp ?? viewState;\n const [showMinimap, setShowMinimap] = React.useState(defaultShowMinimap);\n const [nativeFull, setNativeFull] = React.useState(false);\n const [pseudoFull, setPseudoFull] = React.useState(false);\n const fullscreen = nativeFull || pseudoFull;\n const [fitRequest, setFitRequest] = React.useState(0);\n const returnFocus = React.useRef<HTMLElement | null>(null);\n\n // Seed once data arrives, so a loading → loaded transition still opens\n // `initialDepth` levels.\n React.useEffect(() => {\n if (seeded.current || forest.byId.size === 0) return;\n seeded.current = true;\n setExpanded((prev) => union(prev, initialExpanded(forest, initialDepth)));\n }, [forest, initialDepth]);\n\n React.useEffect(() => {\n const ids = [focusId, highlightedId].filter(\n (id): id is string => !!id && forest.byId.has(id)\n );\n if (ids.length)\n setExpanded((prev) => union(prev, ancestorsOfAll(forest, ids)));\n }, [forest, focusId, highlightedId]);\n\n const matches = React.useMemo(() => {\n if (!query.trim()) return null;\n const out: string[] = [];\n for (const n of forest.byId.values())\n if (matchesQuery(n, query)) out.push(n.id);\n return out;\n }, [forest, query]);\n\n const groupMembers = React.useMemo(() => {\n if (!group) return null;\n const out: string[] = [];\n for (const n of forest.byId.values())\n if (n.group === group) out.push(n.id);\n return out;\n }, [forest, group]);\n\n const revealKey = JSON.stringify([matches, groupMembers]);\n React.useEffect(() => {\n const ids = [...(matches ?? []), ...(groupMembers ?? [])];\n if (ids.length)\n setExpanded((prev) => union(prev, ancestorsOfAll(forest, ids)));\n // revealKey stands in for the two arrays.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [revealKey, forest]);\n\n React.useEffect(() => {\n const onChange = () =>\n setNativeFull(\n !!rootRef.current && document.fullscreenElement === rootRef.current\n );\n document.addEventListener('fullscreenchange', onChange);\n return () => document.removeEventListener('fullscreenchange', onChange);\n }, []);\n\n React.useEffect(() => {\n if (!pseudoFull) return;\n const onKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape') setPseudoFull(false);\n };\n document.addEventListener('keydown', onKey);\n return () => document.removeEventListener('keydown', onKey);\n }, [pseudoFull]);\n\n // --- derived -----------------------------------------------------------\n const visible = React.useMemo(\n () => visibleNodes(forest, expanded),\n [forest, expanded]\n );\n const matchSet = React.useMemo(() => new Set(matches ?? []), [matches]);\n const groupSet = React.useMemo(\n () => (groupMembers ? new Set(groupMembers) : null),\n [groupMembers]\n );\n\n const nodeContext = React.useCallback(\n (v: VisibleNode): OrgChartNodeContext => ({\n variant: nodeVariant,\n depth: v.depth,\n directReports: childrenOf(forest, v.node.id).length,\n expanded: expanded.has(v.node.id),\n highlighted: v.node.id === highlightedId,\n matched: matchSet.has(v.node.id),\n dimmed: !!groupSet && !groupSet.has(v.node.id),\n accent: v.node.group ? accentOf.get(v.node.group) : undefined,\n }),\n [\n nodeVariant,\n forest,\n expanded,\n highlightedId,\n matchSet,\n groupSet,\n accentOf,\n ]\n );\n\n const fitTargets = React.useMemo(() => {\n if (matches?.length) return matches;\n if (groupMembers?.length) return groupMembers;\n if (focusId && forest.byId.has(focusId)) return [focusId];\n return null;\n }, [matches, groupMembers, focusId, forest]);\n\n // --- actions -----------------------------------------------------------\n const toggle = React.useCallback((id: string) => {\n setExpanded((prev) => {\n const next = new Set(prev);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n }, []);\n\n const select = React.useCallback(\n (id: string | null) => {\n if (id && typeof document !== 'undefined')\n returnFocus.current = document.activeElement as HTMLElement | null;\n setSelectedId(id);\n onSelect?.(id, id ? (forest.byId.get(id) ?? null) : null);\n },\n [forest, onSelect]\n );\n\n const closeDetail = React.useCallback(() => {\n select(null);\n const el = returnFocus.current;\n if (el?.isConnected) el.focus();\n }, [select]);\n\n const setView = (v: OrgChartView) => {\n setViewState(v);\n onViewChange?.(v);\n };\n\n const toggleFullscreen = async () => {\n const el = rootRef.current;\n if (!el) return;\n if (fullscreen) {\n setPseudoFull(false);\n if (document.fullscreenElement) await document.exitFullscreen?.();\n return;\n }\n try {\n if (!el.requestFullscreen) throw new Error('unsupported');\n await el.requestFullscreen();\n } catch {\n setPseudoFull(true);\n }\n };\n\n // --- render ------------------------------------------------------------\n const stateBox = (content: React.ReactNode) => (\n <div\n data-slot=\"org-chart-state\"\n className={cn(\n 'text-muted-foreground flex min-h-48 flex-col items-center justify-center gap-3 p-6 text-center text-sm',\n classNames?.state\n )}\n >\n {content}\n </div>\n );\n\n let body: React.ReactNode;\n if (error) {\n body = stateBox(\n <>\n <p\n role=\"alert\"\n className=\"text-destructive-700 dark:text-destructive-400\"\n >\n {labels.error}\n </p>\n {onRetry && (\n <Button variant=\"outline\" size=\"sm\" onClick={onRetry}>\n {labels.retry}\n </Button>\n )}\n </>\n );\n } else if (loading) {\n body = stateBox(\n <div role=\"status\" className=\"flex items-center gap-2\">\n <Spinner size=\"sm\" />\n <span>{labels.loading}</span>\n </div>\n );\n } else if (forest.byId.size === 0) {\n body = stateBox(emptyState ?? <p>{labels.empty}</p>);\n }\n\n const selected = selectedId ? (forest.byId.get(selectedId) ?? null) : null;\n const detail = selected && (\n <DetailPanel\n key={selected.id}\n node={selected}\n forest={forest}\n variant={nodeVariant}\n accent={selected.group ? accentOf.get(selected.group) : undefined}\n labels={labels}\n className={classNames?.detail}\n onClose={closeDetail}\n onOpen={onOpen}\n getHref={getHref}\n renderDetail={renderDetail}\n renderBadges={renderBadges}\n />\n );\n\n const iconButton = (\n label: string,\n icon: React.ReactNode,\n onClick: () => void,\n pressed?: boolean\n ) => (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n aria-label={label}\n title={label}\n aria-pressed={pressed}\n onClick={onClick}\n className={cn(pressed && 'bg-primary-500/10')}\n >\n {icon}\n </Button>\n );\n\n return (\n <div\n ref={rootRef}\n data-slot=\"org-chart\"\n data-view={view}\n className={cn(\n 'bg-card text-foreground border-border relative flex flex-col overflow-hidden rounded-lg border',\n fullscreen && 'bg-background',\n pseudoFull && 'fixed inset-0 z-50 rounded-none',\n className,\n classNames?.root\n )}\n {...rest}\n >\n {body ?? (\n <>\n <div\n role=\"toolbar\"\n aria-label={labels.toolbar}\n data-slot=\"org-chart-toolbar\"\n className={cn(\n 'border-border flex flex-wrap items-center gap-2 border-b p-2',\n classNames?.toolbar\n )}\n >\n <div className=\"relative min-w-40 flex-1\">\n <label htmlFor={searchId} className=\"sr-only\">\n {labels.search}\n </label>\n <Search\n aria-hidden=\"true\"\n className=\"text-muted-foreground pointer-events-none absolute start-2.5 top-1/2 size-4 -translate-y-1/2\"\n />\n <input\n id={searchId}\n type=\"search\"\n value={query}\n placeholder={labels.searchPlaceholder}\n onChange={(e) => setQuery(e.target.value)}\n className=\"border-border bg-background text-foreground placeholder:text-muted-foreground focus-visible:ring-ring h-9 w-full rounded-md border ps-8 pe-2 text-sm focus-visible:ring-2 focus-visible:outline-none\"\n />\n </div>\n <p\n role=\"status\"\n aria-live=\"polite\"\n className=\"text-muted-foreground min-w-0 text-xs empty:hidden\"\n >\n {matches ? labels.results(matches.length) : ''}\n </p>\n {groups.length > 0 && (\n <select\n aria-label={labels.groupFilter}\n value={group}\n onChange={(e) => setGroup(e.target.value)}\n className=\"border-border bg-background text-foreground focus-visible:ring-ring h-9 max-w-48 rounded-md border px-2 text-sm focus-visible:ring-2 focus-visible:outline-none\"\n >\n <option value=\"\">{labels.allGroups}</option>\n {groups.map((g) => (\n <option key={g} value={g}>\n {g}\n </option>\n ))}\n </select>\n )}\n <div className=\"ms-auto flex flex-wrap items-center gap-1\">\n {iconButton(\n labels.expandAll,\n <UnfoldVertical aria-hidden=\"true\" className=\"size-4\" />,\n () => setExpanded(allExpandable(forest))\n )}\n {iconButton(\n labels.collapseAll,\n <FoldVertical aria-hidden=\"true\" className=\"size-4\" />,\n () => setExpanded(new Set())\n )}\n {view === 'chart' && (\n <>\n {iconButton(\n labels.fitView,\n <Scan aria-hidden=\"true\" className=\"size-4\" />,\n () => setFitRequest((n) => n + 1)\n )}\n {iconButton(\n labels.minimap,\n <MapIcon aria-hidden=\"true\" className=\"size-4\" />,\n () => setShowMinimap((v) => !v),\n showMinimap\n )}\n </>\n )}\n {iconButton(\n labels.fullscreen,\n fullscreen ? (\n <Minimize aria-hidden=\"true\" className=\"size-4\" />\n ) : (\n <Maximize aria-hidden=\"true\" className=\"size-4\" />\n ),\n () => void toggleFullscreen(),\n fullscreen\n )}\n <div\n role=\"group\"\n aria-label={labels.viewToggle}\n className=\"border-border ms-1 flex rounded-md border p-0.5\"\n >\n {(\n [\n ['chart', labels.chartView, Network],\n ['list', labels.listView, List],\n ] as const\n ).map(([v, label, Icon]) => (\n <button\n key={v}\n type=\"button\"\n aria-pressed={view === v}\n onClick={() => setView(v)}\n className={cn(\n 'focus-visible:ring-ring flex h-7 items-center gap-1 rounded px-2 text-xs font-medium focus-visible:ring-2 focus-visible:outline-none',\n view === v\n ? 'bg-primary-500/10 text-foreground'\n : 'text-muted-foreground hover:bg-muted'\n )}\n >\n <Icon aria-hidden=\"true\" className=\"size-3.5\" />\n {label}\n </button>\n ))}\n </div>\n </div>\n </div>\n {view === 'chart' ? (\n <OrgChartCanvas\n forest={forest}\n visible={visible}\n nodeContext={nodeContext}\n focusId={focusId}\n direction={direction}\n variant={nodeVariant}\n showMinimap={showMinimap}\n fitTargets={fitTargets}\n fitRequest={fitRequest}\n labels={labels}\n classNames={\n fullscreen\n ? {\n ...classNames,\n canvas: cn(classNames?.canvas, 'h-auto flex-1'),\n }\n : classNames\n }\n renderNode={renderNode}\n renderBadges={renderBadges}\n onToggle={toggle}\n onSelect={select}\n >\n {detail}\n </OrgChartCanvas>\n ) : (\n <div className={cn('relative', fullscreen && 'flex-1')}>\n <OrgChartTree\n forest={forest}\n visible={visible}\n nodeContext={nodeContext}\n selectedId={selectedId}\n labels={labels}\n classNames={classNames}\n renderBadges={renderBadges}\n onToggle={toggle}\n onSelect={select}\n />\n {detail}\n </div>\n )}\n </>\n )}\n </div>\n );\n }\n);\n\n// =============================================================================\n// Detail panel\n// =============================================================================\n\ninterface DetailPanelProps extends Pick<OrgChartRenderSlots, 'renderBadges'> {\n node: OrgChartNode;\n forest: OrgForest;\n variant: OrgChartNodeVariant;\n accent?: OrgChartAccent;\n labels: OrgChartLabels;\n className?: string;\n onClose: () => void;\n onOpen?: OrgChartProps['onOpen'];\n getHref?: OrgChartProps['getHref'];\n renderDetail?: OrgChartProps['renderDetail'];\n}\n\nfunction DetailPanel({\n node,\n forest,\n variant,\n accent,\n labels,\n className,\n onClose,\n onOpen,\n getHref,\n renderDetail,\n renderBadges,\n}: DetailPanelProps) {\n const ref = React.useRef<HTMLDivElement>(null);\n const closeRef = React.useRef(onClose);\n React.useEffect(() => {\n closeRef.current = onClose;\n });\n React.useEffect(() => {\n const el = ref.current;\n if (!el) return;\n el.focus();\n const onKey = (e: KeyboardEvent) => {\n if (e.key !== 'Escape') return;\n e.stopPropagation();\n closeRef.current();\n };\n el.addEventListener('keydown', onKey);\n return () => el.removeEventListener('keydown', onKey);\n }, []);\n\n const directReports = childrenOf(forest, node.id).length;\n const orgSize = forest.orgSize.get(node.id) ?? 0;\n const parentId = forest.parentOf.get(node.id);\n const parent = parentId ? (forest.byId.get(parentId) ?? null) : null;\n const secondary = variant === 'person' ? node.title : node.subtitle;\n const href = getHref?.(node.id, node);\n\n const actionClass =\n 'bg-primary-600 hover:bg-primary-700 focus-visible:ring-ring inline-flex h-8 items-center gap-1.5 rounded-md px-3 text-sm font-medium text-white focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none';\n\n return (\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label={node.name}\n tabIndex={-1}\n data-slot=\"org-chart-detail\"\n className={cn(\n 'bg-card text-foreground border-border absolute end-3 top-3 z-10 w-72 max-w-[calc(100%-1.5rem)] rounded-lg border p-4 shadow-lg focus:outline-none',\n className\n )}\n >\n <button\n type=\"button\"\n aria-label={labels.close}\n onClick={onClose}\n className=\"text-muted-foreground hover:bg-muted focus-visible:ring-ring absolute end-2 top-2 rounded p-1 focus-visible:ring-2 focus-visible:outline-none\"\n >\n <X aria-hidden=\"true\" className=\"size-4\" />\n </button>\n {renderDetail ? (\n renderDetail(node, { directReports, orgSize, parent, close: onClose })\n ) : (\n <div className=\"flex flex-col gap-3 pe-6\">\n <div className=\"flex items-center gap-3\">\n {variant === 'person' && (\n <Avatar src={node.avatarUrl} name={node.name} alt=\"\" size=\"lg\" />\n )}\n <div className=\"min-w-0\">\n <p className=\"text-foreground font-semibold\">{node.name}</p>\n {secondary && (\n <p className=\"text-muted-foreground text-sm\">{secondary}</p>\n )}\n </div>\n </div>\n {(node.group || renderBadges) && (\n <div className=\"flex flex-wrap gap-1.5\">\n {node.group && <GroupPill group={node.group} accent={accent} />}\n {renderBadges?.(node)}\n </div>\n )}\n <ul className=\"text-muted-foreground flex flex-col gap-1 text-sm\">\n {parent && <li>{labels.reportsTo(parent.name)}</li>}\n <li>{labels.directReports(directReports)}</li>\n {orgSize > directReports && <li>{labels.orgSize(orgSize)}</li>}\n </ul>\n {href ? (\n <a\n href={href}\n className={cn(actionClass, 'self-start')}\n onClick={(e) => {\n if (\n !onOpen ||\n e.button !== 0 ||\n e.metaKey ||\n e.ctrlKey ||\n e.shiftKey ||\n e.altKey\n )\n return;\n e.preventDefault();\n onOpen(node.id, node);\n }}\n >\n {labels.open}\n <ExternalLink aria-hidden=\"true\" className=\"size-3.5\" />\n </a>\n ) : (\n onOpen && (\n <button\n type=\"button\"\n className={cn(actionClass, 'self-start')}\n onClick={() => onOpen(node.id, node)}\n >\n {labels.open}\n </button>\n )\n )}\n </div>\n )}\n </div>\n );\n}\n"]}