@countermeasure-platform/web-components 1.2.0 → 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.
- package/dist/{_basePickBy-BlpD3CIQ.js → _basePickBy-BQMPE4-n.js} +3 -3
- package/dist/{_basePickBy-BlpD3CIQ.js.map → _basePickBy-BQMPE4-n.js.map} +1 -1
- package/dist/{_baseUniq-CO35kH5B.js → _baseUniq-Bdp_vFUv.js} +3 -3
- package/dist/{_baseUniq-CO35kH5B.js.map → _baseUniq-Bdp_vFUv.js.map} +1 -1
- package/dist/{alert-dialog-DXa-O6E4.js → alert-dialog-C4dLk25S.js} +5 -5
- package/dist/{alert-dialog-DXa-O6E4.js.map → alert-dialog-C4dLk25S.js.map} +1 -1
- package/dist/{arc-DyfKNDOh.js → arc-jVbrWVYZ.js} +3 -3
- package/dist/{arc-DyfKNDOh.js.map → arc-jVbrWVYZ.js.map} +1 -1
- package/dist/architecture-PBZL5I3N-Zk3GmKE8.js +3 -0
- package/dist/{architectureDiagram-2XIMDMQ5-B4qk6eh9.js → architectureDiagram-2XIMDMQ5-D5q0ma9h.js} +10 -10
- package/dist/{architectureDiagram-2XIMDMQ5-B4qk6eh9.js.map → architectureDiagram-2XIMDMQ5-D5q0ma9h.js.map} +1 -1
- package/dist/{array-DPBIBG3p.js → array-DXadUs1s.js} +1 -1
- package/dist/{array-DPBIBG3p.js.map → array-DXadUs1s.js.map} +1 -1
- package/dist/{arrow-up-BhjinjWg.js → arrow-up-CJJ5q2ht.js} +2 -2
- package/dist/{arrow-up-BhjinjWg.js.map → arrow-up-CJJ5q2ht.js.map} +1 -1
- package/dist/{avatar-CZGZhjvv.js → avatar-DIhd5zYT.js} +1 -1
- package/dist/{avatar-CZGZhjvv.js.map → avatar-DIhd5zYT.js.map} +1 -1
- package/dist/{badge-CAvV5GE2.js → badge-C2kAwL41.js} +1 -1
- package/dist/{badge-CAvV5GE2.js.map → badge-C2kAwL41.js.map} +1 -1
- package/dist/{blockDiagram-WCTKOSBZ-DdPMGZ7X.js → blockDiagram-WCTKOSBZ-BH3jwWeU.js} +13 -13
- package/dist/{blockDiagram-WCTKOSBZ-DdPMGZ7X.js.map → blockDiagram-WCTKOSBZ-BH3jwWeU.js.map} +1 -1
- package/dist/{button-19KWzy7c.js → button-BtTc7Ncu.js} +1 -1
- package/dist/{button-19KWzy7c.js.map → button-BtTc7Ncu.js.map} +1 -1
- package/dist/{c4Diagram-IC4MRINW-Du1j-C4R.js → c4Diagram-IC4MRINW-OFLrunYI.js} +7 -7
- package/dist/{c4Diagram-IC4MRINW-Du1j-C4R.js.map → c4Diagram-IC4MRINW-OFLrunYI.js.map} +1 -1
- package/dist/{carousel-CJ5lxMYs.js → carousel-T96UFALA.js} +3 -3
- package/dist/{carousel-CJ5lxMYs.js.map → carousel-T96UFALA.js.map} +1 -1
- package/dist/{channel-BHvJxX8j.js → channel-LRbq43st.js} +2 -2
- package/dist/{channel-BHvJxX8j.js.map → channel-LRbq43st.js.map} +1 -1
- package/dist/charts/area/index.js +1 -1
- package/dist/charts/bar/index.js +1 -1
- package/dist/charts/index.js +2 -2
- package/dist/charts/line/index.js +1 -1
- package/dist/charts/pie/index.js +1 -1
- package/dist/charts/radar/index.js +1 -1
- package/dist/charts/scatter/index.js +1 -1
- package/dist/charts/waterfall/index.js +1 -1
- package/dist/{check-CybgTpDT.js → check-cGnuDoWp.js} +2 -2
- package/dist/{check-CybgTpDT.js.map → check-cGnuDoWp.js.map} +1 -1
- package/dist/{chevron-down-C_008JAH.js → chevron-down-m05raooX.js} +2 -2
- package/dist/{chevron-down-C_008JAH.js.map → chevron-down-m05raooX.js.map} +1 -1
- package/dist/{chevron-right-DuHRAn8w.js → chevron-right-ByWVa5XY.js} +2 -2
- package/dist/{chevron-right-DuHRAn8w.js.map → chevron-right-ByWVa5XY.js.map} +1 -1
- package/dist/{chevron-up-BY5jyuW2.js → chevron-up-CtvY7fRK.js} +2 -2
- package/dist/{chevron-up-BY5jyuW2.js.map → chevron-up-CtvY7fRK.js.map} +1 -1
- package/dist/{chunk-4BX2VUAB-CL-dnlxR.js → chunk-4BX2VUAB-BS9gpN-y.js} +2 -2
- package/dist/{chunk-4BX2VUAB-CL-dnlxR.js.map → chunk-4BX2VUAB-BS9gpN-y.js.map} +1 -1
- package/dist/{chunk-55IACEB6-DxNTqHZ8.js → chunk-55IACEB6-DZ-UBhHX.js} +3 -3
- package/dist/{chunk-55IACEB6-DxNTqHZ8.js.map → chunk-55IACEB6-DZ-UBhHX.js.map} +1 -1
- package/dist/{chunk-7E7YKBS2-Bewg8t99.js → chunk-7E7YKBS2-BsywoVTt.js} +2 -2
- package/dist/{chunk-7E7YKBS2-Bewg8t99.js.map → chunk-7E7YKBS2-BsywoVTt.js.map} +1 -1
- package/dist/{chunk-7R4GIKGN-DiZ1HYFd.js → chunk-7R4GIKGN-DJmroLCH.js} +3 -3
- package/dist/{chunk-7R4GIKGN-DiZ1HYFd.js.map → chunk-7R4GIKGN-DJmroLCH.js.map} +1 -1
- package/dist/{chunk-C72U2L5F-BqOejReq.js → chunk-C72U2L5F-BwPwVDcP.js} +2 -2
- package/dist/{chunk-C72U2L5F-BqOejReq.js.map → chunk-C72U2L5F-BwPwVDcP.js.map} +1 -1
- package/dist/{chunk-EGIJ26TM-1-wU_wPi.js → chunk-EGIJ26TM-DKd5cEgn.js} +2 -2
- package/dist/{chunk-EGIJ26TM-1-wU_wPi.js.map → chunk-EGIJ26TM-DKd5cEgn.js.map} +1 -1
- package/dist/{chunk-FMBD7UC4-7bd068zf.js → chunk-FMBD7UC4-1IxrpdPX.js} +2 -2
- package/dist/{chunk-FMBD7UC4-7bd068zf.js.map → chunk-FMBD7UC4-1IxrpdPX.js.map} +1 -1
- package/dist/{chunk-GEFDOKGD-bXEkwPrJ.js → chunk-GEFDOKGD-DGJJEGSm.js} +7 -7
- package/dist/{chunk-GEFDOKGD-bXEkwPrJ.js.map → chunk-GEFDOKGD-DGJJEGSm.js.map} +1 -1
- package/dist/{chunk-GLR3WWYH-GIQ55uMn.js → chunk-GLR3WWYH-BDwmgwCA.js} +8 -8
- package/dist/{chunk-GLR3WWYH-GIQ55uMn.js.map → chunk-GLR3WWYH-BDwmgwCA.js.map} +1 -1
- package/dist/{chunk-HHEYEP7N-BdiTBCvb.js → chunk-HHEYEP7N-DJ1b-gA8.js} +4 -4
- package/dist/{chunk-HHEYEP7N-BdiTBCvb.js.map → chunk-HHEYEP7N-DJ1b-gA8.js.map} +1 -1
- package/dist/{chunk-JSJVCQXG-p-BUVvps.js → chunk-JSJVCQXG-Do17yYig.js} +5 -5
- package/dist/{chunk-JSJVCQXG-p-BUVvps.js.map → chunk-JSJVCQXG-Do17yYig.js.map} +1 -1
- package/dist/{chunk-KX2RTZJC-DopwIbE1.js → chunk-KX2RTZJC-d9jFqUAY.js} +3 -3
- package/dist/{chunk-KX2RTZJC-DopwIbE1.js.map → chunk-KX2RTZJC-d9jFqUAY.js.map} +1 -1
- package/dist/{chunk-KYZI473N-4Y4_4kXL.js → chunk-KYZI473N-BXYCe83A.js} +9 -9
- package/dist/{chunk-KYZI473N-4Y4_4kXL.js.map → chunk-KYZI473N-BXYCe83A.js.map} +1 -1
- package/dist/{chunk-L3YUKLVL-U6LYvPh7.js → chunk-L3YUKLVL-Y5k8UNMf.js} +2 -2
- package/dist/{chunk-L3YUKLVL-U6LYvPh7.js.map → chunk-L3YUKLVL-Y5k8UNMf.js.map} +1 -1
- package/dist/{chunk-MX3YWQON-DnBlqD44.js → chunk-MX3YWQON-D43mcq1f.js} +2 -2
- package/dist/{chunk-MX3YWQON-DnBlqD44.js.map → chunk-MX3YWQON-D43mcq1f.js.map} +1 -1
- package/dist/{chunk-NQ4KR5QH-BSylMz0X.js → chunk-NQ4KR5QH-C0nWShNk.js} +7 -7
- package/dist/{chunk-NQ4KR5QH-BSylMz0X.js.map → chunk-NQ4KR5QH-C0nWShNk.js.map} +1 -1
- package/dist/{chunk-O4XLMI2P-BcKxBhcn.js → chunk-O4XLMI2P-DtGEm9QX.js} +12 -12
- package/dist/{chunk-O4XLMI2P-BcKxBhcn.js.map → chunk-O4XLMI2P-DtGEm9QX.js.map} +1 -1
- package/dist/{chunk-OZEHJAEY-D6S6KbwY.js → chunk-OZEHJAEY-BsQ56PV-.js} +2 -2
- package/dist/{chunk-OZEHJAEY-D6S6KbwY.js.map → chunk-OZEHJAEY-BsQ56PV-.js.map} +1 -1
- package/dist/{chunk-PQ6SQG4A-DPz_e-Es.js → chunk-PQ6SQG4A-Cpfc5F4u.js} +3 -3
- package/dist/{chunk-PQ6SQG4A-DPz_e-Es.js.map → chunk-PQ6SQG4A-Cpfc5F4u.js.map} +1 -1
- package/dist/{chunk-PU5JKC2W-CAfe4Tg3.js → chunk-PU5JKC2W-DNpn_Yik.js} +5 -5
- package/dist/{chunk-PU5JKC2W-CAfe4Tg3.js.map → chunk-PU5JKC2W-DNpn_Yik.js.map} +1 -1
- package/dist/{chunk-QZHKN3VN-DMkPzlbH.js → chunk-QZHKN3VN-kDNdTVLo.js} +2 -2
- package/dist/{chunk-QZHKN3VN-DMkPzlbH.js.map → chunk-QZHKN3VN-kDNdTVLo.js.map} +1 -1
- package/dist/{chunk-R5LLSJPH-C90VQC8y.js → chunk-R5LLSJPH-c1IfaK5D.js} +2 -2
- package/dist/{chunk-R5LLSJPH-C90VQC8y.js.map → chunk-R5LLSJPH-c1IfaK5D.js.map} +1 -1
- package/dist/{chunk-WL4C6EOR-B2OMxQLL.js → chunk-WL4C6EOR-BV-op7zg.js} +10 -10
- package/dist/{chunk-WL4C6EOR-B2OMxQLL.js.map → chunk-WL4C6EOR-BV-op7zg.js.map} +1 -1
- package/dist/{chunk-XIRO2GV7-D1_jT4ch.js → chunk-XIRO2GV7-Bv1hlNLi.js} +2 -2
- package/dist/{chunk-XIRO2GV7-D1_jT4ch.js.map → chunk-XIRO2GV7-Bv1hlNLi.js.map} +1 -1
- package/dist/{chunk-XPW4576I-DkznIIIK.js → chunk-XPW4576I-BqiPnb3d.js} +2 -2
- package/dist/{chunk-XPW4576I-DkznIIIK.js.map → chunk-XPW4576I-BqiPnb3d.js.map} +1 -1
- package/dist/{chunk-XZSTWKYB-BZB_wvbZ.js → chunk-XZSTWKYB-C7maKWEr.js} +6 -6
- package/dist/{chunk-XZSTWKYB-BZB_wvbZ.js.map → chunk-XZSTWKYB-C7maKWEr.js.map} +1 -1
- package/dist/{chunk-YBOYWFTD-DVqQ1pen.js → chunk-YBOYWFTD-DkjEOcgZ.js} +4 -4
- package/dist/{chunk-YBOYWFTD-DVqQ1pen.js.map → chunk-YBOYWFTD-DkjEOcgZ.js.map} +1 -1
- package/dist/classDiagram-VBA2DB6C-DZfC0xPM.js +31 -0
- package/dist/{classDiagram-VBA2DB6C-DFfohpM0.js.map → classDiagram-VBA2DB6C-DZfC0xPM.js.map} +1 -1
- package/dist/classDiagram-v2-RAHNMMFH-CtWRD1ax.js +31 -0
- package/dist/{classDiagram-v2-RAHNMMFH-kUMm28FB.js.map → classDiagram-v2-RAHNMMFH-CtWRD1ax.js.map} +1 -1
- package/dist/{clone-DxI1nSTP.js → clone-CliVdNc8.js} +2 -2
- package/dist/{clone-DxI1nSTP.js.map → clone-CliVdNc8.js.map} +1 -1
- package/dist/{component-x2UxdKEC.js → component-C1Jiz1Ki.js} +1 -1
- package/dist/{component-x2UxdKEC.js.map → component-C1Jiz1Ki.js.map} +1 -1
- package/dist/components/index.js +3 -3
- package/dist/components/theme/accent-switcher.d.ts +2 -0
- package/dist/components/theme/accent-switcher.d.ts.map +1 -1
- package/dist/components/theme/accent-switcher.js +5 -1
- package/dist/components/theme/accent-switcher.js.map +1 -1
- package/dist/components/theme/density-switcher.d.ts +2 -0
- package/dist/components/theme/density-switcher.d.ts.map +1 -1
- package/dist/components/theme/density-switcher.js +5 -1
- package/dist/components/theme/density-switcher.js.map +1 -1
- package/dist/components/theme/font-stack-picker.d.ts +2 -0
- package/dist/components/theme/font-stack-picker.d.ts.map +1 -1
- package/dist/components/theme/font-stack-picker.js +5 -1
- package/dist/components/theme/font-stack-picker.js.map +1 -1
- package/dist/components/theme/glass-slider.d.ts +2 -0
- package/dist/components/theme/glass-slider.d.ts.map +1 -1
- package/dist/components/theme/glass-slider.js +21 -15
- package/dist/components/theme/glass-slider.js.map +1 -1
- package/dist/components/theme/icon-gallery-browser.d.ts +16 -0
- package/dist/components/theme/icon-gallery-browser.d.ts.map +1 -0
- package/dist/components/theme/icon-set-picker.d.ts +2 -0
- package/dist/components/theme/icon-set-picker.d.ts.map +1 -1
- package/dist/components/theme/icon-set-picker.js +29 -24
- package/dist/components/theme/icon-set-picker.js.map +1 -1
- package/dist/components/theme/icon-usage-matrix.d.ts +2 -0
- package/dist/components/theme/icon-usage-matrix.d.ts.map +1 -1
- package/dist/components/theme/icon-usage-matrix.js +11 -7
- package/dist/components/theme/icon-usage-matrix.js.map +1 -1
- package/dist/components/theme/index.js +3 -3
- package/dist/components/theme/radius-slider.d.ts +2 -0
- package/dist/components/theme/radius-slider.d.ts.map +1 -1
- package/dist/components/theme/radius-slider.js +17 -12
- package/dist/components/theme/radius-slider.js.map +1 -1
- package/dist/components/theme/theme-preset-grid.d.ts +2 -0
- package/dist/components/theme/theme-preset-grid.d.ts.map +1 -1
- package/dist/components/theme/theme-preset-grid.js +6 -2
- package/dist/components/theme/theme-preset-grid.js.map +1 -1
- package/dist/components/theme/theme-preview-tile.d.ts +2 -0
- package/dist/components/theme/theme-preview-tile.d.ts.map +1 -1
- package/dist/components/theme/theme-preview-tile.js +9 -5
- package/dist/components/theme/theme-preview-tile.js.map +1 -1
- package/dist/components/theme/theme-studio.d.ts +4 -0
- package/dist/components/theme/theme-studio.d.ts.map +1 -1
- package/dist/components/theme/theme-studio.js +2 -93
- package/dist/components/theme/theme-switcher.d.ts +2 -0
- package/dist/components/theme/theme-switcher.d.ts.map +1 -1
- package/dist/components/theme/theme-switcher.js +5 -1
- package/dist/components/theme/theme-switcher.js.map +1 -1
- package/dist/composites/metrics-card.js +1 -1
- package/dist/composites/per-case-stats-table.js +1 -1
- package/dist/composites/run-monitor.js +2 -2
- package/dist/{copy-Hv8btfHH.js → copy-CP6UzCoj.js} +2 -2
- package/dist/{copy-Hv8btfHH.js.map → copy-CP6UzCoj.js.map} +1 -1
- package/dist/{cose-bilkent-S5V4N54A-DSIl5_e8.js → cose-bilkent-S5V4N54A-DxM02fly.js} +4 -4
- package/dist/{cose-bilkent-S5V4N54A-DSIl5_e8.js.map → cose-bilkent-S5V4N54A-DxM02fly.js.map} +1 -1
- package/dist/{createLucideIcon-wKpAnzBe.js → createLucideIcon-Cfb5CZJx.js} +1 -1
- package/dist/{createLucideIcon-wKpAnzBe.js.map → createLucideIcon-Cfb5CZJx.js.map} +1 -1
- package/dist/{cytoscape.esm-klxrH6H1.js → cytoscape.esm-2vKMh7AJ.js} +1 -1
- package/dist/{cytoscape.esm-klxrH6H1.js.map → cytoscape.esm-2vKMh7AJ.js.map} +1 -1
- package/dist/{dagre-Bm7BZZKB.js → dagre-BqC9mhMk.js} +7 -7
- package/dist/{dagre-Bm7BZZKB.js.map → dagre-BqC9mhMk.js.map} +1 -1
- package/dist/{dagre-KLK3FWXG-B0rbfsw9.js → dagre-KLK3FWXG-DTKcsol6.js} +15 -15
- package/dist/{dagre-KLK3FWXG-B0rbfsw9.js.map → dagre-KLK3FWXG-DTKcsol6.js.map} +1 -1
- package/dist/{defaultLocale-Cql_qCPq.js → defaultLocale-PLHpRrsr.js} +1 -1
- package/dist/{defaultLocale-Cql_qCPq.js.map → defaultLocale-PLHpRrsr.js.map} +1 -1
- package/dist/{diagram-E7M64L7V-DWS26Zbm.js → diagram-E7M64L7V-Co7O3gub.js} +12 -12
- package/dist/{diagram-E7M64L7V-DWS26Zbm.js.map → diagram-E7M64L7V-Co7O3gub.js.map} +1 -1
- package/dist/{diagram-IFDJBPK2--zOQrB5O.js → diagram-IFDJBPK2-D-Enf1mK.js} +7 -7
- package/dist/{diagram-IFDJBPK2--zOQrB5O.js.map → diagram-IFDJBPK2-D-Enf1mK.js.map} +1 -1
- package/dist/{diagram-P4PSJMXO-DjNveg1t.js → diagram-P4PSJMXO-O8g_RIkM.js} +7 -7
- package/dist/{diagram-P4PSJMXO-DjNveg1t.js.map → diagram-P4PSJMXO-O8g_RIkM.js.map} +1 -1
- package/dist/display/avatar/index.js +1 -1
- package/dist/display/badge/index.js +1 -1
- package/dist/display/index.js +3 -3
- package/dist/display/markdown-viewer/index.js +1 -1
- package/dist/{dist-Dq1IoZXt.js → dist-B-HCSak9.js} +13 -13
- package/dist/{dist-Dq1IoZXt.js.map → dist-B-HCSak9.js.map} +1 -1
- package/dist/{dist-CbqFryer.js → dist-BhO08NBU.js} +5 -5
- package/dist/{dist-CbqFryer.js.map → dist-BhO08NBU.js.map} +1 -1
- package/dist/{dist-D0fg6pif.js → dist-BlNMcPtC.js} +2 -2
- package/dist/{dist-D0fg6pif.js.map → dist-BlNMcPtC.js.map} +1 -1
- package/dist/{dist-CSE7pO-4.js → dist-BrNloUiz.js} +1 -1
- package/dist/{dist-CSE7pO-4.js.map → dist-BrNloUiz.js.map} +1 -1
- package/dist/{dist-CcNjOWyQ.js → dist-Br_I_YIY.js} +2 -2
- package/dist/{dist-CcNjOWyQ.js.map → dist-Br_I_YIY.js.map} +1 -1
- package/dist/{dist-D0hHNX_3.js → dist-CDa1xTf4.js} +9 -9
- package/dist/{dist-D0hHNX_3.js.map → dist-CDa1xTf4.js.map} +1 -1
- package/dist/{dist-BCCeHAQm.js → dist-CWPamCJD.js} +2 -2
- package/dist/{dist-BCCeHAQm.js.map → dist-CWPamCJD.js.map} +1 -1
- package/dist/{dist-CVCn7F_m.js → dist-CetkIu6m.js} +1 -1
- package/dist/{dist-CVCn7F_m.js.map → dist-CetkIu6m.js.map} +1 -1
- package/dist/{dist-koa_pEtu.js → dist-CjZz16VT.js} +2 -2
- package/dist/{dist-koa_pEtu.js.map → dist-CjZz16VT.js.map} +1 -1
- package/dist/{dist-D5o6xae2.js → dist-DDlxLS_M.js} +2 -2
- package/dist/{dist-D5o6xae2.js.map → dist-DDlxLS_M.js.map} +1 -1
- package/dist/{dist-Cao8o5bZ.js → dist-DFW2ymX5.js} +1 -1
- package/dist/{dist-Cao8o5bZ.js.map → dist-DFW2ymX5.js.map} +1 -1
- package/dist/{dist-Dm7Xaded.js → dist-DHTh2jaC.js} +1 -1
- package/dist/{dist-Dm7Xaded.js.map → dist-DHTh2jaC.js.map} +1 -1
- package/dist/{dist-BBVMDH9A.js → dist-DN5XnB8I.js} +4 -4
- package/dist/{dist-BBVMDH9A.js.map → dist-DN5XnB8I.js.map} +1 -1
- package/dist/{dist-C0wG5dwG.js → dist-DYQiYO9a.js} +2 -2
- package/dist/{dist-C0wG5dwG.js.map → dist-DYQiYO9a.js.map} +1 -1
- package/dist/{dist-RmXz0NYF.js → dist-GA_FAY5r.js} +1 -1
- package/dist/{dist-RmXz0NYF.js.map → dist-GA_FAY5r.js.map} +1 -1
- package/dist/{dist-cMlzVrN6.js → dist-M-TigQUP.js} +3 -3
- package/dist/{dist-cMlzVrN6.js.map → dist-M-TigQUP.js.map} +1 -1
- package/dist/{dist-DxtM7vvP.js → dist-QzxcNtrD.js} +3 -3
- package/dist/{dist-DxtM7vvP.js.map → dist-QzxcNtrD.js.map} +1 -1
- package/dist/{dist-CTlQcJNK.js → dist-W53Bo1BJ.js} +1 -1
- package/dist/{dist-CTlQcJNK.js.map → dist-W53Bo1BJ.js.map} +1 -1
- package/dist/{dist-B1veE5DO.js → dist-bUQfhez2.js} +8 -8
- package/dist/{dist-B1veE5DO.js.map → dist-bUQfhez2.js.map} +1 -1
- package/dist/{dist-DGayZ3ok2.js → dist-e5OOjxMa.js} +2 -2
- package/dist/dist-e5OOjxMa.js.map +1 -0
- package/dist/{dist-CpMqmV-i.js → dist-r_mYhsAH.js} +2 -2
- package/dist/{dist-CpMqmV-i.js.map → dist-r_mYhsAH.js.map} +1 -1
- package/dist/{dropdown-menu-ChWWguC6.js → dropdown-menu-CxFMDZns.js} +7 -7
- package/dist/{dropdown-menu-ChWWguC6.js.map → dropdown-menu-CxFMDZns.js.map} +1 -1
- package/dist/{ellipsis-QzwbUxFu.js → ellipsis-CLIG9-2m.js} +2 -2
- package/dist/{ellipsis-QzwbUxFu.js.map → ellipsis-CLIG9-2m.js.map} +1 -1
- package/dist/{erDiagram-INFDFZHY-Ccs6kW39.js → erDiagram-INFDFZHY-C42JeR9I.js} +15 -15
- package/dist/{erDiagram-INFDFZHY-Ccs6kW39.js.map → erDiagram-INFDFZHY-C42JeR9I.js.map} +1 -1
- package/dist/{es2015-Bv2aaatg.js → es2015-CJnm4_FQ.js} +4 -4
- package/dist/{es2015-Bv2aaatg.js.map → es2015-CJnm4_FQ.js.map} +1 -1
- package/dist/{flowDiagram-PKNHOUZH-BFdCj6uy.js → flowDiagram-PKNHOUZH-DInJjOz3.js} +18 -18
- package/dist/{flowDiagram-PKNHOUZH-BFdCj6uy.js.map → flowDiagram-PKNHOUZH-DInJjOz3.js.map} +1 -1
- package/dist/{ganttDiagram-A5KZAMGK-11X4ChEO.js → ganttDiagram-A5KZAMGK-Dgp-4Yss.js} +8 -8
- package/dist/{ganttDiagram-A5KZAMGK-11X4ChEO.js.map → ganttDiagram-A5KZAMGK-Dgp-4Yss.js.map} +1 -1
- package/dist/gitGraph-HDMCJU4V-D_QsK6Rt.js +3 -0
- package/dist/{gitGraphDiagram-K3NZZRJ6-BaZX5GA5.js → gitGraphDiagram-K3NZZRJ6-Dr_X0dND.js} +8 -8
- package/dist/{gitGraphDiagram-K3NZZRJ6-BaZX5GA5.js.map → gitGraphDiagram-K3NZZRJ6-Dr_X0dND.js.map} +1 -1
- package/dist/{graphlib-DmFENmkJ.js → graphlib-ecencZTG.js} +4 -4
- package/dist/{graphlib-DmFENmkJ.js.map → graphlib-ecencZTG.js.map} +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +121 -121
- package/dist/info-3K5VOQVL-BbLiZXwn.js +3 -0
- package/dist/{infoDiagram-LFFYTUFH-iswGOIAk.js → infoDiagram-LFFYTUFH-DajJJRvc.js} +5 -5
- package/dist/{infoDiagram-LFFYTUFH-iswGOIAk.js.map → infoDiagram-LFFYTUFH-DajJJRvc.js.map} +1 -1
- package/dist/{init-Bdvvvy1Z.js → init-DcLTaNW1.js} +1 -1
- package/dist/{init-Bdvvvy1Z.js.map → init-DcLTaNW1.js.map} +1 -1
- package/dist/{input-DwHjxF_w.js → input-BrmncNsd.js} +1 -1
- package/dist/{input-DwHjxF_w.js.map → input-BrmncNsd.js.map} +1 -1
- package/dist/{interactive-C6OMqZhG.js → interactive-CXfIDzyh.js} +1 -1
- package/dist/{interactive-C6OMqZhG.js.map → interactive-CXfIDzyh.js.map} +1 -1
- package/dist/{isArrayLikeObject-uEhZQuCW.js → isArrayLikeObject-Bjsxaqj7.js} +1 -1
- package/dist/{isArrayLikeObject-uEhZQuCW.js.map → isArrayLikeObject-Bjsxaqj7.js.map} +1 -1
- package/dist/{isEmpty-SB7gHWzg.js → isEmpty-CeZZUVts.js} +2 -2
- package/dist/{isEmpty-SB7gHWzg.js.map → isEmpty-CeZZUVts.js.map} +1 -1
- package/dist/{ishikawaDiagram-PHBUUO56-BYrA8GRt.js → ishikawaDiagram-PHBUUO56-qHBJm2LT.js} +6 -6
- package/dist/{ishikawaDiagram-PHBUUO56-BYrA8GRt.js.map → ishikawaDiagram-PHBUUO56-qHBJm2LT.js.map} +1 -1
- package/dist/{journeyDiagram-4ABVD52K-BlCQNVun.js → journeyDiagram-4ABVD52K-PgfYdoDM.js} +7 -7
- package/dist/{journeyDiagram-4ABVD52K-BlCQNVun.js.map → journeyDiagram-4ABVD52K-PgfYdoDM.js.map} +1 -1
- package/dist/{kanban-definition-K7BYSVSG-85hLaVO4.js → kanban-definition-K7BYSVSG-DFRT8j7A.js} +11 -11
- package/dist/{kanban-definition-K7BYSVSG-85hLaVO4.js.map → kanban-definition-K7BYSVSG-DFRT8j7A.js.map} +1 -1
- package/dist/{katex-DyctUUDD.js → katex-BZdHnXin.js} +1 -1
- package/dist/{katex-DyctUUDD.js.map → katex-BZdHnXin.js.map} +1 -1
- package/dist/{label-DaoC8KCo.js → label-D_TX0q0F.js} +4 -4
- package/dist/{label-DaoC8KCo.js.map → label-D_TX0q0F.js.map} +1 -1
- package/dist/layout-DJ2E8nU0.js +135 -0
- package/dist/layout-DJ2E8nU0.js.map +1 -0
- package/dist/{line-xLJn8e8J.js → line-Cq1AZT4f.js} +4 -4
- package/dist/{line-xLJn8e8J.js.map → line-Cq1AZT4f.js.map} +1 -1
- package/dist/{linear-BePtLBEt.js → linear-BnJD01Xn.js} +5 -5
- package/dist/{linear-BePtLBEt.js.map → linear-BnJD01Xn.js.map} +1 -1
- package/dist/{markdown-viewer-DrwjEcXp.js → markdown-viewer-CBRQVRMp.js} +1 -1
- package/dist/{markdown-viewer-DrwjEcXp.js.map → markdown-viewer-CBRQVRMp.js.map} +1 -1
- package/dist/{math--xT1IZMK.js → math-D4gdAuwG.js} +1 -1
- package/dist/{math--xT1IZMK.js.map → math-D4gdAuwG.js.map} +1 -1
- package/dist/{menubar-CZie7LCj.js → menubar-lQZ-0ckw.js} +13 -13
- package/dist/{menubar-CZie7LCj.js.map → menubar-lQZ-0ckw.js.map} +1 -1
- package/dist/{mermaid-parser.core-Bd7Ghv5c.js → mermaid-parser.core-Dz5qv4CI.js} +16 -16
- package/dist/{mermaid-parser.core-Bd7Ghv5c.js.map → mermaid-parser.core-Dz5qv4CI.js.map} +1 -1
- package/dist/{mermaid.core-beWmNAWY.js → mermaid.core-DTiIXVKa.js} +44 -44
- package/dist/{mermaid.core-beWmNAWY.js.map → mermaid.core-DTiIXVKa.js.map} +1 -1
- package/dist/{mindmap-definition-YRQLILUH-CNBsYwDI.js → mindmap-definition-YRQLILUH-D95OPRMh.js} +13 -13
- package/dist/{mindmap-definition-YRQLILUH-CNBsYwDI.js.map → mindmap-definition-YRQLILUH-D95OPRMh.js.map} +1 -1
- package/dist/{navigation-menu-Db2QQ70P.js → navigation-menu-BpZTlEU0.js} +14 -14
- package/dist/{navigation-menu-Db2QQ70P.js.map → navigation-menu-BpZTlEU0.js.map} +1 -1
- package/dist/{ordinal-BKo-UFaW.js → ordinal-CC9tfh_g.js} +2 -2
- package/dist/{ordinal-BKo-UFaW.js.map → ordinal-CC9tfh_g.js.map} +1 -1
- package/dist/packet-RMMSAZCW-D72DRs1N.js +3 -0
- package/dist/{pagination-BmFjVnmV.js → pagination-CCjNavtQ.js} +5 -5
- package/dist/{pagination-BmFjVnmV.js.map → pagination-CCjNavtQ.js.map} +1 -1
- package/dist/{path-Z-HG_8i_.js → path-y0uQCOMW.js} +1 -1
- package/dist/{path-Z-HG_8i_.js.map → path-y0uQCOMW.js.map} +1 -1
- package/dist/pie-UPGHQEXC-C8RDLrEi.js +3 -0
- package/dist/{pieDiagram-SKSYHLDU-BMrGgUAv.js → pieDiagram-SKSYHLDU-BREEn_Sk.js} +12 -12
- package/dist/{pieDiagram-SKSYHLDU-BMrGgUAv.js.map → pieDiagram-SKSYHLDU-BREEn_Sk.js.map} +1 -1
- package/dist/primitives/button/index.js +1 -1
- package/dist/primitives/index.js +3 -3
- package/dist/primitives/input/index.js +1 -1
- package/dist/primitives/live-log-tail.js +1 -1
- package/dist/primitives/phase-progress.js +1 -1
- package/dist/primitives/sse-live-badge.js +1 -1
- package/dist/primitives/toggle/index.js +1 -1
- package/dist/primitives/yaml-override-editor.js +1 -1
- package/dist/primitives-BzQ6EvIx.js +380 -0
- package/dist/primitives-BzQ6EvIx.js.map +1 -0
- package/dist/{quadrantDiagram-337W2JSQ-kFO50yPy.js → quadrantDiagram-337W2JSQ-CcKc-h2o.js} +5 -5
- package/dist/{quadrantDiagram-337W2JSQ-kFO50yPy.js.map → quadrantDiagram-337W2JSQ-CcKc-h2o.js.map} +1 -1
- package/dist/radar-KQ55EAFF-DhmvjiyN.js +3 -0
- package/dist/{radio-group-Dum8cfXo.js → radio-group-8GO9_jRN.js} +10 -10
- package/dist/{radio-group-Dum8cfXo.js.map → radio-group-8GO9_jRN.js.map} +1 -1
- package/dist/react/app-switcher.js +1 -1
- package/dist/react/brand.js +1 -1
- package/dist/react/consent/preferences.js +1 -1
- package/dist/react/editors/code-editor.js +1 -1
- package/dist/react/editors/diff-viewer.js +1 -1
- package/dist/react/editors/json-viewer.js +1 -1
- package/dist/react/editors/log-viewer.js +1 -1
- package/dist/react/editors/yaml-editor.js +1 -1
- package/dist/react/feedback/notification-banner.js +2 -2
- package/dist/react/hooks/useSSE.js +1 -1
- package/dist/react/hooks/useStorage.js +1 -1
- package/dist/react/layout/app-shell.js +1 -1
- package/dist/react/layout/browser-layout.d.ts +12 -0
- package/dist/react/layout/browser-layout.d.ts.map +1 -0
- package/dist/react/layout/detail-header.d.ts +13 -0
- package/dist/react/layout/detail-header.d.ts.map +1 -0
- package/dist/react/layout/index.d.ts +4 -0
- package/dist/react/layout/index.d.ts.map +1 -1
- package/dist/react/layout/index.js +3 -2
- package/dist/react/layout/page-frame.d.ts +11 -0
- package/dist/react/layout/page-frame.d.ts.map +1 -0
- package/dist/react/layout/page-header.js +1 -1
- package/dist/react/layout/sub-nav.d.ts +15 -0
- package/dist/react/layout/sub-nav.d.ts.map +1 -0
- package/dist/react/primitives/alert-dialog.js +1 -1
- package/dist/react/primitives/alert.js +3 -3
- package/dist/react/primitives/animated-counter.js +1 -1
- package/dist/react/primitives/aspect-ratio.js +1 -1
- package/dist/react/primitives/attack-path.d.ts +1 -1
- package/dist/react/primitives/attack-path.js +2 -2
- package/dist/react/primitives/avatar.js +2 -2
- package/dist/react/primitives/badge.d.ts +1 -1
- package/dist/react/primitives/badge.js +3 -3
- package/dist/react/primitives/breadcrumb.js +3 -3
- package/dist/react/primitives/button.js +3 -3
- package/dist/react/primitives/calendar.js +1 -1
- package/dist/react/primitives/card.js +1 -1
- package/dist/react/primitives/carousel.js +1 -1
- package/dist/react/primitives/chart-area.js +1 -1
- package/dist/react/primitives/chart-bar.js +1 -1
- package/dist/react/primitives/chart-candlestick.js +1 -1
- package/dist/react/primitives/chart-frame.d.ts +14 -0
- package/dist/react/primitives/chart-frame.d.ts.map +1 -0
- package/dist/react/primitives/chart-funnel.js +1 -1
- package/dist/react/primitives/chart-gauge.js +1 -1
- package/dist/react/primitives/chart-heatmap.js +1 -1
- package/dist/react/primitives/chart-line.js +1 -1
- package/dist/react/primitives/chart-pie.js +1 -1
- package/dist/react/primitives/chart-radar.js +1 -1
- package/dist/react/primitives/chart-sankey.js +1 -1
- package/dist/react/primitives/chart-scatter.js +1 -1
- package/dist/react/primitives/chart-sparkline.js +1 -1
- package/dist/react/primitives/chart-treemap.js +1 -1
- package/dist/react/primitives/chart-waterfall.js +1 -1
- package/dist/react/primitives/chat-drawer.d.ts +13 -0
- package/dist/react/primitives/chat-drawer.d.ts.map +1 -0
- package/dist/react/primitives/chat-input.d.ts +10 -0
- package/dist/react/primitives/chat-input.d.ts.map +1 -0
- package/dist/react/primitives/checkbox.js +1 -1
- package/dist/react/primitives/code-block.js +3 -3
- package/dist/react/primitives/code-viewer.js +3 -3
- package/dist/react/primitives/collapsible.js +3 -3
- package/dist/react/primitives/color-picker.js +1 -1
- package/dist/react/primitives/context-menu.js +1 -1
- package/dist/react/primitives/copy-button.js +4 -4
- package/dist/react/primitives/cron-editor.js +1 -1
- package/dist/react/primitives/cvss-badge.d.ts +1 -1
- package/dist/react/primitives/cvss-badge.js +2 -2
- package/dist/react/primitives/dashboard-metric-card.d.ts +18 -0
- package/dist/react/primitives/dashboard-metric-card.d.ts.map +1 -0
- package/dist/react/primitives/data-field.d.ts +13 -0
- package/dist/react/primitives/data-field.d.ts.map +1 -0
- package/dist/react/primitives/data-grid.js +4 -4
- package/dist/react/primitives/data-table.js +2 -2
- package/dist/react/primitives/date-picker.js +1 -1
- package/dist/react/primitives/detection-status.d.ts +1 -1
- package/dist/react/primitives/detection-status.js +2 -2
- package/dist/react/primitives/dialog.js +3 -3
- package/dist/react/primitives/drawer.js +3 -3
- package/dist/react/primitives/dropdown-menu.js +1 -1
- package/dist/react/primitives/empty-state.js +1 -1
- package/dist/react/primitives/field.js +1 -1
- package/dist/react/primitives/file-tree.js +1 -1
- package/dist/react/primitives/flow-diagram.js +1 -1
- package/dist/react/primitives/heatmap-legend.js +1 -1
- package/dist/react/primitives/heatmap-toolbar.js +2 -2
- package/dist/react/primitives/hover-card.js +1 -1
- package/dist/react/primitives/index.d.ts +8 -0
- package/dist/react/primitives/index.d.ts.map +1 -1
- package/dist/react/primitives/index.js +84 -83
- package/dist/react/primitives/input.js +1 -1
- package/dist/react/primitives/json-path-browser.js +1 -1
- package/dist/react/primitives/kanban.js +1 -1
- package/dist/react/primitives/kbd.js +1 -1
- package/dist/react/primitives/label.js +1 -1
- package/dist/react/primitives/map.js +1 -1
- package/dist/react/primitives/markdown-viewer.js +0 -0
- package/dist/react/primitives/menubar.js +1 -1
- package/dist/react/primitives/mermaid-diagram.js +1 -1
- package/dist/react/primitives/metric-tile.js +1 -1
- package/dist/react/primitives/mitre-matrix.d.ts +1 -1
- package/dist/react/primitives/mitre-matrix.js +2 -2
- package/dist/react/primitives/modal.js +3 -3
- package/dist/react/primitives/navigation-menu.js +1 -1
- package/dist/react/primitives/network-graph.js +1 -1
- package/dist/react/primitives/notification-center.js +4 -4
- package/dist/react/primitives/notification-center.js.map +1 -1
- package/dist/react/primitives/pagination.js +1 -1
- package/dist/react/primitives/popover.js +1 -1
- package/dist/react/primitives/progress.js +2 -2
- package/dist/react/primitives/query-boundary.d.ts +15 -0
- package/dist/react/primitives/query-boundary.d.ts.map +1 -0
- package/dist/react/primitives/radio-group.js +1 -1
- package/dist/react/primitives/rule-editor.js +1 -1
- package/dist/react/primitives/score-ring.d.ts +13 -0
- package/dist/react/primitives/score-ring.d.ts.map +1 -0
- package/dist/react/primitives/scroll-area.js +1 -1
- package/dist/react/primitives/search.js +3 -3
- package/dist/react/primitives/section-panel.d.ts +11 -0
- package/dist/react/primitives/section-panel.d.ts.map +1 -0
- package/dist/react/primitives/select.js +1 -1
- package/dist/react/primitives/separator.js +1 -1
- package/dist/react/primitives/severity-indicator.d.ts +1 -1
- package/dist/react/primitives/severity-indicator.js +2 -2
- package/dist/react/primitives/sheet.js +3 -3
- package/dist/react/primitives/skeleton.js +1 -1
- package/dist/react/primitives/slide-panel.js +2 -2
- package/dist/react/primitives/slider.js +1 -1
- package/dist/react/primitives/spinner.js +1 -1
- package/dist/react/primitives/split-pane.js +1 -1
- package/dist/react/primitives/stat-card.js +2 -2
- package/dist/react/primitives/status-bar.js +1 -1
- package/dist/react/primitives/status-dot.js +1 -1
- package/dist/react/primitives/stepper.js +3 -3
- package/dist/react/primitives/switch.js +1 -1
- package/dist/react/primitives/table.js +1 -1
- package/dist/react/primitives/tabs.js +1 -1
- package/dist/react/primitives/tag-input.js +1 -1
- package/dist/react/primitives/terminal.js +1 -1
- package/dist/react/primitives/textarea.js +1 -1
- package/dist/react/primitives/timeline.js +1 -1
- package/dist/react/primitives/toast.js +1 -1
- package/dist/react/primitives/toggle.js +1 -1
- package/dist/react/primitives/tooltip.js +1 -1
- package/dist/react/primitives/tree-view.js +2 -2
- package/dist/react/primitives/typography.js +1 -1
- package/dist/react/primitives/uptime-bar.js +1 -1
- package/dist/react/primitives/vulnerability-card.d.ts +1 -1
- package/dist/react/primitives/vulnerability-card.js +2 -2
- package/dist/react/sidebar.js +2 -2
- package/dist/react/theme-studio.js +1 -1
- package/dist/react/theme-toggle.js +1 -1
- package/dist/react/topology.js +1 -1
- package/dist/react.js +103 -103
- package/dist/{requirementDiagram-Z7DCOOCP-D2Oxfw6G.js → requirementDiagram-Z7DCOOCP-aPcaPduF.js} +13 -13
- package/dist/{requirementDiagram-Z7DCOOCP-D2Oxfw6G.js.map → requirementDiagram-Z7DCOOCP-aPcaPduF.js.map} +1 -1
- package/dist/{rough.esm-Czyj4U3Q.js → rough.esm-C9rQ9YkE.js} +1 -1
- package/dist/{rough.esm-Czyj4U3Q.js.map → rough.esm-C9rQ9YkE.js.map} +1 -1
- package/dist/{sankeyDiagram-WA2Y5GQK-q1_lwNBY.js → sankeyDiagram-WA2Y5GQK-CO_lUqQX.js} +5 -5
- package/dist/{sankeyDiagram-WA2Y5GQK-q1_lwNBY.js.map → sankeyDiagram-WA2Y5GQK-CO_lUqQX.js.map} +1 -1
- package/dist/{scroll-area-CR1iK8Af.js → scroll-area-C_oeG0js.js} +8 -8
- package/dist/{scroll-area-CR1iK8Af.js.map → scroll-area-C_oeG0js.js.map} +1 -1
- package/dist/{search-CrxnZfZ5.js → search-Cu20LdaQ.js} +2 -2
- package/dist/{search-CrxnZfZ5.js.map → search-Cu20LdaQ.js.map} +1 -1
- package/dist/security/index.d.ts +2 -0
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/index.js +7 -6
- package/dist/security/mitre-data.d.ts +38 -0
- package/dist/security/mitre-data.d.ts.map +1 -0
- package/dist/security-AzmGrY2-.js +77 -0
- package/dist/security-AzmGrY2-.js.map +1 -0
- package/dist/{select-BX7KT3VP.js → select-Bc7Gn3Oa.js} +19 -19
- package/dist/{select-BX7KT3VP.js.map → select-Bc7Gn3Oa.js.map} +1 -1
- package/dist/{separator-C6KfB7ww.js → separator-C-OWzLst.js} +3 -3
- package/dist/{separator-C6KfB7ww.js.map → separator-C-OWzLst.js.map} +1 -1
- package/dist/{sequenceDiagram-2WXFIKYE-BCEaH0s_.js → sequenceDiagram-2WXFIKYE-D7Vh1Zld.js} +9 -9
- package/dist/{sequenceDiagram-2WXFIKYE-BCEaH0s_.js.map → sequenceDiagram-2WXFIKYE-D7Vh1Zld.js.map} +1 -1
- package/dist/{series-DMc2ZYyj.js → series-DrBALkNS.js} +2 -2
- package/dist/{series-DMc2ZYyj.js.map → series-DrBALkNS.js.map} +1 -1
- package/dist/services/index.js +2 -2
- package/dist/services/sse-react.js +1 -1
- package/dist/services/sse.js +1 -1
- package/dist/services/theme-engine/engine.d.ts.map +1 -1
- package/dist/services/theme-engine/fonts.d.ts.map +1 -1
- package/dist/services/theme-engine/icons.d.ts.map +1 -1
- package/dist/services/theme-engine/index.js +120 -48
- package/dist/services/theme-engine/index.js.map +1 -1
- package/dist/services/theme-engine/test-helpers.d.ts +13 -0
- package/dist/services/theme-engine/test-helpers.d.ts.map +1 -0
- package/dist/services/toast-react.js +2 -2
- package/dist/sidebar/index.js +1 -1
- package/dist/{slider-CLgdcoKC.js → slider-CJoWbXQt.js} +10 -10
- package/dist/{slider-CLgdcoKC.js.map → slider-CJoWbXQt.js.map} +1 -1
- package/dist/{src-hxErHTV1.js → src-BhNgmpel.js} +2 -2
- package/dist/{src-hxErHTV1.js.map → src-BhNgmpel.js.map} +1 -1
- package/dist/{src-BEYP07TO.js → src-D1EMXotX.js} +1 -1
- package/dist/{src-BEYP07TO.js.map → src-D1EMXotX.js.map} +1 -1
- package/dist/{sse-D0HLjufB.js → sse-DCaj9UFJ.js} +1 -1
- package/dist/{sse-D0HLjufB.js.map → sse-DCaj9UFJ.js.map} +1 -1
- package/dist/{stateDiagram-RAJIS63D-B-Mu-_BR.js → stateDiagram-RAJIS63D-DdiY5cf3.js} +18 -18
- package/dist/{stateDiagram-RAJIS63D-B-Mu-_BR.js.map → stateDiagram-RAJIS63D-DdiY5cf3.js.map} +1 -1
- package/dist/stateDiagram-v2-FVOUBMTO-CAWy0Pkh.js +29 -0
- package/dist/{stateDiagram-v2-FVOUBMTO-Cnp2uGxd.js.map → stateDiagram-v2-FVOUBMTO-CAWy0Pkh.js.map} +1 -1
- package/dist/{storage-B-gK537W.js → storage-BUlr2J4R.js} +1 -1
- package/dist/{storage-B-gK537W.js.map → storage-BUlr2J4R.js.map} +1 -1
- package/dist/styles/layout.css +18 -18
- package/dist/styles/sidebar.css +31 -19
- package/dist/styles/tenant-ui.css +34 -34
- package/dist/styles/theme-engine.css +546 -23
- package/dist/styles/theme.css +1 -0
- package/dist/styles/tokens.css +69 -34
- package/dist/styles/ui.css +5 -5
- package/dist/{switch-CoTkNGEB.js → switch-Dcd3Fyw_.js} +7 -7
- package/dist/{switch-CoTkNGEB.js.map → switch-Dcd3Fyw_.js.map} +1 -1
- package/dist/{tabs-BT2WAQcK.js → tabs-8AT2ntg_.js} +8 -8
- package/dist/{tabs-BT2WAQcK.js.map → tabs-8AT2ntg_.js.map} +1 -1
- package/dist/theme-studio-CN9Ipb9W.js +236 -0
- package/dist/theme-studio-CN9Ipb9W.js.map +1 -0
- package/dist/{theme-toggle-Csyj-tLm.js → theme-toggle-glKWbKG8.js} +2 -2
- package/dist/{theme-toggle-Csyj-tLm.js.map → theme-toggle-glKWbKG8.js.map} +1 -1
- package/dist/{timeline-definition-YZTLITO2-B0SegHNN.js → timeline-definition-YZTLITO2-CjxxCuOg.js} +5 -5
- package/dist/{timeline-definition-YZTLITO2-B0SegHNN.js.map → timeline-definition-YZTLITO2-CjxxCuOg.js.map} +1 -1
- package/dist/{toast-DRNPdj-R.js → toast-CawTm-7V.js} +6 -6
- package/dist/{toast-DRNPdj-R.js.map → toast-CawTm-7V.js.map} +1 -1
- package/dist/{toggle-DJJEPXXE.js → toggle-C8sazHXX.js} +7 -7
- package/dist/{toggle-DJJEPXXE.js.map → toggle-C8sazHXX.js.map} +1 -1
- package/dist/{toggle-D-WMiAg3.js → toggle-IUUynh_v.js} +1 -1
- package/dist/{toggle-D-WMiAg3.js.map → toggle-IUUynh_v.js.map} +1 -1
- package/dist/{tooltip-DuC73a5E.js → tooltip-NKOSxS28.js} +11 -11
- package/dist/{tooltip-DuC73a5E.js.map → tooltip-NKOSxS28.js.map} +1 -1
- package/dist/{topology-C4Q_kT9X.js → topology-C8cyIHlB.js} +5 -5
- package/dist/{topology-C4Q_kT9X.js.map → topology-C8cyIHlB.js.map} +1 -1
- package/dist/treemap-KZPCXAKY-BvLvHb2t.js +3 -0
- package/dist/{triangle-alert-CKjGAvtd.js → triangle-alert-BtwDDOUp.js} +2 -2
- package/dist/{triangle-alert-CKjGAvtd.js.map → triangle-alert-BtwDDOUp.js.map} +1 -1
- package/dist/types/confidence.d.ts +66 -0
- package/dist/types/confidence.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +6 -6
- package/dist/utils/sage-analysis.d.ts +51 -0
- package/dist/utils/sage-analysis.d.ts.map +1 -0
- package/dist/utils/score.d.ts +58 -0
- package/dist/utils/score.d.ts.map +1 -0
- package/dist/utils/status-tone.d.ts +4 -0
- package/dist/utils/status-tone.d.ts.map +1 -0
- package/dist/{utils-B7XIe3qq.js → utils-DcOSDVkb.js} +1 -1
- package/dist/{utils-B7XIe3qq.js.map → utils-DcOSDVkb.js.map} +1 -1
- package/dist/{utils-CHEq9Vpx.js → utils-JB2cYPor.js} +120 -2
- package/dist/utils-JB2cYPor.js.map +1 -0
- package/dist/{value-CybtvyUg.js → value-gSPnIECy.js} +2 -2
- package/dist/{value-CybtvyUg.js.map → value-gSPnIECy.js.map} +1 -1
- package/dist/{vennDiagram-LZ73GAT5-ClN0stHq.js → vennDiagram-LZ73GAT5-FqpGoq2s.js} +7 -7
- package/dist/{vennDiagram-LZ73GAT5-ClN0stHq.js.map → vennDiagram-LZ73GAT5-FqpGoq2s.js.map} +1 -1
- package/dist/visualization/mermaid-diagram/index.js +1 -1
- package/dist/{x-BleQvk5v.js → x-D2ovnRiN.js} +2 -2
- package/dist/{x-BleQvk5v.js.map → x-D2ovnRiN.js.map} +1 -1
- package/dist/{xychartDiagram-JWTSCODW-DjFaG2VD.js → xychartDiagram-JWTSCODW-BNEAK79X.js} +10 -10
- package/dist/{xychartDiagram-JWTSCODW-DjFaG2VD.js.map → xychartDiagram-JWTSCODW-BNEAK79X.js.map} +1 -1
- package/package.json +1 -1
- package/src/components/theme/accent-switcher.ts +9 -2
- package/src/components/theme/density-switcher.ts +7 -1
- package/src/components/theme/font-stack-picker.ts +7 -1
- package/src/components/theme/glass-slider.ts +19 -8
- package/src/components/theme/icon-gallery-browser.ts +191 -0
- package/src/components/theme/icon-set-picker.ts +19 -8
- package/src/components/theme/icon-usage-matrix.ts +15 -1
- package/src/components/theme/radius-slider.ts +14 -6
- package/src/components/theme/theme-preset-grid.ts +8 -2
- package/src/components/theme/theme-preview-tile.ts +11 -3
- package/src/components/theme/theme-studio-review.test.ts +253 -0
- package/src/components/theme/theme-studio.ts +100 -61
- package/src/components/theme/theme-switcher.ts +7 -1
- package/src/index.ts +11 -0
- package/src/react/layout/browser-layout.tsx +54 -0
- package/src/react/layout/detail-header.tsx +42 -0
- package/src/react/layout/index.ts +4 -0
- package/src/react/layout/page-frame.tsx +32 -0
- package/src/react/layout/sub-nav.tsx +72 -0
- package/src/react/primitives/chart-frame.tsx +51 -0
- package/src/react/primitives/chat-drawer.tsx +94 -0
- package/src/react/primitives/chat-input.tsx +134 -0
- package/src/react/primitives/dashboard-metric-card.tsx +78 -0
- package/src/react/primitives/data-field.tsx +54 -0
- package/src/react/primitives/index.ts +13 -0
- package/src/react/primitives/notification-center.tsx +3 -3
- package/src/react/primitives/query-boundary.tsx +71 -0
- package/src/react/primitives/score-ring.tsx +78 -0
- package/src/react/primitives/section-panel.tsx +42 -0
- package/src/security/index.ts +4 -0
- package/src/security/mitre-data.ts +60 -0
- package/src/services/theme-engine/engine.test.ts +3 -25
- package/src/services/theme-engine/engine.ts +35 -9
- package/src/services/theme-engine/fonts.ts +4 -0
- package/src/services/theme-engine/icons.ts +76 -9
- package/src/services/theme-engine/palettes.ts +2 -2
- package/src/services/theme-engine/test-helpers.ts +37 -0
- package/src/styles/layout.css +18 -18
- package/src/styles/sidebar.css +31 -19
- package/src/styles/tenant-ui.css +34 -34
- package/src/styles/theme-engine.css +546 -23
- package/src/styles/theme.css +1 -0
- package/src/styles/tokens.css +69 -34
- package/src/styles/ui.css +5 -5
- package/src/types/confidence.ts +72 -0
- package/src/types/index.ts +9 -0
- package/src/utils/__tests__/sage-analysis.test.ts +41 -0
- package/src/utils/__tests__/score.test.ts +232 -0
- package/src/utils/__tests__/status-tone.test.ts +164 -0
- package/src/utils/index.ts +29 -0
- package/src/utils/sage-analysis.ts +62 -0
- package/src/utils/score.ts +123 -0
- package/src/utils/status-tone.ts +48 -0
- package/dist/architecture-PBZL5I3N-gCfUhEfQ.js +0 -3
- package/dist/classDiagram-VBA2DB6C-DFfohpM0.js +0 -31
- package/dist/classDiagram-v2-RAHNMMFH-kUMm28FB.js +0 -31
- package/dist/components/theme/theme-studio.js.map +0 -1
- package/dist/dist-DGayZ3ok2.js.map +0 -1
- package/dist/gitGraph-HDMCJU4V--53HTu2M.js +0 -3
- package/dist/info-3K5VOQVL-CmVeZuiG.js +0 -3
- package/dist/packet-RMMSAZCW-jFj7IW8A.js +0 -3
- package/dist/pie-UPGHQEXC-osqmeuax.js +0 -3
- package/dist/radar-KQ55EAFF-Dj2g5Z-W.js +0 -3
- package/dist/stateDiagram-v2-FVOUBMTO-Cnp2uGxd.js +0 -29
- package/dist/treemap-KZPCXAKY-DQ1GEudW.js +0 -3
- package/dist/utils-CHEq9Vpx.js.map +0 -1
|
@@ -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":"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"}
|
|
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-
|
|
2
|
-
import { t } from "./dagre-
|
|
3
|
-
import { T as n, h as r } from "./chunk-GEFDOKGD-
|
|
4
|
-
import { t as i } from "./graphlib-
|
|
5
|
-
import { n as a, r as o } from "./src-
|
|
6
|
-
import { D as s, b as c, c as l, s as u } from "./chunk-7R4GIKGN-
|
|
7
|
-
import { t as d } from "./line-
|
|
8
|
-
import "./chunk-PU5JKC2W-
|
|
9
|
-
import "./chunk-MX3YWQON-
|
|
10
|
-
import "./chunk-YBOYWFTD-
|
|
11
|
-
import "./chunk-55IACEB6-
|
|
12
|
-
import "./chunk-KX2RTZJC-
|
|
13
|
-
import "./chunk-PQ6SQG4A-
|
|
14
|
-
import "./chunk-KYZI473N-
|
|
15
|
-
import "./chunk-O4XLMI2P-
|
|
16
|
-
import "./chunk-GLR3WWYH-
|
|
17
|
-
import { i as f, n as p, t as m } from "./chunk-NQ4KR5QH-
|
|
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-
|
|
220
|
+
//# sourceMappingURL=stateDiagram-RAJIS63D-DdiY5cf3.js.map
|
package/dist/{stateDiagram-RAJIS63D-B-Mu-_BR.js.map → stateDiagram-RAJIS63D-DdiY5cf3.js.map}
RENAMED
|
@@ -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
|
package/dist/{stateDiagram-v2-FVOUBMTO-Cnp2uGxd.js.map → stateDiagram-v2-FVOUBMTO-CAWy0Pkh.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateDiagram-v2-FVOUBMTO-
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-
|
|
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"}
|
package/dist/styles/layout.css
CHANGED
|
@@ -247,8 +247,8 @@
|
|
|
247
247
|
display: flex;
|
|
248
248
|
height: 100%;
|
|
249
249
|
flex-direction: column;
|
|
250
|
-
gap:
|
|
251
|
-
padding:
|
|
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:
|
|
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:
|
|
367
|
+
gap: var(--density-gap);
|
|
368
368
|
border-radius: 0.75rem;
|
|
369
|
-
padding:
|
|
370
|
-
font-size:
|
|
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:
|
|
415
|
-
width:
|
|
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:
|
|
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:
|
|
462
|
+
gap: var(--density-gap);
|
|
463
463
|
width: 100%;
|
|
464
|
-
padding:
|
|
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:
|
|
480
|
-
width:
|
|
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:
|
|
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:
|
|
550
|
+
gap: var(--density-gap);
|
|
551
551
|
width: 100%;
|
|
552
|
-
padding:
|
|
553
|
-
font-size:
|
|
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:
|
|
604
|
+
padding: var(--density-padding-y) var(--density-padding-x);
|
|
605
605
|
background: transparent;
|
|
606
606
|
border: none;
|
|
607
607
|
cursor: pointer;
|
package/dist/styles/sidebar.css
CHANGED
|
@@ -261,18 +261,18 @@
|
|
|
261
261
|
.sidebar__nav {
|
|
262
262
|
display: flex;
|
|
263
263
|
flex-direction: column;
|
|
264
|
-
gap:
|
|
265
|
-
padding:
|
|
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:
|
|
272
|
-
padding:
|
|
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:
|
|
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:
|
|
357
|
-
padding:
|
|
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:
|
|
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.
|
|
386
|
-
color: hsl(var(--
|
|
387
|
-
border
|
|
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
|
-
|
|
432
|
-
|
|
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.
|
|
439
|
+
letter-spacing: 0.1em;
|
|
436
440
|
color: var(--color-text-muted);
|
|
437
|
-
opacity: 0.
|
|
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:
|
|
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:
|
|
544
|
-
padding:
|
|
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:
|
|
560
|
+
font-size: var(--density-font);
|
|
549
561
|
font-weight: 600;
|
|
550
562
|
border: none;
|
|
551
563
|
cursor: pointer;
|