@countermeasure-platform/web-components 1.2.1-dev.4.1 → 1.2.1-dev.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { forwardRef, type HTMLAttributes, type ReactNode } from 'react'
|
|
2
|
+
import { cn } from './utils'
|
|
3
|
+
|
|
4
|
+
export interface ScoreRingProps extends HTMLAttributes<HTMLDivElement> {
|
|
5
|
+
score: number
|
|
6
|
+
size?: number
|
|
7
|
+
radius?: number
|
|
8
|
+
strokeWidth?: number
|
|
9
|
+
stroke?: string
|
|
10
|
+
trackStroke?: string
|
|
11
|
+
children?: ReactNode
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const ScoreRing = forwardRef<HTMLDivElement, ScoreRingProps>(
|
|
15
|
+
(
|
|
16
|
+
{
|
|
17
|
+
score,
|
|
18
|
+
size = 132,
|
|
19
|
+
radius = 56,
|
|
20
|
+
strokeWidth = 6,
|
|
21
|
+
stroke = 'currentColor',
|
|
22
|
+
trackStroke = 'var(--border-2)',
|
|
23
|
+
className,
|
|
24
|
+
children,
|
|
25
|
+
style,
|
|
26
|
+
...props
|
|
27
|
+
},
|
|
28
|
+
ref
|
|
29
|
+
) => {
|
|
30
|
+
const clamped = Math.max(0, Math.min(100, score))
|
|
31
|
+
const circumference = 2 * Math.PI * radius
|
|
32
|
+
const offset = circumference - (clamped / 100) * circumference
|
|
33
|
+
const center = size / 2
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<div
|
|
37
|
+
ref={ref}
|
|
38
|
+
className={cn('relative inline-flex items-center justify-center', className)}
|
|
39
|
+
style={{ ...style, width: size, height: size }}
|
|
40
|
+
{...props}
|
|
41
|
+
>
|
|
42
|
+
<svg
|
|
43
|
+
width={size}
|
|
44
|
+
height={size}
|
|
45
|
+
viewBox={`0 0 ${size} ${size}`}
|
|
46
|
+
className="-rotate-90"
|
|
47
|
+
aria-hidden="true"
|
|
48
|
+
>
|
|
49
|
+
<circle
|
|
50
|
+
cx={center}
|
|
51
|
+
cy={center}
|
|
52
|
+
r={radius}
|
|
53
|
+
fill="none"
|
|
54
|
+
stroke={trackStroke}
|
|
55
|
+
strokeWidth={strokeWidth}
|
|
56
|
+
/>
|
|
57
|
+
<circle
|
|
58
|
+
cx={center}
|
|
59
|
+
cy={center}
|
|
60
|
+
r={radius}
|
|
61
|
+
fill="none"
|
|
62
|
+
stroke={stroke}
|
|
63
|
+
strokeWidth={strokeWidth}
|
|
64
|
+
strokeLinecap="round"
|
|
65
|
+
strokeDasharray={circumference}
|
|
66
|
+
strokeDashoffset={offset}
|
|
67
|
+
className="transition-[stroke-dashoffset] duration-500 ease-out"
|
|
68
|
+
/>
|
|
69
|
+
</svg>
|
|
70
|
+
{children && (
|
|
71
|
+
<div className="absolute inset-0 flex items-center justify-center">{children}</div>
|
|
72
|
+
)}
|
|
73
|
+
</div>
|
|
74
|
+
)
|
|
75
|
+
}
|
|
76
|
+
)
|
|
77
|
+
ScoreRing.displayName = 'ScoreRing'
|
|
78
|
+
export { ScoreRing }
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { forwardRef, type HTMLAttributes, type ReactNode } from 'react'
|
|
2
|
+
import { cn } from './utils'
|
|
3
|
+
|
|
4
|
+
export interface SectionPanelProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
5
|
+
title: string
|
|
6
|
+
icon?: ReactNode
|
|
7
|
+
variant?: 'glass' | 'default'
|
|
8
|
+
headerRight?: ReactNode
|
|
9
|
+
children: ReactNode
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const SectionPanel = forwardRef<HTMLDivElement, SectionPanelProps>(
|
|
13
|
+
({ title, icon, variant = 'glass', headerRight, className, children, ...props }, ref) => {
|
|
14
|
+
const isGlass = variant === 'glass'
|
|
15
|
+
return (
|
|
16
|
+
<div
|
|
17
|
+
ref={ref}
|
|
18
|
+
className={cn(
|
|
19
|
+
'rounded-xl border',
|
|
20
|
+
isGlass
|
|
21
|
+
? 'border-border-glass bg-glass'
|
|
22
|
+
: 'border-border bg-card text-card-foreground shadow-sm',
|
|
23
|
+
className
|
|
24
|
+
)}
|
|
25
|
+
{...props}
|
|
26
|
+
>
|
|
27
|
+
<div className="flex items-center gap-3 border-b border-inherit px-4 py-3">
|
|
28
|
+
{icon && (
|
|
29
|
+
<div className="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-foreground/[0.06] text-foreground-secondary [&>svg]:size-4">
|
|
30
|
+
{icon}
|
|
31
|
+
</div>
|
|
32
|
+
)}
|
|
33
|
+
<h3 className="text-foreground text-sm font-semibold">{title}</h3>
|
|
34
|
+
{headerRight && <div className="ml-auto">{headerRight}</div>}
|
|
35
|
+
</div>
|
|
36
|
+
<div className="p-4">{children}</div>
|
|
37
|
+
</div>
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
SectionPanel.displayName = 'SectionPanel'
|
|
42
|
+
export { SectionPanel }
|
package/src/security/index.ts
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
* @countermeasure/web-components/security
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
// MITRE ATT&CK reference data
|
|
7
|
+
export { MITRE_TACTICS, TACTIC_SHORT_NAMES, TACTIC_IDS_BY_NAME } from './mitre-data'
|
|
8
|
+
export type { MitreTacticDef } from './mitre-data'
|
|
9
|
+
|
|
6
10
|
// CvssBadge
|
|
7
11
|
export { CvssBadge } from './cvss-badge/index'
|
|
8
12
|
export type { CvssBadgeConfig } from './cvss-badge/types'
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MITRE ATT&CK Reference Data
|
|
3
|
+
*
|
|
4
|
+
* Shared constants for all 14 ATT&CK Enterprise tactics.
|
|
5
|
+
* Canonical source of tactic IDs, names, and abbreviations
|
|
6
|
+
* consumed by tenant-ui, threat-library, and web-components.
|
|
7
|
+
*
|
|
8
|
+
* @countermeasure/web-components/security/mitre-data
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/** A single MITRE ATT&CK tactic definition */
|
|
12
|
+
export interface MitreTacticDef {
|
|
13
|
+
/** ATT&CK tactic ID (e.g. TA0001) */
|
|
14
|
+
readonly id: string
|
|
15
|
+
/** Full tactic name (e.g. "Initial Access") */
|
|
16
|
+
readonly name: string
|
|
17
|
+
/** Abbreviated name for compact UIs (e.g. "Initial") */
|
|
18
|
+
readonly shortName: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* All 14 MITRE ATT&CK Enterprise tactics in kill-chain order.
|
|
23
|
+
*
|
|
24
|
+
* Order follows the official ATT&CK matrix:
|
|
25
|
+
* Reconnaissance -> Resource Development -> Initial Access -> ... -> Impact
|
|
26
|
+
*/
|
|
27
|
+
export const MITRE_TACTICS: readonly MitreTacticDef[] = [
|
|
28
|
+
{ id: 'TA0043', name: 'Reconnaissance', shortName: 'Recon' },
|
|
29
|
+
{ id: 'TA0042', name: 'Resource Development', shortName: 'Resource' },
|
|
30
|
+
{ id: 'TA0001', name: 'Initial Access', shortName: 'Initial' },
|
|
31
|
+
{ id: 'TA0002', name: 'Execution', shortName: 'Exec' },
|
|
32
|
+
{ id: 'TA0003', name: 'Persistence', shortName: 'Persist' },
|
|
33
|
+
{ id: 'TA0004', name: 'Privilege Escalation', shortName: 'PrivEsc' },
|
|
34
|
+
{ id: 'TA0005', name: 'Defense Evasion', shortName: 'DefEvas' },
|
|
35
|
+
{ id: 'TA0006', name: 'Credential Access', shortName: 'Creds' },
|
|
36
|
+
{ id: 'TA0007', name: 'Discovery', shortName: 'Disc' },
|
|
37
|
+
{ id: 'TA0008', name: 'Lateral Movement', shortName: 'LatMov' },
|
|
38
|
+
{ id: 'TA0009', name: 'Collection', shortName: 'Collect' },
|
|
39
|
+
{ id: 'TA0011', name: 'Command and Control', shortName: 'C2' },
|
|
40
|
+
{ id: 'TA0010', name: 'Exfiltration', shortName: 'Exfil' },
|
|
41
|
+
{ id: 'TA0040', name: 'Impact', shortName: 'Impact' },
|
|
42
|
+
] as const
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Map of full tactic name to its short abbreviation.
|
|
46
|
+
*
|
|
47
|
+
* Example: `TACTIC_SHORT_NAMES['Defense Evasion']` -> `'DefEvas'`
|
|
48
|
+
*/
|
|
49
|
+
export const TACTIC_SHORT_NAMES: Readonly<Record<string, string>> = Object.fromEntries(
|
|
50
|
+
MITRE_TACTICS.map((t) => [t.name, t.shortName]),
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Map of full tactic name to its ATT&CK ID.
|
|
55
|
+
*
|
|
56
|
+
* Example: `TACTIC_IDS_BY_NAME['Initial Access']` -> `'TA0001'`
|
|
57
|
+
*/
|
|
58
|
+
export const TACTIC_IDS_BY_NAME: Readonly<Record<string, string>> = Object.fromEntries(
|
|
59
|
+
MITRE_TACTICS.map((t) => [t.name, t.id]),
|
|
60
|
+
)
|
|
@@ -2,7 +2,6 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest'
|
|
|
2
2
|
|
|
3
3
|
import { FONT_STACKS, THEME_PRESETS, defaultTheme, ensureGoogleFont } from './index'
|
|
4
4
|
import {
|
|
5
|
-
_resetCache,
|
|
6
5
|
applyTheme,
|
|
7
6
|
bootstrapTheme,
|
|
8
7
|
findActivePresetId,
|
|
@@ -11,35 +10,14 @@ import {
|
|
|
11
10
|
resetTheme,
|
|
12
11
|
setThemeFull,
|
|
13
12
|
setThemePartial,
|
|
14
|
-
teardownTheme,
|
|
15
13
|
THEME_LS_KEY,
|
|
16
14
|
} from './engine'
|
|
15
|
+
import { setupThemeTest, teardownThemeTest } from './test-helpers'
|
|
17
16
|
import type { Theme } from './types'
|
|
18
17
|
|
|
19
|
-
function resetDom(): void {
|
|
20
|
-
document.documentElement.removeAttribute('data-theme')
|
|
21
|
-
document.documentElement.removeAttribute('data-accent')
|
|
22
|
-
document.documentElement.removeAttribute('data-density')
|
|
23
|
-
document.documentElement.removeAttribute('data-icon-set')
|
|
24
|
-
document.documentElement.removeAttribute('style')
|
|
25
|
-
document.head.innerHTML = ''
|
|
26
|
-
document.body.innerHTML = ''
|
|
27
|
-
}
|
|
28
|
-
|
|
29
18
|
describe('theme engine', () => {
|
|
30
|
-
beforeEach(() =>
|
|
31
|
-
|
|
32
|
-
teardownTheme()
|
|
33
|
-
_resetCache()
|
|
34
|
-
resetDom()
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
afterEach(() => {
|
|
38
|
-
teardownTheme()
|
|
39
|
-
_resetCache()
|
|
40
|
-
localStorage.clear()
|
|
41
|
-
resetDom()
|
|
42
|
-
})
|
|
19
|
+
beforeEach(() => setupThemeTest(false))
|
|
20
|
+
afterEach(() => teardownThemeTest())
|
|
43
21
|
|
|
44
22
|
it('loads the default preset and returns a detached clone', () => {
|
|
45
23
|
const first = defaultTheme()
|
|
@@ -80,15 +80,28 @@ export function loadTheme(): Theme {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
function sanitizeThemeEnums(theme: Theme): Theme {
|
|
84
|
+
const has = Object.prototype.hasOwnProperty
|
|
85
|
+
let t = theme
|
|
86
|
+
if (!has.call(COLOR_MODES, t.mode)) t = { ...t, mode: 'dark' }
|
|
87
|
+
if (!has.call(ACCENT_PALETTES, t.accent)) t = { ...t, accent: 'orange' }
|
|
88
|
+
if (!has.call(FONT_STACKS, t.font)) t = { ...t, font: 'inter' }
|
|
89
|
+
if (!has.call(ICON_SETS, t.iconSet)) t = { ...t, iconSet: 'lucide' }
|
|
90
|
+
const validDensities = ['compact', 'comfortable', 'cozy'] as const
|
|
91
|
+
if (!validDensities.includes(t.density)) t = { ...t, density: 'comfortable' }
|
|
92
|
+
return t
|
|
93
|
+
}
|
|
94
|
+
|
|
83
95
|
export function saveTheme(theme: Theme): void {
|
|
96
|
+
const sanitized = sanitizeThemeEnums(theme)
|
|
84
97
|
try {
|
|
85
98
|
if (typeof localStorage !== 'undefined') {
|
|
86
|
-
localStorage.setItem(THEME_LS_KEY, JSON.stringify(
|
|
99
|
+
localStorage.setItem(THEME_LS_KEY, JSON.stringify(sanitized))
|
|
87
100
|
}
|
|
88
101
|
} catch {
|
|
89
102
|
/* ignore */
|
|
90
103
|
}
|
|
91
|
-
applyTheme(
|
|
104
|
+
applyTheme(sanitized)
|
|
92
105
|
}
|
|
93
106
|
|
|
94
107
|
// ---------------------------------------------------------------------------
|
|
@@ -140,11 +153,16 @@ export function applyTheme(theme: Theme): void {
|
|
|
140
153
|
root.style.setProperty('--bg-glass-2', `rgba(${tint}, ${t.toFixed(4)})`)
|
|
141
154
|
root.style.setProperty('--bg-glass-3', `rgba(${tint}, ${(t * 1.75).toFixed(4)})`)
|
|
142
155
|
|
|
143
|
-
// 5) Brand / accent
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
156
|
+
// 5) Brand / accent — Monokai overrides emerald with its signature green
|
|
157
|
+
const isMonokai = theme.mode === 'monokai'
|
|
158
|
+
const brandColor = isMonokai && theme.accent === 'emerald' ? '#a6e22e' : accent.brand
|
|
159
|
+
const brandHot = isMonokai && theme.accent === 'emerald' ? '#b8e85b' : accent.hot
|
|
160
|
+
const brandSoft = isMonokai && theme.accent === 'emerald' ? 'rgba(166,226,46,0.12)' : accent.soft
|
|
161
|
+
const brandRgb = isMonokai && theme.accent === 'emerald' ? '166,226,46' : accent.rgb
|
|
162
|
+
root.style.setProperty('--brand', brandColor)
|
|
163
|
+
root.style.setProperty('--brand-hot', brandHot)
|
|
164
|
+
root.style.setProperty('--brand-soft', brandSoft)
|
|
165
|
+
root.style.setProperty('--accent-rgb', brandRgb)
|
|
148
166
|
|
|
149
167
|
// 6) Radius
|
|
150
168
|
const r = clamp(Number(theme.radius) || 0, 0, 32)
|
|
@@ -153,9 +171,17 @@ export function applyTheme(theme: Theme): void {
|
|
|
153
171
|
root.style.setProperty('--radius-lg', `${r * 1.5}px`)
|
|
154
172
|
root.style.setProperty('--radius-xl', `${r * 2}px`)
|
|
155
173
|
|
|
156
|
-
// 7) Density
|
|
157
|
-
const
|
|
174
|
+
// 7) Density tokens
|
|
175
|
+
const isCompact = theme.density === 'compact'
|
|
176
|
+
const isCozy = theme.density === 'cozy'
|
|
177
|
+
const rowHeight = isCompact ? 32 : isCozy ? 42 : 36
|
|
158
178
|
root.style.setProperty('--density-row', `${rowHeight}px`)
|
|
179
|
+
root.style.setProperty('--density-padding-y', isCompact ? '0.375rem' : isCozy ? '0.75rem' : '0.55rem')
|
|
180
|
+
root.style.setProperty('--density-padding-x', isCompact ? '0.5rem' : isCozy ? '1rem' : '0.75rem')
|
|
181
|
+
root.style.setProperty('--density-gap', isCompact ? '0.25rem' : isCozy ? '0.625rem' : '0.5rem')
|
|
182
|
+
root.style.setProperty('--density-section-gap', isCompact ? '0.5rem' : isCozy ? '1.25rem' : '1rem')
|
|
183
|
+
root.style.setProperty('--density-font', isCompact ? '0.8125rem' : isCozy ? '0.9375rem' : '0.875rem')
|
|
184
|
+
root.style.setProperty('--density-icon', isCompact ? '1.75rem' : isCozy ? '2.5rem' : '2.25rem')
|
|
159
185
|
|
|
160
186
|
// 8) Typography (lazy-load Google fonts, then write CSS vars)
|
|
161
187
|
ensureGoogleFont(font.google)
|
|
@@ -74,5 +74,9 @@ export function ensureGoogleFont(spec: string | null): void {
|
|
|
74
74
|
.map(s => `family=${s}`)
|
|
75
75
|
.join('&') +
|
|
76
76
|
'&display=swap'
|
|
77
|
+
link.onerror = () => {
|
|
78
|
+
link.remove()
|
|
79
|
+
// Allow retry by removing the element so the ID check passes next time
|
|
80
|
+
}
|
|
77
81
|
document.head.appendChild(link)
|
|
78
82
|
}
|
|
@@ -56,23 +56,90 @@ export const ICON_SETS: Record<IconSetId, IconSet> = {
|
|
|
56
56
|
|
|
57
57
|
/** Brand glyph paths — used when `iconSet === 'countermeasure'`. */
|
|
58
58
|
export const CM_ICON_PATHS: Record<string, string> = {
|
|
59
|
+
// Shields & security
|
|
59
60
|
Shield: 'M12 2l9 4-3 11-6 5-6-5-3-11z M12 7v10 M7.5 10l9 4 M16.5 10l-9 4',
|
|
60
61
|
ShieldCheck: 'M12 2l9 4-3 11-6 5-6-5-3-11z M8.5 12l3 3 4-5',
|
|
61
62
|
Crosshair:
|
|
62
|
-
'M12
|
|
63
|
+
'M12 2l9 5v10l-9 5-9-5V7z M12 7l5 5-5 5-5-5z M22 12h-2 M4 12H2 M12 4V2 M12 22v-2 M12 12v.01',
|
|
64
|
+
Target:
|
|
65
|
+
'M12 2l9 5v10l-9 5-9-5V7z M12 7l5 5-5 5-5-5z M12 10l2 2-2 2-2-2z',
|
|
66
|
+
Lock: 'M5 11h14v10H5z M8 11V7l4-5 4 5v4 M12 15l1 2h-2z',
|
|
67
|
+
KeyRound: 'M16 2l5 5-3 3-2-1-2 2-1-1-2 2H9v-2l7-8z M9 13v4h3',
|
|
68
|
+
Eye: 'M2 12l4-6h12l4 6-4 6H6z M12 9l3 3-3 3-3-3z',
|
|
69
|
+
|
|
70
|
+
// Status — hexagonal frames
|
|
71
|
+
CircleCheck: 'M12 2l9 5v10l-9 5-9-5V7z M9 12l2 2 4-4',
|
|
72
|
+
CircleX: 'M12 2l9 5v10l-9 5-9-5V7z M9 9l6 6 M15 9l-6 6',
|
|
73
|
+
CircleAlert: 'M12 2l9 5v10l-9 5-9-5V7z M12 8v5 M12 16h.01',
|
|
74
|
+
TriangleAlert: 'M12 2l10 18H2z M12 9v5 M12 17h.01',
|
|
75
|
+
|
|
76
|
+
// Threat & intel
|
|
63
77
|
Bug: 'M12 3l4 5h-8z M12 8v13 M5 12l-2 2 2 2 M19 12l2 2-2 2 M8 21h8',
|
|
78
|
+
Skull: 'M12 3l8 7v6l-3 3v3h-2v-3h-2v3h-2v-3h-2v3H7v-3l-3-3v-6z M9 12h.01 M15 12h.01',
|
|
79
|
+
Radar: 'M12 2l10 10-10 10L2 12z M12 7l5 5-5 5-5-5z M12 12v.01',
|
|
80
|
+
Siren: 'M7 18l3-6h4l3 6z M12 2v4 M5 7l2 3 M19 7l-2 3 M4 21h16',
|
|
81
|
+
|
|
82
|
+
// Data & infrastructure
|
|
64
83
|
Database: 'M4 4h16v5H4z M4 9.5h16v5H4z M4 15h16v5H4z M9 6.5h.01 M9 12h.01 M9 17.5h.01',
|
|
65
|
-
|
|
84
|
+
Server: 'M3 3h18v7H3z M3 14h18v7H3z M7 6.5h.01 M7 17.5h.01 M17 6.5h-4 M17 17.5h-4',
|
|
85
|
+
Network: 'M9 2h6v5H9z M3 17h6v5H3z M15 17h6v5h-6z M12 7v4 M6 17v-3l6-3 6 3v3',
|
|
86
|
+
Globe: 'M12 2l9 5v10l-9 5-9-5V7z M12 2v20 M3 7l9 5 9-5 M3 17l9-5 9 5',
|
|
87
|
+
|
|
88
|
+
// Navigation & actions
|
|
89
|
+
Search: 'M11 4l5 3v6l-5 3-5-3V7z M20 21l-4-4',
|
|
90
|
+
Plus: 'M12 5v14 M5 12h14',
|
|
91
|
+
X: 'M6 6l12 12 M18 6L6 18',
|
|
92
|
+
ChevronDown: 'M5 9l7 7 7-7',
|
|
93
|
+
ChevronRight: 'M9 5l7 7-7 7',
|
|
94
|
+
Maximize2: 'M15 3h6v6 M3 15v6h6 M21 3l-7 7 M3 21l7-7',
|
|
95
|
+
ArrowUpRight: 'M7 7h10v10 M7 17L17 7',
|
|
96
|
+
Download: 'M12 3v13 M6 11l6 6 6-6 M4 21h16',
|
|
97
|
+
RefreshCw: 'M4 8h4V4 M20 16h-4v4 M8 4l8 0 4 4 M16 20l-8 0-4-4',
|
|
98
|
+
LogOut: 'M14 3h5v18h-5 M3 12h12 M11 8l4 4-4 4',
|
|
99
|
+
PanelLeftClose: 'M3 3h18v18H3z M9 3v18 M16 15l-3-3 3-3',
|
|
100
|
+
|
|
101
|
+
// Connectors & workflow
|
|
102
|
+
Plug: 'M12 2l4 4-4 4-4-4z M12 10v4 M9 14h6v3l-3 4-3-4z',
|
|
103
|
+
Workflow: 'M3 3h6v6H3z M15 15h6v6h-6z M21 3h-6v6h6z M6 9v3l6 3 6-3V9',
|
|
104
|
+
GitBranch: 'M6 3v12 M18 3v6 M6 18l3-3h6l3-3',
|
|
105
|
+
|
|
106
|
+
// Files & content
|
|
107
|
+
FileCode2: 'M6 2h8l5 5v14H6V2z M14 2v5h5 M10 13l-2 2 2 2 M14 13l2 2-2 2',
|
|
108
|
+
FileText: 'M6 2h8l5 5v14H6V2z M14 2v5h5 M9 13h6 M9 17h4',
|
|
109
|
+
Folder: 'M2 7l2-4h7l2 2h7l2 2v13H2z',
|
|
110
|
+
BookOpen: 'M2 3h8l2 2 2-2h8v16h-8l-2 2-2-2H2z M12 5v16',
|
|
111
|
+
Tag: 'M2 4h9l10 8-6 6-10-8V4z M6 8h.01',
|
|
112
|
+
Package: 'M12 2l9 5v10l-9 5-9-5V7z M12 12l9-5 M12 12v10 M12 12L3 7',
|
|
113
|
+
Boxes: 'M2 7l5-3 5 3v6l-5 3-5-3z M12 7l5-3 5 3v6l-5 3-5-3z M7 13l5 3 5-3',
|
|
114
|
+
|
|
115
|
+
// Analytics & data viz
|
|
116
|
+
BarChart3: 'M3 3v18h18 M8 21v-7 M13 21V8 M18 21v-4',
|
|
117
|
+
Gauge: 'M4 19l4-7 4 2 4-9 4 3 M2 21h20',
|
|
118
|
+
ListFilter: 'M2 5h20 M6 12h12 M9 19h6',
|
|
119
|
+
Grid3X3: 'M2 2h20v20H2z M2 9h20 M2 16h20 M9 2v20 M16 2v20',
|
|
120
|
+
LayoutGrid: 'M3 3h8v8H3z M13 3h8v8h-8z M3 13h8v8H3z M13 13h8v8h-8z',
|
|
121
|
+
|
|
122
|
+
// Tools & settings
|
|
123
|
+
Settings:
|
|
124
|
+
'M12 2l1.5 2.6L16 4l.5 3 3 .5L19 10l2.6 1.5L20 14l1 3-3 1-1 3-3-1-1.5 2.6L11 20l-1 2-3-1L6 18l-3-1 1-3-2.6-1.5L4 11 2 9.5 5 8l-1-3 3-1z M12 9l3 3-3 3-3-3z',
|
|
125
|
+
Cog: 'M12 2v2 M12 20v2 M4.93 4.93l1.41 1.41 M17.66 17.66l1.41 1.41 M2 12h2 M20 12h2 M4.93 19.07l1.41-1.41 M17.66 6.34l1.41-1.41 M12 8l4 4-4 4-4-4z',
|
|
126
|
+
|
|
127
|
+
// Objects & concepts
|
|
128
|
+
Lightbulb: 'M12 3l5 6-5 8-5-8z M9 18h6 M10 21h4',
|
|
66
129
|
Sparkles: 'M12 2l3 7 7 3-7 3-3 7-3-7-7-3 7-3z',
|
|
67
130
|
Rocket: 'M12 2l5 8h-3v8h-4v-8H7z M9 22h6',
|
|
68
|
-
Settings:
|
|
69
|
-
'M12 2l1.5 2.6L16 4l.5 3 3 .5L19 10l2.6 1.5L20 14l1 3-3 1-1 3-3-1-1.5 2.6L11 20l-1 2-3-1L6 18l-3-1 1-3-2.6-1.5L4 11 2 9.5 5 8l-1-3 3-1z M12 12m-3 0a3 3 0 1 0 6 0 3 3 0 1 0-6 0',
|
|
70
131
|
Activity: 'M2 12h4l3 8 3-16 3 8 3-4h4',
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
132
|
+
Layers: 'M12 2l10 5-10 5L2 7z M2 12l10 5 10-5 M2 17l10 5 10-5',
|
|
133
|
+
Sun: 'M12 6l5 3v6l-5 3-5-3V9z M12 2v2 M12 20v2 M4 4l1.5 1.5 M18.5 18.5L20 20 M2 12h2 M20 12h2 M4 20l1.5-1.5 M18.5 5.5L20 4',
|
|
134
|
+
Clock: 'M12 2l9 5v10l-9 5-9-5V7z M12 7v5l3 3',
|
|
135
|
+
History: 'M12 2l9 5v10l-9 5-9-5V7z M12 7v5l3 2 M3 4l1 4h3',
|
|
136
|
+
|
|
137
|
+
// People & places
|
|
138
|
+
Users: 'M8 10l4 3-4 3V10z M14 7l4 3-4 3V7z M4 21v-2l4-2 4 2 4-2 4 2v2',
|
|
139
|
+
Building2: 'M6 22V4l6-2 6 2v18 M2 22h20 M10 8h4 M10 12h4 M10 16h4',
|
|
140
|
+
|
|
141
|
+
// Code & dev
|
|
142
|
+
Code2: 'M8 4L2 12l6 8 M16 4l6 8-6 8',
|
|
76
143
|
}
|
|
77
144
|
|
|
78
145
|
/** Semantic icon-usage slots driving the per-icon override matrix. */
|
|
@@ -25,8 +25,8 @@ export const COLOR_MODES: Record<ColorMode, ColorModeMeta> = {
|
|
|
25
25
|
id: 'monokai',
|
|
26
26
|
label: 'Monokai',
|
|
27
27
|
icon: 'Code2',
|
|
28
|
-
swatch: ['#
|
|
29
|
-
surfaceTint: '
|
|
28
|
+
swatch: ['#272822', '#3e3d32', '#49483e'],
|
|
29
|
+
surfaceTint: '248, 248, 242',
|
|
30
30
|
},
|
|
31
31
|
glass: {
|
|
32
32
|
id: 'glass',
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared test utilities for theme-engine tests.
|
|
3
|
+
*
|
|
4
|
+
* Provides common DOM reset, setup, and teardown helpers used across
|
|
5
|
+
* theme-studio-review.test.ts and engine.test.ts.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { _resetCache, applyTheme, teardownTheme } from './engine'
|
|
9
|
+
import { defaultTheme } from './presets'
|
|
10
|
+
|
|
11
|
+
/** Strip all theme-related attributes and content from the document. */
|
|
12
|
+
export function resetDom(): void {
|
|
13
|
+
document.head.innerHTML = ''
|
|
14
|
+
document.body.innerHTML = ''
|
|
15
|
+
document.documentElement.removeAttribute('data-theme')
|
|
16
|
+
document.documentElement.removeAttribute('data-accent')
|
|
17
|
+
document.documentElement.removeAttribute('data-density')
|
|
18
|
+
document.documentElement.removeAttribute('data-icon-set')
|
|
19
|
+
document.documentElement.removeAttribute('style')
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Clear storage, reset engine cache, reset DOM, optionally apply the default theme. */
|
|
23
|
+
export function setupThemeTest(applyDefault = true): void {
|
|
24
|
+
localStorage.clear()
|
|
25
|
+
teardownTheme()
|
|
26
|
+
_resetCache()
|
|
27
|
+
resetDom()
|
|
28
|
+
if (applyDefault) applyTheme(defaultTheme())
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** Disconnect observer, reset cache, clear storage, reset DOM. */
|
|
32
|
+
export function teardownThemeTest(): void {
|
|
33
|
+
teardownTheme()
|
|
34
|
+
_resetCache()
|
|
35
|
+
localStorage.clear()
|
|
36
|
+
resetDom()
|
|
37
|
+
}
|
package/src/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;
|