@countermeasure-platform/web-components 1.2.1-dev.4.1 → 1.2.1-dev.6.1

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 (639) hide show
  1. package/dist/{_basePickBy-BlpD3CIQ.js → _basePickBy-BQMPE4-n.js} +3 -3
  2. package/dist/{_basePickBy-BlpD3CIQ.js.map → _basePickBy-BQMPE4-n.js.map} +1 -1
  3. package/dist/{_baseUniq-CO35kH5B.js → _baseUniq-Bdp_vFUv.js} +3 -3
  4. package/dist/{_baseUniq-CO35kH5B.js.map → _baseUniq-Bdp_vFUv.js.map} +1 -1
  5. package/dist/{alert-dialog-DXa-O6E4.js → alert-dialog-C4dLk25S.js} +5 -5
  6. package/dist/{alert-dialog-DXa-O6E4.js.map → alert-dialog-C4dLk25S.js.map} +1 -1
  7. package/dist/{arc-DyfKNDOh.js → arc-jVbrWVYZ.js} +3 -3
  8. package/dist/{arc-DyfKNDOh.js.map → arc-jVbrWVYZ.js.map} +1 -1
  9. package/dist/architecture-PBZL5I3N-Zk3GmKE8.js +3 -0
  10. package/dist/{architectureDiagram-2XIMDMQ5-B4qk6eh9.js → architectureDiagram-2XIMDMQ5-D5q0ma9h.js} +10 -10
  11. package/dist/{architectureDiagram-2XIMDMQ5-B4qk6eh9.js.map → architectureDiagram-2XIMDMQ5-D5q0ma9h.js.map} +1 -1
  12. package/dist/{array-DPBIBG3p.js → array-DXadUs1s.js} +1 -1
  13. package/dist/{array-DPBIBG3p.js.map → array-DXadUs1s.js.map} +1 -1
  14. package/dist/{arrow-up-BhjinjWg.js → arrow-up-CJJ5q2ht.js} +2 -2
  15. package/dist/{arrow-up-BhjinjWg.js.map → arrow-up-CJJ5q2ht.js.map} +1 -1
  16. package/dist/{avatar-CZGZhjvv.js → avatar-DIhd5zYT.js} +1 -1
  17. package/dist/{avatar-CZGZhjvv.js.map → avatar-DIhd5zYT.js.map} +1 -1
  18. package/dist/{badge-CAvV5GE2.js → badge-C2kAwL41.js} +1 -1
  19. package/dist/{badge-CAvV5GE2.js.map → badge-C2kAwL41.js.map} +1 -1
  20. package/dist/{blockDiagram-WCTKOSBZ-DdPMGZ7X.js → blockDiagram-WCTKOSBZ-BH3jwWeU.js} +13 -13
  21. package/dist/{blockDiagram-WCTKOSBZ-DdPMGZ7X.js.map → blockDiagram-WCTKOSBZ-BH3jwWeU.js.map} +1 -1
  22. package/dist/{button-19KWzy7c.js → button-BtTc7Ncu.js} +1 -1
  23. package/dist/{button-19KWzy7c.js.map → button-BtTc7Ncu.js.map} +1 -1
  24. package/dist/{c4Diagram-IC4MRINW-Du1j-C4R.js → c4Diagram-IC4MRINW-OFLrunYI.js} +7 -7
  25. package/dist/{c4Diagram-IC4MRINW-Du1j-C4R.js.map → c4Diagram-IC4MRINW-OFLrunYI.js.map} +1 -1
  26. package/dist/{carousel-CJ5lxMYs.js → carousel-T96UFALA.js} +3 -3
  27. package/dist/{carousel-CJ5lxMYs.js.map → carousel-T96UFALA.js.map} +1 -1
  28. package/dist/{channel-BHvJxX8j.js → channel-LRbq43st.js} +2 -2
  29. package/dist/{channel-BHvJxX8j.js.map → channel-LRbq43st.js.map} +1 -1
  30. package/dist/charts/area/index.js +1 -1
  31. package/dist/charts/bar/index.js +1 -1
  32. package/dist/charts/index.js +2 -2
  33. package/dist/charts/line/index.js +1 -1
  34. package/dist/charts/pie/index.js +1 -1
  35. package/dist/charts/radar/index.js +1 -1
  36. package/dist/charts/scatter/index.js +1 -1
  37. package/dist/charts/waterfall/index.js +1 -1
  38. package/dist/{check-CybgTpDT.js → check-cGnuDoWp.js} +2 -2
  39. package/dist/{check-CybgTpDT.js.map → check-cGnuDoWp.js.map} +1 -1
  40. package/dist/{chevron-down-C_008JAH.js → chevron-down-m05raooX.js} +2 -2
  41. package/dist/{chevron-down-C_008JAH.js.map → chevron-down-m05raooX.js.map} +1 -1
  42. package/dist/{chevron-right-DuHRAn8w.js → chevron-right-ByWVa5XY.js} +2 -2
  43. package/dist/{chevron-right-DuHRAn8w.js.map → chevron-right-ByWVa5XY.js.map} +1 -1
  44. package/dist/{chevron-up-BY5jyuW2.js → chevron-up-CtvY7fRK.js} +2 -2
  45. package/dist/{chevron-up-BY5jyuW2.js.map → chevron-up-CtvY7fRK.js.map} +1 -1
  46. package/dist/{chunk-4BX2VUAB-CL-dnlxR.js → chunk-4BX2VUAB-BS9gpN-y.js} +2 -2
  47. package/dist/{chunk-4BX2VUAB-CL-dnlxR.js.map → chunk-4BX2VUAB-BS9gpN-y.js.map} +1 -1
  48. package/dist/{chunk-55IACEB6-DxNTqHZ8.js → chunk-55IACEB6-DZ-UBhHX.js} +3 -3
  49. package/dist/{chunk-55IACEB6-DxNTqHZ8.js.map → chunk-55IACEB6-DZ-UBhHX.js.map} +1 -1
  50. package/dist/{chunk-7E7YKBS2-Bewg8t99.js → chunk-7E7YKBS2-BsywoVTt.js} +2 -2
  51. package/dist/{chunk-7E7YKBS2-Bewg8t99.js.map → chunk-7E7YKBS2-BsywoVTt.js.map} +1 -1
  52. package/dist/{chunk-7R4GIKGN-DiZ1HYFd.js → chunk-7R4GIKGN-DJmroLCH.js} +3 -3
  53. package/dist/{chunk-7R4GIKGN-DiZ1HYFd.js.map → chunk-7R4GIKGN-DJmroLCH.js.map} +1 -1
  54. package/dist/{chunk-C72U2L5F-BqOejReq.js → chunk-C72U2L5F-BwPwVDcP.js} +2 -2
  55. package/dist/{chunk-C72U2L5F-BqOejReq.js.map → chunk-C72U2L5F-BwPwVDcP.js.map} +1 -1
  56. package/dist/{chunk-EGIJ26TM-1-wU_wPi.js → chunk-EGIJ26TM-DKd5cEgn.js} +2 -2
  57. package/dist/{chunk-EGIJ26TM-1-wU_wPi.js.map → chunk-EGIJ26TM-DKd5cEgn.js.map} +1 -1
  58. package/dist/{chunk-FMBD7UC4-7bd068zf.js → chunk-FMBD7UC4-1IxrpdPX.js} +2 -2
  59. package/dist/{chunk-FMBD7UC4-7bd068zf.js.map → chunk-FMBD7UC4-1IxrpdPX.js.map} +1 -1
  60. package/dist/{chunk-GEFDOKGD-bXEkwPrJ.js → chunk-GEFDOKGD-DGJJEGSm.js} +7 -7
  61. package/dist/{chunk-GEFDOKGD-bXEkwPrJ.js.map → chunk-GEFDOKGD-DGJJEGSm.js.map} +1 -1
  62. package/dist/{chunk-GLR3WWYH-GIQ55uMn.js → chunk-GLR3WWYH-BDwmgwCA.js} +8 -8
  63. package/dist/{chunk-GLR3WWYH-GIQ55uMn.js.map → chunk-GLR3WWYH-BDwmgwCA.js.map} +1 -1
  64. package/dist/{chunk-HHEYEP7N-BdiTBCvb.js → chunk-HHEYEP7N-DJ1b-gA8.js} +4 -4
  65. package/dist/{chunk-HHEYEP7N-BdiTBCvb.js.map → chunk-HHEYEP7N-DJ1b-gA8.js.map} +1 -1
  66. package/dist/{chunk-JSJVCQXG-p-BUVvps.js → chunk-JSJVCQXG-Do17yYig.js} +5 -5
  67. package/dist/{chunk-JSJVCQXG-p-BUVvps.js.map → chunk-JSJVCQXG-Do17yYig.js.map} +1 -1
  68. package/dist/{chunk-KX2RTZJC-DopwIbE1.js → chunk-KX2RTZJC-d9jFqUAY.js} +3 -3
  69. package/dist/{chunk-KX2RTZJC-DopwIbE1.js.map → chunk-KX2RTZJC-d9jFqUAY.js.map} +1 -1
  70. package/dist/{chunk-KYZI473N-4Y4_4kXL.js → chunk-KYZI473N-BXYCe83A.js} +9 -9
  71. package/dist/{chunk-KYZI473N-4Y4_4kXL.js.map → chunk-KYZI473N-BXYCe83A.js.map} +1 -1
  72. package/dist/{chunk-L3YUKLVL-U6LYvPh7.js → chunk-L3YUKLVL-Y5k8UNMf.js} +2 -2
  73. package/dist/{chunk-L3YUKLVL-U6LYvPh7.js.map → chunk-L3YUKLVL-Y5k8UNMf.js.map} +1 -1
  74. package/dist/{chunk-MX3YWQON-DnBlqD44.js → chunk-MX3YWQON-D43mcq1f.js} +2 -2
  75. package/dist/{chunk-MX3YWQON-DnBlqD44.js.map → chunk-MX3YWQON-D43mcq1f.js.map} +1 -1
  76. package/dist/{chunk-NQ4KR5QH-BSylMz0X.js → chunk-NQ4KR5QH-C0nWShNk.js} +7 -7
  77. package/dist/{chunk-NQ4KR5QH-BSylMz0X.js.map → chunk-NQ4KR5QH-C0nWShNk.js.map} +1 -1
  78. package/dist/{chunk-O4XLMI2P-BcKxBhcn.js → chunk-O4XLMI2P-DtGEm9QX.js} +12 -12
  79. package/dist/{chunk-O4XLMI2P-BcKxBhcn.js.map → chunk-O4XLMI2P-DtGEm9QX.js.map} +1 -1
  80. package/dist/{chunk-OZEHJAEY-D6S6KbwY.js → chunk-OZEHJAEY-BsQ56PV-.js} +2 -2
  81. package/dist/{chunk-OZEHJAEY-D6S6KbwY.js.map → chunk-OZEHJAEY-BsQ56PV-.js.map} +1 -1
  82. package/dist/{chunk-PQ6SQG4A-DPz_e-Es.js → chunk-PQ6SQG4A-Cpfc5F4u.js} +3 -3
  83. package/dist/{chunk-PQ6SQG4A-DPz_e-Es.js.map → chunk-PQ6SQG4A-Cpfc5F4u.js.map} +1 -1
  84. package/dist/{chunk-PU5JKC2W-CAfe4Tg3.js → chunk-PU5JKC2W-DNpn_Yik.js} +5 -5
  85. package/dist/{chunk-PU5JKC2W-CAfe4Tg3.js.map → chunk-PU5JKC2W-DNpn_Yik.js.map} +1 -1
  86. package/dist/{chunk-QZHKN3VN-DMkPzlbH.js → chunk-QZHKN3VN-kDNdTVLo.js} +2 -2
  87. package/dist/{chunk-QZHKN3VN-DMkPzlbH.js.map → chunk-QZHKN3VN-kDNdTVLo.js.map} +1 -1
  88. package/dist/{chunk-R5LLSJPH-C90VQC8y.js → chunk-R5LLSJPH-c1IfaK5D.js} +2 -2
  89. package/dist/{chunk-R5LLSJPH-C90VQC8y.js.map → chunk-R5LLSJPH-c1IfaK5D.js.map} +1 -1
  90. package/dist/{chunk-WL4C6EOR-B2OMxQLL.js → chunk-WL4C6EOR-BV-op7zg.js} +10 -10
  91. package/dist/{chunk-WL4C6EOR-B2OMxQLL.js.map → chunk-WL4C6EOR-BV-op7zg.js.map} +1 -1
  92. package/dist/{chunk-XIRO2GV7-D1_jT4ch.js → chunk-XIRO2GV7-Bv1hlNLi.js} +2 -2
  93. package/dist/{chunk-XIRO2GV7-D1_jT4ch.js.map → chunk-XIRO2GV7-Bv1hlNLi.js.map} +1 -1
  94. package/dist/{chunk-XPW4576I-DkznIIIK.js → chunk-XPW4576I-BqiPnb3d.js} +2 -2
  95. package/dist/{chunk-XPW4576I-DkznIIIK.js.map → chunk-XPW4576I-BqiPnb3d.js.map} +1 -1
  96. package/dist/{chunk-XZSTWKYB-BZB_wvbZ.js → chunk-XZSTWKYB-C7maKWEr.js} +6 -6
  97. package/dist/{chunk-XZSTWKYB-BZB_wvbZ.js.map → chunk-XZSTWKYB-C7maKWEr.js.map} +1 -1
  98. package/dist/{chunk-YBOYWFTD-DVqQ1pen.js → chunk-YBOYWFTD-DkjEOcgZ.js} +4 -4
  99. package/dist/{chunk-YBOYWFTD-DVqQ1pen.js.map → chunk-YBOYWFTD-DkjEOcgZ.js.map} +1 -1
  100. package/dist/classDiagram-VBA2DB6C-DZfC0xPM.js +31 -0
  101. package/dist/{classDiagram-VBA2DB6C-DFfohpM0.js.map → classDiagram-VBA2DB6C-DZfC0xPM.js.map} +1 -1
  102. package/dist/classDiagram-v2-RAHNMMFH-CtWRD1ax.js +31 -0
  103. package/dist/{classDiagram-v2-RAHNMMFH-kUMm28FB.js.map → classDiagram-v2-RAHNMMFH-CtWRD1ax.js.map} +1 -1
  104. package/dist/{clone-DxI1nSTP.js → clone-CliVdNc8.js} +2 -2
  105. package/dist/{clone-DxI1nSTP.js.map → clone-CliVdNc8.js.map} +1 -1
  106. package/dist/{component-x2UxdKEC.js → component-C1Jiz1Ki.js} +1 -1
  107. package/dist/{component-x2UxdKEC.js.map → component-C1Jiz1Ki.js.map} +1 -1
  108. package/dist/components/index.js +3 -3
  109. package/dist/components/theme/accent-switcher.d.ts +2 -0
  110. package/dist/components/theme/accent-switcher.d.ts.map +1 -1
  111. package/dist/components/theme/accent-switcher.js +5 -1
  112. package/dist/components/theme/accent-switcher.js.map +1 -1
  113. package/dist/components/theme/density-switcher.d.ts +2 -0
  114. package/dist/components/theme/density-switcher.d.ts.map +1 -1
  115. package/dist/components/theme/density-switcher.js +5 -1
  116. package/dist/components/theme/density-switcher.js.map +1 -1
  117. package/dist/components/theme/font-stack-picker.d.ts +2 -0
  118. package/dist/components/theme/font-stack-picker.d.ts.map +1 -1
  119. package/dist/components/theme/font-stack-picker.js +5 -1
  120. package/dist/components/theme/font-stack-picker.js.map +1 -1
  121. package/dist/components/theme/glass-slider.d.ts +2 -0
  122. package/dist/components/theme/glass-slider.d.ts.map +1 -1
  123. package/dist/components/theme/glass-slider.js +21 -15
  124. package/dist/components/theme/glass-slider.js.map +1 -1
  125. package/dist/components/theme/icon-gallery-browser.d.ts +16 -0
  126. package/dist/components/theme/icon-gallery-browser.d.ts.map +1 -0
  127. package/dist/components/theme/icon-set-picker.d.ts +2 -0
  128. package/dist/components/theme/icon-set-picker.d.ts.map +1 -1
  129. package/dist/components/theme/icon-set-picker.js +29 -24
  130. package/dist/components/theme/icon-set-picker.js.map +1 -1
  131. package/dist/components/theme/icon-usage-matrix.d.ts +2 -0
  132. package/dist/components/theme/icon-usage-matrix.d.ts.map +1 -1
  133. package/dist/components/theme/icon-usage-matrix.js +11 -7
  134. package/dist/components/theme/icon-usage-matrix.js.map +1 -1
  135. package/dist/components/theme/index.js +3 -3
  136. package/dist/components/theme/radius-slider.d.ts +2 -0
  137. package/dist/components/theme/radius-slider.d.ts.map +1 -1
  138. package/dist/components/theme/radius-slider.js +17 -12
  139. package/dist/components/theme/radius-slider.js.map +1 -1
  140. package/dist/components/theme/theme-preset-grid.d.ts +2 -0
  141. package/dist/components/theme/theme-preset-grid.d.ts.map +1 -1
  142. package/dist/components/theme/theme-preset-grid.js +6 -2
  143. package/dist/components/theme/theme-preset-grid.js.map +1 -1
  144. package/dist/components/theme/theme-preview-tile.d.ts +2 -0
  145. package/dist/components/theme/theme-preview-tile.d.ts.map +1 -1
  146. package/dist/components/theme/theme-preview-tile.js +9 -5
  147. package/dist/components/theme/theme-preview-tile.js.map +1 -1
  148. package/dist/components/theme/theme-studio.d.ts +4 -0
  149. package/dist/components/theme/theme-studio.d.ts.map +1 -1
  150. package/dist/components/theme/theme-studio.js +2 -93
  151. package/dist/components/theme/theme-switcher.d.ts +2 -0
  152. package/dist/components/theme/theme-switcher.d.ts.map +1 -1
  153. package/dist/components/theme/theme-switcher.js +5 -1
  154. package/dist/components/theme/theme-switcher.js.map +1 -1
  155. package/dist/composites/metrics-card.js +1 -1
  156. package/dist/composites/per-case-stats-table.js +1 -1
  157. package/dist/composites/run-monitor.js +2 -2
  158. package/dist/{copy-Hv8btfHH.js → copy-CP6UzCoj.js} +2 -2
  159. package/dist/{copy-Hv8btfHH.js.map → copy-CP6UzCoj.js.map} +1 -1
  160. package/dist/{cose-bilkent-S5V4N54A-DSIl5_e8.js → cose-bilkent-S5V4N54A-DxM02fly.js} +4 -4
  161. package/dist/{cose-bilkent-S5V4N54A-DSIl5_e8.js.map → cose-bilkent-S5V4N54A-DxM02fly.js.map} +1 -1
  162. package/dist/{createLucideIcon-wKpAnzBe.js → createLucideIcon-Cfb5CZJx.js} +1 -1
  163. package/dist/{createLucideIcon-wKpAnzBe.js.map → createLucideIcon-Cfb5CZJx.js.map} +1 -1
  164. package/dist/{cytoscape.esm-klxrH6H1.js → cytoscape.esm-2vKMh7AJ.js} +1 -1
  165. package/dist/{cytoscape.esm-klxrH6H1.js.map → cytoscape.esm-2vKMh7AJ.js.map} +1 -1
  166. package/dist/{dagre-Bm7BZZKB.js → dagre-BqC9mhMk.js} +7 -7
  167. package/dist/{dagre-Bm7BZZKB.js.map → dagre-BqC9mhMk.js.map} +1 -1
  168. package/dist/{dagre-KLK3FWXG-B0rbfsw9.js → dagre-KLK3FWXG-DTKcsol6.js} +15 -15
  169. package/dist/{dagre-KLK3FWXG-B0rbfsw9.js.map → dagre-KLK3FWXG-DTKcsol6.js.map} +1 -1
  170. package/dist/{defaultLocale-Cql_qCPq.js → defaultLocale-PLHpRrsr.js} +1 -1
  171. package/dist/{defaultLocale-Cql_qCPq.js.map → defaultLocale-PLHpRrsr.js.map} +1 -1
  172. package/dist/{diagram-E7M64L7V-DWS26Zbm.js → diagram-E7M64L7V-Co7O3gub.js} +12 -12
  173. package/dist/{diagram-E7M64L7V-DWS26Zbm.js.map → diagram-E7M64L7V-Co7O3gub.js.map} +1 -1
  174. package/dist/{diagram-IFDJBPK2--zOQrB5O.js → diagram-IFDJBPK2-D-Enf1mK.js} +7 -7
  175. package/dist/{diagram-IFDJBPK2--zOQrB5O.js.map → diagram-IFDJBPK2-D-Enf1mK.js.map} +1 -1
  176. package/dist/{diagram-P4PSJMXO-DjNveg1t.js → diagram-P4PSJMXO-O8g_RIkM.js} +7 -7
  177. package/dist/{diagram-P4PSJMXO-DjNveg1t.js.map → diagram-P4PSJMXO-O8g_RIkM.js.map} +1 -1
  178. package/dist/display/avatar/index.js +1 -1
  179. package/dist/display/badge/index.js +1 -1
  180. package/dist/display/index.js +3 -3
  181. package/dist/display/markdown-viewer/index.js +1 -1
  182. package/dist/{dist-Dq1IoZXt.js → dist-B-HCSak9.js} +13 -13
  183. package/dist/{dist-Dq1IoZXt.js.map → dist-B-HCSak9.js.map} +1 -1
  184. package/dist/{dist-CbqFryer.js → dist-BhO08NBU.js} +5 -5
  185. package/dist/{dist-CbqFryer.js.map → dist-BhO08NBU.js.map} +1 -1
  186. package/dist/{dist-D0fg6pif.js → dist-BlNMcPtC.js} +2 -2
  187. package/dist/{dist-D0fg6pif.js.map → dist-BlNMcPtC.js.map} +1 -1
  188. package/dist/{dist-CSE7pO-4.js → dist-BrNloUiz.js} +1 -1
  189. package/dist/{dist-CSE7pO-4.js.map → dist-BrNloUiz.js.map} +1 -1
  190. package/dist/{dist-CcNjOWyQ.js → dist-Br_I_YIY.js} +2 -2
  191. package/dist/{dist-CcNjOWyQ.js.map → dist-Br_I_YIY.js.map} +1 -1
  192. package/dist/{dist-D0hHNX_3.js → dist-CDa1xTf4.js} +9 -9
  193. package/dist/{dist-D0hHNX_3.js.map → dist-CDa1xTf4.js.map} +1 -1
  194. package/dist/{dist-BCCeHAQm.js → dist-CWPamCJD.js} +2 -2
  195. package/dist/{dist-BCCeHAQm.js.map → dist-CWPamCJD.js.map} +1 -1
  196. package/dist/{dist-CVCn7F_m.js → dist-CetkIu6m.js} +1 -1
  197. package/dist/{dist-CVCn7F_m.js.map → dist-CetkIu6m.js.map} +1 -1
  198. package/dist/{dist-koa_pEtu.js → dist-CjZz16VT.js} +2 -2
  199. package/dist/{dist-koa_pEtu.js.map → dist-CjZz16VT.js.map} +1 -1
  200. package/dist/{dist-D5o6xae2.js → dist-DDlxLS_M.js} +2 -2
  201. package/dist/{dist-D5o6xae2.js.map → dist-DDlxLS_M.js.map} +1 -1
  202. package/dist/{dist-Cao8o5bZ.js → dist-DFW2ymX5.js} +1 -1
  203. package/dist/{dist-Cao8o5bZ.js.map → dist-DFW2ymX5.js.map} +1 -1
  204. package/dist/{dist-Dm7Xaded.js → dist-DHTh2jaC.js} +1 -1
  205. package/dist/{dist-Dm7Xaded.js.map → dist-DHTh2jaC.js.map} +1 -1
  206. package/dist/{dist-BBVMDH9A.js → dist-DN5XnB8I.js} +4 -4
  207. package/dist/{dist-BBVMDH9A.js.map → dist-DN5XnB8I.js.map} +1 -1
  208. package/dist/{dist-C0wG5dwG.js → dist-DYQiYO9a.js} +2 -2
  209. package/dist/{dist-C0wG5dwG.js.map → dist-DYQiYO9a.js.map} +1 -1
  210. package/dist/{dist-RmXz0NYF.js → dist-GA_FAY5r.js} +1 -1
  211. package/dist/{dist-RmXz0NYF.js.map → dist-GA_FAY5r.js.map} +1 -1
  212. package/dist/{dist-cMlzVrN6.js → dist-M-TigQUP.js} +3 -3
  213. package/dist/{dist-cMlzVrN6.js.map → dist-M-TigQUP.js.map} +1 -1
  214. package/dist/{dist-DxtM7vvP.js → dist-QzxcNtrD.js} +3 -3
  215. package/dist/{dist-DxtM7vvP.js.map → dist-QzxcNtrD.js.map} +1 -1
  216. package/dist/{dist-CTlQcJNK.js → dist-W53Bo1BJ.js} +1 -1
  217. package/dist/{dist-CTlQcJNK.js.map → dist-W53Bo1BJ.js.map} +1 -1
  218. package/dist/{dist-B1veE5DO.js → dist-bUQfhez2.js} +8 -8
  219. package/dist/{dist-B1veE5DO.js.map → dist-bUQfhez2.js.map} +1 -1
  220. package/dist/{dist-DGayZ3ok2.js → dist-e5OOjxMa.js} +2 -2
  221. package/dist/dist-e5OOjxMa.js.map +1 -0
  222. package/dist/{dist-CpMqmV-i.js → dist-r_mYhsAH.js} +2 -2
  223. package/dist/{dist-CpMqmV-i.js.map → dist-r_mYhsAH.js.map} +1 -1
  224. package/dist/{dropdown-menu-ChWWguC6.js → dropdown-menu-CxFMDZns.js} +7 -7
  225. package/dist/{dropdown-menu-ChWWguC6.js.map → dropdown-menu-CxFMDZns.js.map} +1 -1
  226. package/dist/{ellipsis-QzwbUxFu.js → ellipsis-CLIG9-2m.js} +2 -2
  227. package/dist/{ellipsis-QzwbUxFu.js.map → ellipsis-CLIG9-2m.js.map} +1 -1
  228. package/dist/{erDiagram-INFDFZHY-Ccs6kW39.js → erDiagram-INFDFZHY-C42JeR9I.js} +15 -15
  229. package/dist/{erDiagram-INFDFZHY-Ccs6kW39.js.map → erDiagram-INFDFZHY-C42JeR9I.js.map} +1 -1
  230. package/dist/{es2015-Bv2aaatg.js → es2015-CJnm4_FQ.js} +4 -4
  231. package/dist/{es2015-Bv2aaatg.js.map → es2015-CJnm4_FQ.js.map} +1 -1
  232. package/dist/{flowDiagram-PKNHOUZH-BFdCj6uy.js → flowDiagram-PKNHOUZH-DInJjOz3.js} +18 -18
  233. package/dist/{flowDiagram-PKNHOUZH-BFdCj6uy.js.map → flowDiagram-PKNHOUZH-DInJjOz3.js.map} +1 -1
  234. package/dist/{ganttDiagram-A5KZAMGK-11X4ChEO.js → ganttDiagram-A5KZAMGK-Dgp-4Yss.js} +8 -8
  235. package/dist/{ganttDiagram-A5KZAMGK-11X4ChEO.js.map → ganttDiagram-A5KZAMGK-Dgp-4Yss.js.map} +1 -1
  236. package/dist/gitGraph-HDMCJU4V-D_QsK6Rt.js +3 -0
  237. package/dist/{gitGraphDiagram-K3NZZRJ6-BaZX5GA5.js → gitGraphDiagram-K3NZZRJ6-Dr_X0dND.js} +8 -8
  238. package/dist/{gitGraphDiagram-K3NZZRJ6-BaZX5GA5.js.map → gitGraphDiagram-K3NZZRJ6-Dr_X0dND.js.map} +1 -1
  239. package/dist/{graphlib-DmFENmkJ.js → graphlib-ecencZTG.js} +4 -4
  240. package/dist/{graphlib-DmFENmkJ.js.map → graphlib-ecencZTG.js.map} +1 -1
  241. package/dist/index.d.ts +1 -0
  242. package/dist/index.d.ts.map +1 -1
  243. package/dist/index.js +121 -121
  244. package/dist/info-3K5VOQVL-BbLiZXwn.js +3 -0
  245. package/dist/{infoDiagram-LFFYTUFH-iswGOIAk.js → infoDiagram-LFFYTUFH-DajJJRvc.js} +5 -5
  246. package/dist/{infoDiagram-LFFYTUFH-iswGOIAk.js.map → infoDiagram-LFFYTUFH-DajJJRvc.js.map} +1 -1
  247. package/dist/{init-Bdvvvy1Z.js → init-DcLTaNW1.js} +1 -1
  248. package/dist/{init-Bdvvvy1Z.js.map → init-DcLTaNW1.js.map} +1 -1
  249. package/dist/{input-DwHjxF_w.js → input-BrmncNsd.js} +1 -1
  250. package/dist/{input-DwHjxF_w.js.map → input-BrmncNsd.js.map} +1 -1
  251. package/dist/{interactive-C6OMqZhG.js → interactive-CXfIDzyh.js} +1 -1
  252. package/dist/{interactive-C6OMqZhG.js.map → interactive-CXfIDzyh.js.map} +1 -1
  253. package/dist/{isArrayLikeObject-uEhZQuCW.js → isArrayLikeObject-Bjsxaqj7.js} +1 -1
  254. package/dist/{isArrayLikeObject-uEhZQuCW.js.map → isArrayLikeObject-Bjsxaqj7.js.map} +1 -1
  255. package/dist/{isEmpty-SB7gHWzg.js → isEmpty-CeZZUVts.js} +2 -2
  256. package/dist/{isEmpty-SB7gHWzg.js.map → isEmpty-CeZZUVts.js.map} +1 -1
  257. package/dist/{ishikawaDiagram-PHBUUO56-BYrA8GRt.js → ishikawaDiagram-PHBUUO56-qHBJm2LT.js} +6 -6
  258. package/dist/{ishikawaDiagram-PHBUUO56-BYrA8GRt.js.map → ishikawaDiagram-PHBUUO56-qHBJm2LT.js.map} +1 -1
  259. package/dist/{journeyDiagram-4ABVD52K-BlCQNVun.js → journeyDiagram-4ABVD52K-PgfYdoDM.js} +7 -7
  260. package/dist/{journeyDiagram-4ABVD52K-BlCQNVun.js.map → journeyDiagram-4ABVD52K-PgfYdoDM.js.map} +1 -1
  261. package/dist/{kanban-definition-K7BYSVSG-85hLaVO4.js → kanban-definition-K7BYSVSG-DFRT8j7A.js} +11 -11
  262. package/dist/{kanban-definition-K7BYSVSG-85hLaVO4.js.map → kanban-definition-K7BYSVSG-DFRT8j7A.js.map} +1 -1
  263. package/dist/{katex-DyctUUDD.js → katex-BZdHnXin.js} +1 -1
  264. package/dist/{katex-DyctUUDD.js.map → katex-BZdHnXin.js.map} +1 -1
  265. package/dist/{label-DaoC8KCo.js → label-D_TX0q0F.js} +4 -4
  266. package/dist/{label-DaoC8KCo.js.map → label-D_TX0q0F.js.map} +1 -1
  267. package/dist/layout-DJ2E8nU0.js +135 -0
  268. package/dist/layout-DJ2E8nU0.js.map +1 -0
  269. package/dist/{line-xLJn8e8J.js → line-Cq1AZT4f.js} +4 -4
  270. package/dist/{line-xLJn8e8J.js.map → line-Cq1AZT4f.js.map} +1 -1
  271. package/dist/{linear-BePtLBEt.js → linear-BnJD01Xn.js} +5 -5
  272. package/dist/{linear-BePtLBEt.js.map → linear-BnJD01Xn.js.map} +1 -1
  273. package/dist/{markdown-viewer-DrwjEcXp.js → markdown-viewer-CBRQVRMp.js} +1 -1
  274. package/dist/{markdown-viewer-DrwjEcXp.js.map → markdown-viewer-CBRQVRMp.js.map} +1 -1
  275. package/dist/{math--xT1IZMK.js → math-D4gdAuwG.js} +1 -1
  276. package/dist/{math--xT1IZMK.js.map → math-D4gdAuwG.js.map} +1 -1
  277. package/dist/{menubar-CZie7LCj.js → menubar-lQZ-0ckw.js} +13 -13
  278. package/dist/{menubar-CZie7LCj.js.map → menubar-lQZ-0ckw.js.map} +1 -1
  279. package/dist/{mermaid-parser.core-Bd7Ghv5c.js → mermaid-parser.core-Dz5qv4CI.js} +16 -16
  280. package/dist/{mermaid-parser.core-Bd7Ghv5c.js.map → mermaid-parser.core-Dz5qv4CI.js.map} +1 -1
  281. package/dist/{mermaid.core-beWmNAWY.js → mermaid.core-DTiIXVKa.js} +44 -44
  282. package/dist/{mermaid.core-beWmNAWY.js.map → mermaid.core-DTiIXVKa.js.map} +1 -1
  283. package/dist/{mindmap-definition-YRQLILUH-CNBsYwDI.js → mindmap-definition-YRQLILUH-D95OPRMh.js} +13 -13
  284. package/dist/{mindmap-definition-YRQLILUH-CNBsYwDI.js.map → mindmap-definition-YRQLILUH-D95OPRMh.js.map} +1 -1
  285. package/dist/{navigation-menu-Db2QQ70P.js → navigation-menu-BpZTlEU0.js} +14 -14
  286. package/dist/{navigation-menu-Db2QQ70P.js.map → navigation-menu-BpZTlEU0.js.map} +1 -1
  287. package/dist/{ordinal-BKo-UFaW.js → ordinal-CC9tfh_g.js} +2 -2
  288. package/dist/{ordinal-BKo-UFaW.js.map → ordinal-CC9tfh_g.js.map} +1 -1
  289. package/dist/packet-RMMSAZCW-D72DRs1N.js +3 -0
  290. package/dist/{pagination-BmFjVnmV.js → pagination-CCjNavtQ.js} +5 -5
  291. package/dist/{pagination-BmFjVnmV.js.map → pagination-CCjNavtQ.js.map} +1 -1
  292. package/dist/{path-Z-HG_8i_.js → path-y0uQCOMW.js} +1 -1
  293. package/dist/{path-Z-HG_8i_.js.map → path-y0uQCOMW.js.map} +1 -1
  294. package/dist/pie-UPGHQEXC-C8RDLrEi.js +3 -0
  295. package/dist/{pieDiagram-SKSYHLDU-BMrGgUAv.js → pieDiagram-SKSYHLDU-BREEn_Sk.js} +12 -12
  296. package/dist/{pieDiagram-SKSYHLDU-BMrGgUAv.js.map → pieDiagram-SKSYHLDU-BREEn_Sk.js.map} +1 -1
  297. package/dist/primitives/button/index.js +1 -1
  298. package/dist/primitives/index.js +3 -3
  299. package/dist/primitives/input/index.js +1 -1
  300. package/dist/primitives/live-log-tail.js +1 -1
  301. package/dist/primitives/phase-progress.js +1 -1
  302. package/dist/primitives/sse-live-badge.js +1 -1
  303. package/dist/primitives/toggle/index.js +1 -1
  304. package/dist/primitives/yaml-override-editor.js +1 -1
  305. package/dist/primitives-BzQ6EvIx.js +380 -0
  306. package/dist/primitives-BzQ6EvIx.js.map +1 -0
  307. package/dist/{quadrantDiagram-337W2JSQ-kFO50yPy.js → quadrantDiagram-337W2JSQ-CcKc-h2o.js} +5 -5
  308. package/dist/{quadrantDiagram-337W2JSQ-kFO50yPy.js.map → quadrantDiagram-337W2JSQ-CcKc-h2o.js.map} +1 -1
  309. package/dist/radar-KQ55EAFF-DhmvjiyN.js +3 -0
  310. package/dist/{radio-group-Dum8cfXo.js → radio-group-8GO9_jRN.js} +10 -10
  311. package/dist/{radio-group-Dum8cfXo.js.map → radio-group-8GO9_jRN.js.map} +1 -1
  312. package/dist/react/app-switcher.js +1 -1
  313. package/dist/react/brand.js +1 -1
  314. package/dist/react/consent/preferences.js +1 -1
  315. package/dist/react/editors/code-editor.js +1 -1
  316. package/dist/react/editors/diff-viewer.js +1 -1
  317. package/dist/react/editors/json-viewer.js +1 -1
  318. package/dist/react/editors/log-viewer.js +1 -1
  319. package/dist/react/editors/yaml-editor.js +1 -1
  320. package/dist/react/feedback/notification-banner.js +2 -2
  321. package/dist/react/hooks/useSSE.js +1 -1
  322. package/dist/react/hooks/useStorage.js +1 -1
  323. package/dist/react/layout/app-shell.js +1 -1
  324. package/dist/react/layout/browser-layout.d.ts +12 -0
  325. package/dist/react/layout/browser-layout.d.ts.map +1 -0
  326. package/dist/react/layout/detail-header.d.ts +13 -0
  327. package/dist/react/layout/detail-header.d.ts.map +1 -0
  328. package/dist/react/layout/index.d.ts +4 -0
  329. package/dist/react/layout/index.d.ts.map +1 -1
  330. package/dist/react/layout/index.js +3 -2
  331. package/dist/react/layout/page-frame.d.ts +11 -0
  332. package/dist/react/layout/page-frame.d.ts.map +1 -0
  333. package/dist/react/layout/page-header.js +1 -1
  334. package/dist/react/layout/sub-nav.d.ts +15 -0
  335. package/dist/react/layout/sub-nav.d.ts.map +1 -0
  336. package/dist/react/primitives/alert-dialog.js +1 -1
  337. package/dist/react/primitives/alert.js +3 -3
  338. package/dist/react/primitives/animated-counter.js +1 -1
  339. package/dist/react/primitives/aspect-ratio.js +1 -1
  340. package/dist/react/primitives/attack-path.d.ts +1 -1
  341. package/dist/react/primitives/attack-path.js +2 -2
  342. package/dist/react/primitives/avatar.js +2 -2
  343. package/dist/react/primitives/badge.d.ts +1 -1
  344. package/dist/react/primitives/badge.js +3 -3
  345. package/dist/react/primitives/breadcrumb.js +3 -3
  346. package/dist/react/primitives/button.js +3 -3
  347. package/dist/react/primitives/calendar.js +1 -1
  348. package/dist/react/primitives/card.js +1 -1
  349. package/dist/react/primitives/carousel.js +1 -1
  350. package/dist/react/primitives/chart-area.js +1 -1
  351. package/dist/react/primitives/chart-bar.js +1 -1
  352. package/dist/react/primitives/chart-candlestick.js +1 -1
  353. package/dist/react/primitives/chart-frame.d.ts +14 -0
  354. package/dist/react/primitives/chart-frame.d.ts.map +1 -0
  355. package/dist/react/primitives/chart-funnel.js +1 -1
  356. package/dist/react/primitives/chart-gauge.js +1 -1
  357. package/dist/react/primitives/chart-heatmap.js +1 -1
  358. package/dist/react/primitives/chart-line.js +1 -1
  359. package/dist/react/primitives/chart-pie.js +1 -1
  360. package/dist/react/primitives/chart-radar.js +1 -1
  361. package/dist/react/primitives/chart-sankey.js +1 -1
  362. package/dist/react/primitives/chart-scatter.js +1 -1
  363. package/dist/react/primitives/chart-sparkline.js +1 -1
  364. package/dist/react/primitives/chart-treemap.js +1 -1
  365. package/dist/react/primitives/chart-waterfall.js +1 -1
  366. package/dist/react/primitives/chat-drawer.d.ts +13 -0
  367. package/dist/react/primitives/chat-drawer.d.ts.map +1 -0
  368. package/dist/react/primitives/chat-input.d.ts +10 -0
  369. package/dist/react/primitives/chat-input.d.ts.map +1 -0
  370. package/dist/react/primitives/checkbox.js +1 -1
  371. package/dist/react/primitives/code-block.js +3 -3
  372. package/dist/react/primitives/code-viewer.js +3 -3
  373. package/dist/react/primitives/collapsible.js +3 -3
  374. package/dist/react/primitives/color-picker.js +1 -1
  375. package/dist/react/primitives/context-menu.js +1 -1
  376. package/dist/react/primitives/copy-button.js +4 -4
  377. package/dist/react/primitives/cron-editor.js +1 -1
  378. package/dist/react/primitives/cvss-badge.d.ts +1 -1
  379. package/dist/react/primitives/cvss-badge.js +2 -2
  380. package/dist/react/primitives/dashboard-metric-card.d.ts +18 -0
  381. package/dist/react/primitives/dashboard-metric-card.d.ts.map +1 -0
  382. package/dist/react/primitives/data-field.d.ts +13 -0
  383. package/dist/react/primitives/data-field.d.ts.map +1 -0
  384. package/dist/react/primitives/data-grid.js +4 -4
  385. package/dist/react/primitives/data-table.js +2 -2
  386. package/dist/react/primitives/date-picker.js +1 -1
  387. package/dist/react/primitives/detection-status.d.ts +1 -1
  388. package/dist/react/primitives/detection-status.js +2 -2
  389. package/dist/react/primitives/dialog.js +3 -3
  390. package/dist/react/primitives/drawer.js +3 -3
  391. package/dist/react/primitives/dropdown-menu.js +1 -1
  392. package/dist/react/primitives/empty-state.js +1 -1
  393. package/dist/react/primitives/field.js +1 -1
  394. package/dist/react/primitives/file-tree.js +1 -1
  395. package/dist/react/primitives/flow-diagram.js +1 -1
  396. package/dist/react/primitives/heatmap-legend.js +1 -1
  397. package/dist/react/primitives/heatmap-toolbar.js +2 -2
  398. package/dist/react/primitives/hover-card.js +1 -1
  399. package/dist/react/primitives/index.d.ts +8 -0
  400. package/dist/react/primitives/index.d.ts.map +1 -1
  401. package/dist/react/primitives/index.js +84 -83
  402. package/dist/react/primitives/input.js +1 -1
  403. package/dist/react/primitives/json-path-browser.js +1 -1
  404. package/dist/react/primitives/kanban.js +1 -1
  405. package/dist/react/primitives/kbd.js +1 -1
  406. package/dist/react/primitives/label.js +1 -1
  407. package/dist/react/primitives/map.js +1 -1
  408. package/dist/react/primitives/markdown-viewer.js +0 -0
  409. package/dist/react/primitives/menubar.js +1 -1
  410. package/dist/react/primitives/mermaid-diagram.js +1 -1
  411. package/dist/react/primitives/metric-tile.js +1 -1
  412. package/dist/react/primitives/mitre-matrix.d.ts +1 -1
  413. package/dist/react/primitives/mitre-matrix.js +2 -2
  414. package/dist/react/primitives/modal.js +3 -3
  415. package/dist/react/primitives/navigation-menu.js +1 -1
  416. package/dist/react/primitives/network-graph.js +1 -1
  417. package/dist/react/primitives/notification-center.js +4 -4
  418. package/dist/react/primitives/notification-center.js.map +1 -1
  419. package/dist/react/primitives/pagination.js +1 -1
  420. package/dist/react/primitives/popover.js +1 -1
  421. package/dist/react/primitives/progress.js +2 -2
  422. package/dist/react/primitives/query-boundary.d.ts +15 -0
  423. package/dist/react/primitives/query-boundary.d.ts.map +1 -0
  424. package/dist/react/primitives/radio-group.js +1 -1
  425. package/dist/react/primitives/rule-editor.js +1 -1
  426. package/dist/react/primitives/score-ring.d.ts +13 -0
  427. package/dist/react/primitives/score-ring.d.ts.map +1 -0
  428. package/dist/react/primitives/scroll-area.js +1 -1
  429. package/dist/react/primitives/search.js +3 -3
  430. package/dist/react/primitives/section-panel.d.ts +11 -0
  431. package/dist/react/primitives/section-panel.d.ts.map +1 -0
  432. package/dist/react/primitives/select.js +1 -1
  433. package/dist/react/primitives/separator.js +1 -1
  434. package/dist/react/primitives/severity-indicator.d.ts +1 -1
  435. package/dist/react/primitives/severity-indicator.js +2 -2
  436. package/dist/react/primitives/sheet.js +3 -3
  437. package/dist/react/primitives/skeleton.js +1 -1
  438. package/dist/react/primitives/slide-panel.js +2 -2
  439. package/dist/react/primitives/slider.js +1 -1
  440. package/dist/react/primitives/spinner.js +1 -1
  441. package/dist/react/primitives/split-pane.js +1 -1
  442. package/dist/react/primitives/stat-card.js +2 -2
  443. package/dist/react/primitives/status-bar.js +1 -1
  444. package/dist/react/primitives/status-dot.js +1 -1
  445. package/dist/react/primitives/stepper.js +3 -3
  446. package/dist/react/primitives/switch.js +1 -1
  447. package/dist/react/primitives/table.js +1 -1
  448. package/dist/react/primitives/tabs.js +1 -1
  449. package/dist/react/primitives/tag-input.js +1 -1
  450. package/dist/react/primitives/terminal.js +1 -1
  451. package/dist/react/primitives/textarea.js +1 -1
  452. package/dist/react/primitives/timeline.js +1 -1
  453. package/dist/react/primitives/toast.js +1 -1
  454. package/dist/react/primitives/toggle.js +1 -1
  455. package/dist/react/primitives/tooltip.js +1 -1
  456. package/dist/react/primitives/tree-view.js +2 -2
  457. package/dist/react/primitives/typography.js +1 -1
  458. package/dist/react/primitives/uptime-bar.js +1 -1
  459. package/dist/react/primitives/vulnerability-card.d.ts +1 -1
  460. package/dist/react/primitives/vulnerability-card.js +2 -2
  461. package/dist/react/sidebar.js +2 -2
  462. package/dist/react/theme-studio.js +1 -1
  463. package/dist/react/theme-toggle.js +1 -1
  464. package/dist/react/topology.js +1 -1
  465. package/dist/react.js +103 -103
  466. package/dist/{requirementDiagram-Z7DCOOCP-D2Oxfw6G.js → requirementDiagram-Z7DCOOCP-aPcaPduF.js} +13 -13
  467. package/dist/{requirementDiagram-Z7DCOOCP-D2Oxfw6G.js.map → requirementDiagram-Z7DCOOCP-aPcaPduF.js.map} +1 -1
  468. package/dist/{rough.esm-Czyj4U3Q.js → rough.esm-C9rQ9YkE.js} +1 -1
  469. package/dist/{rough.esm-Czyj4U3Q.js.map → rough.esm-C9rQ9YkE.js.map} +1 -1
  470. package/dist/{sankeyDiagram-WA2Y5GQK-q1_lwNBY.js → sankeyDiagram-WA2Y5GQK-CO_lUqQX.js} +5 -5
  471. package/dist/{sankeyDiagram-WA2Y5GQK-q1_lwNBY.js.map → sankeyDiagram-WA2Y5GQK-CO_lUqQX.js.map} +1 -1
  472. package/dist/{scroll-area-CR1iK8Af.js → scroll-area-C_oeG0js.js} +8 -8
  473. package/dist/{scroll-area-CR1iK8Af.js.map → scroll-area-C_oeG0js.js.map} +1 -1
  474. package/dist/{search-CrxnZfZ5.js → search-Cu20LdaQ.js} +2 -2
  475. package/dist/{search-CrxnZfZ5.js.map → search-Cu20LdaQ.js.map} +1 -1
  476. package/dist/security/index.d.ts +2 -0
  477. package/dist/security/index.d.ts.map +1 -1
  478. package/dist/security/index.js +7 -6
  479. package/dist/security/mitre-data.d.ts +38 -0
  480. package/dist/security/mitre-data.d.ts.map +1 -0
  481. package/dist/security-AzmGrY2-.js +77 -0
  482. package/dist/security-AzmGrY2-.js.map +1 -0
  483. package/dist/{select-BX7KT3VP.js → select-Bc7Gn3Oa.js} +19 -19
  484. package/dist/{select-BX7KT3VP.js.map → select-Bc7Gn3Oa.js.map} +1 -1
  485. package/dist/{separator-C6KfB7ww.js → separator-C-OWzLst.js} +3 -3
  486. package/dist/{separator-C6KfB7ww.js.map → separator-C-OWzLst.js.map} +1 -1
  487. package/dist/{sequenceDiagram-2WXFIKYE-BCEaH0s_.js → sequenceDiagram-2WXFIKYE-D7Vh1Zld.js} +9 -9
  488. package/dist/{sequenceDiagram-2WXFIKYE-BCEaH0s_.js.map → sequenceDiagram-2WXFIKYE-D7Vh1Zld.js.map} +1 -1
  489. package/dist/{series-DMc2ZYyj.js → series-DrBALkNS.js} +2 -2
  490. package/dist/{series-DMc2ZYyj.js.map → series-DrBALkNS.js.map} +1 -1
  491. package/dist/services/index.js +2 -2
  492. package/dist/services/sse-react.js +1 -1
  493. package/dist/services/sse.js +1 -1
  494. package/dist/services/theme-engine/engine.d.ts.map +1 -1
  495. package/dist/services/theme-engine/fonts.d.ts.map +1 -1
  496. package/dist/services/theme-engine/icons.d.ts.map +1 -1
  497. package/dist/services/theme-engine/index.js +120 -48
  498. package/dist/services/theme-engine/index.js.map +1 -1
  499. package/dist/services/theme-engine/test-helpers.d.ts +13 -0
  500. package/dist/services/theme-engine/test-helpers.d.ts.map +1 -0
  501. package/dist/services/toast-react.js +2 -2
  502. package/dist/sidebar/index.js +1 -1
  503. package/dist/{slider-CLgdcoKC.js → slider-CJoWbXQt.js} +10 -10
  504. package/dist/{slider-CLgdcoKC.js.map → slider-CJoWbXQt.js.map} +1 -1
  505. package/dist/{src-hxErHTV1.js → src-BhNgmpel.js} +2 -2
  506. package/dist/{src-hxErHTV1.js.map → src-BhNgmpel.js.map} +1 -1
  507. package/dist/{src-BEYP07TO.js → src-D1EMXotX.js} +1 -1
  508. package/dist/{src-BEYP07TO.js.map → src-D1EMXotX.js.map} +1 -1
  509. package/dist/{sse-D0HLjufB.js → sse-DCaj9UFJ.js} +1 -1
  510. package/dist/{sse-D0HLjufB.js.map → sse-DCaj9UFJ.js.map} +1 -1
  511. package/dist/{stateDiagram-RAJIS63D-B-Mu-_BR.js → stateDiagram-RAJIS63D-DdiY5cf3.js} +18 -18
  512. package/dist/{stateDiagram-RAJIS63D-B-Mu-_BR.js.map → stateDiagram-RAJIS63D-DdiY5cf3.js.map} +1 -1
  513. package/dist/stateDiagram-v2-FVOUBMTO-CAWy0Pkh.js +29 -0
  514. package/dist/{stateDiagram-v2-FVOUBMTO-Cnp2uGxd.js.map → stateDiagram-v2-FVOUBMTO-CAWy0Pkh.js.map} +1 -1
  515. package/dist/{storage-B-gK537W.js → storage-BUlr2J4R.js} +1 -1
  516. package/dist/{storage-B-gK537W.js.map → storage-BUlr2J4R.js.map} +1 -1
  517. package/dist/styles/layout.css +18 -18
  518. package/dist/styles/sidebar.css +31 -19
  519. package/dist/styles/tenant-ui.css +34 -34
  520. package/dist/styles/theme-engine.css +546 -23
  521. package/dist/styles/theme.css +1 -0
  522. package/dist/styles/tokens.css +69 -34
  523. package/dist/styles/ui.css +5 -5
  524. package/dist/{switch-CoTkNGEB.js → switch-Dcd3Fyw_.js} +7 -7
  525. package/dist/{switch-CoTkNGEB.js.map → switch-Dcd3Fyw_.js.map} +1 -1
  526. package/dist/{tabs-BT2WAQcK.js → tabs-8AT2ntg_.js} +8 -8
  527. package/dist/{tabs-BT2WAQcK.js.map → tabs-8AT2ntg_.js.map} +1 -1
  528. package/dist/theme-studio-CN9Ipb9W.js +236 -0
  529. package/dist/theme-studio-CN9Ipb9W.js.map +1 -0
  530. package/dist/{theme-toggle-Csyj-tLm.js → theme-toggle-glKWbKG8.js} +2 -2
  531. package/dist/{theme-toggle-Csyj-tLm.js.map → theme-toggle-glKWbKG8.js.map} +1 -1
  532. package/dist/{timeline-definition-YZTLITO2-B0SegHNN.js → timeline-definition-YZTLITO2-CjxxCuOg.js} +5 -5
  533. package/dist/{timeline-definition-YZTLITO2-B0SegHNN.js.map → timeline-definition-YZTLITO2-CjxxCuOg.js.map} +1 -1
  534. package/dist/{toast-DRNPdj-R.js → toast-CawTm-7V.js} +6 -6
  535. package/dist/{toast-DRNPdj-R.js.map → toast-CawTm-7V.js.map} +1 -1
  536. package/dist/{toggle-DJJEPXXE.js → toggle-C8sazHXX.js} +7 -7
  537. package/dist/{toggle-DJJEPXXE.js.map → toggle-C8sazHXX.js.map} +1 -1
  538. package/dist/{toggle-D-WMiAg3.js → toggle-IUUynh_v.js} +1 -1
  539. package/dist/{toggle-D-WMiAg3.js.map → toggle-IUUynh_v.js.map} +1 -1
  540. package/dist/{tooltip-DuC73a5E.js → tooltip-NKOSxS28.js} +11 -11
  541. package/dist/{tooltip-DuC73a5E.js.map → tooltip-NKOSxS28.js.map} +1 -1
  542. package/dist/{topology-C4Q_kT9X.js → topology-C8cyIHlB.js} +5 -5
  543. package/dist/{topology-C4Q_kT9X.js.map → topology-C8cyIHlB.js.map} +1 -1
  544. package/dist/treemap-KZPCXAKY-BvLvHb2t.js +3 -0
  545. package/dist/{triangle-alert-CKjGAvtd.js → triangle-alert-BtwDDOUp.js} +2 -2
  546. package/dist/{triangle-alert-CKjGAvtd.js.map → triangle-alert-BtwDDOUp.js.map} +1 -1
  547. package/dist/types/confidence.d.ts +66 -0
  548. package/dist/types/confidence.d.ts.map +1 -0
  549. package/dist/types/index.d.ts +2 -0
  550. package/dist/types/index.d.ts.map +1 -0
  551. package/dist/utils/index.d.ts +3 -0
  552. package/dist/utils/index.d.ts.map +1 -1
  553. package/dist/utils/index.js +6 -6
  554. package/dist/utils/sage-analysis.d.ts +51 -0
  555. package/dist/utils/sage-analysis.d.ts.map +1 -0
  556. package/dist/utils/score.d.ts +58 -0
  557. package/dist/utils/score.d.ts.map +1 -0
  558. package/dist/utils/status-tone.d.ts +4 -0
  559. package/dist/utils/status-tone.d.ts.map +1 -0
  560. package/dist/{utils-B7XIe3qq.js → utils-DcOSDVkb.js} +1 -1
  561. package/dist/{utils-B7XIe3qq.js.map → utils-DcOSDVkb.js.map} +1 -1
  562. package/dist/{utils-CHEq9Vpx.js → utils-JB2cYPor.js} +120 -2
  563. package/dist/utils-JB2cYPor.js.map +1 -0
  564. package/dist/{value-CybtvyUg.js → value-gSPnIECy.js} +2 -2
  565. package/dist/{value-CybtvyUg.js.map → value-gSPnIECy.js.map} +1 -1
  566. package/dist/{vennDiagram-LZ73GAT5-ClN0stHq.js → vennDiagram-LZ73GAT5-FqpGoq2s.js} +7 -7
  567. package/dist/{vennDiagram-LZ73GAT5-ClN0stHq.js.map → vennDiagram-LZ73GAT5-FqpGoq2s.js.map} +1 -1
  568. package/dist/visualization/mermaid-diagram/index.js +1 -1
  569. package/dist/{x-BleQvk5v.js → x-D2ovnRiN.js} +2 -2
  570. package/dist/{x-BleQvk5v.js.map → x-D2ovnRiN.js.map} +1 -1
  571. package/dist/{xychartDiagram-JWTSCODW-DjFaG2VD.js → xychartDiagram-JWTSCODW-BNEAK79X.js} +10 -10
  572. package/dist/{xychartDiagram-JWTSCODW-DjFaG2VD.js.map → xychartDiagram-JWTSCODW-BNEAK79X.js.map} +1 -1
  573. package/package.json +1 -1
  574. package/src/components/theme/accent-switcher.ts +9 -2
  575. package/src/components/theme/density-switcher.ts +7 -1
  576. package/src/components/theme/font-stack-picker.ts +7 -1
  577. package/src/components/theme/glass-slider.ts +19 -8
  578. package/src/components/theme/icon-gallery-browser.ts +191 -0
  579. package/src/components/theme/icon-set-picker.ts +19 -8
  580. package/src/components/theme/icon-usage-matrix.ts +15 -1
  581. package/src/components/theme/radius-slider.ts +14 -6
  582. package/src/components/theme/theme-preset-grid.ts +8 -2
  583. package/src/components/theme/theme-preview-tile.ts +11 -3
  584. package/src/components/theme/theme-studio-review.test.ts +253 -0
  585. package/src/components/theme/theme-studio.ts +100 -61
  586. package/src/components/theme/theme-switcher.ts +7 -1
  587. package/src/index.ts +11 -0
  588. package/src/react/layout/browser-layout.tsx +54 -0
  589. package/src/react/layout/detail-header.tsx +42 -0
  590. package/src/react/layout/index.ts +4 -0
  591. package/src/react/layout/page-frame.tsx +32 -0
  592. package/src/react/layout/sub-nav.tsx +72 -0
  593. package/src/react/primitives/chart-frame.tsx +51 -0
  594. package/src/react/primitives/chat-drawer.tsx +94 -0
  595. package/src/react/primitives/chat-input.tsx +134 -0
  596. package/src/react/primitives/dashboard-metric-card.tsx +78 -0
  597. package/src/react/primitives/data-field.tsx +54 -0
  598. package/src/react/primitives/index.ts +13 -0
  599. package/src/react/primitives/notification-center.tsx +3 -3
  600. package/src/react/primitives/query-boundary.tsx +71 -0
  601. package/src/react/primitives/score-ring.tsx +78 -0
  602. package/src/react/primitives/section-panel.tsx +42 -0
  603. package/src/security/index.ts +4 -0
  604. package/src/security/mitre-data.ts +60 -0
  605. package/src/services/theme-engine/engine.test.ts +3 -25
  606. package/src/services/theme-engine/engine.ts +35 -9
  607. package/src/services/theme-engine/fonts.ts +4 -0
  608. package/src/services/theme-engine/icons.ts +76 -9
  609. package/src/services/theme-engine/palettes.ts +2 -2
  610. package/src/services/theme-engine/test-helpers.ts +37 -0
  611. package/src/styles/layout.css +18 -18
  612. package/src/styles/sidebar.css +31 -19
  613. package/src/styles/tenant-ui.css +34 -34
  614. package/src/styles/theme-engine.css +546 -23
  615. package/src/styles/theme.css +1 -0
  616. package/src/styles/tokens.css +69 -34
  617. package/src/styles/ui.css +5 -5
  618. package/src/types/confidence.ts +72 -0
  619. package/src/types/index.ts +9 -0
  620. package/src/utils/__tests__/sage-analysis.test.ts +41 -0
  621. package/src/utils/__tests__/score.test.ts +232 -0
  622. package/src/utils/__tests__/status-tone.test.ts +164 -0
  623. package/src/utils/index.ts +29 -0
  624. package/src/utils/sage-analysis.ts +62 -0
  625. package/src/utils/score.ts +123 -0
  626. package/src/utils/status-tone.ts +48 -0
  627. package/dist/architecture-PBZL5I3N-gCfUhEfQ.js +0 -3
  628. package/dist/classDiagram-VBA2DB6C-DFfohpM0.js +0 -31
  629. package/dist/classDiagram-v2-RAHNMMFH-kUMm28FB.js +0 -31
  630. package/dist/components/theme/theme-studio.js.map +0 -1
  631. package/dist/dist-DGayZ3ok2.js.map +0 -1
  632. package/dist/gitGraph-HDMCJU4V--53HTu2M.js +0 -3
  633. package/dist/info-3K5VOQVL-CmVeZuiG.js +0 -3
  634. package/dist/packet-RMMSAZCW-jFj7IW8A.js +0 -3
  635. package/dist/pie-UPGHQEXC-osqmeuax.js +0 -3
  636. package/dist/radar-KQ55EAFF-Dj2g5Z-W.js +0 -3
  637. package/dist/stateDiagram-v2-FVOUBMTO-Cnp2uGxd.js +0 -29
  638. package/dist/treemap-KZPCXAKY-DQ1GEudW.js +0 -3
  639. package/dist/utils-CHEq9Vpx.js.map +0 -1
@@ -112,4 +112,4 @@ var i = class {
112
112
  //#endregion
113
113
  export { r as n, i as t };
114
114
 
115
- //# sourceMappingURL=sse-D0HLjufB.js.map
115
+ //# sourceMappingURL=sse-DCaj9UFJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sse-D0HLjufB.js","names":[],"sources":["../src/services/sse-react.ts","../src/services/sse.ts"],"sourcesContent":["/**\n * useSSE — React hook wrapper around `SSEManager`.\n * @countermeasure-platform/web-components/services/sse-react\n *\n * Wires `SSEManager` to component lifecycle: connects on mount, disconnects\n * on unmount, and re-attaches when `url` or `withCredentials` change.\n * `events` is read via a ref so updating handler identities does NOT cause\n * the underlying EventSource to be torn down.\n *\n * Usage:\n * const { connected, lastError } = useSSE({\n * url: `/api/runs/${id}/stream`,\n * withCredentials: true,\n * events: {\n * log: (data) => append(data.line),\n * phase: (data) => setPhase(data.key),\n * },\n * })\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport { SSEManager, type SSEEventHandler } from './sse'\n\nexport interface UseSSEOptions {\n url: string\n events?: Record<string, (data: unknown) => void>\n withCredentials?: boolean\n}\n\nexport interface UseSSEResult {\n connected: boolean\n lastError: Error | null\n}\n\nexport function useSSE(options: UseSSEOptions): UseSSEResult {\n const { url, withCredentials } = options\n const eventsRef = useRef<Record<string, (data: unknown) => void>>(options.events ?? {})\n const [connected, setConnected] = useState(false)\n const [lastError, setLastError] = useState<Error | null>(null)\n\n const managerRef = useRef<SSEManager | null>(null)\n const registeredKeysRef = useRef<Set<string>>(new Set())\n const offFnsRef = useRef<Array<() => void>>([])\n\n const registerEventType = (eventType: string) => {\n const manager = managerRef.current\n if (!manager) return\n if (registeredKeysRef.current.has(eventType)) return\n\n const handler: SSEEventHandler = data => {\n const fn = eventsRef.current[eventType]\n if (fn) {\n try {\n fn(data)\n } catch (err) {\n setLastError(err instanceof Error ? err : new Error(String(err)))\n }\n }\n }\n offFnsRef.current.push(manager.on(eventType, handler))\n registeredKeysRef.current.add(eventType)\n }\n\n // Keep latest event handlers in a ref so updating callbacks doesn't\n // tear down the EventSource. Also register any newly-appeared keys.\n useEffect(() => {\n eventsRef.current = options.events ?? {}\n for (const key of Object.keys(eventsRef.current)) {\n registerEventType(key)\n }\n }, [options.events])\n\n useEffect(() => {\n let cancelled = false\n let pollTimer: ReturnType<typeof setInterval> | null = null\n\n const manager = new SSEManager({\n url,\n withCredentials: withCredentials === true,\n })\n managerRef.current = manager\n registeredKeysRef.current = new Set()\n offFnsRef.current = []\n\n // Register a stable forwarding handler per event type that delegates\n // to the latest entry in eventsRef.\n for (const eventType of Object.keys(eventsRef.current)) {\n registerEventType(eventType)\n }\n\n manager.connect()\n\n // Poll connection state — `SSEManager` doesn't expose change events,\n // and EventSource readyState transitions silently on reconnect.\n const updateConnected = () => {\n if (cancelled) return\n const next = manager.isConnected()\n setConnected(prev => (prev === next ? prev : next))\n }\n updateConnected()\n pollTimer = setInterval(updateConnected, 750)\n\n return () => {\n cancelled = true\n if (pollTimer !== null) clearInterval(pollTimer)\n for (const off of offFnsRef.current) off()\n offFnsRef.current = []\n registeredKeysRef.current = new Set()\n managerRef.current = null\n manager.disconnect()\n setConnected(false)\n }\n // Note: `events` is intentionally captured via eventsRef rather than\n // included in deps — consumers can freely change handler identity\n // without forcing the EventSource to be torn down and reconnected.\n }, [url, withCredentials])\n\n return { connected, lastError }\n}\n","/**\n * Server-Sent Events manager with reconnection\n * @countermeasure/web-components/services/sse\n */\n\nexport type SSEEventHandler = (data: unknown) => void\n\nexport interface SSEConfig {\n url: string\n /**\n * Legacy query-token source. Prefer cookie-backed SSE auth with withCredentials.\n * This token is only appended to the URL when allowQueryTokenAuth is true.\n */\n getAuthToken?: () => string | null\n /**\n * Explicitly opt into appending getAuthToken() as ?token=... on the EventSource URL.\n * Query-string bearer tokens can leak through logs, browser history, and referrers.\n */\n allowQueryTokenAuth?: boolean\n reconnect?: boolean\n reconnectInterval?: number\n maxRetries?: number\n withCredentials?: boolean\n}\n\nexport class SSEManager {\n private readonly config: SSEConfig\n private readonly handlers = new Map<string, Set<SSEEventHandler>>()\n private eventSource: EventSource | null = null\n private attachedTypes = new Set<string>()\n private retryCount = 0\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null\n\n constructor(config: SSEConfig) {\n this.config = config\n }\n\n on(eventType: string, handler: SSEEventHandler): () => void {\n let handlerSet = this.handlers.get(eventType)\n if (!handlerSet) {\n handlerSet = new Set()\n this.handlers.set(eventType, handlerSet)\n }\n handlerSet.add(handler)\n\n if (this.eventSource) {\n this.attachEventListener(eventType)\n }\n\n return () => {\n this.off(eventType, handler)\n }\n }\n\n off(eventType: string, handler: SSEEventHandler): void {\n const handlerSet = this.handlers.get(eventType)\n if (handlerSet) {\n handlerSet.delete(handler)\n if (handlerSet.size === 0) {\n this.handlers.delete(eventType)\n }\n }\n }\n\n connect(): void {\n if (this.eventSource) {\n this.eventSource.close()\n }\n\n this.attachedTypes = new Set()\n const url = this.buildUrl()\n this.eventSource = new EventSource(url, {\n withCredentials: this.config.withCredentials === true,\n })\n\n this.eventSource.onopen = () => {\n this.retryCount = 0\n }\n\n this.eventSource.onerror = () => {\n if (this.eventSource) {\n this.eventSource.close()\n this.eventSource = null\n }\n\n const shouldReconnect = this.config.reconnect !== false\n const maxRetries = this.config.maxRetries ?? 10\n\n if (shouldReconnect && this.retryCount < maxRetries) {\n this.retryCount += 1\n const baseInterval = this.config.reconnectInterval ?? 1000\n const delay = baseInterval * Math.min(this.retryCount, 10)\n this.reconnectTimer = setTimeout(() => {\n this.reconnectTimer = null\n this.connect()\n }, delay)\n }\n }\n\n for (const eventType of this.handlers.keys()) {\n this.attachEventListener(eventType)\n }\n }\n\n disconnect(): void {\n if (this.reconnectTimer !== null) {\n clearTimeout(this.reconnectTimer)\n this.reconnectTimer = null\n }\n\n if (this.eventSource) {\n this.eventSource.close()\n this.eventSource = null\n }\n\n this.retryCount = 0\n }\n\n isConnected(): boolean {\n return this.eventSource !== null && this.eventSource.readyState === EventSource.OPEN\n }\n\n /**\n * Returns `true` when the manager has given up reconnecting — i.e. the\n * EventSource errored and `maxRetries` has been exhausted. Consumers can\n * use this to show a permanent-failure indicator rather than an optimistic\n * \"reconnecting\" state.\n */\n isFailed(): boolean {\n if (this.eventSource !== null) return false\n if (this.reconnectTimer !== null) return false\n const maxRetries = this.config.maxRetries ?? 10\n return this.retryCount >= maxRetries\n }\n\n private buildUrl(): string {\n const base = this.config.url\n\n if (this.config.allowQueryTokenAuth !== true || !this.config.getAuthToken) {\n return base\n }\n\n const token = this.config.getAuthToken()\n if (token) {\n const separator = base.includes('?') ? '&' : '?'\n return `${base}${separator}token=${encodeURIComponent(token)}`\n }\n\n return base\n }\n\n private attachEventListener(eventType: string): void {\n if (!this.eventSource) {\n return\n }\n if (this.attachedTypes.has(eventType)) {\n return\n }\n this.attachedTypes.add(eventType)\n\n this.eventSource.addEventListener(eventType, (event: MessageEvent) => {\n const handlerSet = this.handlers.get(eventType)\n if (!handlerSet) {\n return\n }\n\n let parsed: unknown\n try {\n parsed = JSON.parse(event.data as string)\n } catch {\n parsed = event.data\n }\n\n for (const handler of handlerSet) {\n handler(parsed)\n }\n })\n }\n}\n\n// Re-export the React hook so consumers using the existing\n// `services/sse` import path automatically get `useSSE` too.\nexport { useSSE, type UseSSEOptions, type UseSSEResult } from './sse-react'\n"],"mappings":";;AAkCA,SAAgB,EAAO,GAAsC;CAC3D,IAAM,EAAE,QAAK,uBAAoB,GAC3B,IAAY,EAAgD,EAAQ,UAAU,EAAE,CAAC,EACjF,CAAC,GAAW,KAAgB,EAAS,GAAM,EAC3C,CAAC,GAAW,KAAgB,EAAuB,KAAK,EAExD,IAAa,EAA0B,KAAK,EAC5C,IAAoB,kBAAoB,IAAI,KAAK,CAAC,EAClD,IAAY,EAA0B,EAAE,CAAC,EAEzC,KAAqB,MAAsB;EAC/C,IAAM,IAAU,EAAW;AAEvB,EADA,CAAC,KACD,EAAkB,QAAQ,IAAI,EAAU,KAY5C,EAAU,QAAQ,KAAK,EAAQ,GAAG,IAVD,MAAQ;GACvC,IAAM,IAAK,EAAU,QAAQ;AAC7B,OAAI,EACF,KAAI;AACF,MAAG,EAAK;YACD,GAAK;AACZ,MAAa,aAAe,QAAQ,IAAU,MAAM,OAAO,EAAI,CAAC,CAAC;;IAIlB,CAAC,EACtD,EAAkB,QAAQ,IAAI,EAAU;;AAyD1C,QApDA,QAAgB;AACd,IAAU,UAAU,EAAQ,UAAU,EAAE;AACxC,OAAK,IAAM,KAAO,OAAO,KAAK,EAAU,QAAQ,CAC9C,GAAkB,EAAI;IAEvB,CAAC,EAAQ,OAAO,CAAC,EAEpB,QAAgB;EACd,IAAI,IAAY,IACZ,IAAmD,MAEjD,IAAU,IAAI,EAAW;GAC7B;GACA,iBAAiB,MAAoB;GACtC,CAAC;AAGF,EAFA,EAAW,UAAU,GACrB,EAAkB,0BAAU,IAAI,KAAK,EACrC,EAAU,UAAU,EAAE;AAItB,OAAK,IAAM,KAAa,OAAO,KAAK,EAAU,QAAQ,CACpD,GAAkB,EAAU;AAG9B,IAAQ,SAAS;EAIjB,IAAM,UAAwB;AAC5B,OAAI,EAAW;GACf,IAAM,IAAO,EAAQ,aAAa;AAClC,MAAa,MAAS,MAAS,IAAO,IAAO,EAAM;;AAKrD,SAHA,GAAiB,EACjB,IAAY,YAAY,GAAiB,IAAI,QAEhC;AAEX,GADA,IAAY,IACR,MAAc,QAAM,cAAc,EAAU;AAChD,QAAK,IAAM,KAAO,EAAU,QAAS,IAAK;AAK1C,GAJA,EAAU,UAAU,EAAE,EACtB,EAAkB,0BAAU,IAAI,KAAK,EACrC,EAAW,UAAU,MACrB,EAAQ,YAAY,EACpB,EAAa,GAAM;;IAKpB,CAAC,GAAK,EAAgB,CAAC,EAEnB;EAAE;EAAW;EAAW;;;;AC5FjC,IAAa,IAAb,MAAwB;CACtB;CACA,2BAA4B,IAAI,KAAmC;CACnE,cAA0C;CAC1C,gCAAwB,IAAI,KAAa;CACzC,aAAqB;CACrB,iBAA+D;CAE/D,YAAY,GAAmB;AAC7B,OAAK,SAAS;;CAGhB,GAAG,GAAmB,GAAsC;EAC1D,IAAI,IAAa,KAAK,SAAS,IAAI,EAAU;AAW7C,SAVK,MACH,oBAAa,IAAI,KAAK,EACtB,KAAK,SAAS,IAAI,GAAW,EAAW,GAE1C,EAAW,IAAI,EAAQ,EAEnB,KAAK,eACP,KAAK,oBAAoB,EAAU,QAGxB;AACX,QAAK,IAAI,GAAW,EAAQ;;;CAIhC,IAAI,GAAmB,GAAgC;EACrD,IAAM,IAAa,KAAK,SAAS,IAAI,EAAU;AAC/C,EAAI,MACF,EAAW,OAAO,EAAQ,EACtB,EAAW,SAAS,KACtB,KAAK,SAAS,OAAO,EAAU;;CAKrC,UAAgB;AAKd,EAJI,KAAK,eACP,KAAK,YAAY,OAAO,EAG1B,KAAK,gCAAgB,IAAI,KAAK;EAC9B,IAAM,IAAM,KAAK,UAAU;AAS3B,EARA,KAAK,cAAc,IAAI,YAAY,GAAK,EACtC,iBAAiB,KAAK,OAAO,oBAAoB,IAClD,CAAC,EAEF,KAAK,YAAY,eAAe;AAC9B,QAAK,aAAa;KAGpB,KAAK,YAAY,gBAAgB;AAC/B,GAEE,KAAK,iBADL,KAAK,YAAY,OAAO,EACL;GAGrB,IAAM,IAAkB,KAAK,OAAO,cAAc,IAC5C,IAAa,KAAK,OAAO,cAAc;AAE7C,OAAI,KAAmB,KAAK,aAAa,GAAY;AACnD,SAAK,cAAc;IAEnB,IAAM,KADe,KAAK,OAAO,qBAAqB,OACzB,KAAK,IAAI,KAAK,YAAY,GAAG;AAC1D,SAAK,iBAAiB,iBAAiB;AAErC,KADA,KAAK,iBAAiB,MACtB,KAAK,SAAS;OACb,EAAM;;;AAIb,OAAK,IAAM,KAAa,KAAK,SAAS,MAAM,CAC1C,MAAK,oBAAoB,EAAU;;CAIvC,aAAmB;AAWjB,EAVI,KAAK,mBAAmB,SAC1B,aAAa,KAAK,eAAe,EACjC,KAAK,iBAAiB,OAGxB,AAEE,KAAK,iBADL,KAAK,YAAY,OAAO,EACL,OAGrB,KAAK,aAAa;;CAGpB,cAAuB;AACrB,SAAO,KAAK,gBAAgB,QAAQ,KAAK,YAAY,eAAe,YAAY;;CASlF,WAAoB;AAElB,MADI,KAAK,gBAAgB,QACrB,KAAK,mBAAmB,KAAM,QAAO;EACzC,IAAM,IAAa,KAAK,OAAO,cAAc;AAC7C,SAAO,KAAK,cAAc;;CAG5B,WAA2B;EACzB,IAAM,IAAO,KAAK,OAAO;AAEzB,MAAI,KAAK,OAAO,wBAAwB,MAAQ,CAAC,KAAK,OAAO,aAC3D,QAAO;EAGT,IAAM,IAAQ,KAAK,OAAO,cAAc;AAMxC,SALI,IAEK,GAAG,IADQ,EAAK,SAAS,IAAI,GAAG,MAAM,IAClB,QAAQ,mBAAmB,EAAM,KAGvD;;CAGT,oBAA4B,GAAyB;AAC9C,OAAK,gBAGN,KAAK,cAAc,IAAI,EAAU,KAGrC,KAAK,cAAc,IAAI,EAAU,EAEjC,KAAK,YAAY,iBAAiB,IAAY,MAAwB;GACpE,IAAM,IAAa,KAAK,SAAS,IAAI,EAAU;AAC/C,OAAI,CAAC,EACH;GAGF,IAAI;AACJ,OAAI;AACF,QAAS,KAAK,MAAM,EAAM,KAAe;WACnC;AACN,QAAS,EAAM;;AAGjB,QAAK,IAAM,KAAW,EACpB,GAAQ,EAAO;IAEjB"}
1
+ {"version":3,"file":"sse-DCaj9UFJ.js","names":[],"sources":["../src/services/sse-react.ts","../src/services/sse.ts"],"sourcesContent":["/**\n * useSSE — React hook wrapper around `SSEManager`.\n * @countermeasure-platform/web-components/services/sse-react\n *\n * Wires `SSEManager` to component lifecycle: connects on mount, disconnects\n * on unmount, and re-attaches when `url` or `withCredentials` change.\n * `events` is read via a ref so updating handler identities does NOT cause\n * the underlying EventSource to be torn down.\n *\n * Usage:\n * const { connected, lastError } = useSSE({\n * url: `/api/runs/${id}/stream`,\n * withCredentials: true,\n * events: {\n * log: (data) => append(data.line),\n * phase: (data) => setPhase(data.key),\n * },\n * })\n */\n\nimport { useEffect, useRef, useState } from 'react'\nimport { SSEManager, type SSEEventHandler } from './sse'\n\nexport interface UseSSEOptions {\n url: string\n events?: Record<string, (data: unknown) => void>\n withCredentials?: boolean\n}\n\nexport interface UseSSEResult {\n connected: boolean\n lastError: Error | null\n}\n\nexport function useSSE(options: UseSSEOptions): UseSSEResult {\n const { url, withCredentials } = options\n const eventsRef = useRef<Record<string, (data: unknown) => void>>(options.events ?? {})\n const [connected, setConnected] = useState(false)\n const [lastError, setLastError] = useState<Error | null>(null)\n\n const managerRef = useRef<SSEManager | null>(null)\n const registeredKeysRef = useRef<Set<string>>(new Set())\n const offFnsRef = useRef<Array<() => void>>([])\n\n const registerEventType = (eventType: string) => {\n const manager = managerRef.current\n if (!manager) return\n if (registeredKeysRef.current.has(eventType)) return\n\n const handler: SSEEventHandler = data => {\n const fn = eventsRef.current[eventType]\n if (fn) {\n try {\n fn(data)\n } catch (err) {\n setLastError(err instanceof Error ? err : new Error(String(err)))\n }\n }\n }\n offFnsRef.current.push(manager.on(eventType, handler))\n registeredKeysRef.current.add(eventType)\n }\n\n // Keep latest event handlers in a ref so updating callbacks doesn't\n // tear down the EventSource. Also register any newly-appeared keys.\n useEffect(() => {\n eventsRef.current = options.events ?? {}\n for (const key of Object.keys(eventsRef.current)) {\n registerEventType(key)\n }\n }, [options.events])\n\n useEffect(() => {\n let cancelled = false\n let pollTimer: ReturnType<typeof setInterval> | null = null\n\n const manager = new SSEManager({\n url,\n withCredentials: withCredentials === true,\n })\n managerRef.current = manager\n registeredKeysRef.current = new Set()\n offFnsRef.current = []\n\n // Register a stable forwarding handler per event type that delegates\n // to the latest entry in eventsRef.\n for (const eventType of Object.keys(eventsRef.current)) {\n registerEventType(eventType)\n }\n\n manager.connect()\n\n // Poll connection state — `SSEManager` doesn't expose change events,\n // and EventSource readyState transitions silently on reconnect.\n const updateConnected = () => {\n if (cancelled) return\n const next = manager.isConnected()\n setConnected(prev => (prev === next ? prev : next))\n }\n updateConnected()\n pollTimer = setInterval(updateConnected, 750)\n\n return () => {\n cancelled = true\n if (pollTimer !== null) clearInterval(pollTimer)\n for (const off of offFnsRef.current) off()\n offFnsRef.current = []\n registeredKeysRef.current = new Set()\n managerRef.current = null\n manager.disconnect()\n setConnected(false)\n }\n // Note: `events` is intentionally captured via eventsRef rather than\n // included in deps — consumers can freely change handler identity\n // without forcing the EventSource to be torn down and reconnected.\n }, [url, withCredentials])\n\n return { connected, lastError }\n}\n","/**\n * Server-Sent Events manager with reconnection\n * @countermeasure/web-components/services/sse\n */\n\nexport type SSEEventHandler = (data: unknown) => void\n\nexport interface SSEConfig {\n url: string\n /**\n * Legacy query-token source. Prefer cookie-backed SSE auth with withCredentials.\n * This token is only appended to the URL when allowQueryTokenAuth is true.\n */\n getAuthToken?: () => string | null\n /**\n * Explicitly opt into appending getAuthToken() as ?token=... on the EventSource URL.\n * Query-string bearer tokens can leak through logs, browser history, and referrers.\n */\n allowQueryTokenAuth?: boolean\n reconnect?: boolean\n reconnectInterval?: number\n maxRetries?: number\n withCredentials?: boolean\n}\n\nexport class SSEManager {\n private readonly config: SSEConfig\n private readonly handlers = new Map<string, Set<SSEEventHandler>>()\n private eventSource: EventSource | null = null\n private attachedTypes = new Set<string>()\n private retryCount = 0\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null\n\n constructor(config: SSEConfig) {\n this.config = config\n }\n\n on(eventType: string, handler: SSEEventHandler): () => void {\n let handlerSet = this.handlers.get(eventType)\n if (!handlerSet) {\n handlerSet = new Set()\n this.handlers.set(eventType, handlerSet)\n }\n handlerSet.add(handler)\n\n if (this.eventSource) {\n this.attachEventListener(eventType)\n }\n\n return () => {\n this.off(eventType, handler)\n }\n }\n\n off(eventType: string, handler: SSEEventHandler): void {\n const handlerSet = this.handlers.get(eventType)\n if (handlerSet) {\n handlerSet.delete(handler)\n if (handlerSet.size === 0) {\n this.handlers.delete(eventType)\n }\n }\n }\n\n connect(): void {\n if (this.eventSource) {\n this.eventSource.close()\n }\n\n this.attachedTypes = new Set()\n const url = this.buildUrl()\n this.eventSource = new EventSource(url, {\n withCredentials: this.config.withCredentials === true,\n })\n\n this.eventSource.onopen = () => {\n this.retryCount = 0\n }\n\n this.eventSource.onerror = () => {\n if (this.eventSource) {\n this.eventSource.close()\n this.eventSource = null\n }\n\n const shouldReconnect = this.config.reconnect !== false\n const maxRetries = this.config.maxRetries ?? 10\n\n if (shouldReconnect && this.retryCount < maxRetries) {\n this.retryCount += 1\n const baseInterval = this.config.reconnectInterval ?? 1000\n const delay = baseInterval * Math.min(this.retryCount, 10)\n this.reconnectTimer = setTimeout(() => {\n this.reconnectTimer = null\n this.connect()\n }, delay)\n }\n }\n\n for (const eventType of this.handlers.keys()) {\n this.attachEventListener(eventType)\n }\n }\n\n disconnect(): void {\n if (this.reconnectTimer !== null) {\n clearTimeout(this.reconnectTimer)\n this.reconnectTimer = null\n }\n\n if (this.eventSource) {\n this.eventSource.close()\n this.eventSource = null\n }\n\n this.retryCount = 0\n }\n\n isConnected(): boolean {\n return this.eventSource !== null && this.eventSource.readyState === EventSource.OPEN\n }\n\n /**\n * Returns `true` when the manager has given up reconnecting — i.e. the\n * EventSource errored and `maxRetries` has been exhausted. Consumers can\n * use this to show a permanent-failure indicator rather than an optimistic\n * \"reconnecting\" state.\n */\n isFailed(): boolean {\n if (this.eventSource !== null) return false\n if (this.reconnectTimer !== null) return false\n const maxRetries = this.config.maxRetries ?? 10\n return this.retryCount >= maxRetries\n }\n\n private buildUrl(): string {\n const base = this.config.url\n\n if (this.config.allowQueryTokenAuth !== true || !this.config.getAuthToken) {\n return base\n }\n\n const token = this.config.getAuthToken()\n if (token) {\n const separator = base.includes('?') ? '&' : '?'\n return `${base}${separator}token=${encodeURIComponent(token)}`\n }\n\n return base\n }\n\n private attachEventListener(eventType: string): void {\n if (!this.eventSource) {\n return\n }\n if (this.attachedTypes.has(eventType)) {\n return\n }\n this.attachedTypes.add(eventType)\n\n this.eventSource.addEventListener(eventType, (event: MessageEvent) => {\n const handlerSet = this.handlers.get(eventType)\n if (!handlerSet) {\n return\n }\n\n let parsed: unknown\n try {\n parsed = JSON.parse(event.data as string)\n } catch {\n parsed = event.data\n }\n\n for (const handler of handlerSet) {\n handler(parsed)\n }\n })\n }\n}\n\n// Re-export the React hook so consumers using the existing\n// `services/sse` import path automatically get `useSSE` too.\nexport { useSSE, type UseSSEOptions, type UseSSEResult } from './sse-react'\n"],"mappings":"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"}
@@ -1,20 +1,20 @@
1
- import { w as e } from "./src-BEYP07TO.js";
2
- import { t } from "./dagre-Bm7BZZKB.js";
3
- import { T as n, h as r } from "./chunk-GEFDOKGD-bXEkwPrJ.js";
4
- import { t as i } from "./graphlib-DmFENmkJ.js";
5
- import { n as a, r as o } from "./src-hxErHTV1.js";
6
- import { D as s, b as c, c as l, s as u } from "./chunk-7R4GIKGN-DiZ1HYFd.js";
7
- import { t as d } from "./line-xLJn8e8J.js";
8
- import "./chunk-PU5JKC2W-CAfe4Tg3.js";
9
- import "./chunk-MX3YWQON-DnBlqD44.js";
10
- import "./chunk-YBOYWFTD-DVqQ1pen.js";
11
- import "./chunk-55IACEB6-DxNTqHZ8.js";
12
- import "./chunk-KX2RTZJC-DopwIbE1.js";
13
- import "./chunk-PQ6SQG4A-DPz_e-Es.js";
14
- import "./chunk-KYZI473N-4Y4_4kXL.js";
15
- import "./chunk-O4XLMI2P-BcKxBhcn.js";
16
- import "./chunk-GLR3WWYH-GIQ55uMn.js";
17
- import { i as f, n as p, t as m } from "./chunk-NQ4KR5QH-BSylMz0X.js";
1
+ import { w as e } from "./src-D1EMXotX.js";
2
+ import { t } from "./dagre-BqC9mhMk.js";
3
+ import { T as n, h as r } from "./chunk-GEFDOKGD-DGJJEGSm.js";
4
+ import { t as i } from "./graphlib-ecencZTG.js";
5
+ import { n as a, r as o } from "./src-BhNgmpel.js";
6
+ import { D as s, b as c, c as l, s as u } from "./chunk-7R4GIKGN-DJmroLCH.js";
7
+ import { t as d } from "./line-Cq1AZT4f.js";
8
+ import "./chunk-PU5JKC2W-DNpn_Yik.js";
9
+ import "./chunk-MX3YWQON-D43mcq1f.js";
10
+ import "./chunk-YBOYWFTD-DkjEOcgZ.js";
11
+ import "./chunk-55IACEB6-DZ-UBhHX.js";
12
+ import "./chunk-KX2RTZJC-d9jFqUAY.js";
13
+ import "./chunk-PQ6SQG4A-Cpfc5F4u.js";
14
+ import "./chunk-KYZI473N-BXYCe83A.js";
15
+ import "./chunk-O4XLMI2P-DtGEm9QX.js";
16
+ import "./chunk-GLR3WWYH-BDwmgwCA.js";
17
+ import { i as f, n as p, t as m } from "./chunk-NQ4KR5QH-C0nWShNk.js";
18
18
  //#region node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-RAJIS63D.mjs
19
19
  var h = /* @__PURE__ */ a((e) => e.append("circle").attr("class", "start-state").attr("r", c().state.sizeUnit).attr("cx", c().state.padding + c().state.sizeUnit).attr("cy", c().state.padding + c().state.sizeUnit), "drawStartState"), g = /* @__PURE__ */ a((e) => e.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", c().state.textHeight).attr("class", "divider").attr("x2", c().state.textHeight * 2).attr("y1", 0).attr("y2", 0), "drawDivider"), _ = /* @__PURE__ */ a((e, t) => {
20
20
  let n = e.append("text").attr("x", 2 * c().state.padding).attr("y", c().state.textHeight + 2 * c().state.padding).attr("font-size", c().state.fontSize).attr("class", "state-title").text(t.id), r = n.node().getBBox();
@@ -217,4 +217,4 @@ var h = /* @__PURE__ */ a((e) => e.append("circle").attr("class", "start-state")
217
217
  //#endregion
218
218
  export { P as diagram };
219
219
 
220
- //# sourceMappingURL=stateDiagram-RAJIS63D-B-Mu-_BR.js.map
220
+ //# sourceMappingURL=stateDiagram-RAJIS63D-DdiY5cf3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stateDiagram-RAJIS63D-B-Mu-_BR.js","names":["getConfig","line","curveBasis","select","graphlib.Graph"],"sources":["../node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-RAJIS63D.mjs"],"sourcesContent":["import {\n StateDB,\n stateDiagram_default,\n styles_default\n} from \"./chunk-NQ4KR5QH.mjs\";\nimport \"./chunk-55IACEB6.mjs\";\nimport \"./chunk-KX2RTZJC.mjs\";\nimport \"./chunk-GLR3WWYH.mjs\";\nimport \"./chunk-O4XLMI2P.mjs\";\nimport \"./chunk-MX3YWQON.mjs\";\nimport \"./chunk-KYZI473N.mjs\";\nimport \"./chunk-YBOYWFTD.mjs\";\nimport \"./chunk-PQ6SQG4A.mjs\";\nimport \"./chunk-PU5JKC2W.mjs\";\nimport {\n utils_default\n} from \"./chunk-GEFDOKGD.mjs\";\nimport {\n common_default,\n configureSvgSize,\n getConfig2 as getConfig,\n getUrl\n} from \"./chunk-7R4GIKGN.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/state/stateRenderer.js\nimport { select } from \"d3\";\nimport { layout as dagreLayout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\n\n// src/diagrams/state/shapes.js\nimport { line, curveBasis } from \"d3\";\nvar drawStartState = /* @__PURE__ */ __name((g) => g.append(\"circle\").attr(\"class\", \"start-state\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit), \"drawStartState\");\nvar drawDivider = /* @__PURE__ */ __name((g) => g.append(\"line\").style(\"stroke\", \"grey\").style(\"stroke-dasharray\", \"3\").attr(\"x1\", getConfig().state.textHeight).attr(\"class\", \"divider\").attr(\"x2\", getConfig().state.textHeight * 2).attr(\"y1\", 0).attr(\"y2\", 0), \"drawDivider\");\nvar drawSimpleState = /* @__PURE__ */ __name((g, stateDef) => {\n const state = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 2 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n const classBox = state.node().getBBox();\n g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", classBox.width + 2 * getConfig().state.padding).attr(\"height\", classBox.height + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n return state;\n}, \"drawSimpleState\");\nvar drawDescrState = /* @__PURE__ */ __name((g, stateDef) => {\n const addTspan = /* @__PURE__ */ __name(function(textEl, txt, isFirst2) {\n const tSpan = textEl.append(\"tspan\").attr(\"x\", 2 * getConfig().state.padding).text(txt);\n if (!isFirst2) {\n tSpan.attr(\"dy\", getConfig().state.textHeight);\n }\n }, \"addTspan\");\n const title = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 1.3 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.descriptions[0]);\n const titleBox = title.node().getBBox();\n const titleHeight = titleBox.height;\n const description = g.append(\"text\").attr(\"x\", getConfig().state.padding).attr(\n \"y\",\n titleHeight + getConfig().state.padding * 0.4 + getConfig().state.dividerMargin + getConfig().state.textHeight\n ).attr(\"class\", \"state-description\");\n let isFirst = true;\n let isSecond = true;\n stateDef.descriptions.forEach(function(descr) {\n if (!isFirst) {\n addTspan(description, descr, isSecond);\n isSecond = false;\n }\n isFirst = false;\n });\n const descrLine = g.append(\"line\").attr(\"x1\", getConfig().state.padding).attr(\"y1\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"y2\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"class\", \"descr-divider\");\n const descrBox = description.node().getBBox();\n const width = Math.max(descrBox.width, titleBox.width);\n descrLine.attr(\"x2\", width + 3 * getConfig().state.padding);\n g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", width + 2 * getConfig().state.padding).attr(\"height\", descrBox.height + titleHeight + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n return g;\n}, \"drawDescrState\");\nvar addTitleAndBox = /* @__PURE__ */ __name((g, stateDef, altBkg) => {\n const pad = getConfig().state.padding;\n const dblPad = 2 * getConfig().state.padding;\n const orgBox = g.node().getBBox();\n const orgWidth = orgBox.width;\n const orgX = orgBox.x;\n const title = g.append(\"text\").attr(\"x\", 0).attr(\"y\", getConfig().state.titleShift).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n const titleBox = title.node().getBBox();\n const titleWidth = titleBox.width + dblPad;\n let width = Math.max(titleWidth, orgWidth);\n if (width === orgWidth) {\n width = width + dblPad;\n }\n let startX;\n const graphBox = g.node().getBBox();\n if (stateDef.doc) {\n }\n startX = orgX - pad;\n if (titleWidth > orgWidth) {\n startX = (orgWidth - width) / 2 + pad;\n }\n if (Math.abs(orgX - graphBox.x) < pad && titleWidth > orgWidth) {\n startX = orgX - (titleWidth - orgWidth) / 2;\n }\n const lineY = 1 - getConfig().state.textHeight;\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\"y\", lineY).attr(\"class\", altBkg ? \"alt-composit\" : \"composit\").attr(\"width\", width).attr(\n \"height\",\n graphBox.height + getConfig().state.textHeight + getConfig().state.titleShift + 1\n ).attr(\"rx\", \"0\");\n title.attr(\"x\", startX + pad);\n if (titleWidth <= orgWidth) {\n title.attr(\"x\", orgX + (width - dblPad) / 2 - titleWidth / 2 + pad);\n }\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n \"y\",\n getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n ).attr(\"width\", width).attr(\"height\", getConfig().state.textHeight * 3).attr(\"rx\", getConfig().state.radius);\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n \"y\",\n getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n ).attr(\"width\", width).attr(\"height\", graphBox.height + 3 + 2 * getConfig().state.textHeight).attr(\"rx\", getConfig().state.radius);\n return g;\n}, \"addTitleAndBox\");\nvar drawEndState = /* @__PURE__ */ __name((g) => {\n g.append(\"circle\").attr(\"class\", \"end-state-outer\").attr(\"r\", getConfig().state.sizeUnit + getConfig().state.miniPadding).attr(\n \"cx\",\n getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n ).attr(\n \"cy\",\n getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n );\n return g.append(\"circle\").attr(\"class\", \"end-state-inner\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit + 2).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit + 2);\n}, \"drawEndState\");\nvar drawForkJoinState = /* @__PURE__ */ __name((g, stateDef) => {\n let width = getConfig().state.forkWidth;\n let height = getConfig().state.forkHeight;\n if (stateDef.parentId) {\n let tmp = width;\n width = height;\n height = tmp;\n }\n return g.append(\"rect\").style(\"stroke\", \"black\").style(\"fill\", \"black\").attr(\"width\", width).attr(\"height\", height).attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding);\n}, \"drawForkJoinState\");\nvar _drawLongText = /* @__PURE__ */ __name((_text, x, y, g) => {\n let textHeight = 0;\n const textElem = g.append(\"text\");\n textElem.style(\"text-anchor\", \"start\");\n textElem.attr(\"class\", \"noteText\");\n let text = _text.replace(/\\r\\n/g, \"<br/>\");\n text = text.replace(/\\n/g, \"<br/>\");\n const lines = text.split(common_default.lineBreakRegex);\n let tHeight = 1.25 * getConfig().state.noteMargin;\n for (const line2 of lines) {\n const txt = line2.trim();\n if (txt.length > 0) {\n const span = textElem.append(\"tspan\");\n span.text(txt);\n if (tHeight === 0) {\n const textBounds = span.node().getBBox();\n tHeight += textBounds.height;\n }\n textHeight += tHeight;\n span.attr(\"x\", x + getConfig().state.noteMargin);\n span.attr(\"y\", y + textHeight + 1.25 * getConfig().state.noteMargin);\n }\n }\n return { textWidth: textElem.node().getBBox().width, textHeight };\n}, \"_drawLongText\");\nvar drawNote = /* @__PURE__ */ __name((text, g) => {\n g.attr(\"class\", \"state-note\");\n const note = g.append(\"rect\").attr(\"x\", 0).attr(\"y\", getConfig().state.padding);\n const rectElem = g.append(\"g\");\n const { textWidth, textHeight } = _drawLongText(text, 0, 0, rectElem);\n note.attr(\"height\", textHeight + 2 * getConfig().state.noteMargin);\n note.attr(\"width\", textWidth + getConfig().state.noteMargin * 2);\n return note;\n}, \"drawNote\");\nvar drawState = /* @__PURE__ */ __name(function(elem, stateDef) {\n const id = stateDef.id;\n const stateInfo = {\n id,\n label: stateDef.id,\n width: 0,\n height: 0\n };\n const g = elem.append(\"g\").attr(\"id\", id).attr(\"class\", \"stateGroup\");\n if (stateDef.type === \"start\") {\n drawStartState(g);\n }\n if (stateDef.type === \"end\") {\n drawEndState(g);\n }\n if (stateDef.type === \"fork\" || stateDef.type === \"join\") {\n drawForkJoinState(g, stateDef);\n }\n if (stateDef.type === \"note\") {\n drawNote(stateDef.note.text, g);\n }\n if (stateDef.type === \"divider\") {\n drawDivider(g);\n }\n if (stateDef.type === \"default\" && stateDef.descriptions.length === 0) {\n drawSimpleState(g, stateDef);\n }\n if (stateDef.type === \"default\" && stateDef.descriptions.length > 0) {\n drawDescrState(g, stateDef);\n }\n const stateBox = g.node().getBBox();\n stateInfo.width = stateBox.width + 2 * getConfig().state.padding;\n stateInfo.height = stateBox.height + 2 * getConfig().state.padding;\n return stateInfo;\n}, \"drawState\");\nvar edgeCount = 0;\nvar drawEdge = /* @__PURE__ */ __name(function(elem, path, relation) {\n const getRelationType = /* @__PURE__ */ __name(function(type) {\n switch (type) {\n case StateDB.relationType.AGGREGATION:\n return \"aggregation\";\n case StateDB.relationType.EXTENSION:\n return \"extension\";\n case StateDB.relationType.COMPOSITION:\n return \"composition\";\n case StateDB.relationType.DEPENDENCY:\n return \"dependency\";\n }\n }, \"getRelationType\");\n path.points = path.points.filter((p) => !Number.isNaN(p.y));\n const lineData = path.points;\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", \"edge\" + edgeCount).attr(\"class\", \"transition\");\n let url = \"\";\n if (getConfig().state.arrowMarkerAbsolute) {\n url = getUrl(true);\n }\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + getRelationType(StateDB.relationType.DEPENDENCY) + \"End)\"\n );\n if (relation.title !== void 0) {\n const label = elem.append(\"g\").attr(\"class\", \"stateLabel\");\n const { x, y } = utils_default.calcLabelPosition(path.points);\n const rows = common_default.getRows(relation.title);\n let titleHeight = 0;\n const titleRows = [];\n let maxWidth = 0;\n let minX = 0;\n for (let i = 0; i <= rows.length; i++) {\n const title = label.append(\"text\").attr(\"text-anchor\", \"middle\").text(rows[i]).attr(\"x\", x).attr(\"y\", y + titleHeight);\n const boundsTmp = title.node().getBBox();\n maxWidth = Math.max(maxWidth, boundsTmp.width);\n minX = Math.min(minX, boundsTmp.x);\n log.info(boundsTmp.x, x, y + titleHeight);\n if (titleHeight === 0) {\n const titleBox = title.node().getBBox();\n titleHeight = titleBox.height;\n log.info(\"Title height\", titleHeight, y);\n }\n titleRows.push(title);\n }\n let boxHeight = titleHeight * rows.length;\n if (rows.length > 1) {\n const heightAdj = (rows.length - 1) * titleHeight * 0.5;\n titleRows.forEach((title, i) => title.attr(\"y\", y + i * titleHeight - heightAdj));\n boxHeight = titleHeight * rows.length;\n }\n const bounds = label.node().getBBox();\n label.insert(\"rect\", \":first-child\").attr(\"class\", \"box\").attr(\"x\", x - maxWidth / 2 - getConfig().state.padding / 2).attr(\"y\", y - boxHeight / 2 - getConfig().state.padding / 2 - 3.5).attr(\"width\", maxWidth + getConfig().state.padding).attr(\"height\", boxHeight + getConfig().state.padding);\n log.info(bounds);\n }\n edgeCount++;\n}, \"drawEdge\");\n\n// src/diagrams/state/stateRenderer.js\nvar conf;\nvar transformationLog = {};\nvar setConf = /* @__PURE__ */ __name(function() {\n}, \"setConf\");\nvar insertMarkers = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"dependencyEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n}, \"insertMarkers\");\nvar draw = /* @__PURE__ */ __name(function(text, id, _version, diagObj) {\n conf = getConfig().state;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n log.debug(\"Rendering diagram \" + text);\n const diagram2 = root.select(`[id='${id}']`);\n insertMarkers(diagram2);\n const rootDoc = diagObj.db.getRootDoc();\n renderDoc(rootDoc, diagram2, void 0, false, root, doc, diagObj);\n const padding = conf.padding;\n const bounds = diagram2.node().getBBox();\n const width = bounds.width + padding * 2;\n const height = bounds.height + padding * 2;\n const svgWidth = width * 1.75;\n configureSvgSize(diagram2, height, svgWidth, conf.useMaxWidth);\n diagram2.attr(\n \"viewBox\",\n `${bounds.x - conf.padding} ${bounds.y - conf.padding} ` + width + \" \" + height\n );\n}, \"draw\");\nvar getLabelWidth = /* @__PURE__ */ __name((text) => {\n return text ? text.length * conf.fontSizeFactor : 1;\n}, \"getLabelWidth\");\nvar renderDoc = /* @__PURE__ */ __name((doc, diagram2, parentId, altBkg, root, domDocument, diagObj) => {\n const graph = new graphlib.Graph({\n compound: true,\n multigraph: true\n });\n let i;\n let edgeFreeDoc = true;\n for (i = 0; i < doc.length; i++) {\n if (doc[i].stmt === \"relation\") {\n edgeFreeDoc = false;\n break;\n }\n }\n if (parentId) {\n graph.setGraph({\n rankdir: \"LR\",\n multigraph: true,\n compound: true,\n // acyclicer: 'greedy',\n ranker: \"tight-tree\",\n ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n nodeSep: edgeFreeDoc ? 1 : 50,\n isMultiGraph: true\n // ranksep: 5,\n // nodesep: 1\n });\n } else {\n graph.setGraph({\n rankdir: \"TB\",\n multigraph: true,\n compound: true,\n // isCompound: true,\n // acyclicer: 'greedy',\n // ranker: 'longest-path'\n ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n nodeSep: edgeFreeDoc ? 1 : 50,\n ranker: \"tight-tree\",\n // ranker: 'network-simplex'\n isMultiGraph: true\n });\n }\n graph.setDefaultEdgeLabel(function() {\n return {};\n });\n const states = diagObj.db.getStates();\n const relations = diagObj.db.getRelations();\n const keys = Object.keys(states);\n let first = true;\n for (const key of keys) {\n const stateDef = states[key];\n if (parentId) {\n stateDef.parentId = parentId;\n }\n let node;\n if (stateDef.doc) {\n let sub = diagram2.append(\"g\").attr(\"id\", stateDef.id).attr(\"class\", \"stateGroup\");\n node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj);\n if (first) {\n sub = addTitleAndBox(sub, stateDef, altBkg);\n let boxBounds = sub.node().getBBox();\n node.width = boxBounds.width;\n node.height = boxBounds.height + conf.padding / 2;\n transformationLog[stateDef.id] = { y: conf.compositTitleSize };\n } else {\n let boxBounds = sub.node().getBBox();\n node.width = boxBounds.width;\n node.height = boxBounds.height;\n }\n } else {\n node = drawState(diagram2, stateDef, graph);\n }\n if (stateDef.note) {\n const noteDef = {\n descriptions: [],\n id: stateDef.id + \"-note\",\n note: stateDef.note,\n type: \"note\"\n };\n const note = drawState(diagram2, noteDef, graph);\n if (stateDef.note.position === \"left of\") {\n graph.setNode(node.id + \"-note\", note);\n graph.setNode(node.id, node);\n } else {\n graph.setNode(node.id, node);\n graph.setNode(node.id + \"-note\", note);\n }\n graph.setParent(node.id, node.id + \"-group\");\n graph.setParent(node.id + \"-note\", node.id + \"-group\");\n } else {\n graph.setNode(node.id, node);\n }\n }\n log.debug(\"Count=\", graph.nodeCount(), graph);\n let cnt = 0;\n relations.forEach(function(relation) {\n cnt++;\n log.debug(\"Setting edge\", relation);\n graph.setEdge(\n relation.id1,\n relation.id2,\n {\n relation,\n width: getLabelWidth(relation.title),\n height: conf.labelHeight * common_default.getRows(relation.title).length,\n labelpos: \"c\"\n },\n \"id\" + cnt\n );\n });\n dagreLayout(graph);\n log.debug(\"Graph after layout\", graph.nodes());\n const svgElem = diagram2.node();\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n log.warn(\"Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n root.select(\"#\" + svgElem.id + \" #\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + \" )\"\n );\n root.select(\"#\" + svgElem.id + \" #\" + v).attr(\"data-x-shift\", graph.node(v).x - graph.node(v).width / 2);\n const dividers = domDocument.querySelectorAll(\"#\" + svgElem.id + \" #\" + v + \" .divider\");\n dividers.forEach((divider) => {\n const parent = divider.parentElement;\n let pWidth = 0;\n let pShift = 0;\n if (parent) {\n if (parent.parentElement) {\n pWidth = parent.parentElement.getBBox().width;\n }\n pShift = parseInt(parent.getAttribute(\"data-x-shift\"), 10);\n if (Number.isNaN(pShift)) {\n pShift = 0;\n }\n }\n divider.setAttribute(\"x1\", 0 - pShift + 8);\n divider.setAttribute(\"x2\", pWidth - pShift - 8);\n });\n } else {\n log.debug(\"No Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n }\n });\n let stateBox = svgElem.getBBox();\n graph.edges().forEach(function(e) {\n if (e !== void 0 && graph.edge(e) !== void 0) {\n log.debug(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n drawEdge(diagram2, graph.edge(e), graph.edge(e).relation);\n }\n });\n stateBox = svgElem.getBBox();\n const stateInfo = {\n id: parentId ? parentId : \"root\",\n label: parentId ? parentId : \"root\",\n width: 0,\n height: 0\n };\n stateInfo.width = stateBox.width + 2 * conf.padding;\n stateInfo.height = stateBox.height + 2 * conf.padding;\n log.debug(\"Doc rendered\", stateInfo, graph);\n return stateInfo;\n}, \"renderDoc\");\nvar stateRenderer_default = {\n setConf,\n draw\n};\n\n// src/diagrams/state/stateDiagram.ts\nvar diagram = {\n parser: stateDiagram_default,\n get db() {\n return new StateDB(1);\n },\n renderer: stateRenderer_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n }, \"init\")\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"stateDiagram-RAJIS63D-DdiY5cf3.js","names":["getConfig","line","curveBasis","select","graphlib.Graph"],"sources":["../node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-RAJIS63D.mjs"],"sourcesContent":["import {\n StateDB,\n stateDiagram_default,\n styles_default\n} from \"./chunk-NQ4KR5QH.mjs\";\nimport \"./chunk-55IACEB6.mjs\";\nimport \"./chunk-KX2RTZJC.mjs\";\nimport \"./chunk-GLR3WWYH.mjs\";\nimport \"./chunk-O4XLMI2P.mjs\";\nimport \"./chunk-MX3YWQON.mjs\";\nimport \"./chunk-KYZI473N.mjs\";\nimport \"./chunk-YBOYWFTD.mjs\";\nimport \"./chunk-PQ6SQG4A.mjs\";\nimport \"./chunk-PU5JKC2W.mjs\";\nimport {\n utils_default\n} from \"./chunk-GEFDOKGD.mjs\";\nimport {\n common_default,\n configureSvgSize,\n getConfig2 as getConfig,\n getUrl\n} from \"./chunk-7R4GIKGN.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/state/stateRenderer.js\nimport { select } from \"d3\";\nimport { layout as dagreLayout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\n\n// src/diagrams/state/shapes.js\nimport { line, curveBasis } from \"d3\";\nvar drawStartState = /* @__PURE__ */ __name((g) => g.append(\"circle\").attr(\"class\", \"start-state\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit), \"drawStartState\");\nvar drawDivider = /* @__PURE__ */ __name((g) => g.append(\"line\").style(\"stroke\", \"grey\").style(\"stroke-dasharray\", \"3\").attr(\"x1\", getConfig().state.textHeight).attr(\"class\", \"divider\").attr(\"x2\", getConfig().state.textHeight * 2).attr(\"y1\", 0).attr(\"y2\", 0), \"drawDivider\");\nvar drawSimpleState = /* @__PURE__ */ __name((g, stateDef) => {\n const state = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 2 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n const classBox = state.node().getBBox();\n g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", classBox.width + 2 * getConfig().state.padding).attr(\"height\", classBox.height + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n return state;\n}, \"drawSimpleState\");\nvar drawDescrState = /* @__PURE__ */ __name((g, stateDef) => {\n const addTspan = /* @__PURE__ */ __name(function(textEl, txt, isFirst2) {\n const tSpan = textEl.append(\"tspan\").attr(\"x\", 2 * getConfig().state.padding).text(txt);\n if (!isFirst2) {\n tSpan.attr(\"dy\", getConfig().state.textHeight);\n }\n }, \"addTspan\");\n const title = g.append(\"text\").attr(\"x\", 2 * getConfig().state.padding).attr(\"y\", getConfig().state.textHeight + 1.3 * getConfig().state.padding).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.descriptions[0]);\n const titleBox = title.node().getBBox();\n const titleHeight = titleBox.height;\n const description = g.append(\"text\").attr(\"x\", getConfig().state.padding).attr(\n \"y\",\n titleHeight + getConfig().state.padding * 0.4 + getConfig().state.dividerMargin + getConfig().state.textHeight\n ).attr(\"class\", \"state-description\");\n let isFirst = true;\n let isSecond = true;\n stateDef.descriptions.forEach(function(descr) {\n if (!isFirst) {\n addTspan(description, descr, isSecond);\n isSecond = false;\n }\n isFirst = false;\n });\n const descrLine = g.append(\"line\").attr(\"x1\", getConfig().state.padding).attr(\"y1\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"y2\", getConfig().state.padding + titleHeight + getConfig().state.dividerMargin / 2).attr(\"class\", \"descr-divider\");\n const descrBox = description.node().getBBox();\n const width = Math.max(descrBox.width, titleBox.width);\n descrLine.attr(\"x2\", width + 3 * getConfig().state.padding);\n g.insert(\"rect\", \":first-child\").attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding).attr(\"width\", width + 2 * getConfig().state.padding).attr(\"height\", descrBox.height + titleHeight + 2 * getConfig().state.padding).attr(\"rx\", getConfig().state.radius);\n return g;\n}, \"drawDescrState\");\nvar addTitleAndBox = /* @__PURE__ */ __name((g, stateDef, altBkg) => {\n const pad = getConfig().state.padding;\n const dblPad = 2 * getConfig().state.padding;\n const orgBox = g.node().getBBox();\n const orgWidth = orgBox.width;\n const orgX = orgBox.x;\n const title = g.append(\"text\").attr(\"x\", 0).attr(\"y\", getConfig().state.titleShift).attr(\"font-size\", getConfig().state.fontSize).attr(\"class\", \"state-title\").text(stateDef.id);\n const titleBox = title.node().getBBox();\n const titleWidth = titleBox.width + dblPad;\n let width = Math.max(titleWidth, orgWidth);\n if (width === orgWidth) {\n width = width + dblPad;\n }\n let startX;\n const graphBox = g.node().getBBox();\n if (stateDef.doc) {\n }\n startX = orgX - pad;\n if (titleWidth > orgWidth) {\n startX = (orgWidth - width) / 2 + pad;\n }\n if (Math.abs(orgX - graphBox.x) < pad && titleWidth > orgWidth) {\n startX = orgX - (titleWidth - orgWidth) / 2;\n }\n const lineY = 1 - getConfig().state.textHeight;\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\"y\", lineY).attr(\"class\", altBkg ? \"alt-composit\" : \"composit\").attr(\"width\", width).attr(\n \"height\",\n graphBox.height + getConfig().state.textHeight + getConfig().state.titleShift + 1\n ).attr(\"rx\", \"0\");\n title.attr(\"x\", startX + pad);\n if (titleWidth <= orgWidth) {\n title.attr(\"x\", orgX + (width - dblPad) / 2 - titleWidth / 2 + pad);\n }\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n \"y\",\n getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n ).attr(\"width\", width).attr(\"height\", getConfig().state.textHeight * 3).attr(\"rx\", getConfig().state.radius);\n g.insert(\"rect\", \":first-child\").attr(\"x\", startX).attr(\n \"y\",\n getConfig().state.titleShift - getConfig().state.textHeight - getConfig().state.padding\n ).attr(\"width\", width).attr(\"height\", graphBox.height + 3 + 2 * getConfig().state.textHeight).attr(\"rx\", getConfig().state.radius);\n return g;\n}, \"addTitleAndBox\");\nvar drawEndState = /* @__PURE__ */ __name((g) => {\n g.append(\"circle\").attr(\"class\", \"end-state-outer\").attr(\"r\", getConfig().state.sizeUnit + getConfig().state.miniPadding).attr(\n \"cx\",\n getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n ).attr(\n \"cy\",\n getConfig().state.padding + getConfig().state.sizeUnit + getConfig().state.miniPadding\n );\n return g.append(\"circle\").attr(\"class\", \"end-state-inner\").attr(\"r\", getConfig().state.sizeUnit).attr(\"cx\", getConfig().state.padding + getConfig().state.sizeUnit + 2).attr(\"cy\", getConfig().state.padding + getConfig().state.sizeUnit + 2);\n}, \"drawEndState\");\nvar drawForkJoinState = /* @__PURE__ */ __name((g, stateDef) => {\n let width = getConfig().state.forkWidth;\n let height = getConfig().state.forkHeight;\n if (stateDef.parentId) {\n let tmp = width;\n width = height;\n height = tmp;\n }\n return g.append(\"rect\").style(\"stroke\", \"black\").style(\"fill\", \"black\").attr(\"width\", width).attr(\"height\", height).attr(\"x\", getConfig().state.padding).attr(\"y\", getConfig().state.padding);\n}, \"drawForkJoinState\");\nvar _drawLongText = /* @__PURE__ */ __name((_text, x, y, g) => {\n let textHeight = 0;\n const textElem = g.append(\"text\");\n textElem.style(\"text-anchor\", \"start\");\n textElem.attr(\"class\", \"noteText\");\n let text = _text.replace(/\\r\\n/g, \"<br/>\");\n text = text.replace(/\\n/g, \"<br/>\");\n const lines = text.split(common_default.lineBreakRegex);\n let tHeight = 1.25 * getConfig().state.noteMargin;\n for (const line2 of lines) {\n const txt = line2.trim();\n if (txt.length > 0) {\n const span = textElem.append(\"tspan\");\n span.text(txt);\n if (tHeight === 0) {\n const textBounds = span.node().getBBox();\n tHeight += textBounds.height;\n }\n textHeight += tHeight;\n span.attr(\"x\", x + getConfig().state.noteMargin);\n span.attr(\"y\", y + textHeight + 1.25 * getConfig().state.noteMargin);\n }\n }\n return { textWidth: textElem.node().getBBox().width, textHeight };\n}, \"_drawLongText\");\nvar drawNote = /* @__PURE__ */ __name((text, g) => {\n g.attr(\"class\", \"state-note\");\n const note = g.append(\"rect\").attr(\"x\", 0).attr(\"y\", getConfig().state.padding);\n const rectElem = g.append(\"g\");\n const { textWidth, textHeight } = _drawLongText(text, 0, 0, rectElem);\n note.attr(\"height\", textHeight + 2 * getConfig().state.noteMargin);\n note.attr(\"width\", textWidth + getConfig().state.noteMargin * 2);\n return note;\n}, \"drawNote\");\nvar drawState = /* @__PURE__ */ __name(function(elem, stateDef) {\n const id = stateDef.id;\n const stateInfo = {\n id,\n label: stateDef.id,\n width: 0,\n height: 0\n };\n const g = elem.append(\"g\").attr(\"id\", id).attr(\"class\", \"stateGroup\");\n if (stateDef.type === \"start\") {\n drawStartState(g);\n }\n if (stateDef.type === \"end\") {\n drawEndState(g);\n }\n if (stateDef.type === \"fork\" || stateDef.type === \"join\") {\n drawForkJoinState(g, stateDef);\n }\n if (stateDef.type === \"note\") {\n drawNote(stateDef.note.text, g);\n }\n if (stateDef.type === \"divider\") {\n drawDivider(g);\n }\n if (stateDef.type === \"default\" && stateDef.descriptions.length === 0) {\n drawSimpleState(g, stateDef);\n }\n if (stateDef.type === \"default\" && stateDef.descriptions.length > 0) {\n drawDescrState(g, stateDef);\n }\n const stateBox = g.node().getBBox();\n stateInfo.width = stateBox.width + 2 * getConfig().state.padding;\n stateInfo.height = stateBox.height + 2 * getConfig().state.padding;\n return stateInfo;\n}, \"drawState\");\nvar edgeCount = 0;\nvar drawEdge = /* @__PURE__ */ __name(function(elem, path, relation) {\n const getRelationType = /* @__PURE__ */ __name(function(type) {\n switch (type) {\n case StateDB.relationType.AGGREGATION:\n return \"aggregation\";\n case StateDB.relationType.EXTENSION:\n return \"extension\";\n case StateDB.relationType.COMPOSITION:\n return \"composition\";\n case StateDB.relationType.DEPENDENCY:\n return \"dependency\";\n }\n }, \"getRelationType\");\n path.points = path.points.filter((p) => !Number.isNaN(p.y));\n const lineData = path.points;\n const lineFunction = line().x(function(d) {\n return d.x;\n }).y(function(d) {\n return d.y;\n }).curve(curveBasis);\n const svgPath = elem.append(\"path\").attr(\"d\", lineFunction(lineData)).attr(\"id\", \"edge\" + edgeCount).attr(\"class\", \"transition\");\n let url = \"\";\n if (getConfig().state.arrowMarkerAbsolute) {\n url = getUrl(true);\n }\n svgPath.attr(\n \"marker-end\",\n \"url(\" + url + \"#\" + getRelationType(StateDB.relationType.DEPENDENCY) + \"End)\"\n );\n if (relation.title !== void 0) {\n const label = elem.append(\"g\").attr(\"class\", \"stateLabel\");\n const { x, y } = utils_default.calcLabelPosition(path.points);\n const rows = common_default.getRows(relation.title);\n let titleHeight = 0;\n const titleRows = [];\n let maxWidth = 0;\n let minX = 0;\n for (let i = 0; i <= rows.length; i++) {\n const title = label.append(\"text\").attr(\"text-anchor\", \"middle\").text(rows[i]).attr(\"x\", x).attr(\"y\", y + titleHeight);\n const boundsTmp = title.node().getBBox();\n maxWidth = Math.max(maxWidth, boundsTmp.width);\n minX = Math.min(minX, boundsTmp.x);\n log.info(boundsTmp.x, x, y + titleHeight);\n if (titleHeight === 0) {\n const titleBox = title.node().getBBox();\n titleHeight = titleBox.height;\n log.info(\"Title height\", titleHeight, y);\n }\n titleRows.push(title);\n }\n let boxHeight = titleHeight * rows.length;\n if (rows.length > 1) {\n const heightAdj = (rows.length - 1) * titleHeight * 0.5;\n titleRows.forEach((title, i) => title.attr(\"y\", y + i * titleHeight - heightAdj));\n boxHeight = titleHeight * rows.length;\n }\n const bounds = label.node().getBBox();\n label.insert(\"rect\", \":first-child\").attr(\"class\", \"box\").attr(\"x\", x - maxWidth / 2 - getConfig().state.padding / 2).attr(\"y\", y - boxHeight / 2 - getConfig().state.padding / 2 - 3.5).attr(\"width\", maxWidth + getConfig().state.padding).attr(\"height\", boxHeight + getConfig().state.padding);\n log.info(bounds);\n }\n edgeCount++;\n}, \"drawEdge\");\n\n// src/diagrams/state/stateRenderer.js\nvar conf;\nvar transformationLog = {};\nvar setConf = /* @__PURE__ */ __name(function() {\n}, \"setConf\");\nvar insertMarkers = /* @__PURE__ */ __name(function(elem) {\n elem.append(\"defs\").append(\"marker\").attr(\"id\", \"dependencyEnd\").attr(\"refX\", 19).attr(\"refY\", 7).attr(\"markerWidth\", 20).attr(\"markerHeight\", 28).attr(\"orient\", \"auto\").append(\"path\").attr(\"d\", \"M 19,7 L9,13 L14,7 L9,1 Z\");\n}, \"insertMarkers\");\nvar draw = /* @__PURE__ */ __name(function(text, id, _version, diagObj) {\n conf = getConfig().state;\n const securityLevel = getConfig().securityLevel;\n let sandboxElement;\n if (securityLevel === \"sandbox\") {\n sandboxElement = select(\"#i\" + id);\n }\n const root = securityLevel === \"sandbox\" ? select(sandboxElement.nodes()[0].contentDocument.body) : select(\"body\");\n const doc = securityLevel === \"sandbox\" ? sandboxElement.nodes()[0].contentDocument : document;\n log.debug(\"Rendering diagram \" + text);\n const diagram2 = root.select(`[id='${id}']`);\n insertMarkers(diagram2);\n const rootDoc = diagObj.db.getRootDoc();\n renderDoc(rootDoc, diagram2, void 0, false, root, doc, diagObj);\n const padding = conf.padding;\n const bounds = diagram2.node().getBBox();\n const width = bounds.width + padding * 2;\n const height = bounds.height + padding * 2;\n const svgWidth = width * 1.75;\n configureSvgSize(diagram2, height, svgWidth, conf.useMaxWidth);\n diagram2.attr(\n \"viewBox\",\n `${bounds.x - conf.padding} ${bounds.y - conf.padding} ` + width + \" \" + height\n );\n}, \"draw\");\nvar getLabelWidth = /* @__PURE__ */ __name((text) => {\n return text ? text.length * conf.fontSizeFactor : 1;\n}, \"getLabelWidth\");\nvar renderDoc = /* @__PURE__ */ __name((doc, diagram2, parentId, altBkg, root, domDocument, diagObj) => {\n const graph = new graphlib.Graph({\n compound: true,\n multigraph: true\n });\n let i;\n let edgeFreeDoc = true;\n for (i = 0; i < doc.length; i++) {\n if (doc[i].stmt === \"relation\") {\n edgeFreeDoc = false;\n break;\n }\n }\n if (parentId) {\n graph.setGraph({\n rankdir: \"LR\",\n multigraph: true,\n compound: true,\n // acyclicer: 'greedy',\n ranker: \"tight-tree\",\n ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n nodeSep: edgeFreeDoc ? 1 : 50,\n isMultiGraph: true\n // ranksep: 5,\n // nodesep: 1\n });\n } else {\n graph.setGraph({\n rankdir: \"TB\",\n multigraph: true,\n compound: true,\n // isCompound: true,\n // acyclicer: 'greedy',\n // ranker: 'longest-path'\n ranksep: edgeFreeDoc ? 1 : conf.edgeLengthFactor,\n nodeSep: edgeFreeDoc ? 1 : 50,\n ranker: \"tight-tree\",\n // ranker: 'network-simplex'\n isMultiGraph: true\n });\n }\n graph.setDefaultEdgeLabel(function() {\n return {};\n });\n const states = diagObj.db.getStates();\n const relations = diagObj.db.getRelations();\n const keys = Object.keys(states);\n let first = true;\n for (const key of keys) {\n const stateDef = states[key];\n if (parentId) {\n stateDef.parentId = parentId;\n }\n let node;\n if (stateDef.doc) {\n let sub = diagram2.append(\"g\").attr(\"id\", stateDef.id).attr(\"class\", \"stateGroup\");\n node = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root, domDocument, diagObj);\n if (first) {\n sub = addTitleAndBox(sub, stateDef, altBkg);\n let boxBounds = sub.node().getBBox();\n node.width = boxBounds.width;\n node.height = boxBounds.height + conf.padding / 2;\n transformationLog[stateDef.id] = { y: conf.compositTitleSize };\n } else {\n let boxBounds = sub.node().getBBox();\n node.width = boxBounds.width;\n node.height = boxBounds.height;\n }\n } else {\n node = drawState(diagram2, stateDef, graph);\n }\n if (stateDef.note) {\n const noteDef = {\n descriptions: [],\n id: stateDef.id + \"-note\",\n note: stateDef.note,\n type: \"note\"\n };\n const note = drawState(diagram2, noteDef, graph);\n if (stateDef.note.position === \"left of\") {\n graph.setNode(node.id + \"-note\", note);\n graph.setNode(node.id, node);\n } else {\n graph.setNode(node.id, node);\n graph.setNode(node.id + \"-note\", note);\n }\n graph.setParent(node.id, node.id + \"-group\");\n graph.setParent(node.id + \"-note\", node.id + \"-group\");\n } else {\n graph.setNode(node.id, node);\n }\n }\n log.debug(\"Count=\", graph.nodeCount(), graph);\n let cnt = 0;\n relations.forEach(function(relation) {\n cnt++;\n log.debug(\"Setting edge\", relation);\n graph.setEdge(\n relation.id1,\n relation.id2,\n {\n relation,\n width: getLabelWidth(relation.title),\n height: conf.labelHeight * common_default.getRows(relation.title).length,\n labelpos: \"c\"\n },\n \"id\" + cnt\n );\n });\n dagreLayout(graph);\n log.debug(\"Graph after layout\", graph.nodes());\n const svgElem = diagram2.node();\n graph.nodes().forEach(function(v) {\n if (v !== void 0 && graph.node(v) !== void 0) {\n log.warn(\"Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n root.select(\"#\" + svgElem.id + \" #\" + v).attr(\n \"transform\",\n \"translate(\" + (graph.node(v).x - graph.node(v).width / 2) + \",\" + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + \" )\"\n );\n root.select(\"#\" + svgElem.id + \" #\" + v).attr(\"data-x-shift\", graph.node(v).x - graph.node(v).width / 2);\n const dividers = domDocument.querySelectorAll(\"#\" + svgElem.id + \" #\" + v + \" .divider\");\n dividers.forEach((divider) => {\n const parent = divider.parentElement;\n let pWidth = 0;\n let pShift = 0;\n if (parent) {\n if (parent.parentElement) {\n pWidth = parent.parentElement.getBBox().width;\n }\n pShift = parseInt(parent.getAttribute(\"data-x-shift\"), 10);\n if (Number.isNaN(pShift)) {\n pShift = 0;\n }\n }\n divider.setAttribute(\"x1\", 0 - pShift + 8);\n divider.setAttribute(\"x2\", pWidth - pShift - 8);\n });\n } else {\n log.debug(\"No Node \" + v + \": \" + JSON.stringify(graph.node(v)));\n }\n });\n let stateBox = svgElem.getBBox();\n graph.edges().forEach(function(e) {\n if (e !== void 0 && graph.edge(e) !== void 0) {\n log.debug(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n drawEdge(diagram2, graph.edge(e), graph.edge(e).relation);\n }\n });\n stateBox = svgElem.getBBox();\n const stateInfo = {\n id: parentId ? parentId : \"root\",\n label: parentId ? parentId : \"root\",\n width: 0,\n height: 0\n };\n stateInfo.width = stateBox.width + 2 * conf.padding;\n stateInfo.height = stateBox.height + 2 * conf.padding;\n log.debug(\"Doc rendered\", stateInfo, graph);\n return stateInfo;\n}, \"renderDoc\");\nvar stateRenderer_default = {\n setConf,\n draw\n};\n\n// src/diagrams/state/stateDiagram.ts\nvar diagram = {\n parser: stateDiagram_default,\n get db() {\n return new StateDB(1);\n },\n renderer: stateRenderer_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n }, \"init\")\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import "./chunk-GEFDOKGD-DGJJEGSm.js";
2
+ import { n as e } from "./src-BhNgmpel.js";
3
+ import "./chunk-7R4GIKGN-DJmroLCH.js";
4
+ import "./chunk-PU5JKC2W-DNpn_Yik.js";
5
+ import "./chunk-MX3YWQON-D43mcq1f.js";
6
+ import "./chunk-YBOYWFTD-DkjEOcgZ.js";
7
+ import "./chunk-55IACEB6-DZ-UBhHX.js";
8
+ import "./chunk-KX2RTZJC-d9jFqUAY.js";
9
+ import "./chunk-PQ6SQG4A-Cpfc5F4u.js";
10
+ import "./chunk-KYZI473N-BXYCe83A.js";
11
+ import "./chunk-O4XLMI2P-DtGEm9QX.js";
12
+ import "./chunk-GLR3WWYH-BDwmgwCA.js";
13
+ import { i as t, n, r, t as i } from "./chunk-NQ4KR5QH-C0nWShNk.js";
14
+ //#region node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-FVOUBMTO.mjs
15
+ var a = {
16
+ parser: n,
17
+ get db() {
18
+ return new i(2);
19
+ },
20
+ renderer: r,
21
+ styles: t,
22
+ init: /* @__PURE__ */ e((e) => {
23
+ e.state ||= {}, e.state.arrowMarkerAbsolute = e.arrowMarkerAbsolute;
24
+ }, "init")
25
+ };
26
+ //#endregion
27
+ export { a as diagram };
28
+
29
+ //# sourceMappingURL=stateDiagram-v2-FVOUBMTO-CAWy0Pkh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stateDiagram-v2-FVOUBMTO-Cnp2uGxd.js","names":[],"sources":["../node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-FVOUBMTO.mjs"],"sourcesContent":["import {\n StateDB,\n stateDiagram_default,\n stateRenderer_v3_unified_default,\n styles_default\n} from \"./chunk-NQ4KR5QH.mjs\";\nimport \"./chunk-55IACEB6.mjs\";\nimport \"./chunk-KX2RTZJC.mjs\";\nimport \"./chunk-GLR3WWYH.mjs\";\nimport \"./chunk-O4XLMI2P.mjs\";\nimport \"./chunk-MX3YWQON.mjs\";\nimport \"./chunk-KYZI473N.mjs\";\nimport \"./chunk-YBOYWFTD.mjs\";\nimport \"./chunk-PQ6SQG4A.mjs\";\nimport \"./chunk-PU5JKC2W.mjs\";\nimport \"./chunk-GEFDOKGD.mjs\";\nimport \"./chunk-7R4GIKGN.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/state/stateDiagram-v2.ts\nvar diagram = {\n parser: stateDiagram_default,\n get db() {\n return new StateDB(2);\n },\n renderer: stateRenderer_v3_unified_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n }, \"init\")\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;AAsBA,IAAI,IAAU;CACZ,QAAQ;CACR,IAAI,KAAK;AACP,SAAO,IAAI,EAAQ,EAAE;;CAEvB,UAAU;CACV,QAAQ;CACR,MAAsB,mBAAQ,MAAQ;AAIpC,EAHA,AACE,EAAI,UAAQ,EAAE,EAEhB,EAAI,MAAM,sBAAsB,EAAI;IACnC,OAAO;CACX"}
1
+ {"version":3,"file":"stateDiagram-v2-FVOUBMTO-CAWy0Pkh.js","names":[],"sources":["../node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-FVOUBMTO.mjs"],"sourcesContent":["import {\n StateDB,\n stateDiagram_default,\n stateRenderer_v3_unified_default,\n styles_default\n} from \"./chunk-NQ4KR5QH.mjs\";\nimport \"./chunk-55IACEB6.mjs\";\nimport \"./chunk-KX2RTZJC.mjs\";\nimport \"./chunk-GLR3WWYH.mjs\";\nimport \"./chunk-O4XLMI2P.mjs\";\nimport \"./chunk-MX3YWQON.mjs\";\nimport \"./chunk-KYZI473N.mjs\";\nimport \"./chunk-YBOYWFTD.mjs\";\nimport \"./chunk-PQ6SQG4A.mjs\";\nimport \"./chunk-PU5JKC2W.mjs\";\nimport \"./chunk-GEFDOKGD.mjs\";\nimport \"./chunk-7R4GIKGN.mjs\";\nimport {\n __name\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/state/stateDiagram-v2.ts\nvar diagram = {\n parser: stateDiagram_default,\n get db() {\n return new StateDB(2);\n },\n renderer: stateRenderer_v3_unified_default,\n styles: styles_default,\n init: /* @__PURE__ */ __name((cnf) => {\n if (!cnf.state) {\n cnf.state = {};\n }\n cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;\n }, \"init\")\n};\nexport {\n diagram\n};\n"],"x_google_ignoreList":[0],"mappings":";;;;;;;;;;;;;;AAsBA,IAAI,IAAU;CACZ,QAAQ;CACR,IAAI,KAAK;AACP,SAAO,IAAI,EAAQ,EAAE;;CAEvB,UAAU;CACV,QAAQ;CACR,MAAsB,mBAAQ,MAAQ;AAIpC,EAHA,AACE,EAAI,UAAQ,EAAE,EAEhB,EAAI,MAAM,sBAAsB,EAAI;IACnC,OAAO;CACX"}
@@ -57,4 +57,4 @@ function o(e) {
57
57
  //#endregion
58
58
  export { i as a, a as i, r as n, o as r, t };
59
59
 
60
- //# sourceMappingURL=storage-B-gK537W.js.map
60
+ //# sourceMappingURL=storage-BUlr2J4R.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage-B-gK537W.js","names":[],"sources":["../src/services/storage.ts"],"sourcesContent":["/**\n * LocalStorage helpers with type safety and namespacing\n * @countermeasure/web-components/services/storage\n */\n\nexport interface StorageConfig {\n prefix?: string\n}\n\nconst DEFAULT_PREFIX = 'tf_'\n\nexport class StorageManager {\n private readonly prefix: string\n\n constructor(config?: StorageConfig) {\n this.prefix = config?.prefix ?? DEFAULT_PREFIX\n }\n\n get(key: string): unknown {\n const fullKey = this.prefix + key\n try {\n const raw = localStorage.getItem(fullKey)\n if (raw === null) {\n return null\n }\n return JSON.parse(raw) as unknown\n } catch {\n return null\n }\n }\n\n set(key: string, value: unknown): void {\n const fullKey = this.prefix + key\n localStorage.setItem(fullKey, JSON.stringify(value))\n }\n\n remove(key: string): void {\n const fullKey = this.prefix + key\n localStorage.removeItem(fullKey)\n }\n\n has(key: string): boolean {\n const fullKey = this.prefix + key\n return localStorage.getItem(fullKey) !== null\n }\n\n clear(): void {\n const keysToRemove: string[] = []\n for (let i = 0; i < localStorage.length; i += 1) {\n const key = localStorage.key(i)\n if (key?.startsWith(this.prefix) === true) {\n keysToRemove.push(key)\n }\n }\n for (const key of keysToRemove) {\n localStorage.removeItem(key)\n }\n }\n\n getKeys(): string[] {\n const keys: string[] = []\n for (let i = 0; i < localStorage.length; i += 1) {\n const key = localStorage.key(i)\n if (key?.startsWith(this.prefix) === true) {\n keys.push(key.slice(this.prefix.length))\n }\n }\n return keys\n }\n}\n\nconst defaultManager = new StorageManager()\n\nexport function storageGet(key: string): unknown {\n return defaultManager.get(key)\n}\n\nexport function storageSet(key: string, value: unknown): void {\n defaultManager.set(key, value)\n}\n\nexport function storageRemove(key: string): void {\n defaultManager.remove(key)\n}\n\nexport function storageHas(key: string): boolean {\n return defaultManager.has(key)\n}\n"],"mappings":";AASA,IAAM,IAAiB,OAEV,IAAb,MAA4B;CAC1B;CAEA,YAAY,GAAwB;AAClC,OAAK,SAAS,GAAQ,UAAU;;CAGlC,IAAI,GAAsB;EACxB,IAAM,IAAU,KAAK,SAAS;AAC9B,MAAI;GACF,IAAM,IAAM,aAAa,QAAQ,EAAQ;AAIzC,UAHI,MAAQ,OACH,OAEF,KAAK,MAAM,EAAI;UAChB;AACN,UAAO;;;CAIX,IAAI,GAAa,GAAsB;EACrC,IAAM,IAAU,KAAK,SAAS;AAC9B,eAAa,QAAQ,GAAS,KAAK,UAAU,EAAM,CAAC;;CAGtD,OAAO,GAAmB;EACxB,IAAM,IAAU,KAAK,SAAS;AAC9B,eAAa,WAAW,EAAQ;;CAGlC,IAAI,GAAsB;EACxB,IAAM,IAAU,KAAK,SAAS;AAC9B,SAAO,aAAa,QAAQ,EAAQ,KAAK;;CAG3C,QAAc;EACZ,IAAM,IAAyB,EAAE;AACjC,OAAK,IAAI,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK,GAAG;GAC/C,IAAM,IAAM,aAAa,IAAI,EAAE;AAC/B,GAAI,GAAK,WAAW,KAAK,OAAO,KAAK,MACnC,EAAa,KAAK,EAAI;;AAG1B,OAAK,IAAM,KAAO,EAChB,cAAa,WAAW,EAAI;;CAIhC,UAAoB;EAClB,IAAM,IAAiB,EAAE;AACzB,OAAK,IAAI,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK,GAAG;GAC/C,IAAM,IAAM,aAAa,IAAI,EAAE;AAC/B,GAAI,GAAK,WAAW,KAAK,OAAO,KAAK,MACnC,EAAK,KAAK,EAAI,MAAM,KAAK,OAAO,OAAO,CAAC;;AAG5C,SAAO;;GAIL,IAAiB,IAAI,GAAgB;AAE3C,SAAgB,EAAW,GAAsB;AAC/C,QAAO,EAAe,IAAI,EAAI;;AAGhC,SAAgB,EAAW,GAAa,GAAsB;AAC5D,GAAe,IAAI,GAAK,EAAM;;AAGhC,SAAgB,EAAc,GAAmB;AAC/C,GAAe,OAAO,EAAI;;AAG5B,SAAgB,EAAW,GAAsB;AAC/C,QAAO,EAAe,IAAI,EAAI"}
1
+ {"version":3,"file":"storage-BUlr2J4R.js","names":[],"sources":["../src/services/storage.ts"],"sourcesContent":["/**\n * LocalStorage helpers with type safety and namespacing\n * @countermeasure/web-components/services/storage\n */\n\nexport interface StorageConfig {\n prefix?: string\n}\n\nconst DEFAULT_PREFIX = 'tf_'\n\nexport class StorageManager {\n private readonly prefix: string\n\n constructor(config?: StorageConfig) {\n this.prefix = config?.prefix ?? DEFAULT_PREFIX\n }\n\n get(key: string): unknown {\n const fullKey = this.prefix + key\n try {\n const raw = localStorage.getItem(fullKey)\n if (raw === null) {\n return null\n }\n return JSON.parse(raw) as unknown\n } catch {\n return null\n }\n }\n\n set(key: string, value: unknown): void {\n const fullKey = this.prefix + key\n localStorage.setItem(fullKey, JSON.stringify(value))\n }\n\n remove(key: string): void {\n const fullKey = this.prefix + key\n localStorage.removeItem(fullKey)\n }\n\n has(key: string): boolean {\n const fullKey = this.prefix + key\n return localStorage.getItem(fullKey) !== null\n }\n\n clear(): void {\n const keysToRemove: string[] = []\n for (let i = 0; i < localStorage.length; i += 1) {\n const key = localStorage.key(i)\n if (key?.startsWith(this.prefix) === true) {\n keysToRemove.push(key)\n }\n }\n for (const key of keysToRemove) {\n localStorage.removeItem(key)\n }\n }\n\n getKeys(): string[] {\n const keys: string[] = []\n for (let i = 0; i < localStorage.length; i += 1) {\n const key = localStorage.key(i)\n if (key?.startsWith(this.prefix) === true) {\n keys.push(key.slice(this.prefix.length))\n }\n }\n return keys\n }\n}\n\nconst defaultManager = new StorageManager()\n\nexport function storageGet(key: string): unknown {\n return defaultManager.get(key)\n}\n\nexport function storageSet(key: string, value: unknown): void {\n defaultManager.set(key, value)\n}\n\nexport function storageRemove(key: string): void {\n defaultManager.remove(key)\n}\n\nexport function storageHas(key: string): boolean {\n return defaultManager.has(key)\n}\n"],"mappings":";AASA,IAAM,IAAiB,OAEV,IAAb,MAA4B;CAC1B;CAEA,YAAY,GAAwB;AAClC,OAAK,SAAS,GAAQ,UAAU;;CAGlC,IAAI,GAAsB;EACxB,IAAM,IAAU,KAAK,SAAS;AAC9B,MAAI;GACF,IAAM,IAAM,aAAa,QAAQ,EAAQ;AAIzC,UAHI,MAAQ,OACH,OAEF,KAAK,MAAM,EAAI;UAChB;AACN,UAAO;;;CAIX,IAAI,GAAa,GAAsB;EACrC,IAAM,IAAU,KAAK,SAAS;AAC9B,eAAa,QAAQ,GAAS,KAAK,UAAU,EAAM,CAAC;;CAGtD,OAAO,GAAmB;EACxB,IAAM,IAAU,KAAK,SAAS;AAC9B,eAAa,WAAW,EAAQ;;CAGlC,IAAI,GAAsB;EACxB,IAAM,IAAU,KAAK,SAAS;AAC9B,SAAO,aAAa,QAAQ,EAAQ,KAAK;;CAG3C,QAAc;EACZ,IAAM,IAAyB,EAAE;AACjC,OAAK,IAAI,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK,GAAG;GAC/C,IAAM,IAAM,aAAa,IAAI,EAAE;AAC/B,GAAI,GAAK,WAAW,KAAK,OAAO,KAAK,MACnC,EAAa,KAAK,EAAI;;AAG1B,OAAK,IAAM,KAAO,EAChB,cAAa,WAAW,EAAI;;CAIhC,UAAoB;EAClB,IAAM,IAAiB,EAAE;AACzB,OAAK,IAAI,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK,GAAG;GAC/C,IAAM,IAAM,aAAa,IAAI,EAAE;AAC/B,GAAI,GAAK,WAAW,KAAK,OAAO,KAAK,MACnC,EAAK,KAAK,EAAI,MAAM,KAAK,OAAO,OAAO,CAAC;;AAG5C,SAAO;;GAIL,IAAiB,IAAI,GAAgB;AAE3C,SAAgB,EAAW,GAAsB;AAC/C,QAAO,EAAe,IAAI,EAAI;;AAGhC,SAAgB,EAAW,GAAa,GAAsB;AAC5D,GAAe,IAAI,GAAK,EAAM;;AAGhC,SAAgB,EAAc,GAAmB;AAC/C,GAAe,OAAO,EAAI;;AAG5B,SAAgB,EAAW,GAAsB;AAC/C,QAAO,EAAe,IAAI,EAAI"}
@@ -247,8 +247,8 @@
247
247
  display: flex;
248
248
  height: 100%;
249
249
  flex-direction: column;
250
- gap: 1rem;
251
- padding: 1rem 0.75rem;
250
+ gap: var(--density-section-gap);
251
+ padding: var(--density-section-gap) var(--density-padding-x);
252
252
  }
253
253
 
254
254
  /* Sidebar Brand */
@@ -342,7 +342,7 @@
342
342
  }
343
343
 
344
344
  .cmm-sidebar__group {
345
- padding: 0.75rem 0.75rem 0.25rem;
345
+ padding: var(--density-padding-y) var(--density-padding-x) 0.25rem;
346
346
  }
347
347
 
348
348
  .cmm-sidebar__heading {
@@ -364,10 +364,10 @@
364
364
  position: relative;
365
365
  display: flex;
366
366
  align-items: center;
367
- gap: 0.75rem;
367
+ gap: var(--density-gap);
368
368
  border-radius: 0.75rem;
369
- padding: 0.625rem 0.75rem;
370
- font-size: 0.875rem;
369
+ padding: var(--density-padding-y) var(--density-padding-x);
370
+ font-size: var(--density-font);
371
371
  font-weight: 500;
372
372
  transition: all var(--transition-normal);
373
373
  color: hsl(var(--muted-foreground));
@@ -411,8 +411,8 @@
411
411
  /* Navigation Icons */
412
412
  .cmm-sidebar__icon {
413
413
  display: inline-flex;
414
- height: 2.25rem;
415
- width: 2.25rem;
414
+ height: var(--density-icon);
415
+ width: var(--density-icon);
416
416
  flex-shrink: 0;
417
417
  align-items: center;
418
418
  justify-content: center;
@@ -437,7 +437,7 @@
437
437
  overflow: hidden;
438
438
  text-overflow: ellipsis;
439
439
  white-space: nowrap;
440
- font-size: 0.875rem;
440
+ font-size: var(--density-font);
441
441
  font-weight: 500;
442
442
  line-height: 1.2;
443
443
  }
@@ -459,9 +459,9 @@
459
459
  .cmm-user-menu__trigger {
460
460
  display: flex;
461
461
  align-items: center;
462
- gap: 0.75rem;
462
+ gap: var(--density-gap);
463
463
  width: 100%;
464
- padding: 0.5rem;
464
+ padding: var(--density-padding-y);
465
465
  border-radius: 0.75rem;
466
466
  background: transparent;
467
467
  border: none;
@@ -476,15 +476,15 @@
476
476
 
477
477
  .cmm-user-menu__avatar {
478
478
  display: flex;
479
- height: 2.25rem;
480
- width: 2.25rem;
479
+ height: var(--density-icon);
480
+ width: var(--density-icon);
481
481
  align-items: center;
482
482
  justify-content: center;
483
483
  border-radius: 0.5rem;
484
484
  background: linear-gradient(to bottom right, hsl(var(--gradient-from)), hsl(var(--gradient-to)));
485
485
  color: white;
486
486
  font-weight: 600;
487
- font-size: 0.875rem;
487
+ font-size: var(--density-font);
488
488
  }
489
489
 
490
490
  .cmm-user-menu__info {
@@ -547,10 +547,10 @@
547
547
  .cmm-user-menu__dropdown-item {
548
548
  display: flex;
549
549
  align-items: center;
550
- gap: 0.75rem;
550
+ gap: var(--density-gap);
551
551
  width: 100%;
552
- padding: 0.75rem 1rem;
553
- font-size: 0.875rem;
552
+ padding: var(--density-padding-y) var(--density-padding-x);
553
+ font-size: var(--density-font);
554
554
  color: hsl(var(--foreground));
555
555
  background: transparent;
556
556
  border: none;
@@ -601,7 +601,7 @@
601
601
  align-items: center;
602
602
  justify-content: space-between;
603
603
  width: 100%;
604
- padding: 0.75rem 1rem;
604
+ padding: var(--density-padding-y) var(--density-padding-x);
605
605
  background: transparent;
606
606
  border: none;
607
607
  cursor: pointer;
@@ -261,18 +261,18 @@
261
261
  .sidebar__nav {
262
262
  display: flex;
263
263
  flex-direction: column;
264
- gap: 0.5rem;
265
- padding: 1rem;
264
+ gap: var(--density-gap);
265
+ padding: var(--density-section-gap);
266
266
  }
267
267
 
268
268
  .sidebar__nav-link {
269
269
  display: inline-flex;
270
270
  align-items: center;
271
- gap: 0.5rem;
272
- padding: 0.55rem 0.75rem;
271
+ gap: var(--density-gap);
272
+ padding: var(--density-padding-y) var(--density-padding-x);
273
273
  border-radius: 0.75rem;
274
274
  color: var(--color-text-muted);
275
- font-size: 0.875rem;
275
+ font-size: var(--density-font);
276
276
  font-weight: 500;
277
277
  text-decoration: none;
278
278
  transition:
@@ -353,12 +353,12 @@
353
353
  .sidebar__item {
354
354
  display: inline-flex;
355
355
  align-items: center;
356
- gap: 0.5rem;
357
- padding: 0.55rem 0.75rem;
356
+ gap: var(--density-gap);
357
+ padding: var(--density-padding-y) var(--density-padding-x);
358
358
  border-radius: 0.75rem;
359
359
  border-left: 3px solid transparent;
360
360
  color: var(--color-text-muted);
361
- font-size: 0.875rem;
361
+ font-size: var(--density-font);
362
362
  font-weight: 500;
363
363
  text-decoration: none;
364
364
  cursor: pointer;
@@ -382,9 +382,10 @@
382
382
  }
383
383
 
384
384
  .sidebar__item--active {
385
- background: hsl(var(--primary) / 0.15);
386
- color: hsl(var(--primary));
387
- border-left-color: hsl(var(--primary));
385
+ background: hsl(var(--primary) / 0.08);
386
+ color: hsl(var(--foreground));
387
+ border: 1px solid hsl(var(--primary) / 0.25);
388
+ border-left: 3px solid hsl(var(--primary));
388
389
  }
389
390
 
390
391
  .sidebar__item--active .sidebar__item-icon {
@@ -428,13 +429,24 @@
428
429
  }
429
430
 
430
431
  .sidebar__section-label {
431
- padding: 0.5rem 0.75rem 0.25rem;
432
- font-size: 0.6875rem;
432
+ display: flex;
433
+ align-items: center;
434
+ gap: 0.625rem;
435
+ padding: 0.625rem 0.75rem 0.3125rem;
436
+ font-size: 0.625rem;
433
437
  font-weight: 600;
434
438
  text-transform: uppercase;
435
- letter-spacing: 0.05em;
439
+ letter-spacing: 0.1em;
436
440
  color: var(--color-text-muted);
437
- opacity: 0.7;
441
+ opacity: 0.5;
442
+ white-space: nowrap;
443
+ }
444
+
445
+ .sidebar__section-label::after {
446
+ content: '';
447
+ flex: 1;
448
+ height: 1px;
449
+ background: linear-gradient(90deg, var(--color-border, hsl(var(--border) / 0.5)), transparent);
438
450
  }
439
451
 
440
452
  .sidebar__section-header {
@@ -494,7 +506,7 @@
494
506
  Scope Selector (Z2)
495
507
  ----------------------------------------------------------------------------- */
496
508
  .sidebar__scope {
497
- padding: 0.75rem 1rem;
509
+ padding: var(--density-padding-y) var(--density-padding-x);
498
510
  display: flex;
499
511
  flex-direction: column;
500
512
  gap: 0.35rem;
@@ -540,12 +552,12 @@
540
552
  display: inline-flex;
541
553
  align-items: center;
542
554
  justify-content: center;
543
- gap: 0.5rem;
544
- padding: 0.55rem 1rem;
555
+ gap: var(--density-gap);
556
+ padding: var(--density-padding-y) var(--density-padding-x);
545
557
  border-radius: 0.75rem;
546
558
  background: hsl(var(--primary));
547
559
  color: hsl(var(--primary-foreground));
548
- font-size: 0.875rem;
560
+ font-size: var(--density-font);
549
561
  font-weight: 600;
550
562
  border: none;
551
563
  cursor: pointer;