@countermeasure-platform/web-components 0.2.0
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/LICENSE +92 -0
- package/README.md +185 -0
- package/dist/_basePickBy-BNGzgD3S.js +168 -0
- package/dist/_basePickBy-BNGzgD3S.js.map +1 -0
- package/dist/_baseUniq-CSCAMor9.js +684 -0
- package/dist/_baseUniq-CSCAMor9.js.map +1 -0
- package/dist/a11y-B5pN4M_a.js +173 -0
- package/dist/a11y-B5pN4M_a.js.map +1 -0
- package/dist/alert-dialog-x70JmbHN.js +202 -0
- package/dist/alert-dialog-x70JmbHN.js.map +1 -0
- package/dist/app-switcher/index.d.ts +38 -0
- package/dist/app-switcher/index.d.ts.map +1 -0
- package/dist/app-switcher/index.js +90 -0
- package/dist/app-switcher/index.js.map +1 -0
- package/dist/appearance/index.d.ts +34 -0
- package/dist/appearance/index.d.ts.map +1 -0
- package/dist/appearance/index.js +110 -0
- package/dist/appearance/index.js.map +1 -0
- package/dist/arc-Dd7Q8ESg.js +82 -0
- package/dist/arc-Dd7Q8ESg.js.map +1 -0
- package/dist/architecture-PBZL5I3N-ZJhv7ma8.js +3 -0
- package/dist/architectureDiagram-2XIMDMQ5-Du7QH2cn.js +4048 -0
- package/dist/architectureDiagram-2XIMDMQ5-Du7QH2cn.js.map +1 -0
- package/dist/array-BjkKHsZp.js +8 -0
- package/dist/array-BjkKHsZp.js.map +1 -0
- package/dist/arrow-up-gNaqffAh.js +35 -0
- package/dist/arrow-up-gNaqffAh.js.map +1 -0
- package/dist/auth/index.d.ts +103 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +113 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/avatar-Chu9WlV5.js +102 -0
- package/dist/avatar-Chu9WlV5.js.map +1 -0
- package/dist/badge-DIbZWeHZ.js +69 -0
- package/dist/badge-DIbZWeHZ.js.map +1 -0
- package/dist/base-CBgB0j_Y.js +2096 -0
- package/dist/base-CBgB0j_Y.js.map +1 -0
- package/dist/blockDiagram-WCTKOSBZ-JlYA7IvY.js +3028 -0
- package/dist/blockDiagram-WCTKOSBZ-JlYA7IvY.js.map +1 -0
- package/dist/button-DKuKl4vs.js +69 -0
- package/dist/button-DKuKl4vs.js.map +1 -0
- package/dist/c4Diagram-IC4MRINW-BhRMN0uU.js +2967 -0
- package/dist/c4Diagram-IC4MRINW-BhRMN0uU.js.map +1 -0
- package/dist/carousel-Bh3y14sN.js +139 -0
- package/dist/carousel-Bh3y14sN.js.map +1 -0
- package/dist/channel-mQoH3HVA.js +7 -0
- package/dist/channel-mQoH3HVA.js.map +1 -0
- package/dist/charts/annotations.d.ts +15 -0
- package/dist/charts/annotations.d.ts.map +1 -0
- package/dist/charts/annotations.js +24 -0
- package/dist/charts/annotations.js.map +1 -0
- package/dist/charts/area/index.d.ts +14 -0
- package/dist/charts/area/index.d.ts.map +1 -0
- package/dist/charts/area/index.js +104 -0
- package/dist/charts/area/index.js.map +1 -0
- package/dist/charts/area/types.d.ts +8 -0
- package/dist/charts/area/types.d.ts.map +1 -0
- package/dist/charts/axis.d.ts +8 -0
- package/dist/charts/axis.d.ts.map +1 -0
- package/dist/charts/axis.js +36 -0
- package/dist/charts/axis.js.map +1 -0
- package/dist/charts/bar/index.d.ts +19 -0
- package/dist/charts/bar/index.d.ts.map +1 -0
- package/dist/charts/bar/index.js +145 -0
- package/dist/charts/bar/index.js.map +1 -0
- package/dist/charts/bar/types.d.ts +8 -0
- package/dist/charts/bar/types.d.ts.map +1 -0
- package/dist/charts/base.d.ts +90 -0
- package/dist/charts/base.d.ts.map +1 -0
- package/dist/charts/base.js +203 -0
- package/dist/charts/base.js.map +1 -0
- package/dist/charts/candlestick/index.d.ts +25 -0
- package/dist/charts/candlestick/index.d.ts.map +1 -0
- package/dist/charts/candlestick/index.js +141 -0
- package/dist/charts/candlestick/index.js.map +1 -0
- package/dist/charts/candlestick/types.d.ts +19 -0
- package/dist/charts/candlestick/types.d.ts.map +1 -0
- package/dist/charts/funnel/index.d.ts +29 -0
- package/dist/charts/funnel/index.d.ts.map +1 -0
- package/dist/charts/funnel/index.js +126 -0
- package/dist/charts/funnel/index.js.map +1 -0
- package/dist/charts/funnel/types.d.ts +16 -0
- package/dist/charts/funnel/types.d.ts.map +1 -0
- package/dist/charts/gauge/index.d.ts +26 -0
- package/dist/charts/gauge/index.d.ts.map +1 -0
- package/dist/charts/gauge/index.js +70 -0
- package/dist/charts/gauge/index.js.map +1 -0
- package/dist/charts/gauge/types.d.ts +18 -0
- package/dist/charts/gauge/types.d.ts.map +1 -0
- package/dist/charts/heatmap/index.d.ts +29 -0
- package/dist/charts/heatmap/index.d.ts.map +1 -0
- package/dist/charts/heatmap/index.js +113 -0
- package/dist/charts/heatmap/index.js.map +1 -0
- package/dist/charts/heatmap/types.d.ts +17 -0
- package/dist/charts/heatmap/types.d.ts.map +1 -0
- package/dist/charts/index.d.ts +46 -0
- package/dist/charts/index.d.ts.map +1 -0
- package/dist/charts/index.js +24 -0
- package/dist/charts/interactive.d.ts +15 -0
- package/dist/charts/interactive.d.ts.map +1 -0
- package/dist/charts/legend.d.ts +16 -0
- package/dist/charts/legend.d.ts.map +1 -0
- package/dist/charts/legend.js +43 -0
- package/dist/charts/legend.js.map +1 -0
- package/dist/charts/line/index.d.ts +14 -0
- package/dist/charts/line/index.d.ts.map +1 -0
- package/dist/charts/line/index.js +85 -0
- package/dist/charts/line/index.js.map +1 -0
- package/dist/charts/line/types.d.ts +8 -0
- package/dist/charts/line/types.d.ts.map +1 -0
- package/dist/charts/pie/index.d.ts +24 -0
- package/dist/charts/pie/index.d.ts.map +1 -0
- package/dist/charts/pie/index.js +123 -0
- package/dist/charts/pie/index.js.map +1 -0
- package/dist/charts/pie/types.d.ts +15 -0
- package/dist/charts/pie/types.d.ts.map +1 -0
- package/dist/charts/radar/index.d.ts +27 -0
- package/dist/charts/radar/index.d.ts.map +1 -0
- package/dist/charts/radar/index.js +151 -0
- package/dist/charts/radar/index.js.map +1 -0
- package/dist/charts/radar/types.d.ts +16 -0
- package/dist/charts/radar/types.d.ts.map +1 -0
- package/dist/charts/sankey/index.d.ts +29 -0
- package/dist/charts/sankey/index.d.ts.map +1 -0
- package/dist/charts/sankey/index.js +192 -0
- package/dist/charts/sankey/index.js.map +1 -0
- package/dist/charts/sankey/types.d.ts +21 -0
- package/dist/charts/sankey/types.d.ts.map +1 -0
- package/dist/charts/scatter/index.d.ts +19 -0
- package/dist/charts/scatter/index.d.ts.map +1 -0
- package/dist/charts/scatter/index.js +106 -0
- package/dist/charts/scatter/index.js.map +1 -0
- package/dist/charts/scatter/types.d.ts +6 -0
- package/dist/charts/scatter/types.d.ts.map +1 -0
- package/dist/charts/series.d.ts +11 -0
- package/dist/charts/series.d.ts.map +1 -0
- package/dist/charts/sparkline/index.d.ts +20 -0
- package/dist/charts/sparkline/index.d.ts.map +1 -0
- package/dist/charts/sparkline/index.js +99 -0
- package/dist/charts/sparkline/index.js.map +1 -0
- package/dist/charts/sparkline/types.d.ts +11 -0
- package/dist/charts/sparkline/types.d.ts.map +1 -0
- package/dist/charts/tooltip.d.ts +28 -0
- package/dist/charts/tooltip.d.ts.map +1 -0
- package/dist/charts/tooltip.js +41 -0
- package/dist/charts/tooltip.js.map +1 -0
- package/dist/charts/treemap/index.d.ts +26 -0
- package/dist/charts/treemap/index.d.ts.map +1 -0
- package/dist/charts/treemap/index.js +132 -0
- package/dist/charts/treemap/index.js.map +1 -0
- package/dist/charts/treemap/types.d.ts +15 -0
- package/dist/charts/treemap/types.d.ts.map +1 -0
- package/dist/charts/types.d.ts +71 -0
- package/dist/charts/types.d.ts.map +1 -0
- package/dist/charts/utils.d.ts +75 -0
- package/dist/charts/utils.d.ts.map +1 -0
- package/dist/charts/utils.js +113 -0
- package/dist/charts/utils.js.map +1 -0
- package/dist/charts/waterfall/index.d.ts +19 -0
- package/dist/charts/waterfall/index.d.ts.map +1 -0
- package/dist/charts/waterfall/index.js +138 -0
- package/dist/charts/waterfall/index.js.map +1 -0
- package/dist/charts/waterfall/types.d.ts +19 -0
- package/dist/charts/waterfall/types.d.ts.map +1 -0
- package/dist/charts/zoom.d.ts +32 -0
- package/dist/charts/zoom.d.ts.map +1 -0
- package/dist/charts/zoom.js +62 -0
- package/dist/charts/zoom.js.map +1 -0
- package/dist/check-D2xnnLBE.js +9 -0
- package/dist/check-D2xnnLBE.js.map +1 -0
- package/dist/chevron-down-CsLpP_71.js +9 -0
- package/dist/chevron-down-CsLpP_71.js.map +1 -0
- package/dist/chevron-right-Cz5qRdmA.js +9 -0
- package/dist/chevron-right-Cz5qRdmA.js.map +1 -0
- package/dist/chevron-up-BhaePjuF.js +9 -0
- package/dist/chevron-up-BhaePjuF.js.map +1 -0
- package/dist/chunk-4BX2VUAB-hGnoekTd.js +10 -0
- package/dist/chunk-4BX2VUAB-hGnoekTd.js.map +1 -0
- package/dist/chunk-55IACEB6-BJN5TXvX.js +11 -0
- package/dist/chunk-55IACEB6-BJN5TXvX.js.map +1 -0
- package/dist/chunk-7E7YKBS2-D5sZlDQ3.js +25 -0
- package/dist/chunk-7E7YKBS2-D5sZlDQ3.js.map +1 -0
- package/dist/chunk-7R4GIKGN-9QecSWiR.js +2054 -0
- package/dist/chunk-7R4GIKGN-9QecSWiR.js.map +1 -0
- package/dist/chunk-C72U2L5F--DXr9EKz.js +25 -0
- package/dist/chunk-C72U2L5F--DXr9EKz.js.map +1 -0
- package/dist/chunk-EGIJ26TM-B0D9vEQz.js +25 -0
- package/dist/chunk-EGIJ26TM-B0D9vEQz.js.map +1 -0
- package/dist/chunk-FMBD7UC4-Ccq-i6vu.js +7 -0
- package/dist/chunk-FMBD7UC4-Ccq-i6vu.js.map +1 -0
- package/dist/chunk-GEFDOKGD-DpHiMpV6.js +1124 -0
- package/dist/chunk-GEFDOKGD-DpHiMpV6.js.map +1 -0
- package/dist/chunk-GLR3WWYH-HerLgrS-.js +43 -0
- package/dist/chunk-GLR3WWYH-HerLgrS-.js.map +1 -0
- package/dist/chunk-HHEYEP7N-Cjt1V-hl.js +12 -0
- package/dist/chunk-HHEYEP7N-Cjt1V-hl.js.map +1 -0
- package/dist/chunk-JSJVCQXG-DTdWcs9o.js +63 -0
- package/dist/chunk-JSJVCQXG-DTdWcs9o.js.map +1 -0
- package/dist/chunk-KX2RTZJC-DUcdo_W8.js +27 -0
- package/dist/chunk-KX2RTZJC-DUcdo_W8.js.map +1 -0
- package/dist/chunk-KYZI473N-DyL0ymcr.js +3437 -0
- package/dist/chunk-KYZI473N-DyL0ymcr.js.map +1 -0
- package/dist/chunk-L3YUKLVL-Cwsx-xzL.js +25 -0
- package/dist/chunk-L3YUKLVL-Cwsx-xzL.js.map +1 -0
- package/dist/chunk-MX3YWQON-BrC3_psH.js +82 -0
- package/dist/chunk-MX3YWQON-BrC3_psH.js.map +1 -0
- package/dist/chunk-NBPlniwU.js +23 -0
- package/dist/chunk-NQ4KR5QH-kaL7nywj.js +2004 -0
- package/dist/chunk-NQ4KR5QH-kaL7nywj.js.map +1 -0
- package/dist/chunk-O4XLMI2P-DPXU-owT.js +514 -0
- package/dist/chunk-O4XLMI2P-DPXU-owT.js.map +1 -0
- package/dist/chunk-OZEHJAEY-Ds1P6-z-.js +66 -0
- package/dist/chunk-OZEHJAEY-Ds1P6-z-.js.map +1 -0
- package/dist/chunk-PQ6SQG4A-DEjy9Dhi.js +69 -0
- package/dist/chunk-PQ6SQG4A-DEjy9Dhi.js.map +1 -0
- package/dist/chunk-PU5JKC2W-CfzbN3Mu.js +1888 -0
- package/dist/chunk-PU5JKC2W-CfzbN3Mu.js.map +1 -0
- package/dist/chunk-QZHKN3VN-DYJHpXRp.js +17 -0
- package/dist/chunk-QZHKN3VN-DYJHpXRp.js.map +1 -0
- package/dist/chunk-R5LLSJPH-BQuurwR-.js +37 -0
- package/dist/chunk-R5LLSJPH-BQuurwR-.js.map +1 -0
- package/dist/chunk-WL4C6EOR-DCGop7dE.js +3198 -0
- package/dist/chunk-WL4C6EOR-DCGop7dE.js.map +1 -0
- package/dist/chunk-XIRO2GV7-CS2_2Fdn.js +32 -0
- package/dist/chunk-XIRO2GV7-CS2_2Fdn.js.map +1 -0
- package/dist/chunk-XPW4576I-CfQenFiw.js +1148 -0
- package/dist/chunk-XPW4576I-CfQenFiw.js.map +1 -0
- package/dist/chunk-XZSTWKYB-DxHspq6G.js +15799 -0
- package/dist/chunk-XZSTWKYB-DxHspq6G.js.map +1 -0
- package/dist/chunk-YBOYWFTD-Dkc3kKkT.js +34 -0
- package/dist/chunk-YBOYWFTD-Dkc3kKkT.js.map +1 -0
- package/dist/classDiagram-VBA2DB6C-Ba1kbLE7.js +31 -0
- package/dist/classDiagram-VBA2DB6C-Ba1kbLE7.js.map +1 -0
- package/dist/classDiagram-v2-RAHNMMFH-BdFCvKXE.js +31 -0
- package/dist/classDiagram-v2-RAHNMMFH-BdFCvKXE.js.map +1 -0
- package/dist/clone-CzASr4DI.js +10 -0
- package/dist/clone-CzASr4DI.js.map +1 -0
- package/dist/components/context-menu/index.d.ts +31 -0
- package/dist/components/context-menu/index.d.ts.map +1 -0
- package/dist/components/context-menu/index.js +66 -0
- package/dist/components/context-menu/index.js.map +1 -0
- package/dist/components/copy-button/index.d.ts +27 -0
- package/dist/components/copy-button/index.d.ts.map +1 -0
- package/dist/components/copy-button/index.js +43 -0
- package/dist/components/copy-button/index.js.map +1 -0
- package/dist/components/data-table/export.d.ts +8 -0
- package/dist/components/data-table/export.d.ts.map +1 -0
- package/dist/components/data-table/index.d.ts +55 -0
- package/dist/components/data-table/index.d.ts.map +1 -0
- package/dist/components/data-table/index.js +2 -0
- package/dist/components/data-table/renderers.d.ts +9 -0
- package/dist/components/data-table/renderers.d.ts.map +1 -0
- package/dist/components/data-table/types.d.ts +36 -0
- package/dist/components/data-table/types.d.ts.map +1 -0
- package/dist/components/detail-header/index.d.ts +45 -0
- package/dist/components/detail-header/index.d.ts.map +1 -0
- package/dist/components/detail-header/index.js +88 -0
- package/dist/components/detail-header/index.js.map +1 -0
- package/dist/components/index.d.ts +28 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +15 -0
- package/dist/components/log-toolbar/index.d.ts +50 -0
- package/dist/components/log-toolbar/index.d.ts.map +1 -0
- package/dist/components/log-toolbar/index.js +74 -0
- package/dist/components/log-toolbar/index.js.map +1 -0
- package/dist/components/modal/index.d.ts +27 -0
- package/dist/components/modal/index.d.ts.map +1 -0
- package/dist/components/modal/index.js +103 -0
- package/dist/components/modal/index.js.map +1 -0
- package/dist/components/modal/types.d.ts +17 -0
- package/dist/components/modal/types.d.ts.map +1 -0
- package/dist/components/pagination/index.d.ts +29 -0
- package/dist/components/pagination/index.d.ts.map +1 -0
- package/dist/components/pagination/index.js +45 -0
- package/dist/components/pagination/index.js.map +1 -0
- package/dist/components/search/command-palette.d.ts +24 -0
- package/dist/components/search/command-palette.d.ts.map +1 -0
- package/dist/components/search/command-palette.js +96 -0
- package/dist/components/search/command-palette.js.map +1 -0
- package/dist/components/search/index.d.ts +37 -0
- package/dist/components/search/index.d.ts.map +1 -0
- package/dist/components/search/index.js +175 -0
- package/dist/components/search/index.js.map +1 -0
- package/dist/components/search/types.d.ts +34 -0
- package/dist/components/search/types.d.ts.map +1 -0
- package/dist/components/split-pane/index.d.ts +37 -0
- package/dist/components/split-pane/index.d.ts.map +1 -0
- package/dist/components/split-pane/index.js +129 -0
- package/dist/components/split-pane/index.js.map +1 -0
- package/dist/components/split-pane/types.d.ts +19 -0
- package/dist/components/split-pane/types.d.ts.map +1 -0
- package/dist/components/status-bar/index.d.ts +29 -0
- package/dist/components/status-bar/index.d.ts.map +1 -0
- package/dist/components/status-bar/index.js +41 -0
- package/dist/components/status-bar/index.js.map +1 -0
- package/dist/components/tabs/index.d.ts +39 -0
- package/dist/components/tabs/index.d.ts.map +1 -0
- package/dist/components/tabs/index.js +130 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/types.d.ts +19 -0
- package/dist/components/tabs/types.d.ts.map +1 -0
- package/dist/components/toast/index.d.ts +43 -0
- package/dist/components/toast/index.d.ts.map +1 -0
- package/dist/components/toast/index.js +161 -0
- package/dist/components/toast/index.js.map +1 -0
- package/dist/components/toast/types.d.ts +17 -0
- package/dist/components/toast/types.d.ts.map +1 -0
- package/dist/components/tree-view/index.d.ts +70 -0
- package/dist/components/tree-view/index.d.ts.map +1 -0
- package/dist/components/tree-view/index.js +2 -0
- package/dist/components/tree-view/lazy.d.ts +7 -0
- package/dist/components/tree-view/lazy.d.ts.map +1 -0
- package/dist/components/tree-view/types.d.ts +24 -0
- package/dist/components/tree-view/types.d.ts.map +1 -0
- package/dist/consent/index.d.ts +86 -0
- package/dist/consent/index.d.ts.map +1 -0
- package/dist/consent/index.js +116 -0
- package/dist/consent/index.js.map +1 -0
- package/dist/copy-DLbL2paJ.js +17 -0
- package/dist/copy-DLbL2paJ.js.map +1 -0
- package/dist/cose-bilkent-S5V4N54A-Brn9HMfH.js +2253 -0
- package/dist/cose-bilkent-S5V4N54A-Brn9HMfH.js.map +1 -0
- package/dist/createLucideIcon-BPb01goH.js +44 -0
- package/dist/createLucideIcon-BPb01goH.js.map +1 -0
- package/dist/crypto/encoding-helpers.d.ts +11 -0
- package/dist/crypto/encoding-helpers.d.ts.map +1 -0
- package/dist/crypto/encoding.d.ts +59 -0
- package/dist/crypto/encoding.d.ts.map +1 -0
- package/dist/crypto/hybrid.d.ts +65 -0
- package/dist/crypto/hybrid.d.ts.map +1 -0
- package/dist/crypto/index.d.ts +103 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +438 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/keys.d.ts +50 -0
- package/dist/crypto/keys.d.ts.map +1 -0
- package/dist/crypto/symmetric.d.ts +68 -0
- package/dist/crypto/symmetric.d.ts.map +1 -0
- package/dist/crypto/types.d.ts +88 -0
- package/dist/crypto/types.d.ts.map +1 -0
- package/dist/cytoscape.esm-B-Qy-QZk.js +18102 -0
- package/dist/cytoscape.esm-B-Qy-QZk.js.map +1 -0
- package/dist/dagre-AUN8SXyC.js +1485 -0
- package/dist/dagre-AUN8SXyC.js.map +1 -0
- package/dist/dagre-KLK3FWXG-B5Anf0Pr.js +296 -0
- package/dist/dagre-KLK3FWXG-B5Anf0Pr.js.map +1 -0
- package/dist/data-table-TZ_fmzbD.js +325 -0
- package/dist/data-table-TZ_fmzbD.js.map +1 -0
- package/dist/date-Dup6T6tm.js +61 -0
- package/dist/date-Dup6T6tm.js.map +1 -0
- package/dist/defaultLocale-B55TNBEB.js +203 -0
- package/dist/defaultLocale-B55TNBEB.js.map +1 -0
- package/dist/diagram-E7M64L7V-CbV5nfqR.js +530 -0
- package/dist/diagram-E7M64L7V-CbV5nfqR.js.map +1 -0
- package/dist/diagram-IFDJBPK2-CcXyWvqm.js +215 -0
- package/dist/diagram-IFDJBPK2-CcXyWvqm.js.map +1 -0
- package/dist/diagram-P4PSJMXO-pxkEt2hf.js +135 -0
- package/dist/diagram-P4PSJMXO-pxkEt2hf.js.map +1 -0
- package/dist/display/alert/index.d.ts +20 -0
- package/dist/display/alert/index.d.ts.map +1 -0
- package/dist/display/alert/index.js +56 -0
- package/dist/display/alert/index.js.map +1 -0
- package/dist/display/alert/types.d.ts +16 -0
- package/dist/display/alert/types.d.ts.map +1 -0
- package/dist/display/aspect-ratio/index.d.ts +21 -0
- package/dist/display/aspect-ratio/index.d.ts.map +1 -0
- package/dist/display/aspect-ratio/index.js +23 -0
- package/dist/display/aspect-ratio/index.js.map +1 -0
- package/dist/display/avatar/avatar-group.d.ts +19 -0
- package/dist/display/avatar/avatar-group.d.ts.map +1 -0
- package/dist/display/avatar/index.d.ts +30 -0
- package/dist/display/avatar/index.d.ts.map +1 -0
- package/dist/display/avatar/index.js +2 -0
- package/dist/display/avatar/types.d.ts +26 -0
- package/dist/display/avatar/types.d.ts.map +1 -0
- package/dist/display/badge/index.d.ts +22 -0
- package/dist/display/badge/index.d.ts.map +1 -0
- package/dist/display/badge/index.js +2 -0
- package/dist/display/badge/presets.d.ts +7 -0
- package/dist/display/badge/presets.d.ts.map +1 -0
- package/dist/display/badge/types.d.ts +19 -0
- package/dist/display/badge/types.d.ts.map +1 -0
- package/dist/display/card/index.d.ts +24 -0
- package/dist/display/card/index.d.ts.map +1 -0
- package/dist/display/card/index.js +48 -0
- package/dist/display/card/index.js.map +1 -0
- package/dist/display/card/types.d.ts +16 -0
- package/dist/display/card/types.d.ts.map +1 -0
- package/dist/display/code-block/index.d.ts +23 -0
- package/dist/display/code-block/index.d.ts.map +1 -0
- package/dist/display/code-block/index.js +101 -0
- package/dist/display/code-block/index.js.map +1 -0
- package/dist/display/code-block/types.d.ts +14 -0
- package/dist/display/code-block/types.d.ts.map +1 -0
- package/dist/display/empty-state/index.d.ts +17 -0
- package/dist/display/empty-state/index.d.ts.map +1 -0
- package/dist/display/empty-state/index.js +42 -0
- package/dist/display/empty-state/index.js.map +1 -0
- package/dist/display/empty-state/types.d.ts +16 -0
- package/dist/display/empty-state/types.d.ts.map +1 -0
- package/dist/display/hover-card/index.d.ts +46 -0
- package/dist/display/hover-card/index.d.ts.map +1 -0
- package/dist/display/hover-card/index.js +112 -0
- package/dist/display/hover-card/index.js.map +1 -0
- package/dist/display/hover-card/types.d.ts +14 -0
- package/dist/display/hover-card/types.d.ts.map +1 -0
- package/dist/display/index.d.ts +41 -0
- package/dist/display/index.d.ts.map +1 -0
- package/dist/display/index.js +18 -0
- package/dist/display/markdown-viewer/index.d.ts +25 -0
- package/dist/display/markdown-viewer/index.d.ts.map +1 -0
- package/dist/display/markdown-viewer/index.js +2 -0
- package/dist/display/markdown-viewer/parser.d.ts +60 -0
- package/dist/display/markdown-viewer/parser.d.ts.map +1 -0
- package/dist/display/markdown-viewer/types.d.ts +12 -0
- package/dist/display/markdown-viewer/types.d.ts.map +1 -0
- package/dist/display/notification-center/index.d.ts +43 -0
- package/dist/display/notification-center/index.d.ts.map +1 -0
- package/dist/display/notification-center/index.js +145 -0
- package/dist/display/notification-center/index.js.map +1 -0
- package/dist/display/notification-center/types.d.ts +30 -0
- package/dist/display/notification-center/types.d.ts.map +1 -0
- package/dist/display/popover/index.d.ts +43 -0
- package/dist/display/popover/index.d.ts.map +1 -0
- package/dist/display/popover/index.js +113 -0
- package/dist/display/popover/index.js.map +1 -0
- package/dist/display/popover/types.d.ts +16 -0
- package/dist/display/popover/types.d.ts.map +1 -0
- package/dist/display/progress/index.d.ts +28 -0
- package/dist/display/progress/index.d.ts.map +1 -0
- package/dist/display/progress/index.js +81 -0
- package/dist/display/progress/index.js.map +1 -0
- package/dist/display/progress/types.d.ts +18 -0
- package/dist/display/progress/types.d.ts.map +1 -0
- package/dist/display/severity-indicator/index.d.ts +19 -0
- package/dist/display/severity-indicator/index.d.ts.map +1 -0
- package/dist/display/severity-indicator/index.js +36 -0
- package/dist/display/severity-indicator/index.js.map +1 -0
- package/dist/display/severity-indicator/types.d.ts +14 -0
- package/dist/display/severity-indicator/types.d.ts.map +1 -0
- package/dist/display/stat-card/index.d.ts +23 -0
- package/dist/display/stat-card/index.d.ts.map +1 -0
- package/dist/display/stat-card/index.js +54 -0
- package/dist/display/stat-card/index.js.map +1 -0
- package/dist/display/stat-card/types.d.ts +19 -0
- package/dist/display/stat-card/types.d.ts.map +1 -0
- package/dist/display/tooltip/index.d.ts +37 -0
- package/dist/display/tooltip/index.d.ts.map +1 -0
- package/dist/display/tooltip/index.js +98 -0
- package/dist/display/tooltip/index.js.map +1 -0
- package/dist/display/tooltip/types.d.ts +13 -0
- package/dist/display/tooltip/types.d.ts.map +1 -0
- package/dist/display/typography/index.d.ts +24 -0
- package/dist/display/typography/index.d.ts.map +1 -0
- package/dist/display/typography/index.js +53 -0
- package/dist/display/typography/index.js.map +1 -0
- package/dist/display/typography/types.d.ts +19 -0
- package/dist/display/typography/types.d.ts.map +1 -0
- package/dist/display/uptime-bar/index.d.ts +18 -0
- package/dist/display/uptime-bar/index.d.ts.map +1 -0
- package/dist/display/uptime-bar/index.js +44 -0
- package/dist/display/uptime-bar/index.js.map +1 -0
- package/dist/display/uptime-bar/types.d.ts +17 -0
- package/dist/display/uptime-bar/types.d.ts.map +1 -0
- package/dist/dist--GaXbmRw2.js +118 -0
- package/dist/dist--GaXbmRw2.js.map +1 -0
- package/dist/dist-Axk3-hcS.js +75 -0
- package/dist/dist-Axk3-hcS.js.map +1 -0
- package/dist/dist-B8N_HFUN.js +577 -0
- package/dist/dist-B8N_HFUN.js.map +1 -0
- package/dist/dist-BCCeHAQm.js +35 -0
- package/dist/dist-BCCeHAQm.js.map +1 -0
- package/dist/dist-BEs9dhua.js +1282 -0
- package/dist/dist-BEs9dhua.js.map +1 -0
- package/dist/dist-BHlnF6po.js +47 -0
- package/dist/dist-BHlnF6po.js.map +1 -0
- package/dist/dist-BOvRuqYp.js +27 -0
- package/dist/dist-BOvRuqYp.js.map +1 -0
- package/dist/dist-Bf2tA9xW.js +617 -0
- package/dist/dist-Bf2tA9xW.js.map +1 -0
- package/dist/dist-BmxbWOAj.js +8 -0
- package/dist/dist-BmxbWOAj.js.map +1 -0
- package/dist/dist-BqhkOSZ9.js +19 -0
- package/dist/dist-BqhkOSZ9.js.map +1 -0
- package/dist/dist-ByLgcn06.js +1236 -0
- package/dist/dist-ByLgcn06.js.map +1 -0
- package/dist/dist-CXvCjmkw.js +29 -0
- package/dist/dist-CXvCjmkw.js.map +1 -0
- package/dist/dist-CncQbcn0.js +52 -0
- package/dist/dist-CncQbcn0.js.map +1 -0
- package/dist/dist-CuA1lYwd.js +185 -0
- package/dist/dist-CuA1lYwd.js.map +1 -0
- package/dist/dist-CuEY-E_Y.js +12 -0
- package/dist/dist-CuEY-E_Y.js.map +1 -0
- package/dist/dist-D3GdPS_X.js +153 -0
- package/dist/dist-D3GdPS_X.js.map +1 -0
- package/dist/dist-D6Fo4Qkc.js +13 -0
- package/dist/dist-D6Fo4Qkc.js.map +1 -0
- package/dist/dist-DHddbHrS.js +14 -0
- package/dist/dist-DHddbHrS.js.map +1 -0
- package/dist/dist-DKK7ynDa.js +31 -0
- package/dist/dist-DKK7ynDa.js.map +1 -0
- package/dist/dist-DLCJ6BjJ.js +68 -0
- package/dist/dist-DLCJ6BjJ.js.map +1 -0
- package/dist/dist-Di-HnAlt.js +279 -0
- package/dist/dist-Di-HnAlt.js.map +1 -0
- package/dist/dist-DtNafQtQ2.js +122 -0
- package/dist/dist-DtNafQtQ2.js.map +1 -0
- package/dist/dist-Ltr12WCJ.js +11020 -0
- package/dist/dist-Ltr12WCJ.js.map +1 -0
- package/dist/dist-hG2PgpV-2.js +12 -0
- package/dist/dist-hG2PgpV-2.js.map +1 -0
- package/dist/dropdown-menu-gev7lxyE.js +248 -0
- package/dist/dropdown-menu-gev7lxyE.js.map +1 -0
- package/dist/editors/base.d.ts +45 -0
- package/dist/editors/base.d.ts.map +1 -0
- package/dist/editors/code-editor.d.ts +25 -0
- package/dist/editors/code-editor.d.ts.map +1 -0
- package/dist/editors/code-editor.js +173 -0
- package/dist/editors/code-editor.js.map +1 -0
- package/dist/editors/diff-viewer.d.ts +18 -0
- package/dist/editors/diff-viewer.d.ts.map +1 -0
- package/dist/editors/diff-viewer.js +105 -0
- package/dist/editors/diff-viewer.js.map +1 -0
- package/dist/editors/index.d.ts +23 -0
- package/dist/editors/index.d.ts.map +1 -0
- package/dist/editors/index.js +14 -0
- package/dist/editors/json-viewer.d.ts +19 -0
- package/dist/editors/json-viewer.d.ts.map +1 -0
- package/dist/editors/json-viewer.js +78 -0
- package/dist/editors/json-viewer.js.map +1 -0
- package/dist/editors/languages/fluxl.d.ts +9 -0
- package/dist/editors/languages/fluxl.d.ts.map +1 -0
- package/dist/editors/languages/fluxl.js +77 -0
- package/dist/editors/languages/fluxl.js.map +1 -0
- package/dist/editors/languages/javascript.d.ts +6 -0
- package/dist/editors/languages/javascript.d.ts.map +1 -0
- package/dist/editors/languages/json.d.ts +4 -0
- package/dist/editors/languages/json.d.ts.map +1 -0
- package/dist/editors/languages/markdown.d.ts +4 -0
- package/dist/editors/languages/markdown.d.ts.map +1 -0
- package/dist/editors/languages/python.d.ts +4 -0
- package/dist/editors/languages/python.d.ts.map +1 -0
- package/dist/editors/languages/rust.d.ts +4 -0
- package/dist/editors/languages/rust.d.ts.map +1 -0
- package/dist/editors/languages/shell.d.ts +4 -0
- package/dist/editors/languages/shell.d.ts.map +1 -0
- package/dist/editors/languages/sql.d.ts +8 -0
- package/dist/editors/languages/sql.d.ts.map +1 -0
- package/dist/editors/languages/yaml.d.ts +6 -0
- package/dist/editors/languages/yaml.d.ts.map +1 -0
- package/dist/editors/languages/yara.d.ts +9 -0
- package/dist/editors/languages/yara.d.ts.map +1 -0
- package/dist/editors/languages/yara.js +93 -0
- package/dist/editors/languages/yara.js.map +1 -0
- package/dist/editors/languages/yaral.d.ts +9 -0
- package/dist/editors/languages/yaral.d.ts.map +1 -0
- package/dist/editors/languages/yaral.js +52 -0
- package/dist/editors/languages/yaral.js.map +1 -0
- package/dist/editors/log-viewer.d.ts +23 -0
- package/dist/editors/log-viewer.d.ts.map +1 -0
- package/dist/editors/log-viewer.js +89 -0
- package/dist/editors/log-viewer.js.map +1 -0
- package/dist/editors/types.d.ts +123 -0
- package/dist/editors/types.d.ts.map +1 -0
- package/dist/editors/yaml-editor.d.ts +8 -0
- package/dist/editors/yaml-editor.d.ts.map +1 -0
- package/dist/editors/yaml-editor.js +22 -0
- package/dist/editors/yaml-editor.js.map +1 -0
- package/dist/ellipsis-g4z73tVE.js +25 -0
- package/dist/ellipsis-g4z73tVE.js.map +1 -0
- package/dist/erDiagram-INFDFZHY-DF8z82V9.js +1669 -0
- package/dist/erDiagram-INFDFZHY-DF8z82V9.js.map +1 -0
- package/dist/es2015-CoPv8Nx3.js +703 -0
- package/dist/es2015-CoPv8Nx3.js.map +1 -0
- package/dist/flowDiagram-PKNHOUZH--GnQiGTL.js +4165 -0
- package/dist/flowDiagram-PKNHOUZH--GnQiGTL.js.map +1 -0
- package/dist/form/calendar/index.d.ts +41 -0
- package/dist/form/calendar/index.d.ts.map +1 -0
- package/dist/form/calendar/index.js +172 -0
- package/dist/form/calendar/index.js.map +1 -0
- package/dist/form/calendar/types.d.ts +18 -0
- package/dist/form/calendar/types.d.ts.map +1 -0
- package/dist/form/color-picker/index.d.ts +78 -0
- package/dist/form/color-picker/index.d.ts.map +1 -0
- package/dist/form/color-picker/index.js +547 -0
- package/dist/form/color-picker/index.js.map +1 -0
- package/dist/form/color-picker/types.d.ts +14 -0
- package/dist/form/color-picker/types.d.ts.map +1 -0
- package/dist/form/cron-editor/index.d.ts +56 -0
- package/dist/form/cron-editor/index.d.ts.map +1 -0
- package/dist/form/cron-editor/index.js +312 -0
- package/dist/form/cron-editor/index.js.map +1 -0
- package/dist/form/cron-editor/parser.d.ts +12 -0
- package/dist/form/cron-editor/parser.d.ts.map +1 -0
- package/dist/form/cron-editor/parser.js +211 -0
- package/dist/form/cron-editor/parser.js.map +1 -0
- package/dist/form/cron-editor/types.d.ts +31 -0
- package/dist/form/cron-editor/types.d.ts.map +1 -0
- package/dist/form/date-picker/index.d.ts +28 -0
- package/dist/form/date-picker/index.d.ts.map +1 -0
- package/dist/form/date-picker/index.js +115 -0
- package/dist/form/date-picker/index.js.map +1 -0
- package/dist/form/date-picker/range.d.ts +34 -0
- package/dist/form/date-picker/range.d.ts.map +1 -0
- package/dist/form/date-picker/range.js +179 -0
- package/dist/form/date-picker/range.js.map +1 -0
- package/dist/form/date-picker/time.d.ts +41 -0
- package/dist/form/date-picker/time.d.ts.map +1 -0
- package/dist/form/date-picker/time.js +146 -0
- package/dist/form/date-picker/time.js.map +1 -0
- package/dist/form/date-picker/types.d.ts +52 -0
- package/dist/form/date-picker/types.d.ts.map +1 -0
- package/dist/form/direction/index.d.ts +25 -0
- package/dist/form/direction/index.d.ts.map +1 -0
- package/dist/form/direction/index.js +36 -0
- package/dist/form/direction/index.js.map +1 -0
- package/dist/form/index.d.ts +19 -0
- package/dist/form/index.d.ts.map +1 -0
- package/dist/form/index.js +10 -0
- package/dist/form/tag-input/index.d.ts +45 -0
- package/dist/form/tag-input/index.d.ts.map +1 -0
- package/dist/form/tag-input/index.js +208 -0
- package/dist/form/tag-input/index.js.map +1 -0
- package/dist/form/tag-input/types.d.ts +22 -0
- package/dist/form/tag-input/types.d.ts.map +1 -0
- package/dist/ganttDiagram-A5KZAMGK-C-ecgUuM.js +3075 -0
- package/dist/ganttDiagram-A5KZAMGK-C-ecgUuM.js.map +1 -0
- package/dist/gitGraph-HDMCJU4V-Bc1dZdnh.js +3 -0
- package/dist/gitGraphDiagram-K3NZZRJ6-B3SX2MOp.js +628 -0
- package/dist/gitGraphDiagram-K3NZZRJ6-B3SX2MOp.js.map +1 -0
- package/dist/graphlib-B9J5YQhs.js +227 -0
- package/dist/graphlib-B9J5YQhs.js.map +1 -0
- package/dist/icons/index.d.ts +16 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +93 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +138 -0
- package/dist/info-3K5VOQVL-Bbwt2VhK.js +3 -0
- package/dist/infoDiagram-LFFYTUFH-C8h9fMHW.js +21 -0
- package/dist/infoDiagram-LFFYTUFH-C8h9fMHW.js.map +1 -0
- package/dist/init-w1fYmhFN.js +17 -0
- package/dist/init-w1fYmhFN.js.map +1 -0
- package/dist/input-6tYy57mp.js +311 -0
- package/dist/input-6tYy57mp.js.map +1 -0
- package/dist/interactive-9Ky-mbcb.js +24 -0
- package/dist/interactive-9Ky-mbcb.js.map +1 -0
- package/dist/isArrayLikeObject-Bdc4g39x.js +580 -0
- package/dist/isArrayLikeObject-Bdc4g39x.js.map +1 -0
- package/dist/isEmpty-CrXtQ9Zv.js +37 -0
- package/dist/isEmpty-CrXtQ9Zv.js.map +1 -0
- package/dist/ishikawaDiagram-PHBUUO56-Dzja5vrM.js +719 -0
- package/dist/ishikawaDiagram-PHBUUO56-Dzja5vrM.js.map +1 -0
- package/dist/journeyDiagram-4ABVD52K-CUzkcpCV.js +886 -0
- package/dist/journeyDiagram-4ABVD52K-CUzkcpCV.js.map +1 -0
- package/dist/json-CeyVGbpw.js +907 -0
- package/dist/json-CeyVGbpw.js.map +1 -0
- package/dist/kanban-definition-K7BYSVSG-DvIRVHW0.js +973 -0
- package/dist/kanban-definition-K7BYSVSG-DvIRVHW0.js.map +1 -0
- package/dist/katex-DWv23pJW.js +21981 -0
- package/dist/katex-DWv23pJW.js.map +1 -0
- package/dist/keyboard-BzL08saM.js +245 -0
- package/dist/keyboard-BzL08saM.js.map +1 -0
- package/dist/label-BObzQvEY.js +55 -0
- package/dist/label-BObzQvEY.js.map +1 -0
- package/dist/layout/index.d.ts +69 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +240 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/line-CmjYdUkH.js +36 -0
- package/dist/line-CmjYdUkH.js.map +1 -0
- package/dist/linear-DTQb0J_9.js +244 -0
- package/dist/linear-DTQb0J_9.js.map +1 -0
- package/dist/markdown-viewer-BLoPrrpk.js +211 -0
- package/dist/markdown-viewer-BLoPrrpk.js.map +1 -0
- package/dist/math-8tgL_lKq.js +12 -0
- package/dist/math-8tgL_lKq.js.map +1 -0
- package/dist/menubar-DnARRQDT.js +438 -0
- package/dist/menubar-DnARRQDT.js.map +1 -0
- package/dist/mermaid-parser.core-CuiIDpxY.js +61 -0
- package/dist/mermaid-parser.core-CuiIDpxY.js.map +1 -0
- package/dist/mermaid.core-DwgIyYMX.js +923 -0
- package/dist/mermaid.core-DwgIyYMX.js.map +1 -0
- package/dist/mindmap-definition-YRQLILUH-BOCS5UWn.js +966 -0
- package/dist/mindmap-definition-YRQLILUH-BOCS5UWn.js.map +1 -0
- package/dist/navigation/breadcrumb/index.d.ts +22 -0
- package/dist/navigation/breadcrumb/index.d.ts.map +1 -0
- package/dist/navigation/breadcrumb/index.js +74 -0
- package/dist/navigation/breadcrumb/index.js.map +1 -0
- package/dist/navigation/breadcrumb/types.d.ts +19 -0
- package/dist/navigation/breadcrumb/types.d.ts.map +1 -0
- package/dist/navigation/drawer/index.d.ts +40 -0
- package/dist/navigation/drawer/index.d.ts.map +1 -0
- package/dist/navigation/drawer/index.js +120 -0
- package/dist/navigation/drawer/index.js.map +1 -0
- package/dist/navigation/drawer/types.d.ts +19 -0
- package/dist/navigation/drawer/types.d.ts.map +1 -0
- package/dist/navigation/dropdown-menu/index.d.ts +57 -0
- package/dist/navigation/dropdown-menu/index.d.ts.map +1 -0
- package/dist/navigation/dropdown-menu/index.js +231 -0
- package/dist/navigation/dropdown-menu/index.js.map +1 -0
- package/dist/navigation/dropdown-menu/types.d.ts +38 -0
- package/dist/navigation/dropdown-menu/types.d.ts.map +1 -0
- package/dist/navigation/index.d.ts +17 -0
- package/dist/navigation/index.d.ts.map +1 -0
- package/dist/navigation/index.js +7 -0
- package/dist/navigation/menubar/index.d.ts +38 -0
- package/dist/navigation/menubar/index.d.ts.map +1 -0
- package/dist/navigation/menubar/index.js +166 -0
- package/dist/navigation/menubar/index.js.map +1 -0
- package/dist/navigation/menubar/types.d.ts +24 -0
- package/dist/navigation/menubar/types.d.ts.map +1 -0
- package/dist/navigation/navigation-menu/index.d.ts +49 -0
- package/dist/navigation/navigation-menu/index.d.ts.map +1 -0
- package/dist/navigation/navigation-menu/index.js +173 -0
- package/dist/navigation/navigation-menu/index.js.map +1 -0
- package/dist/navigation/navigation-menu/types.d.ts +24 -0
- package/dist/navigation/navigation-menu/types.d.ts.map +1 -0
- package/dist/navigation/stepper/index.d.ts +34 -0
- package/dist/navigation/stepper/index.d.ts.map +1 -0
- package/dist/navigation/stepper/index.js +91 -0
- package/dist/navigation/stepper/index.js.map +1 -0
- package/dist/navigation/stepper/types.d.ts +22 -0
- package/dist/navigation/stepper/types.d.ts.map +1 -0
- package/dist/navigation-menu-CR-D1doi.js +622 -0
- package/dist/navigation-menu-CR-D1doi.js.map +1 -0
- package/dist/ordinal-CYknuT-U.js +67 -0
- package/dist/ordinal-CYknuT-U.js.map +1 -0
- package/dist/overlays/alert-dialog/index.d.ts +35 -0
- package/dist/overlays/alert-dialog/index.d.ts.map +1 -0
- package/dist/overlays/alert-dialog/index.js +137 -0
- package/dist/overlays/alert-dialog/index.js.map +1 -0
- package/dist/overlays/alert-dialog/types.d.ts +17 -0
- package/dist/overlays/alert-dialog/types.d.ts.map +1 -0
- package/dist/overlays/carousel/index.d.ts +69 -0
- package/dist/overlays/carousel/index.d.ts.map +1 -0
- package/dist/overlays/carousel/index.js +154 -0
- package/dist/overlays/carousel/index.js.map +1 -0
- package/dist/overlays/carousel/types.d.ts +21 -0
- package/dist/overlays/carousel/types.d.ts.map +1 -0
- package/dist/overlays/index.d.ts +11 -0
- package/dist/overlays/index.d.ts.map +1 -0
- package/dist/overlays/index.js +4 -0
- package/dist/overlays/sheet/index.d.ts +37 -0
- package/dist/overlays/sheet/index.d.ts.map +1 -0
- package/dist/overlays/sheet/index.js +120 -0
- package/dist/overlays/sheet/index.js.map +1 -0
- package/dist/overlays/sheet/types.d.ts +20 -0
- package/dist/overlays/sheet/types.d.ts.map +1 -0
- package/dist/packet-RMMSAZCW-BJSH0V2C.js +3 -0
- package/dist/pagination-Co5Y-NPF.js +80 -0
- package/dist/pagination-Co5Y-NPF.js.map +1 -0
- package/dist/passkey/index.d.ts +77 -0
- package/dist/passkey/index.d.ts.map +1 -0
- package/dist/passkey/index.js +90 -0
- package/dist/passkey/index.js.map +1 -0
- package/dist/path-CmOMDdHx.js +87 -0
- package/dist/path-CmOMDdHx.js.map +1 -0
- package/dist/pie-UPGHQEXC-Bdq_H4Og.js +3 -0
- package/dist/pieDiagram-SKSYHLDU-CHElRUS-.js +167 -0
- package/dist/pieDiagram-SKSYHLDU-CHElRUS-.js.map +1 -0
- package/dist/primitives/button/button-group.d.ts +13 -0
- package/dist/primitives/button/button-group.d.ts.map +1 -0
- package/dist/primitives/button/index.d.ts +31 -0
- package/dist/primitives/button/index.d.ts.map +1 -0
- package/dist/primitives/button/index.js +2 -0
- package/dist/primitives/button/types.d.ts +22 -0
- package/dist/primitives/button/types.d.ts.map +1 -0
- package/dist/primitives/button/variants.d.ts +12 -0
- package/dist/primitives/button/variants.d.ts.map +1 -0
- package/dist/primitives/checkbox/group.d.ts +17 -0
- package/dist/primitives/checkbox/group.d.ts.map +1 -0
- package/dist/primitives/checkbox/group.js +58 -0
- package/dist/primitives/checkbox/group.js.map +1 -0
- package/dist/primitives/checkbox/index.d.ts +19 -0
- package/dist/primitives/checkbox/index.d.ts.map +1 -0
- package/dist/primitives/checkbox/index.js +38 -0
- package/dist/primitives/checkbox/index.js.map +1 -0
- package/dist/primitives/checkbox/types.d.ts +32 -0
- package/dist/primitives/checkbox/types.d.ts.map +1 -0
- package/dist/primitives/field/index.d.ts +44 -0
- package/dist/primitives/field/index.d.ts.map +1 -0
- package/dist/primitives/field/index.js +60 -0
- package/dist/primitives/field/index.js.map +1 -0
- package/dist/primitives/field/types.d.ts +14 -0
- package/dist/primitives/field/types.d.ts.map +1 -0
- package/dist/primitives/index.d.ts +38 -0
- package/dist/primitives/index.d.ts.map +1 -0
- package/dist/primitives/index.js +19 -0
- package/dist/primitives/input/index.d.ts +29 -0
- package/dist/primitives/input/index.d.ts.map +1 -0
- package/dist/primitives/input/index.js +2 -0
- package/dist/primitives/input/input-group.d.ts +17 -0
- package/dist/primitives/input/input-group.d.ts.map +1 -0
- package/dist/primitives/input/input-otp.d.ts +27 -0
- package/dist/primitives/input/input-otp.d.ts.map +1 -0
- package/dist/primitives/input/ip-input.d.ts +25 -0
- package/dist/primitives/input/ip-input.d.ts.map +1 -0
- package/dist/primitives/input/textarea.d.ts +24 -0
- package/dist/primitives/input/textarea.d.ts.map +1 -0
- package/dist/primitives/input/types.d.ts +67 -0
- package/dist/primitives/input/types.d.ts.map +1 -0
- package/dist/primitives/kbd/index.d.ts +19 -0
- package/dist/primitives/kbd/index.d.ts.map +1 -0
- package/dist/primitives/kbd/index.js +28 -0
- package/dist/primitives/kbd/index.js.map +1 -0
- package/dist/primitives/label/index.d.ts +27 -0
- package/dist/primitives/label/index.d.ts.map +1 -0
- package/dist/primitives/label/index.js +29 -0
- package/dist/primitives/label/index.js.map +1 -0
- package/dist/primitives/radio/index.d.ts +21 -0
- package/dist/primitives/radio/index.d.ts.map +1 -0
- package/dist/primitives/radio/index.js +78 -0
- package/dist/primitives/radio/index.js.map +1 -0
- package/dist/primitives/radio/types.d.ts +21 -0
- package/dist/primitives/radio/types.d.ts.map +1 -0
- package/dist/primitives/scroll-area/index.d.ts +27 -0
- package/dist/primitives/scroll-area/index.d.ts.map +1 -0
- package/dist/primitives/scroll-area/index.js +29 -0
- package/dist/primitives/scroll-area/index.js.map +1 -0
- package/dist/primitives/select/combobox.d.ts +42 -0
- package/dist/primitives/select/combobox.d.ts.map +1 -0
- package/dist/primitives/select/combobox.js +162 -0
- package/dist/primitives/select/combobox.js.map +1 -0
- package/dist/primitives/select/index.d.ts +47 -0
- package/dist/primitives/select/index.d.ts.map +1 -0
- package/dist/primitives/select/index.js +193 -0
- package/dist/primitives/select/index.js.map +1 -0
- package/dist/primitives/select/native.d.ts +19 -0
- package/dist/primitives/select/native.d.ts.map +1 -0
- package/dist/primitives/select/native.js +57 -0
- package/dist/primitives/select/native.js.map +1 -0
- package/dist/primitives/select/types.d.ts +49 -0
- package/dist/primitives/select/types.d.ts.map +1 -0
- package/dist/primitives/separator/index.d.ts +16 -0
- package/dist/primitives/separator/index.d.ts.map +1 -0
- package/dist/primitives/separator/index.js +16 -0
- package/dist/primitives/separator/index.js.map +1 -0
- package/dist/primitives/skeleton/index.d.ts +21 -0
- package/dist/primitives/skeleton/index.d.ts.map +1 -0
- package/dist/primitives/skeleton/index.js +19 -0
- package/dist/primitives/skeleton/index.js.map +1 -0
- package/dist/primitives/slider/index.d.ts +48 -0
- package/dist/primitives/slider/index.d.ts.map +1 -0
- package/dist/primitives/slider/index.js +118 -0
- package/dist/primitives/slider/index.js.map +1 -0
- package/dist/primitives/slider/types.d.ts +19 -0
- package/dist/primitives/slider/types.d.ts.map +1 -0
- package/dist/primitives/spinner/index.d.ts +20 -0
- package/dist/primitives/spinner/index.d.ts.map +1 -0
- package/dist/primitives/spinner/index.js +23 -0
- package/dist/primitives/spinner/index.js.map +1 -0
- package/dist/primitives/switch/index.d.ts +28 -0
- package/dist/primitives/switch/index.d.ts.map +1 -0
- package/dist/primitives/switch/index.js +44 -0
- package/dist/primitives/switch/index.js.map +1 -0
- package/dist/primitives/switch/types.d.ts +16 -0
- package/dist/primitives/switch/types.d.ts.map +1 -0
- package/dist/primitives/toggle/index.d.ts +25 -0
- package/dist/primitives/toggle/index.d.ts.map +1 -0
- package/dist/primitives/toggle/index.js +2 -0
- package/dist/primitives/toggle/toggle-group.d.ts +29 -0
- package/dist/primitives/toggle/toggle-group.d.ts.map +1 -0
- package/dist/primitives/toggle/types.d.ts +35 -0
- package/dist/primitives/toggle/types.d.ts.map +1 -0
- package/dist/primitives/utils.d.ts +9 -0
- package/dist/primitives/utils.d.ts.map +1 -0
- package/dist/purify.es-oNgIHWpC.js +551 -0
- package/dist/purify.es-oNgIHWpC.js.map +1 -0
- package/dist/quadrantDiagram-337W2JSQ-CCp6NZKq.js +1977 -0
- package/dist/quadrantDiagram-337W2JSQ-CCp6NZKq.js.map +1 -0
- package/dist/radar-KQ55EAFF-9Ge_dfwM.js +3 -0
- package/dist/radio-group-70BFGDbL.js +199 -0
- package/dist/radio-group-70BFGDbL.js.map +1 -0
- package/dist/react/brand/index.d.ts +36 -0
- package/dist/react/brand/index.d.ts.map +1 -0
- package/dist/react/brand.js +81 -0
- package/dist/react/brand.js.map +1 -0
- package/dist/react/index.d.ts +6 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/primitives/alert-dialog.d.ts +15 -0
- package/dist/react/primitives/alert-dialog.d.ts.map +1 -0
- package/dist/react/primitives/alert-dialog.js +2 -0
- package/dist/react/primitives/alert.d.ts +16 -0
- package/dist/react/primitives/alert.d.ts.map +1 -0
- package/dist/react/primitives/alert.js +61 -0
- package/dist/react/primitives/alert.js.map +1 -0
- package/dist/react/primitives/animated-counter.d.ts +37 -0
- package/dist/react/primitives/animated-counter.d.ts.map +1 -0
- package/dist/react/primitives/animated-counter.js +86 -0
- package/dist/react/primitives/animated-counter.js.map +1 -0
- package/dist/react/primitives/aspect-ratio.d.ts +8 -0
- package/dist/react/primitives/aspect-ratio.d.ts.map +1 -0
- package/dist/react/primitives/aspect-ratio.js +23 -0
- package/dist/react/primitives/aspect-ratio.js.map +1 -0
- package/dist/react/primitives/attack-path.d.ts +34 -0
- package/dist/react/primitives/attack-path.d.ts.map +1 -0
- package/dist/react/primitives/attack-path.js +125 -0
- package/dist/react/primitives/attack-path.js.map +1 -0
- package/dist/react/primitives/avatar.d.ts +25 -0
- package/dist/react/primitives/avatar.d.ts.map +1 -0
- package/dist/react/primitives/avatar.js +95 -0
- package/dist/react/primitives/avatar.js.map +1 -0
- package/dist/react/primitives/badge.d.ts +11 -0
- package/dist/react/primitives/badge.d.ts.map +1 -0
- package/dist/react/primitives/badge.js +32 -0
- package/dist/react/primitives/badge.js.map +1 -0
- package/dist/react/primitives/breadcrumb.d.ts +12 -0
- package/dist/react/primitives/breadcrumb.d.ts.map +1 -0
- package/dist/react/primitives/breadcrumb.js +72 -0
- package/dist/react/primitives/breadcrumb.js.map +1 -0
- package/dist/react/primitives/button.d.ts +18 -0
- package/dist/react/primitives/button.d.ts.map +1 -0
- package/dist/react/primitives/button.js +82 -0
- package/dist/react/primitives/button.js.map +1 -0
- package/dist/react/primitives/calendar.d.ts +31 -0
- package/dist/react/primitives/calendar.d.ts.map +1 -0
- package/dist/react/primitives/calendar.js +139 -0
- package/dist/react/primitives/calendar.js.map +1 -0
- package/dist/react/primitives/card.d.ts +11 -0
- package/dist/react/primitives/card.d.ts.map +1 -0
- package/dist/react/primitives/card.js +32 -0
- package/dist/react/primitives/card.js.map +1 -0
- package/dist/react/primitives/carousel.d.ts +25 -0
- package/dist/react/primitives/carousel.d.ts.map +1 -0
- package/dist/react/primitives/carousel.js +2 -0
- package/dist/react/primitives/chart-area.d.ts +9 -0
- package/dist/react/primitives/chart-area.d.ts.map +1 -0
- package/dist/react/primitives/chart-area.js +26 -0
- package/dist/react/primitives/chart-area.js.map +1 -0
- package/dist/react/primitives/chart-bar.d.ts +9 -0
- package/dist/react/primitives/chart-bar.d.ts.map +1 -0
- package/dist/react/primitives/chart-bar.js +26 -0
- package/dist/react/primitives/chart-bar.js.map +1 -0
- package/dist/react/primitives/chart-candlestick.d.ts +8 -0
- package/dist/react/primitives/chart-candlestick.d.ts.map +1 -0
- package/dist/react/primitives/chart-candlestick.js +26 -0
- package/dist/react/primitives/chart-candlestick.js.map +1 -0
- package/dist/react/primitives/chart-funnel.d.ts +8 -0
- package/dist/react/primitives/chart-funnel.d.ts.map +1 -0
- package/dist/react/primitives/chart-funnel.js +26 -0
- package/dist/react/primitives/chart-funnel.js.map +1 -0
- package/dist/react/primitives/chart-gauge.d.ts +8 -0
- package/dist/react/primitives/chart-gauge.d.ts.map +1 -0
- package/dist/react/primitives/chart-gauge.js +37 -0
- package/dist/react/primitives/chart-gauge.js.map +1 -0
- package/dist/react/primitives/chart-heatmap.d.ts +8 -0
- package/dist/react/primitives/chart-heatmap.d.ts.map +1 -0
- package/dist/react/primitives/chart-heatmap.js +26 -0
- package/dist/react/primitives/chart-heatmap.js.map +1 -0
- package/dist/react/primitives/chart-line.d.ts +9 -0
- package/dist/react/primitives/chart-line.d.ts.map +1 -0
- package/dist/react/primitives/chart-line.js +26 -0
- package/dist/react/primitives/chart-line.js.map +1 -0
- package/dist/react/primitives/chart-pie.d.ts +8 -0
- package/dist/react/primitives/chart-pie.d.ts.map +1 -0
- package/dist/react/primitives/chart-pie.js +26 -0
- package/dist/react/primitives/chart-pie.js.map +1 -0
- package/dist/react/primitives/chart-radar.d.ts +8 -0
- package/dist/react/primitives/chart-radar.d.ts.map +1 -0
- package/dist/react/primitives/chart-radar.js +26 -0
- package/dist/react/primitives/chart-radar.js.map +1 -0
- package/dist/react/primitives/chart-sankey.d.ts +8 -0
- package/dist/react/primitives/chart-sankey.d.ts.map +1 -0
- package/dist/react/primitives/chart-sankey.js +26 -0
- package/dist/react/primitives/chart-sankey.js.map +1 -0
- package/dist/react/primitives/chart-scatter.d.ts +9 -0
- package/dist/react/primitives/chart-scatter.d.ts.map +1 -0
- package/dist/react/primitives/chart-scatter.js +26 -0
- package/dist/react/primitives/chart-scatter.js.map +1 -0
- package/dist/react/primitives/chart-sparkline.d.ts +7 -0
- package/dist/react/primitives/chart-sparkline.d.ts.map +1 -0
- package/dist/react/primitives/chart-sparkline.js +26 -0
- package/dist/react/primitives/chart-sparkline.js.map +1 -0
- package/dist/react/primitives/chart-treemap.d.ts +8 -0
- package/dist/react/primitives/chart-treemap.d.ts.map +1 -0
- package/dist/react/primitives/chart-treemap.js +26 -0
- package/dist/react/primitives/chart-treemap.js.map +1 -0
- package/dist/react/primitives/chart-waterfall.d.ts +8 -0
- package/dist/react/primitives/chart-waterfall.d.ts.map +1 -0
- package/dist/react/primitives/chart-waterfall.js +26 -0
- package/dist/react/primitives/chart-waterfall.js.map +1 -0
- package/dist/react/primitives/checkbox.d.ts +9 -0
- package/dist/react/primitives/checkbox.d.ts.map +1 -0
- package/dist/react/primitives/checkbox.js +28 -0
- package/dist/react/primitives/checkbox.js.map +1 -0
- package/dist/react/primitives/code-block.d.ts +16 -0
- package/dist/react/primitives/code-block.d.ts.map +1 -0
- package/dist/react/primitives/code-block.js +67 -0
- package/dist/react/primitives/code-block.js.map +1 -0
- package/dist/react/primitives/code-viewer.d.ts +23 -0
- package/dist/react/primitives/code-viewer.d.ts.map +1 -0
- package/dist/react/primitives/code-viewer.js +229 -0
- package/dist/react/primitives/code-viewer.js.map +1 -0
- package/dist/react/primitives/collapsible.d.ts +32 -0
- package/dist/react/primitives/collapsible.d.ts.map +1 -0
- package/dist/react/primitives/collapsible.js +51 -0
- package/dist/react/primitives/collapsible.js.map +1 -0
- package/dist/react/primitives/color-picker.d.ts +18 -0
- package/dist/react/primitives/color-picker.d.ts.map +1 -0
- package/dist/react/primitives/color-picker.js +287 -0
- package/dist/react/primitives/color-picker.js.map +1 -0
- package/dist/react/primitives/context-menu.d.ts +24 -0
- package/dist/react/primitives/context-menu.d.ts.map +1 -0
- package/dist/react/primitives/context-menu.js +127 -0
- package/dist/react/primitives/context-menu.js.map +1 -0
- package/dist/react/primitives/copy-button.d.ts +23 -0
- package/dist/react/primitives/copy-button.d.ts.map +1 -0
- package/dist/react/primitives/copy-button.js +59 -0
- package/dist/react/primitives/copy-button.js.map +1 -0
- package/dist/react/primitives/cron-editor.d.ts +39 -0
- package/dist/react/primitives/cron-editor.d.ts.map +1 -0
- package/dist/react/primitives/cron-editor.js +456 -0
- package/dist/react/primitives/cron-editor.js.map +1 -0
- package/dist/react/primitives/cvss-badge.d.ts +21 -0
- package/dist/react/primitives/cvss-badge.d.ts.map +1 -0
- package/dist/react/primitives/cvss-badge.js +70 -0
- package/dist/react/primitives/cvss-badge.js.map +1 -0
- package/dist/react/primitives/data-grid.d.ts +73 -0
- package/dist/react/primitives/data-grid.d.ts.map +1 -0
- package/dist/react/primitives/data-grid.js +775 -0
- package/dist/react/primitives/data-grid.js.map +1 -0
- package/dist/react/primitives/data-table.d.ts +49 -0
- package/dist/react/primitives/data-table.d.ts.map +1 -0
- package/dist/react/primitives/data-table.js +144 -0
- package/dist/react/primitives/data-table.js.map +1 -0
- package/dist/react/primitives/date-picker.d.ts +57 -0
- package/dist/react/primitives/date-picker.d.ts.map +1 -0
- package/dist/react/primitives/date-picker.js +394 -0
- package/dist/react/primitives/date-picker.js.map +1 -0
- package/dist/react/primitives/detection-status.d.ts +47 -0
- package/dist/react/primitives/detection-status.d.ts.map +1 -0
- package/dist/react/primitives/detection-status.js +284 -0
- package/dist/react/primitives/detection-status.js.map +1 -0
- package/dist/react/primitives/dialog.d.ts +16 -0
- package/dist/react/primitives/dialog.d.ts.map +1 -0
- package/dist/react/primitives/dialog.js +87 -0
- package/dist/react/primitives/dialog.js.map +1 -0
- package/dist/react/primitives/direction.d.ts +21 -0
- package/dist/react/primitives/direction.d.ts.map +1 -0
- package/dist/react/primitives/direction.js +43 -0
- package/dist/react/primitives/direction.js.map +1 -0
- package/dist/react/primitives/drawer.d.ts +16 -0
- package/dist/react/primitives/drawer.d.ts.map +1 -0
- package/dist/react/primitives/drawer.js +88 -0
- package/dist/react/primitives/drawer.js.map +1 -0
- package/dist/react/primitives/dropdown-menu.d.ts +10 -0
- package/dist/react/primitives/dropdown-menu.d.ts.map +1 -0
- package/dist/react/primitives/dropdown-menu.js +2 -0
- package/dist/react/primitives/empty-state.d.ts +17 -0
- package/dist/react/primitives/empty-state.d.ts.map +1 -0
- package/dist/react/primitives/empty-state.js +42 -0
- package/dist/react/primitives/empty-state.js.map +1 -0
- package/dist/react/primitives/error-boundary.d.ts +20 -0
- package/dist/react/primitives/error-boundary.d.ts.map +1 -0
- package/dist/react/primitives/error-boundary.js +30 -0
- package/dist/react/primitives/error-boundary.js.map +1 -0
- package/dist/react/primitives/field.d.ts +17 -0
- package/dist/react/primitives/field.d.ts.map +1 -0
- package/dist/react/primitives/field.js +41 -0
- package/dist/react/primitives/field.js.map +1 -0
- package/dist/react/primitives/file-tree.d.ts +28 -0
- package/dist/react/primitives/file-tree.d.ts.map +1 -0
- package/dist/react/primitives/file-tree.js +183 -0
- package/dist/react/primitives/file-tree.js.map +1 -0
- package/dist/react/primitives/flow-diagram.d.ts +18 -0
- package/dist/react/primitives/flow-diagram.d.ts.map +1 -0
- package/dist/react/primitives/flow-diagram.js +40 -0
- package/dist/react/primitives/flow-diagram.js.map +1 -0
- package/dist/react/primitives/heatmap-legend.d.ts +20 -0
- package/dist/react/primitives/heatmap-legend.d.ts.map +1 -0
- package/dist/react/primitives/heatmap-legend.js +29 -0
- package/dist/react/primitives/heatmap-legend.js.map +1 -0
- package/dist/react/primitives/heatmap-toolbar.d.ts +20 -0
- package/dist/react/primitives/heatmap-toolbar.d.ts.map +1 -0
- package/dist/react/primitives/heatmap-toolbar.js +34 -0
- package/dist/react/primitives/heatmap-toolbar.js.map +1 -0
- package/dist/react/primitives/hover-card.d.ts +23 -0
- package/dist/react/primitives/hover-card.d.ts.map +1 -0
- package/dist/react/primitives/hover-card.js +73 -0
- package/dist/react/primitives/hover-card.js.map +1 -0
- package/dist/react/primitives/index.d.ts +99 -0
- package/dist/react/primitives/index.d.ts.map +1 -0
- package/dist/react/primitives/index.js +99 -0
- package/dist/react/primitives/input.d.ts +10 -0
- package/dist/react/primitives/input.d.ts.map +1 -0
- package/dist/react/primitives/input.js +18 -0
- package/dist/react/primitives/input.js.map +1 -0
- package/dist/react/primitives/json-path-browser.d.ts +15 -0
- package/dist/react/primitives/json-path-browser.d.ts.map +1 -0
- package/dist/react/primitives/json-path-browser.js +191 -0
- package/dist/react/primitives/json-path-browser.js.map +1 -0
- package/dist/react/primitives/kanban.d.ts +73 -0
- package/dist/react/primitives/kanban.d.ts.map +1 -0
- package/dist/react/primitives/kanban.js +210 -0
- package/dist/react/primitives/kanban.js.map +1 -0
- package/dist/react/primitives/kbd.d.ts +9 -0
- package/dist/react/primitives/kbd.d.ts.map +1 -0
- package/dist/react/primitives/kbd.js +22 -0
- package/dist/react/primitives/kbd.js.map +1 -0
- package/dist/react/primitives/label.d.ts +12 -0
- package/dist/react/primitives/label.d.ts.map +1 -0
- package/dist/react/primitives/label.js +2 -0
- package/dist/react/primitives/map.d.ts +23 -0
- package/dist/react/primitives/map.d.ts.map +1 -0
- package/dist/react/primitives/map.js +39 -0
- package/dist/react/primitives/map.js.map +1 -0
- package/dist/react/primitives/markdown-viewer.d.ts +10 -0
- package/dist/react/primitives/markdown-viewer.d.ts.map +1 -0
- package/dist/react/primitives/markdown-viewer.js +0 -0
- package/dist/react/primitives/markdown-viewer.js.map +1 -0
- package/dist/react/primitives/menubar.d.ts +26 -0
- package/dist/react/primitives/menubar.d.ts.map +1 -0
- package/dist/react/primitives/menubar.js +2 -0
- package/dist/react/primitives/mermaid-diagram.d.ts +16 -0
- package/dist/react/primitives/mermaid-diagram.d.ts.map +1 -0
- package/dist/react/primitives/mermaid-diagram.js +38 -0
- package/dist/react/primitives/mermaid-diagram.js.map +1 -0
- package/dist/react/primitives/mitre-matrix.d.ts +28 -0
- package/dist/react/primitives/mitre-matrix.d.ts.map +1 -0
- package/dist/react/primitives/mitre-matrix.js +125 -0
- package/dist/react/primitives/mitre-matrix.js.map +1 -0
- package/dist/react/primitives/modal.d.ts +22 -0
- package/dist/react/primitives/modal.d.ts.map +1 -0
- package/dist/react/primitives/modal.js +85 -0
- package/dist/react/primitives/modal.js.map +1 -0
- package/dist/react/primitives/navigation-menu.d.ts +13 -0
- package/dist/react/primitives/navigation-menu.d.ts.map +1 -0
- package/dist/react/primitives/navigation-menu.js +2 -0
- package/dist/react/primitives/network-graph.d.ts +20 -0
- package/dist/react/primitives/network-graph.d.ts.map +1 -0
- package/dist/react/primitives/network-graph.js +46 -0
- package/dist/react/primitives/network-graph.js.map +1 -0
- package/dist/react/primitives/notification-center.d.ts +33 -0
- package/dist/react/primitives/notification-center.d.ts.map +1 -0
- package/dist/react/primitives/notification-center.js +132 -0
- package/dist/react/primitives/notification-center.js.map +1 -0
- package/dist/react/primitives/pagination.d.ts +13 -0
- package/dist/react/primitives/pagination.d.ts.map +1 -0
- package/dist/react/primitives/pagination.js +2 -0
- package/dist/react/primitives/popover.d.ts +19 -0
- package/dist/react/primitives/popover.d.ts.map +1 -0
- package/dist/react/primitives/popover.js +142 -0
- package/dist/react/primitives/popover.js.map +1 -0
- package/dist/react/primitives/progress.d.ts +29 -0
- package/dist/react/primitives/progress.d.ts.map +1 -0
- package/dist/react/primitives/progress.js +98 -0
- package/dist/react/primitives/progress.js.map +1 -0
- package/dist/react/primitives/radio-group.d.ts +6 -0
- package/dist/react/primitives/radio-group.d.ts.map +1 -0
- package/dist/react/primitives/radio-group.js +2 -0
- package/dist/react/primitives/ripple.d.ts +44 -0
- package/dist/react/primitives/ripple.d.ts.map +1 -0
- package/dist/react/primitives/ripple.js +63 -0
- package/dist/react/primitives/ripple.js.map +1 -0
- package/dist/react/primitives/rule-editor.d.ts +31 -0
- package/dist/react/primitives/rule-editor.d.ts.map +1 -0
- package/dist/react/primitives/rule-editor.js +261 -0
- package/dist/react/primitives/rule-editor.js.map +1 -0
- package/dist/react/primitives/scroll-area.d.ts +6 -0
- package/dist/react/primitives/scroll-area.d.ts.map +1 -0
- package/dist/react/primitives/scroll-area.js +2 -0
- package/dist/react/primitives/search.d.ts +45 -0
- package/dist/react/primitives/search.d.ts.map +1 -0
- package/dist/react/primitives/search.js +318 -0
- package/dist/react/primitives/search.js.map +1 -0
- package/dist/react/primitives/select.d.ts +16 -0
- package/dist/react/primitives/select.d.ts.map +1 -0
- package/dist/react/primitives/select.js +2 -0
- package/dist/react/primitives/separator.d.ts +5 -0
- package/dist/react/primitives/separator.d.ts.map +1 -0
- package/dist/react/primitives/separator.js +2 -0
- package/dist/react/primitives/severity-indicator.d.ts +18 -0
- package/dist/react/primitives/severity-indicator.d.ts.map +1 -0
- package/dist/react/primitives/severity-indicator.js +74 -0
- package/dist/react/primitives/severity-indicator.js.map +1 -0
- package/dist/react/primitives/sheet.d.ts +16 -0
- package/dist/react/primitives/sheet.d.ts.map +1 -0
- package/dist/react/primitives/sheet.js +84 -0
- package/dist/react/primitives/sheet.js.map +1 -0
- package/dist/react/primitives/skeleton.d.ts +4 -0
- package/dist/react/primitives/skeleton.d.ts.map +1 -0
- package/dist/react/primitives/skeleton.js +15 -0
- package/dist/react/primitives/skeleton.js.map +1 -0
- package/dist/react/primitives/slide-panel.d.ts +28 -0
- package/dist/react/primitives/slide-panel.d.ts.map +1 -0
- package/dist/react/primitives/slide-panel.js +59 -0
- package/dist/react/primitives/slide-panel.js.map +1 -0
- package/dist/react/primitives/slider.d.ts +5 -0
- package/dist/react/primitives/slider.d.ts.map +1 -0
- package/dist/react/primitives/slider.js +2 -0
- package/dist/react/primitives/spinner.d.ts +10 -0
- package/dist/react/primitives/spinner.d.ts.map +1 -0
- package/dist/react/primitives/spinner.js +28 -0
- package/dist/react/primitives/spinner.js.map +1 -0
- package/dist/react/primitives/split-pane.d.ts +19 -0
- package/dist/react/primitives/split-pane.d.ts.map +1 -0
- package/dist/react/primitives/split-pane.js +83 -0
- package/dist/react/primitives/split-pane.js.map +1 -0
- package/dist/react/primitives/stat-card.d.ts +19 -0
- package/dist/react/primitives/stat-card.d.ts.map +1 -0
- package/dist/react/primitives/stat-card.js +86 -0
- package/dist/react/primitives/stat-card.js.map +1 -0
- package/dist/react/primitives/status-bar.d.ts +11 -0
- package/dist/react/primitives/status-bar.d.ts.map +1 -0
- package/dist/react/primitives/status-bar.js +38 -0
- package/dist/react/primitives/status-bar.js.map +1 -0
- package/dist/react/primitives/stepper.d.ts +15 -0
- package/dist/react/primitives/stepper.d.ts.map +1 -0
- package/dist/react/primitives/stepper.js +68 -0
- package/dist/react/primitives/stepper.js.map +1 -0
- package/dist/react/primitives/switch.d.ts +16 -0
- package/dist/react/primitives/switch.d.ts.map +1 -0
- package/dist/react/primitives/switch.js +2 -0
- package/dist/react/primitives/table.d.ts +11 -0
- package/dist/react/primitives/table.d.ts.map +1 -0
- package/dist/react/primitives/table.js +68 -0
- package/dist/react/primitives/table.js.map +1 -0
- package/dist/react/primitives/tabs.d.ts +8 -0
- package/dist/react/primitives/tabs.d.ts.map +1 -0
- package/dist/react/primitives/tabs.js +2 -0
- package/dist/react/primitives/tag-input.d.ts +27 -0
- package/dist/react/primitives/tag-input.d.ts.map +1 -0
- package/dist/react/primitives/tag-input.js +206 -0
- package/dist/react/primitives/tag-input.js.map +1 -0
- package/dist/react/primitives/terminal.d.ts +16 -0
- package/dist/react/primitives/terminal.d.ts.map +1 -0
- package/dist/react/primitives/terminal.js +138 -0
- package/dist/react/primitives/terminal.js.map +1 -0
- package/dist/react/primitives/textarea.d.ts +4 -0
- package/dist/react/primitives/textarea.d.ts.map +1 -0
- package/dist/react/primitives/textarea.js +15 -0
- package/dist/react/primitives/textarea.js.map +1 -0
- package/dist/react/primitives/timeline.d.ts +31 -0
- package/dist/react/primitives/timeline.d.ts.map +1 -0
- package/dist/react/primitives/timeline.js +188 -0
- package/dist/react/primitives/timeline.js.map +1 -0
- package/dist/react/primitives/toast.d.ts +49 -0
- package/dist/react/primitives/toast.d.ts.map +1 -0
- package/dist/react/primitives/toast.js +2 -0
- package/dist/react/primitives/toggle.d.ts +13 -0
- package/dist/react/primitives/toggle.d.ts.map +1 -0
- package/dist/react/primitives/toggle.js +2 -0
- package/dist/react/primitives/tooltip.d.ts +15 -0
- package/dist/react/primitives/tooltip.d.ts.map +1 -0
- package/dist/react/primitives/tooltip.js +2 -0
- package/dist/react/primitives/tree-view.d.ts +51 -0
- package/dist/react/primitives/tree-view.d.ts.map +1 -0
- package/dist/react/primitives/tree-view.js +121 -0
- package/dist/react/primitives/tree-view.js.map +1 -0
- package/dist/react/primitives/typography.d.ts +14 -0
- package/dist/react/primitives/typography.d.ts.map +1 -0
- package/dist/react/primitives/typography.js +85 -0
- package/dist/react/primitives/typography.js.map +1 -0
- package/dist/react/primitives/uptime-bar.d.ts +16 -0
- package/dist/react/primitives/uptime-bar.d.ts.map +1 -0
- package/dist/react/primitives/uptime-bar.js +44 -0
- package/dist/react/primitives/uptime-bar.js.map +1 -0
- package/dist/react/primitives/utils.d.ts +3 -0
- package/dist/react/primitives/utils.d.ts.map +1 -0
- package/dist/react/primitives/vulnerability-card.d.ts +40 -0
- package/dist/react/primitives/vulnerability-card.d.ts.map +1 -0
- package/dist/react/primitives/vulnerability-card.js +163 -0
- package/dist/react/primitives/vulnerability-card.js.map +1 -0
- package/dist/react/theme-toggle/index.d.ts +45 -0
- package/dist/react/theme-toggle/index.d.ts.map +1 -0
- package/dist/react/theme-toggle.js +2 -0
- package/dist/react/threat-visuals/index.d.ts +45 -0
- package/dist/react/threat-visuals/index.d.ts.map +1 -0
- package/dist/react/threat-visuals.js +102 -0
- package/dist/react/threat-visuals.js.map +1 -0
- package/dist/react/topology/edges.d.ts +9 -0
- package/dist/react/topology/edges.d.ts.map +1 -0
- package/dist/react/topology/index.d.ts +9 -0
- package/dist/react/topology/index.d.ts.map +1 -0
- package/dist/react/topology/layouts.d.ts +41 -0
- package/dist/react/topology/layouts.d.ts.map +1 -0
- package/dist/react/topology/logos.d.ts +26 -0
- package/dist/react/topology/logos.d.ts.map +1 -0
- package/dist/react/topology/nodes.d.ts +49 -0
- package/dist/react/topology/nodes.d.ts.map +1 -0
- package/dist/react/topology/safe-handle.d.ts +7 -0
- package/dist/react/topology/safe-handle.d.ts.map +1 -0
- package/dist/react/topology/styles.d.ts +2 -0
- package/dist/react/topology/styles.d.ts.map +1 -0
- package/dist/react/topology.js +2 -0
- package/dist/react.js +104 -0
- package/dist/requirementDiagram-Z7DCOOCP-DKZkXWbf.js +2203 -0
- package/dist/requirementDiagram-Z7DCOOCP-DKZkXWbf.js.map +1 -0
- package/dist/rough.esm-CJL_eUW6.js +1354 -0
- package/dist/rough.esm-CJL_eUW6.js.map +1 -0
- package/dist/sanitize-tXExwlw-.js +16 -0
- package/dist/sanitize-tXExwlw-.js.map +1 -0
- package/dist/sankeyDiagram-WA2Y5GQK-DCrlTOfN.js +923 -0
- package/dist/sankeyDiagram-WA2Y5GQK-DCrlTOfN.js.map +1 -0
- package/dist/scroll-area-DSx2nCB7.js +528 -0
- package/dist/scroll-area-DSx2nCB7.js.map +1 -0
- package/dist/search-Ds_Rknvw.js +14 -0
- package/dist/search-Ds_Rknvw.js.map +1 -0
- package/dist/security/attack-path/index.d.ts +20 -0
- package/dist/security/attack-path/index.d.ts.map +1 -0
- package/dist/security/attack-path/index.js +101 -0
- package/dist/security/attack-path/index.js.map +1 -0
- package/dist/security/attack-path/types.d.ts +23 -0
- package/dist/security/attack-path/types.d.ts.map +1 -0
- package/dist/security/cvss-badge/index.d.ts +20 -0
- package/dist/security/cvss-badge/index.d.ts.map +1 -0
- package/dist/security/cvss-badge/index.js +50 -0
- package/dist/security/cvss-badge/index.js.map +1 -0
- package/dist/security/cvss-badge/types.d.ts +14 -0
- package/dist/security/cvss-badge/types.d.ts.map +1 -0
- package/dist/security/detection-status/index.d.ts +27 -0
- package/dist/security/detection-status/index.d.ts.map +1 -0
- package/dist/security/detection-status/index.js +230 -0
- package/dist/security/detection-status/index.js.map +1 -0
- package/dist/security/detection-status/types.d.ts +23 -0
- package/dist/security/detection-status/types.d.ts.map +1 -0
- package/dist/security/index.d.ts +15 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +6 -0
- package/dist/security/mitre-matrix/index.d.ts +22 -0
- package/dist/security/mitre-matrix/index.d.ts.map +1 -0
- package/dist/security/mitre-matrix/index.js +104 -0
- package/dist/security/mitre-matrix/index.js.map +1 -0
- package/dist/security/mitre-matrix/types.d.ts +22 -0
- package/dist/security/mitre-matrix/types.d.ts.map +1 -0
- package/dist/security/vulnerability-card/index.d.ts +21 -0
- package/dist/security/vulnerability-card/index.d.ts.map +1 -0
- package/dist/security/vulnerability-card/index.js +152 -0
- package/dist/security/vulnerability-card/index.js.map +1 -0
- package/dist/security/vulnerability-card/types.d.ts +32 -0
- package/dist/security/vulnerability-card/types.d.ts.map +1 -0
- package/dist/select-DcJdLR2A.js +836 -0
- package/dist/select-DcJdLR2A.js.map +1 -0
- package/dist/selection-BisAH2tT.js +12 -0
- package/dist/selection-BisAH2tT.js.map +1 -0
- package/dist/separator-CW4ZX8wr.js +68 -0
- package/dist/separator-CW4ZX8wr.js.map +1 -0
- package/dist/sequenceDiagram-2WXFIKYE-CgAE3dlZ.js +4112 -0
- package/dist/sequenceDiagram-2WXFIKYE-CgAE3dlZ.js.map +1 -0
- package/dist/series-Cm9HrwZ5.js +44 -0
- package/dist/series-Cm9HrwZ5.js.map +1 -0
- package/dist/services/api.d.ts +30 -0
- package/dist/services/api.d.ts.map +1 -0
- package/dist/services/api.js +108 -0
- package/dist/services/api.js.map +1 -0
- package/dist/services/index.d.ts +15 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +6 -0
- package/dist/services/keybindings.d.ts +28 -0
- package/dist/services/keybindings.d.ts.map +1 -0
- package/dist/services/keybindings.js +133 -0
- package/dist/services/keybindings.js.map +1 -0
- package/dist/services/router.d.ts +92 -0
- package/dist/services/router.d.ts.map +1 -0
- package/dist/services/router.js +221 -0
- package/dist/services/router.js.map +1 -0
- package/dist/services/sse.d.ts +29 -0
- package/dist/services/sse.d.ts.map +1 -0
- package/dist/services/sse.js +70 -0
- package/dist/services/sse.js.map +1 -0
- package/dist/services/storage.d.ts +22 -0
- package/dist/services/storage.d.ts.map +1 -0
- package/dist/services-BmIW7l7A.js +60 -0
- package/dist/services-BmIW7l7A.js.map +1 -0
- package/dist/shell-DgHAZOVJ.js +5095 -0
- package/dist/shell-DgHAZOVJ.js.map +1 -0
- package/dist/sidebar/badge.d.ts +19 -0
- package/dist/sidebar/badge.d.ts.map +1 -0
- package/dist/sidebar/component.d.ts +23 -0
- package/dist/sidebar/component.d.ts.map +1 -0
- package/dist/sidebar/enhance.d.ts +69 -0
- package/dist/sidebar/enhance.d.ts.map +1 -0
- package/dist/sidebar/index.d.ts +51 -0
- package/dist/sidebar/index.d.ts.map +1 -0
- package/dist/sidebar/index.js +199 -0
- package/dist/sidebar/index.js.map +1 -0
- package/dist/sidebar/types.d.ts +34 -0
- package/dist/sidebar/types.d.ts.map +1 -0
- package/dist/slider-Dwau2Ktq.js +383 -0
- package/dist/slider-Dwau2Ktq.js.map +1 -0
- package/dist/sorting-BZp0NpSF.js +28 -0
- package/dist/sorting-BZp0NpSF.js.map +1 -0
- package/dist/sql-BdONJBIG.js +636 -0
- package/dist/sql-BdONJBIG.js.map +1 -0
- package/dist/src-BUKqSJT6.js +2139 -0
- package/dist/src-BUKqSJT6.js.map +1 -0
- package/dist/src-iH-l56c_.js +340 -0
- package/dist/src-iH-l56c_.js.map +1 -0
- package/dist/stateDiagram-RAJIS63D-_La1YtlG.js +220 -0
- package/dist/stateDiagram-RAJIS63D-_La1YtlG.js.map +1 -0
- package/dist/stateDiagram-v2-FVOUBMTO-CA1nyIZB.js +29 -0
- package/dist/stateDiagram-v2-FVOUBMTO-CA1nyIZB.js.map +1 -0
- package/dist/styles/appearance.css +325 -0
- package/dist/styles/auth.css +318 -0
- package/dist/styles/breakpoints.css +346 -0
- package/dist/styles/charts/charts.css +140 -0
- package/dist/styles/components/context-menu.css +180 -0
- package/dist/styles/components/data-grid.css +635 -0
- package/dist/styles/components/data-table.css +276 -0
- package/dist/styles/components/editors.css +265 -0
- package/dist/styles/components/modal.css +246 -0
- package/dist/styles/components/pagination.css +158 -0
- package/dist/styles/components/search.css +369 -0
- package/dist/styles/components/split-pane.css +174 -0
- package/dist/styles/components/status-bar.css +198 -0
- package/dist/styles/components/tabs.css +201 -0
- package/dist/styles/components/toast.css +235 -0
- package/dist/styles/components/tree-view.css +225 -0
- package/dist/styles/consent.css +282 -0
- package/dist/styles/display/alert.css +136 -0
- package/dist/styles/display/aspect-ratio.css +15 -0
- package/dist/styles/display/avatar.css +190 -0
- package/dist/styles/display/badge.css +148 -0
- package/dist/styles/display/card.css +66 -0
- package/dist/styles/display/code-block.css +99 -0
- package/dist/styles/display/empty-state.css +37 -0
- package/dist/styles/display/hover-card.css +70 -0
- package/dist/styles/display/markdown-viewer.css +145 -0
- package/dist/styles/display/notification-center.css +272 -0
- package/dist/styles/display/popover.css +29 -0
- package/dist/styles/display/progress.css +129 -0
- package/dist/styles/display/severity-indicator.css +96 -0
- package/dist/styles/display/stat-card.css +90 -0
- package/dist/styles/display/tooltip.css +58 -0
- package/dist/styles/display/typography.css +129 -0
- package/dist/styles/display/uptime-bar.css +64 -0
- package/dist/styles/form/calendar.css +240 -0
- package/dist/styles/form/color-picker.css +239 -0
- package/dist/styles/form/cron-editor.css +333 -0
- package/dist/styles/form/date-picker.css +378 -0
- package/dist/styles/form/tag-input.css +219 -0
- package/dist/styles/index.css +110 -0
- package/dist/styles/layout.css +753 -0
- package/dist/styles/navigation/breadcrumb.css +100 -0
- package/dist/styles/navigation/drawer.css +143 -0
- package/dist/styles/navigation/dropdown-menu.css +193 -0
- package/dist/styles/navigation/menubar.css +208 -0
- package/dist/styles/navigation/navigation-menu.css +260 -0
- package/dist/styles/navigation/stepper.css +199 -0
- package/dist/styles/overlays/alert-dialog.css +205 -0
- package/dist/styles/overlays/carousel.css +147 -0
- package/dist/styles/overlays/sheet.css +206 -0
- package/dist/styles/primitives/button.css +277 -0
- package/dist/styles/primitives/checkbox.css +126 -0
- package/dist/styles/primitives/field.css +48 -0
- package/dist/styles/primitives/input.css +331 -0
- package/dist/styles/primitives/kbd.css +32 -0
- package/dist/styles/primitives/label.css +18 -0
- package/dist/styles/primitives/radio.css +109 -0
- package/dist/styles/primitives/scroll-area.css +54 -0
- package/dist/styles/primitives/select.css +354 -0
- package/dist/styles/primitives/separator.css +20 -0
- package/dist/styles/primitives/skeleton.css +35 -0
- package/dist/styles/primitives/slider.css +121 -0
- package/dist/styles/primitives/spinner.css +56 -0
- package/dist/styles/primitives/switch.css +131 -0
- package/dist/styles/primitives/toggle.css +157 -0
- package/dist/styles/react-threat-visuals.css +568 -0
- package/dist/styles/security/attack-path.css +192 -0
- package/dist/styles/security/cvss-badge.css +136 -0
- package/dist/styles/security/detection-status.css +217 -0
- package/dist/styles/security/mitre-matrix.css +203 -0
- package/dist/styles/security/vulnerability-card.css +294 -0
- package/dist/styles/sidebar.css +1194 -0
- package/dist/styles/tokens.css +392 -0
- package/dist/styles/ui.css +442 -0
- package/dist/styles/utilities.css +43 -0
- package/dist/styles/visualization/file-tree.css +179 -0
- package/dist/styles/visualization/flow-diagram.css +163 -0
- package/dist/styles/visualization/json-path-browser.css +275 -0
- package/dist/styles/visualization/kanban.css +614 -0
- package/dist/styles/visualization/map.css +205 -0
- package/dist/styles/visualization/mermaid-diagram.css +172 -0
- package/dist/styles/visualization/network-graph.css +169 -0
- package/dist/styles/visualization/rule-editor.css +280 -0
- package/dist/styles/visualization/terminal.css +133 -0
- package/dist/styles/visualization/timeline.css +246 -0
- package/dist/switch-dChlavwa.js +104 -0
- package/dist/switch-dChlavwa.js.map +1 -0
- package/dist/tabs-Bpcitl6-.js +150 -0
- package/dist/tabs-Bpcitl6-.js.map +1 -0
- package/dist/theme-toggle-CaCz_B5t.js +130 -0
- package/dist/theme-toggle-CaCz_B5t.js.map +1 -0
- package/dist/timeline-definition-YZTLITO2-CvoqOZkr.js +833 -0
- package/dist/timeline-definition-YZTLITO2-CvoqOZkr.js.map +1 -0
- package/dist/toast-Li-x6JyI.js +209 -0
- package/dist/toast-Li-x6JyI.js.map +1 -0
- package/dist/toggle-Cg5AEgfp.js +204 -0
- package/dist/toggle-Cg5AEgfp.js.map +1 -0
- package/dist/toggle-RVd6oZCL.js +122 -0
- package/dist/toggle-RVd6oZCL.js.map +1 -0
- package/dist/tooltip-BvkBQJvL.js +385 -0
- package/dist/tooltip-BvkBQJvL.js.map +1 -0
- package/dist/topology-DlBapVMn.js +6707 -0
- package/dist/topology-DlBapVMn.js.map +1 -0
- package/dist/tree-view-CQwOGwy0.js +276 -0
- package/dist/tree-view-CQwOGwy0.js.map +1 -0
- package/dist/treemap-KZPCXAKY-DP2ZtuXF.js +3 -0
- package/dist/triangle-alert-DWk6jJ_p.js +42 -0
- package/dist/triangle-alert-DWk6jJ_p.js.map +1 -0
- package/dist/ui/index.d.ts +111 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +198 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/utils/a11y.d.ts +113 -0
- package/dist/utils/a11y.d.ts.map +1 -0
- package/dist/utils/date.d.ts +26 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/errors.d.ts +24 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/index.d.ts +15 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/keyboard.d.ts +135 -0
- package/dist/utils/keyboard.d.ts.map +1 -0
- package/dist/utils/registry.d.ts +14 -0
- package/dist/utils/registry.d.ts.map +1 -0
- package/dist/utils/registry.js +23 -0
- package/dist/utils/registry.js.map +1 -0
- package/dist/utils/sanitize.d.ts +11 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/selection.d.ts +15 -0
- package/dist/utils/selection.d.ts.map +1 -0
- package/dist/utils/sorting.d.ts +25 -0
- package/dist/utils/sorting.d.ts.map +1 -0
- package/dist/utils/touch.d.ts +137 -0
- package/dist/utils/touch.d.ts.map +1 -0
- package/dist/utils/validation.d.ts +30 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils-B7XIe3qq.js +1694 -0
- package/dist/utils-B7XIe3qq.js.map +1 -0
- package/dist/utils-Cn_W3h3f.js +17 -0
- package/dist/utils-Cn_W3h3f.js.map +1 -0
- package/dist/utils-DAAwIwhm.js +250 -0
- package/dist/utils-DAAwIwhm.js.map +1 -0
- package/dist/value-B1V_kKf_.js +52 -0
- package/dist/value-B1V_kKf_.js.map +1 -0
- package/dist/vennDiagram-LZ73GAT5-Xu1ecpFt.js +1861 -0
- package/dist/vennDiagram-LZ73GAT5-Xu1ecpFt.js.map +1 -0
- package/dist/visualization/file-tree/index.d.ts +49 -0
- package/dist/visualization/file-tree/index.d.ts.map +1 -0
- package/dist/visualization/file-tree/index.js +154 -0
- package/dist/visualization/file-tree/index.js.map +1 -0
- package/dist/visualization/file-tree/types.d.ts +28 -0
- package/dist/visualization/file-tree/types.d.ts.map +1 -0
- package/dist/visualization/flow-diagram/index.d.ts +49 -0
- package/dist/visualization/flow-diagram/index.d.ts.map +1 -0
- package/dist/visualization/flow-diagram/index.js +314 -0
- package/dist/visualization/flow-diagram/index.js.map +1 -0
- package/dist/visualization/flow-diagram/types.d.ts +37 -0
- package/dist/visualization/flow-diagram/types.d.ts.map +1 -0
- package/dist/visualization/index.d.ts +25 -0
- package/dist/visualization/index.d.ts.map +1 -0
- package/dist/visualization/index.js +11 -0
- package/dist/visualization/json-path-browser/index.d.ts +48 -0
- package/dist/visualization/json-path-browser/index.d.ts.map +1 -0
- package/dist/visualization/json-path-browser/index.js +189 -0
- package/dist/visualization/json-path-browser/index.js.map +1 -0
- package/dist/visualization/json-path-browser/types.d.ts +15 -0
- package/dist/visualization/json-path-browser/types.d.ts.map +1 -0
- package/dist/visualization/kanban/index.d.ts +71 -0
- package/dist/visualization/kanban/index.d.ts.map +1 -0
- package/dist/visualization/kanban/index.js +301 -0
- package/dist/visualization/kanban/index.js.map +1 -0
- package/dist/visualization/kanban/types.d.ts +85 -0
- package/dist/visualization/kanban/types.d.ts.map +1 -0
- package/dist/visualization/map/index.d.ts +85 -0
- package/dist/visualization/map/index.d.ts.map +1 -0
- package/dist/visualization/map/index.js +219 -0
- package/dist/visualization/map/index.js.map +1 -0
- package/dist/visualization/map/types.d.ts +38 -0
- package/dist/visualization/map/types.d.ts.map +1 -0
- package/dist/visualization/mermaid-diagram/index.d.ts +45 -0
- package/dist/visualization/mermaid-diagram/index.d.ts.map +1 -0
- package/dist/visualization/mermaid-diagram/index.js +236 -0
- package/dist/visualization/mermaid-diagram/index.js.map +1 -0
- package/dist/visualization/mermaid-diagram/types.d.ts +32 -0
- package/dist/visualization/mermaid-diagram/types.d.ts.map +1 -0
- package/dist/visualization/network-graph/index.d.ts +57 -0
- package/dist/visualization/network-graph/index.d.ts.map +1 -0
- package/dist/visualization/network-graph/index.js +296 -0
- package/dist/visualization/network-graph/index.js.map +1 -0
- package/dist/visualization/network-graph/types.d.ts +37 -0
- package/dist/visualization/network-graph/types.d.ts.map +1 -0
- package/dist/visualization/rule-editor/index.d.ts +46 -0
- package/dist/visualization/rule-editor/index.d.ts.map +1 -0
- package/dist/visualization/rule-editor/index.js +262 -0
- package/dist/visualization/rule-editor/index.js.map +1 -0
- package/dist/visualization/rule-editor/types.d.ts +31 -0
- package/dist/visualization/rule-editor/types.d.ts.map +1 -0
- package/dist/visualization/terminal/index.d.ts +54 -0
- package/dist/visualization/terminal/index.d.ts.map +1 -0
- package/dist/visualization/terminal/index.js +154 -0
- package/dist/visualization/terminal/index.js.map +1 -0
- package/dist/visualization/terminal/types.d.ts +16 -0
- package/dist/visualization/terminal/types.d.ts.map +1 -0
- package/dist/visualization/timeline/index.d.ts +31 -0
- package/dist/visualization/timeline/index.d.ts.map +1 -0
- package/dist/visualization/timeline/index.js +174 -0
- package/dist/visualization/timeline/index.js.map +1 -0
- package/dist/visualization/timeline/types.d.ts +24 -0
- package/dist/visualization/timeline/types.d.ts.map +1 -0
- package/dist/x-DCVjAtEF.js +12 -0
- package/dist/x-DCVjAtEF.js.map +1 -0
- package/dist/xychartDiagram-JWTSCODW-BX9xqezB.js +2043 -0
- package/dist/xychartDiagram-JWTSCODW-BX9xqezB.js.map +1 -0
- package/dist/yaml-BruA1FUA.js +34 -0
- package/dist/yaml-BruA1FUA.js.map +1 -0
- package/package.json +1409 -0
- package/src/app-switcher/index.ts +322 -0
- package/src/appearance/appearance.test.ts +511 -0
- package/src/appearance/index.ts +193 -0
- package/src/auth/index.ts +242 -0
- package/src/charts/annotations.ts +116 -0
- package/src/charts/area/index.ts +260 -0
- package/src/charts/area/types.ts +13 -0
- package/src/charts/axis.ts +192 -0
- package/src/charts/bar/index.ts +354 -0
- package/src/charts/bar/types.ts +13 -0
- package/src/charts/base.ts +542 -0
- package/src/charts/candlestick/index.ts +317 -0
- package/src/charts/candlestick/types.ts +25 -0
- package/src/charts/funnel/index.ts +335 -0
- package/src/charts/funnel/types.ts +22 -0
- package/src/charts/gauge/index.ts +289 -0
- package/src/charts/gauge/types.ts +24 -0
- package/src/charts/heatmap/index.ts +257 -0
- package/src/charts/heatmap/types.ts +23 -0
- package/src/charts/index.ts +89 -0
- package/src/charts/interactive.ts +59 -0
- package/src/charts/legend.ts +104 -0
- package/src/charts/line/index.ts +223 -0
- package/src/charts/line/types.ts +13 -0
- package/src/charts/pie/index.ts +303 -0
- package/src/charts/pie/types.ts +21 -0
- package/src/charts/radar/index.ts +388 -0
- package/src/charts/radar/types.ts +22 -0
- package/src/charts/sankey/index.ts +497 -0
- package/src/charts/sankey/types.ts +28 -0
- package/src/charts/scatter/index.ts +284 -0
- package/src/charts/scatter/types.ts +11 -0
- package/src/charts/series.ts +63 -0
- package/src/charts/sparkline/index.ts +224 -0
- package/src/charts/sparkline/types.ts +16 -0
- package/src/charts/tooltip.ts +136 -0
- package/src/charts/treemap/index.ts +357 -0
- package/src/charts/treemap/types.ts +21 -0
- package/src/charts/types.ts +82 -0
- package/src/charts/utils.ts +309 -0
- package/src/charts/waterfall/index.ts +273 -0
- package/src/charts/waterfall/types.ts +25 -0
- package/src/charts/zoom.ts +115 -0
- package/src/components/context-menu/index.ts +183 -0
- package/src/components/copy-button/index.ts +97 -0
- package/src/components/data-table/export.ts +61 -0
- package/src/components/data-table/index.ts +647 -0
- package/src/components/data-table/renderers.ts +145 -0
- package/src/components/data-table/types.ts +41 -0
- package/src/components/detail-header/index.ts +201 -0
- package/src/components/index.ts +65 -0
- package/src/components/log-toolbar/index.ts +186 -0
- package/src/components/modal/index.ts +240 -0
- package/src/components/modal/types.ts +18 -0
- package/src/components/pagination/index.ts +130 -0
- package/src/components/search/command-palette.ts +242 -0
- package/src/components/search/index.ts +433 -0
- package/src/components/search/types.ts +37 -0
- package/src/components/split-pane/index.ts +370 -0
- package/src/components/split-pane/types.ts +21 -0
- package/src/components/status-bar/index.ts +112 -0
- package/src/components/tabs/index.ts +329 -0
- package/src/components/tabs/types.ts +20 -0
- package/src/components/toast/index.ts +412 -0
- package/src/components/toast/types.ts +20 -0
- package/src/components/tree-view/index.ts +692 -0
- package/src/components/tree-view/lazy.ts +24 -0
- package/src/components/tree-view/types.ts +25 -0
- package/src/consent/index.ts +218 -0
- package/src/crypto/crypto.test.ts +458 -0
- package/src/crypto/encoding-helpers.ts +44 -0
- package/src/crypto/encoding.ts +191 -0
- package/src/crypto/hybrid.ts +253 -0
- package/src/crypto/index.ts +292 -0
- package/src/crypto/keys.ts +299 -0
- package/src/crypto/symmetric.ts +227 -0
- package/src/crypto/types.ts +148 -0
- package/src/display/alert/index.ts +134 -0
- package/src/display/alert/types.ts +17 -0
- package/src/display/aspect-ratio/index.ts +57 -0
- package/src/display/avatar/avatar-group.ts +85 -0
- package/src/display/avatar/index.ts +187 -0
- package/src/display/avatar/types.ts +28 -0
- package/src/display/badge/index.ts +109 -0
- package/src/display/badge/presets.ts +46 -0
- package/src/display/badge/types.ts +20 -0
- package/src/display/card/index.ts +159 -0
- package/src/display/card/types.ts +16 -0
- package/src/display/code-block/index.ts +224 -0
- package/src/display/code-block/types.ts +14 -0
- package/src/display/empty-state/index.ts +111 -0
- package/src/display/empty-state/types.ts +16 -0
- package/src/display/hover-card/index.ts +317 -0
- package/src/display/hover-card/types.ts +15 -0
- package/src/display/index.ts +95 -0
- package/src/display/markdown-viewer/index.ts +137 -0
- package/src/display/markdown-viewer/parser.ts +423 -0
- package/src/display/markdown-viewer/types.ts +18 -0
- package/src/display/notification-center/index.ts +416 -0
- package/src/display/notification-center/types.ts +32 -0
- package/src/display/popover/index.ts +320 -0
- package/src/display/popover/types.ts +25 -0
- package/src/display/progress/index.ts +209 -0
- package/src/display/progress/types.ts +19 -0
- package/src/display/severity-indicator/index.ts +96 -0
- package/src/display/severity-indicator/types.ts +15 -0
- package/src/display/stat-card/index.ts +140 -0
- package/src/display/stat-card/types.ts +21 -0
- package/src/display/tooltip/index.ts +263 -0
- package/src/display/tooltip/types.ts +14 -0
- package/src/display/typography/index.ts +156 -0
- package/src/display/typography/types.ts +30 -0
- package/src/display/uptime-bar/index.ts +109 -0
- package/src/display/uptime-bar/types.ts +19 -0
- package/src/editors/base.ts +328 -0
- package/src/editors/code-editor.ts +350 -0
- package/src/editors/diff-viewer.ts +225 -0
- package/src/editors/index.ts +47 -0
- package/src/editors/json-viewer.ts +145 -0
- package/src/editors/languages/fluxl.ts +114 -0
- package/src/editors/languages/javascript.ts +17 -0
- package/src/editors/languages/json.ts +12 -0
- package/src/editors/languages/markdown.ts +12 -0
- package/src/editors/languages/python.ts +12 -0
- package/src/editors/languages/rust.ts +12 -0
- package/src/editors/languages/shell.ts +13 -0
- package/src/editors/languages/sql.ts +57 -0
- package/src/editors/languages/yaml.ts +120 -0
- package/src/editors/languages/yara.ts +154 -0
- package/src/editors/languages/yaral.ts +91 -0
- package/src/editors/log-viewer.ts +222 -0
- package/src/editors/types.ts +138 -0
- package/src/editors/yaml-editor.ts +36 -0
- package/src/form/calendar/index.ts +455 -0
- package/src/form/calendar/types.ts +24 -0
- package/src/form/color-picker/index.ts +1016 -0
- package/src/form/color-picker/types.ts +14 -0
- package/src/form/cron-editor/index.ts +583 -0
- package/src/form/cron-editor/parser.ts +411 -0
- package/src/form/cron-editor/types.ts +34 -0
- package/src/form/date-picker/index.ts +281 -0
- package/src/form/date-picker/range.ts +379 -0
- package/src/form/date-picker/time.ts +334 -0
- package/src/form/date-picker/types.ts +47 -0
- package/src/form/direction/index.ts +64 -0
- package/src/form/index.ts +48 -0
- package/src/form/tag-input/index.ts +458 -0
- package/src/form/tag-input/types.ts +23 -0
- package/src/icons/icons.test.ts +141 -0
- package/src/icons/index.ts +205 -0
- package/src/index.ts +211 -0
- package/src/layout/index.ts +662 -0
- package/src/navigation/breadcrumb/index.ts +175 -0
- package/src/navigation/breadcrumb/types.ts +20 -0
- package/src/navigation/drawer/index.ts +326 -0
- package/src/navigation/drawer/types.ts +21 -0
- package/src/navigation/dropdown-menu/index.ts +625 -0
- package/src/navigation/dropdown-menu/types.ts +43 -0
- package/src/navigation/index.ts +35 -0
- package/src/navigation/menubar/index.ts +412 -0
- package/src/navigation/menubar/types.ts +26 -0
- package/src/navigation/navigation-menu/index.ts +508 -0
- package/src/navigation/navigation-menu/types.ts +26 -0
- package/src/navigation/stepper/index.ts +270 -0
- package/src/navigation/stepper/types.ts +25 -0
- package/src/overlays/alert-dialog/index.ts +313 -0
- package/src/overlays/alert-dialog/types.ts +18 -0
- package/src/overlays/carousel/index.ts +452 -0
- package/src/overlays/carousel/types.ts +22 -0
- package/src/overlays/index.ts +16 -0
- package/src/overlays/sheet/index.ts +307 -0
- package/src/overlays/sheet/types.ts +21 -0
- package/src/passkey/index.ts +230 -0
- package/src/primitives/button/button-group.ts +47 -0
- package/src/primitives/button/index.ts +199 -0
- package/src/primitives/button/types.ts +29 -0
- package/src/primitives/button/variants.ts +24 -0
- package/src/primitives/checkbox/group.ts +113 -0
- package/src/primitives/checkbox/index.ts +127 -0
- package/src/primitives/checkbox/types.ts +34 -0
- package/src/primitives/field/index.ts +188 -0
- package/src/primitives/field/types.ts +14 -0
- package/src/primitives/index.ts +81 -0
- package/src/primitives/input/index.ts +175 -0
- package/src/primitives/input/input-group.ts +83 -0
- package/src/primitives/input/input-otp.ts +242 -0
- package/src/primitives/input/ip-input.ts +226 -0
- package/src/primitives/input/textarea.ts +179 -0
- package/src/primitives/input/types.ts +72 -0
- package/src/primitives/kbd/index.ts +62 -0
- package/src/primitives/label/index.ts +83 -0
- package/src/primitives/radio/index.ts +199 -0
- package/src/primitives/radio/types.ts +22 -0
- package/src/primitives/scroll-area/index.ts +77 -0
- package/src/primitives/select/combobox.ts +427 -0
- package/src/primitives/select/index.ts +526 -0
- package/src/primitives/select/native.ts +151 -0
- package/src/primitives/select/types.ts +52 -0
- package/src/primitives/separator/index.ts +41 -0
- package/src/primitives/skeleton/index.ts +58 -0
- package/src/primitives/slider/index.ts +333 -0
- package/src/primitives/slider/types.ts +19 -0
- package/src/primitives/spinner/index.ts +63 -0
- package/src/primitives/switch/index.ts +133 -0
- package/src/primitives/switch/types.ts +17 -0
- package/src/primitives/toggle/index.ts +129 -0
- package/src/primitives/toggle/toggle-group.ts +209 -0
- package/src/primitives/toggle/types.ts +39 -0
- package/src/primitives/utils.ts +24 -0
- package/src/react/brand/index.tsx +115 -0
- package/src/react/index.ts +5 -0
- package/src/react/primitives/alert-dialog.tsx +133 -0
- package/src/react/primitives/alert.tsx +96 -0
- package/src/react/primitives/animated-counter.tsx +199 -0
- package/src/react/primitives/aspect-ratio.tsx +23 -0
- package/src/react/primitives/attack-path.tsx +238 -0
- package/src/react/primitives/avatar.tsx +190 -0
- package/src/react/primitives/badge.tsx +41 -0
- package/src/react/primitives/breadcrumb.tsx +110 -0
- package/src/react/primitives/button.tsx +115 -0
- package/src/react/primitives/calendar.tsx +289 -0
- package/src/react/primitives/card.tsx +67 -0
- package/src/react/primitives/carousel.tsx +219 -0
- package/src/react/primitives/chart-area.tsx +34 -0
- package/src/react/primitives/chart-bar.tsx +34 -0
- package/src/react/primitives/chart-candlestick.tsx +35 -0
- package/src/react/primitives/chart-funnel.tsx +33 -0
- package/src/react/primitives/chart-gauge.tsx +44 -0
- package/src/react/primitives/chart-heatmap.tsx +33 -0
- package/src/react/primitives/chart-line.tsx +34 -0
- package/src/react/primitives/chart-pie.tsx +33 -0
- package/src/react/primitives/chart-radar.tsx +33 -0
- package/src/react/primitives/chart-sankey.tsx +33 -0
- package/src/react/primitives/chart-scatter.tsx +34 -0
- package/src/react/primitives/chart-sparkline.tsx +32 -0
- package/src/react/primitives/chart-treemap.tsx +33 -0
- package/src/react/primitives/chart-waterfall.tsx +33 -0
- package/src/react/primitives/checkbox.tsx +50 -0
- package/src/react/primitives/code-block.tsx +117 -0
- package/src/react/primitives/code-viewer.tsx +307 -0
- package/src/react/primitives/collapsible.tsx +118 -0
- package/src/react/primitives/color-picker.tsx +461 -0
- package/src/react/primitives/context-menu.tsx +261 -0
- package/src/react/primitives/copy-button.tsx +116 -0
- package/src/react/primitives/cron-editor.tsx +575 -0
- package/src/react/primitives/cvss-badge.tsx +112 -0
- package/src/react/primitives/data-grid.tsx +1269 -0
- package/src/react/primitives/data-table.tsx +300 -0
- package/src/react/primitives/date-picker.tsx +659 -0
- package/src/react/primitives/detection-status.tsx +400 -0
- package/src/react/primitives/dialog.tsx +127 -0
- package/src/react/primitives/direction.tsx +74 -0
- package/src/react/primitives/drawer.tsx +140 -0
- package/src/react/primitives/dropdown-menu.tsx +87 -0
- package/src/react/primitives/empty-state.tsx +64 -0
- package/src/react/primitives/error-boundary.tsx +40 -0
- package/src/react/primitives/field.tsx +59 -0
- package/src/react/primitives/file-tree.tsx +368 -0
- package/src/react/primitives/flow-diagram.tsx +78 -0
- package/src/react/primitives/heatmap-legend.tsx +51 -0
- package/src/react/primitives/heatmap-toolbar.tsx +78 -0
- package/src/react/primitives/hover-card.tsx +174 -0
- package/src/react/primitives/index.ts +294 -0
- package/src/react/primitives/input.tsx +35 -0
- package/src/react/primitives/json-path-browser.tsx +397 -0
- package/src/react/primitives/kanban.tsx +421 -0
- package/src/react/primitives/kbd.tsx +33 -0
- package/src/react/primitives/label.tsx +25 -0
- package/src/react/primitives/map.tsx +91 -0
- package/src/react/primitives/markdown-viewer.tsx +256 -0
- package/src/react/primitives/menubar.tsx +248 -0
- package/src/react/primitives/mermaid-diagram.tsx +76 -0
- package/src/react/primitives/mitre-matrix.tsx +203 -0
- package/src/react/primitives/modal.tsx +191 -0
- package/src/react/primitives/navigation-menu.tsx +144 -0
- package/src/react/primitives/network-graph.tsx +95 -0
- package/src/react/primitives/notification-center.tsx +229 -0
- package/src/react/primitives/pagination.tsx +147 -0
- package/src/react/primitives/popover.tsx +247 -0
- package/src/react/primitives/progress.tsx +187 -0
- package/src/react/primitives/radio-group.tsx +44 -0
- package/src/react/primitives/ripple.tsx +145 -0
- package/src/react/primitives/rule-editor.tsx +385 -0
- package/src/react/primitives/scroll-area.tsx +54 -0
- package/src/react/primitives/search.tsx +573 -0
- package/src/react/primitives/select.tsx +218 -0
- package/src/react/primitives/separator.tsx +27 -0
- package/src/react/primitives/severity-indicator.tsx +110 -0
- package/src/react/primitives/sheet.tsx +137 -0
- package/src/react/primitives/skeleton.tsx +15 -0
- package/src/react/primitives/slide-panel.tsx +137 -0
- package/src/react/primitives/slider.tsx +51 -0
- package/src/react/primitives/spinner.tsx +39 -0
- package/src/react/primitives/split-pane.tsx +160 -0
- package/src/react/primitives/stat-card.tsx +140 -0
- package/src/react/primitives/status-bar.tsx +81 -0
- package/src/react/primitives/stepper.tsx +162 -0
- package/src/react/primitives/switch.tsx +47 -0
- package/src/react/primitives/table.tsx +90 -0
- package/src/react/primitives/tabs.tsx +52 -0
- package/src/react/primitives/tag-input.tsx +371 -0
- package/src/react/primitives/terminal.tsx +228 -0
- package/src/react/primitives/textarea.tsx +18 -0
- package/src/react/primitives/timeline.tsx +316 -0
- package/src/react/primitives/toast.tsx +361 -0
- package/src/react/primitives/toggle.tsx +107 -0
- package/src/react/primitives/tooltip.tsx +64 -0
- package/src/react/primitives/tree-view.tsx +306 -0
- package/src/react/primitives/typography.tsx +171 -0
- package/src/react/primitives/uptime-bar.tsx +93 -0
- package/src/react/primitives/utils.ts +6 -0
- package/src/react/primitives/vulnerability-card.tsx +297 -0
- package/src/react/theme-toggle/index.tsx +123 -0
- package/src/react/threat-visuals/index.tsx +200 -0
- package/src/react/topology/__tests__/topology.test.tsx +716 -0
- package/src/react/topology/edges.tsx +77 -0
- package/src/react/topology/index.ts +34 -0
- package/src/react/topology/layouts.ts +473 -0
- package/src/react/topology/logos.tsx +328 -0
- package/src/react/topology/nodes.tsx +404 -0
- package/src/react/topology/safe-handle.tsx +35 -0
- package/src/react/topology/styles.ts +47 -0
- package/src/security/attack-path/index.ts +202 -0
- package/src/security/attack-path/types.ts +37 -0
- package/src/security/cvss-badge/index.ts +145 -0
- package/src/security/cvss-badge/types.ts +14 -0
- package/src/security/detection-status/index.ts +420 -0
- package/src/security/detection-status/types.ts +24 -0
- package/src/security/index.ts +24 -0
- package/src/security/mitre-matrix/index.ts +209 -0
- package/src/security/mitre-matrix/types.ts +23 -0
- package/src/security/vulnerability-card/index.ts +320 -0
- package/src/security/vulnerability-card/types.ts +34 -0
- package/src/services/api.ts +181 -0
- package/src/services/index.ts +23 -0
- package/src/services/keybindings.ts +271 -0
- package/src/services/router.ts +578 -0
- package/src/services/sse.ts +148 -0
- package/src/services/storage.ts +88 -0
- package/src/sidebar/badge.ts +72 -0
- package/src/sidebar/component.ts +223 -0
- package/src/sidebar/enhance.ts +289 -0
- package/src/sidebar/index.ts +253 -0
- package/src/sidebar/types.ts +43 -0
- package/src/styles/appearance.css +325 -0
- package/src/styles/auth.css +318 -0
- package/src/styles/breakpoints.css +346 -0
- package/src/styles/charts/charts.css +140 -0
- package/src/styles/components/context-menu.css +180 -0
- package/src/styles/components/data-grid.css +635 -0
- package/src/styles/components/data-table.css +276 -0
- package/src/styles/components/editors.css +265 -0
- package/src/styles/components/modal.css +246 -0
- package/src/styles/components/pagination.css +158 -0
- package/src/styles/components/search.css +369 -0
- package/src/styles/components/split-pane.css +174 -0
- package/src/styles/components/status-bar.css +198 -0
- package/src/styles/components/tabs.css +201 -0
- package/src/styles/components/toast.css +235 -0
- package/src/styles/components/tree-view.css +225 -0
- package/src/styles/consent.css +282 -0
- package/src/styles/display/alert.css +136 -0
- package/src/styles/display/aspect-ratio.css +15 -0
- package/src/styles/display/avatar.css +190 -0
- package/src/styles/display/badge.css +148 -0
- package/src/styles/display/card.css +66 -0
- package/src/styles/display/code-block.css +99 -0
- package/src/styles/display/empty-state.css +37 -0
- package/src/styles/display/hover-card.css +70 -0
- package/src/styles/display/markdown-viewer.css +145 -0
- package/src/styles/display/notification-center.css +272 -0
- package/src/styles/display/popover.css +29 -0
- package/src/styles/display/progress.css +129 -0
- package/src/styles/display/severity-indicator.css +96 -0
- package/src/styles/display/stat-card.css +90 -0
- package/src/styles/display/tooltip.css +58 -0
- package/src/styles/display/typography.css +129 -0
- package/src/styles/display/uptime-bar.css +64 -0
- package/src/styles/form/calendar.css +240 -0
- package/src/styles/form/color-picker.css +239 -0
- package/src/styles/form/cron-editor.css +333 -0
- package/src/styles/form/date-picker.css +378 -0
- package/src/styles/form/tag-input.css +219 -0
- package/src/styles/index.css +110 -0
- package/src/styles/layout.css +753 -0
- package/src/styles/navigation/breadcrumb.css +100 -0
- package/src/styles/navigation/drawer.css +143 -0
- package/src/styles/navigation/dropdown-menu.css +193 -0
- package/src/styles/navigation/menubar.css +208 -0
- package/src/styles/navigation/navigation-menu.css +260 -0
- package/src/styles/navigation/stepper.css +199 -0
- package/src/styles/overlays/alert-dialog.css +205 -0
- package/src/styles/overlays/carousel.css +147 -0
- package/src/styles/overlays/sheet.css +206 -0
- package/src/styles/primitives/button.css +277 -0
- package/src/styles/primitives/checkbox.css +126 -0
- package/src/styles/primitives/field.css +48 -0
- package/src/styles/primitives/input.css +331 -0
- package/src/styles/primitives/kbd.css +32 -0
- package/src/styles/primitives/label.css +18 -0
- package/src/styles/primitives/radio.css +109 -0
- package/src/styles/primitives/scroll-area.css +54 -0
- package/src/styles/primitives/select.css +354 -0
- package/src/styles/primitives/separator.css +20 -0
- package/src/styles/primitives/skeleton.css +35 -0
- package/src/styles/primitives/slider.css +121 -0
- package/src/styles/primitives/spinner.css +56 -0
- package/src/styles/primitives/switch.css +131 -0
- package/src/styles/primitives/toggle.css +157 -0
- package/src/styles/react-threat-visuals.css +568 -0
- package/src/styles/security/attack-path.css +192 -0
- package/src/styles/security/cvss-badge.css +136 -0
- package/src/styles/security/detection-status.css +217 -0
- package/src/styles/security/mitre-matrix.css +203 -0
- package/src/styles/security/vulnerability-card.css +294 -0
- package/src/styles/sidebar.css +1194 -0
- package/src/styles/tokens.css +392 -0
- package/src/styles/ui.css +442 -0
- package/src/styles/utilities.css +43 -0
- package/src/styles/visualization/file-tree.css +179 -0
- package/src/styles/visualization/flow-diagram.css +163 -0
- package/src/styles/visualization/json-path-browser.css +275 -0
- package/src/styles/visualization/kanban.css +614 -0
- package/src/styles/visualization/map.css +205 -0
- package/src/styles/visualization/mermaid-diagram.css +172 -0
- package/src/styles/visualization/network-graph.css +169 -0
- package/src/styles/visualization/rule-editor.css +280 -0
- package/src/styles/visualization/terminal.css +133 -0
- package/src/styles/visualization/timeline.css +246 -0
- package/src/ui/index.ts +414 -0
- package/src/ui/ui.test.ts +83 -0
- package/src/utils/a11y.ts +566 -0
- package/src/utils/date.ts +90 -0
- package/src/utils/errors.ts +44 -0
- package/src/utils/index.ts +154 -0
- package/src/utils/keyboard.ts +551 -0
- package/src/utils/registry.ts +41 -0
- package/src/utils/sanitize.ts +23 -0
- package/src/utils/selection.ts +29 -0
- package/src/utils/sorting.ts +73 -0
- package/src/utils/touch.ts +643 -0
- package/src/utils/validation.ts +66 -0
- package/src/visualization/file-tree/index.ts +500 -0
- package/src/visualization/file-tree/types.ts +29 -0
- package/src/visualization/flow-diagram/index.ts +693 -0
- package/src/visualization/flow-diagram/types.ts +39 -0
- package/src/visualization/index.ts +53 -0
- package/src/visualization/json-path-browser/index.ts +502 -0
- package/src/visualization/json-path-browser/types.ts +15 -0
- package/src/visualization/kanban/__tests__/kanban.test.ts +1440 -0
- package/src/visualization/kanban/index.ts +785 -0
- package/src/visualization/kanban/types.ts +93 -0
- package/src/visualization/map/index.ts +623 -0
- package/src/visualization/map/types.ts +37 -0
- package/src/visualization/mermaid-diagram/index.ts +404 -0
- package/src/visualization/mermaid-diagram/types.ts +50 -0
- package/src/visualization/network-graph/index.ts +690 -0
- package/src/visualization/network-graph/types.ts +39 -0
- package/src/visualization/rule-editor/index.ts +562 -0
- package/src/visualization/rule-editor/types.ts +34 -0
- package/src/visualization/terminal/index.ts +403 -0
- package/src/visualization/terminal/types.ts +16 -0
- package/src/visualization/timeline/index.ts +341 -0
- package/src/visualization/timeline/types.ts +25 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-CBgB0j_Y.js","names":["elt"],"sources":["../node_modules/@codemirror/commands/dist/index.js","../node_modules/@codemirror/search/dist/index.js","../src/editors/base.ts"],"sourcesContent":["import { Annotation, Facet, combineConfig, StateField, Transaction, ChangeSet, ChangeDesc, EditorSelection, StateEffect, Text, findClusterBreak, countColumn, CharCategory } from '@codemirror/state';\nimport { EditorView, Direction } from '@codemirror/view';\nimport { IndentContext, getIndentation, indentString, matchBrackets, syntaxTree, getIndentUnit, indentUnit } from '@codemirror/language';\nimport { NodeProp } from '@lezer/common';\n\n/**\nComment or uncomment the current selection. Will use line comments\nif available, otherwise falling back to block comments.\n*/\nconst toggleComment = target => {\n let { state } = target, line = state.doc.lineAt(state.selection.main.from), config = getConfig(target.state, line.from);\n return config.line ? toggleLineComment(target) : config.block ? toggleBlockCommentByLine(target) : false;\n};\nfunction command(f, option) {\n return ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let tr = f(option, state);\n if (!tr)\n return false;\n dispatch(state.update(tr));\n return true;\n };\n}\n/**\nComment or uncomment the current selection using line comments.\nThe line comment syntax is taken from the\n[`commentTokens`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt).\n*/\nconst toggleLineComment = /*@__PURE__*/command(changeLineComment, 0 /* CommentOption.Toggle */);\n/**\nComment the current selection using line comments.\n*/\nconst lineComment = /*@__PURE__*/command(changeLineComment, 1 /* CommentOption.Comment */);\n/**\nUncomment the current selection using line comments.\n*/\nconst lineUncomment = /*@__PURE__*/command(changeLineComment, 2 /* CommentOption.Uncomment */);\n/**\nComment or uncomment the current selection using block comments.\nThe block comment syntax is taken from the\n[`commentTokens`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt).\n*/\nconst toggleBlockComment = /*@__PURE__*/command(changeBlockComment, 0 /* CommentOption.Toggle */);\n/**\nComment the current selection using block comments.\n*/\nconst blockComment = /*@__PURE__*/command(changeBlockComment, 1 /* CommentOption.Comment */);\n/**\nUncomment the current selection using block comments.\n*/\nconst blockUncomment = /*@__PURE__*/command(changeBlockComment, 2 /* CommentOption.Uncomment */);\n/**\nComment or uncomment the lines around the current selection using\nblock comments.\n*/\nconst toggleBlockCommentByLine = /*@__PURE__*/command((o, s) => changeBlockComment(o, s, selectedLineRanges(s)), 0 /* CommentOption.Toggle */);\nfunction getConfig(state, pos) {\n let data = state.languageDataAt(\"commentTokens\", pos, 1);\n return data.length ? data[0] : {};\n}\nconst SearchMargin = 50;\n/**\nDetermines if the given range is block-commented in the given\nstate.\n*/\nfunction findBlockComment(state, { open, close }, from, to) {\n let textBefore = state.sliceDoc(from - SearchMargin, from);\n let textAfter = state.sliceDoc(to, to + SearchMargin);\n let spaceBefore = /\\s*$/.exec(textBefore)[0].length, spaceAfter = /^\\s*/.exec(textAfter)[0].length;\n let beforeOff = textBefore.length - spaceBefore;\n if (textBefore.slice(beforeOff - open.length, beforeOff) == open &&\n textAfter.slice(spaceAfter, spaceAfter + close.length) == close) {\n return { open: { pos: from - spaceBefore, margin: spaceBefore && 1 },\n close: { pos: to + spaceAfter, margin: spaceAfter && 1 } };\n }\n let startText, endText;\n if (to - from <= 2 * SearchMargin) {\n startText = endText = state.sliceDoc(from, to);\n }\n else {\n startText = state.sliceDoc(from, from + SearchMargin);\n endText = state.sliceDoc(to - SearchMargin, to);\n }\n let startSpace = /^\\s*/.exec(startText)[0].length, endSpace = /\\s*$/.exec(endText)[0].length;\n let endOff = endText.length - endSpace - close.length;\n if (startText.slice(startSpace, startSpace + open.length) == open &&\n endText.slice(endOff, endOff + close.length) == close) {\n return { open: { pos: from + startSpace + open.length,\n margin: /\\s/.test(startText.charAt(startSpace + open.length)) ? 1 : 0 },\n close: { pos: to - endSpace - close.length,\n margin: /\\s/.test(endText.charAt(endOff - 1)) ? 1 : 0 } };\n }\n return null;\n}\nfunction selectedLineRanges(state) {\n let ranges = [];\n for (let r of state.selection.ranges) {\n let fromLine = state.doc.lineAt(r.from);\n let toLine = r.to <= fromLine.to ? fromLine : state.doc.lineAt(r.to);\n if (toLine.from > fromLine.from && toLine.from == r.to)\n toLine = r.to == fromLine.to + 1 ? fromLine : state.doc.lineAt(r.to - 1);\n let last = ranges.length - 1;\n if (last >= 0 && ranges[last].to > fromLine.from)\n ranges[last].to = toLine.to;\n else\n ranges.push({ from: fromLine.from + /^\\s*/.exec(fromLine.text)[0].length, to: toLine.to });\n }\n return ranges;\n}\n// Performs toggle, comment and uncomment of block comments in\n// languages that support them.\nfunction changeBlockComment(option, state, ranges = state.selection.ranges) {\n let tokens = ranges.map(r => getConfig(state, r.from).block);\n if (!tokens.every(c => c))\n return null;\n let comments = ranges.map((r, i) => findBlockComment(state, tokens[i], r.from, r.to));\n if (option != 2 /* CommentOption.Uncomment */ && !comments.every(c => c)) {\n return { changes: state.changes(ranges.map((range, i) => {\n if (comments[i])\n return [];\n return [{ from: range.from, insert: tokens[i].open + \" \" }, { from: range.to, insert: \" \" + tokens[i].close }];\n })) };\n }\n else if (option != 1 /* CommentOption.Comment */ && comments.some(c => c)) {\n let changes = [];\n for (let i = 0, comment; i < comments.length; i++)\n if (comment = comments[i]) {\n let token = tokens[i], { open, close } = comment;\n changes.push({ from: open.pos - token.open.length, to: open.pos + open.margin }, { from: close.pos - close.margin, to: close.pos + token.close.length });\n }\n return { changes };\n }\n return null;\n}\n// Performs toggle, comment and uncomment of line comments.\nfunction changeLineComment(option, state, ranges = state.selection.ranges) {\n let lines = [];\n let prevLine = -1;\n ranges: for (let { from, to } of ranges) {\n let startI = lines.length, minIndent = 1e9, token;\n for (let pos = from; pos <= to;) {\n let line = state.doc.lineAt(pos);\n if (token == undefined) {\n token = getConfig(state, line.from).line;\n if (!token)\n continue ranges;\n }\n if (line.from > prevLine && (from == to || to > line.from)) {\n prevLine = line.from;\n let indent = /^\\s*/.exec(line.text)[0].length;\n let empty = indent == line.length;\n let comment = line.text.slice(indent, indent + token.length) == token ? indent : -1;\n if (indent < line.text.length && indent < minIndent)\n minIndent = indent;\n lines.push({ line, comment, token, indent, empty, single: false });\n }\n pos = line.to + 1;\n }\n if (minIndent < 1e9)\n for (let i = startI; i < lines.length; i++)\n if (lines[i].indent < lines[i].line.text.length)\n lines[i].indent = minIndent;\n if (lines.length == startI + 1)\n lines[startI].single = true;\n }\n if (option != 2 /* CommentOption.Uncomment */ && lines.some(l => l.comment < 0 && (!l.empty || l.single))) {\n let changes = [];\n for (let { line, token, indent, empty, single } of lines)\n if (single || !empty)\n changes.push({ from: line.from + indent, insert: token + \" \" });\n let changeSet = state.changes(changes);\n return { changes: changeSet, selection: state.selection.map(changeSet, 1) };\n }\n else if (option != 1 /* CommentOption.Comment */ && lines.some(l => l.comment >= 0)) {\n let changes = [];\n for (let { line, comment, token } of lines)\n if (comment >= 0) {\n let from = line.from + comment, to = from + token.length;\n if (line.text[to - line.from] == \" \")\n to++;\n changes.push({ from, to });\n }\n return { changes };\n }\n return null;\n}\n\nconst fromHistory = /*@__PURE__*/Annotation.define();\n/**\nTransaction annotation that will prevent that transaction from\nbeing combined with other transactions in the undo history. Given\n`\"before\"`, it'll prevent merging with previous transactions. With\n`\"after\"`, subsequent transactions won't be combined with this\none. With `\"full\"`, the transaction is isolated on both sides.\n*/\nconst isolateHistory = /*@__PURE__*/Annotation.define();\n/**\nThis facet provides a way to register functions that, given a\ntransaction, provide a set of effects that the history should\nstore when inverting the transaction. This can be used to\nintegrate some kinds of effects in the history, so that they can\nbe undone (and redone again).\n*/\nconst invertedEffects = /*@__PURE__*/Facet.define();\nconst historyConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n minDepth: 100,\n newGroupDelay: 500,\n joinToEvent: (_t, isAdjacent) => isAdjacent,\n }, {\n minDepth: Math.max,\n newGroupDelay: Math.min,\n joinToEvent: (a, b) => (tr, adj) => a(tr, adj) || b(tr, adj)\n });\n }\n});\nconst historyField_ = /*@__PURE__*/StateField.define({\n create() {\n return HistoryState.empty;\n },\n update(state, tr) {\n let config = tr.state.facet(historyConfig);\n let fromHist = tr.annotation(fromHistory);\n if (fromHist) {\n let item = HistEvent.fromTransaction(tr, fromHist.selection), from = fromHist.side;\n let other = from == 0 /* BranchName.Done */ ? state.undone : state.done;\n if (item)\n other = updateBranch(other, other.length, config.minDepth, item);\n else\n other = addSelection(other, tr.startState.selection);\n return new HistoryState(from == 0 /* BranchName.Done */ ? fromHist.rest : other, from == 0 /* BranchName.Done */ ? other : fromHist.rest);\n }\n let isolate = tr.annotation(isolateHistory);\n if (isolate == \"full\" || isolate == \"before\")\n state = state.isolate();\n if (tr.annotation(Transaction.addToHistory) === false)\n return !tr.changes.empty ? state.addMapping(tr.changes.desc) : state;\n let event = HistEvent.fromTransaction(tr);\n let time = tr.annotation(Transaction.time), userEvent = tr.annotation(Transaction.userEvent);\n if (event)\n state = state.addChanges(event, time, userEvent, config, tr);\n else if (tr.selection)\n state = state.addSelection(tr.startState.selection, time, userEvent, config.newGroupDelay);\n if (isolate == \"full\" || isolate == \"after\")\n state = state.isolate();\n return state;\n },\n toJSON(value) {\n return { done: value.done.map(e => e.toJSON()), undone: value.undone.map(e => e.toJSON()) };\n },\n fromJSON(json) {\n return new HistoryState(json.done.map(HistEvent.fromJSON), json.undone.map(HistEvent.fromJSON));\n }\n});\n/**\nCreate a history extension with the given configuration.\n*/\nfunction history(config = {}) {\n return [\n historyField_,\n historyConfig.of(config),\n EditorView.domEventHandlers({\n beforeinput(e, view) {\n let command = e.inputType == \"historyUndo\" ? undo : e.inputType == \"historyRedo\" ? redo : null;\n if (!command)\n return false;\n e.preventDefault();\n return command(view);\n }\n })\n ];\n}\n/**\nThe state field used to store the history data. Should probably\nonly be used when you want to\n[serialize](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) or\n[deserialize](https://codemirror.net/6/docs/ref/#state.EditorState^fromJSON) state objects in a way\nthat preserves history.\n*/\nconst historyField = historyField_;\nfunction cmd(side, selection) {\n return function ({ state, dispatch }) {\n if (!selection && state.readOnly)\n return false;\n let historyState = state.field(historyField_, false);\n if (!historyState)\n return false;\n let tr = historyState.pop(side, state, selection);\n if (!tr)\n return false;\n dispatch(tr);\n return true;\n };\n}\n/**\nUndo a single group of history events. Returns false if no group\nwas available.\n*/\nconst undo = /*@__PURE__*/cmd(0 /* BranchName.Done */, false);\n/**\nRedo a group of history events. Returns false if no group was\navailable.\n*/\nconst redo = /*@__PURE__*/cmd(1 /* BranchName.Undone */, false);\n/**\nUndo a change or selection change.\n*/\nconst undoSelection = /*@__PURE__*/cmd(0 /* BranchName.Done */, true);\n/**\nRedo a change or selection change.\n*/\nconst redoSelection = /*@__PURE__*/cmd(1 /* BranchName.Undone */, true);\nfunction depth(side) {\n return function (state) {\n let histState = state.field(historyField_, false);\n if (!histState)\n return 0;\n let branch = side == 0 /* BranchName.Done */ ? histState.done : histState.undone;\n return branch.length - (branch.length && !branch[0].changes ? 1 : 0);\n };\n}\n/**\nThe amount of undoable change events available in a given state.\n*/\nconst undoDepth = /*@__PURE__*/depth(0 /* BranchName.Done */);\n/**\nThe amount of redoable change events available in a given state.\n*/\nconst redoDepth = /*@__PURE__*/depth(1 /* BranchName.Undone */);\n// History events store groups of changes or effects that need to be\n// undone/redone together.\nclass HistEvent {\n constructor(\n // The changes in this event. Normal events hold at least one\n // change or effect. But it may be necessary to store selection\n // events before the first change, in which case a special type of\n // instance is created which doesn't hold any changes, with\n // changes == startSelection == undefined\n changes, \n // The effects associated with this event\n effects, \n // Accumulated mapping (from addToHistory==false) that should be\n // applied to events below this one.\n mapped, \n // The selection before this event\n startSelection, \n // Stores selection changes after this event, to be used for\n // selection undo/redo.\n selectionsAfter) {\n this.changes = changes;\n this.effects = effects;\n this.mapped = mapped;\n this.startSelection = startSelection;\n this.selectionsAfter = selectionsAfter;\n }\n setSelAfter(after) {\n return new HistEvent(this.changes, this.effects, this.mapped, this.startSelection, after);\n }\n toJSON() {\n var _a, _b, _c;\n return {\n changes: (_a = this.changes) === null || _a === void 0 ? void 0 : _a.toJSON(),\n mapped: (_b = this.mapped) === null || _b === void 0 ? void 0 : _b.toJSON(),\n startSelection: (_c = this.startSelection) === null || _c === void 0 ? void 0 : _c.toJSON(),\n selectionsAfter: this.selectionsAfter.map(s => s.toJSON())\n };\n }\n static fromJSON(json) {\n return new HistEvent(json.changes && ChangeSet.fromJSON(json.changes), [], json.mapped && ChangeDesc.fromJSON(json.mapped), json.startSelection && EditorSelection.fromJSON(json.startSelection), json.selectionsAfter.map(EditorSelection.fromJSON));\n }\n // This does not check `addToHistory` and such, it assumes the\n // transaction needs to be converted to an item. Returns null when\n // there are no changes or effects in the transaction.\n static fromTransaction(tr, selection) {\n let effects = none;\n for (let invert of tr.startState.facet(invertedEffects)) {\n let result = invert(tr);\n if (result.length)\n effects = effects.concat(result);\n }\n if (!effects.length && tr.changes.empty)\n return null;\n return new HistEvent(tr.changes.invert(tr.startState.doc), effects, undefined, selection || tr.startState.selection, none);\n }\n static selection(selections) {\n return new HistEvent(undefined, none, undefined, undefined, selections);\n }\n}\nfunction updateBranch(branch, to, maxLen, newEvent) {\n let start = to + 1 > maxLen + 20 ? to - maxLen - 1 : 0;\n let newBranch = branch.slice(start, to);\n newBranch.push(newEvent);\n return newBranch;\n}\nfunction isAdjacent(a, b) {\n let ranges = [], isAdjacent = false;\n a.iterChangedRanges((f, t) => ranges.push(f, t));\n b.iterChangedRanges((_f, _t, f, t) => {\n for (let i = 0; i < ranges.length;) {\n let from = ranges[i++], to = ranges[i++];\n if (t >= from && f <= to)\n isAdjacent = true;\n }\n });\n return isAdjacent;\n}\nfunction eqSelectionShape(a, b) {\n return a.ranges.length == b.ranges.length &&\n a.ranges.filter((r, i) => r.empty != b.ranges[i].empty).length === 0;\n}\nfunction conc(a, b) {\n return !a.length ? b : !b.length ? a : a.concat(b);\n}\nconst none = [];\nconst MaxSelectionsPerEvent = 200;\nfunction addSelection(branch, selection) {\n if (!branch.length) {\n return [HistEvent.selection([selection])];\n }\n else {\n let lastEvent = branch[branch.length - 1];\n let sels = lastEvent.selectionsAfter.slice(Math.max(0, lastEvent.selectionsAfter.length - MaxSelectionsPerEvent));\n if (sels.length && sels[sels.length - 1].eq(selection))\n return branch;\n sels.push(selection);\n return updateBranch(branch, branch.length - 1, 1e9, lastEvent.setSelAfter(sels));\n }\n}\n// Assumes the top item has one or more selectionAfter values\nfunction popSelection(branch) {\n let last = branch[branch.length - 1];\n let newBranch = branch.slice();\n newBranch[branch.length - 1] = last.setSelAfter(last.selectionsAfter.slice(0, last.selectionsAfter.length - 1));\n return newBranch;\n}\n// Add a mapping to the top event in the given branch. If this maps\n// away all the changes and effects in that item, drop it and\n// propagate the mapping to the next item.\nfunction addMappingToBranch(branch, mapping) {\n if (!branch.length)\n return branch;\n let length = branch.length, selections = none;\n while (length) {\n let event = mapEvent(branch[length - 1], mapping, selections);\n if (event.changes && !event.changes.empty || event.effects.length) { // Event survived mapping\n let result = branch.slice(0, length);\n result[length - 1] = event;\n return result;\n }\n else { // Drop this event, since there's no changes or effects left\n mapping = event.mapped;\n length--;\n selections = event.selectionsAfter;\n }\n }\n return selections.length ? [HistEvent.selection(selections)] : none;\n}\nfunction mapEvent(event, mapping, extraSelections) {\n let selections = conc(event.selectionsAfter.length ? event.selectionsAfter.map(s => s.map(mapping)) : none, extraSelections);\n // Change-less events don't store mappings (they are always the last event in a branch)\n if (!event.changes)\n return HistEvent.selection(selections);\n let mappedChanges = event.changes.map(mapping), before = mapping.mapDesc(event.changes, true);\n let fullMapping = event.mapped ? event.mapped.composeDesc(before) : before;\n return new HistEvent(mappedChanges, StateEffect.mapEffects(event.effects, mapping), fullMapping, event.startSelection.map(before), selections);\n}\nconst joinableUserEvent = /^(input\\.type|delete)($|\\.)/;\nclass HistoryState {\n constructor(done, undone, prevTime = 0, prevUserEvent = undefined) {\n this.done = done;\n this.undone = undone;\n this.prevTime = prevTime;\n this.prevUserEvent = prevUserEvent;\n }\n isolate() {\n return this.prevTime ? new HistoryState(this.done, this.undone) : this;\n }\n addChanges(event, time, userEvent, config, tr) {\n let done = this.done, lastEvent = done[done.length - 1];\n if (lastEvent && lastEvent.changes && !lastEvent.changes.empty && event.changes &&\n (!userEvent || joinableUserEvent.test(userEvent)) &&\n ((!lastEvent.selectionsAfter.length &&\n time - this.prevTime < config.newGroupDelay &&\n config.joinToEvent(tr, isAdjacent(lastEvent.changes, event.changes))) ||\n // For compose (but not compose.start) events, always join with previous event\n userEvent == \"input.type.compose\")) {\n done = updateBranch(done, done.length - 1, config.minDepth, new HistEvent(event.changes.compose(lastEvent.changes), conc(StateEffect.mapEffects(event.effects, lastEvent.changes), lastEvent.effects), lastEvent.mapped, lastEvent.startSelection, none));\n }\n else {\n done = updateBranch(done, done.length, config.minDepth, event);\n }\n return new HistoryState(done, none, time, userEvent);\n }\n addSelection(selection, time, userEvent, newGroupDelay) {\n let last = this.done.length ? this.done[this.done.length - 1].selectionsAfter : none;\n if (last.length > 0 &&\n time - this.prevTime < newGroupDelay &&\n userEvent == this.prevUserEvent && userEvent && /^select($|\\.)/.test(userEvent) &&\n eqSelectionShape(last[last.length - 1], selection))\n return this;\n return new HistoryState(addSelection(this.done, selection), this.undone, time, userEvent);\n }\n addMapping(mapping) {\n return new HistoryState(addMappingToBranch(this.done, mapping), addMappingToBranch(this.undone, mapping), this.prevTime, this.prevUserEvent);\n }\n pop(side, state, onlySelection) {\n let branch = side == 0 /* BranchName.Done */ ? this.done : this.undone;\n if (branch.length == 0)\n return null;\n let event = branch[branch.length - 1], selection = event.selectionsAfter[0] ||\n (event.startSelection ? event.startSelection.map(event.changes.invertedDesc, 1) : state.selection);\n if (onlySelection && event.selectionsAfter.length) {\n return state.update({\n selection: event.selectionsAfter[event.selectionsAfter.length - 1],\n annotations: fromHistory.of({ side, rest: popSelection(branch), selection }),\n userEvent: side == 0 /* BranchName.Done */ ? \"select.undo\" : \"select.redo\",\n scrollIntoView: true\n });\n }\n else if (!event.changes) {\n return null;\n }\n else {\n let rest = branch.length == 1 ? none : branch.slice(0, branch.length - 1);\n if (event.mapped)\n rest = addMappingToBranch(rest, event.mapped);\n return state.update({\n changes: event.changes,\n selection: event.startSelection,\n effects: event.effects,\n annotations: fromHistory.of({ side, rest, selection }),\n filter: false,\n userEvent: side == 0 /* BranchName.Done */ ? \"undo\" : \"redo\",\n scrollIntoView: true\n });\n }\n }\n}\nHistoryState.empty = /*@__PURE__*/new HistoryState(none, none);\n/**\nDefault key bindings for the undo history.\n\n- Mod-z: [`undo`](https://codemirror.net/6/docs/ref/#commands.undo).\n- Mod-y (Mod-Shift-z on macOS) + Ctrl-Shift-z on Linux: [`redo`](https://codemirror.net/6/docs/ref/#commands.redo).\n- Mod-u: [`undoSelection`](https://codemirror.net/6/docs/ref/#commands.undoSelection).\n- Alt-u (Mod-Shift-u on macOS): [`redoSelection`](https://codemirror.net/6/docs/ref/#commands.redoSelection).\n*/\nconst historyKeymap = [\n { key: \"Mod-z\", run: undo, preventDefault: true },\n { key: \"Mod-y\", mac: \"Mod-Shift-z\", run: redo, preventDefault: true },\n { linux: \"Ctrl-Shift-z\", run: redo, preventDefault: true },\n { key: \"Mod-u\", run: undoSelection, preventDefault: true },\n { key: \"Alt-u\", mac: \"Mod-Shift-u\", run: redoSelection, preventDefault: true }\n];\n\nfunction updateSel(sel, by) {\n return EditorSelection.create(sel.ranges.map(by), sel.mainIndex);\n}\nfunction setSel(state, selection) {\n return state.update({ selection, scrollIntoView: true, userEvent: \"select\" });\n}\nfunction moveSel({ state, dispatch }, how) {\n let selection = updateSel(state.selection, how);\n if (selection.eq(state.selection, true))\n return false;\n dispatch(setSel(state, selection));\n return true;\n}\nfunction rangeEnd(range, forward) {\n return EditorSelection.cursor(forward ? range.to : range.from);\n}\nfunction cursorByChar(view, forward) {\n return moveSel(view, range => range.empty ? view.moveByChar(range, forward) : rangeEnd(range, forward));\n}\nfunction ltrAtCursor(view) {\n return view.textDirectionAt(view.state.selection.main.head) == Direction.LTR;\n}\n/**\nMove the selection one character to the left (which is backward in\nleft-to-right text, forward in right-to-left text).\n*/\nconst cursorCharLeft = view => cursorByChar(view, !ltrAtCursor(view));\n/**\nMove the selection one character to the right.\n*/\nconst cursorCharRight = view => cursorByChar(view, ltrAtCursor(view));\n/**\nMove the selection one character forward.\n*/\nconst cursorCharForward = view => cursorByChar(view, true);\n/**\nMove the selection one character backward.\n*/\nconst cursorCharBackward = view => cursorByChar(view, false);\nfunction byCharLogical(state, range, forward) {\n let pos = range.head, line = state.doc.lineAt(pos);\n if (pos == (forward ? line.to : line.from))\n pos = forward ? Math.min(state.doc.length, line.to + 1) : Math.max(0, line.from - 1);\n else\n pos = line.from + findClusterBreak(line.text, pos - line.from, forward);\n return EditorSelection.cursor(pos, forward ? -1 : 1);\n}\nfunction moveByCharLogical(target, forward) {\n return moveSel(target, range => range.empty ? byCharLogical(target.state, range, forward) : rangeEnd(range, forward));\n}\n/**\nMove the selection one character forward, in logical\n(non-text-direction-aware) string index order.\n*/\nconst cursorCharForwardLogical = target => moveByCharLogical(target, true);\n/**\nMove the selection one character backward, in logical string index\norder.\n*/\nconst cursorCharBackwardLogical = target => moveByCharLogical(target, false);\nfunction cursorByGroup(view, forward) {\n return moveSel(view, range => range.empty ? view.moveByGroup(range, forward) : rangeEnd(range, forward));\n}\n/**\nMove the selection to the left across one group of word or\nnon-word (but also non-space) characters.\n*/\nconst cursorGroupLeft = view => cursorByGroup(view, !ltrAtCursor(view));\n/**\nMove the selection one group to the right.\n*/\nconst cursorGroupRight = view => cursorByGroup(view, ltrAtCursor(view));\n/**\nMove the selection one group forward.\n*/\nconst cursorGroupForward = view => cursorByGroup(view, true);\n/**\nMove the selection one group backward.\n*/\nconst cursorGroupBackward = view => cursorByGroup(view, false);\nfunction toGroupStart(view, pos, start) {\n let categorize = view.state.charCategorizer(pos);\n let cat = categorize(start), initial = cat != CharCategory.Space;\n return (next) => {\n let nextCat = categorize(next);\n if (nextCat != CharCategory.Space)\n return initial && nextCat == cat;\n initial = false;\n return true;\n };\n}\n/**\nMove the cursor one group forward in the default Windows style,\nwhere it moves to the start of the next group.\n*/\nconst cursorGroupForwardWin = view => {\n return moveSel(view, range => range.empty\n ? view.moveByChar(range, true, start => toGroupStart(view, range.head, start))\n : rangeEnd(range, true));\n};\nconst segmenter = typeof Intl != \"undefined\" && Intl.Segmenter ?\n /*@__PURE__*/new (Intl.Segmenter)(undefined, { granularity: \"word\" }) : null;\nfunction moveBySubword(view, range, forward) {\n let categorize = view.state.charCategorizer(range.from);\n let cat = CharCategory.Space, pos = range.from, steps = 0;\n let done = false, sawUpper = false, sawLower = false;\n let step = (next) => {\n if (done)\n return false;\n pos += forward ? next.length : -next.length;\n let nextCat = categorize(next), ahead;\n if (nextCat == CharCategory.Word && next.charCodeAt(0) < 128 && /[\\W_]/.test(next))\n nextCat = -1; // Treat word punctuation specially\n if (cat == CharCategory.Space)\n cat = nextCat;\n if (cat != nextCat)\n return false;\n if (cat == CharCategory.Word) {\n if (next.toLowerCase() == next) {\n if (!forward && sawUpper)\n return false;\n sawLower = true;\n }\n else if (sawLower) {\n if (forward)\n return false;\n done = true;\n }\n else {\n if (sawUpper && forward && categorize(ahead = view.state.sliceDoc(pos, pos + 1)) == CharCategory.Word &&\n ahead.toLowerCase() == ahead)\n return false;\n sawUpper = true;\n }\n }\n steps++;\n return true;\n };\n let end = view.moveByChar(range, forward, start => {\n step(start);\n return step;\n });\n if (segmenter && cat == CharCategory.Word && end.from == range.from + steps * (forward ? 1 : -1)) {\n let from = Math.min(range.head, end.head), to = Math.max(range.head, end.head);\n let skipped = view.state.sliceDoc(from, to);\n if (skipped.length > 1 && /[\\u4E00-\\uffff]/.test(skipped)) {\n let segments = Array.from(segmenter.segment(skipped));\n if (segments.length > 1) {\n if (forward)\n return EditorSelection.cursor(range.head + segments[1].index, -1);\n return EditorSelection.cursor(end.head + segments[segments.length - 1].index, 1);\n }\n }\n }\n return end;\n}\nfunction cursorBySubword(view, forward) {\n return moveSel(view, range => range.empty ? moveBySubword(view, range, forward) : rangeEnd(range, forward));\n}\n/**\nMove the selection one group or camel-case subword forward.\n*/\nconst cursorSubwordForward = view => cursorBySubword(view, true);\n/**\nMove the selection one group or camel-case subword backward.\n*/\nconst cursorSubwordBackward = view => cursorBySubword(view, false);\nfunction interestingNode(state, node, bracketProp) {\n if (node.type.prop(bracketProp))\n return true;\n let len = node.to - node.from;\n return len && (len > 2 || /[^\\s,.;:]/.test(state.sliceDoc(node.from, node.to))) || node.firstChild;\n}\nfunction moveBySyntax(state, start, forward) {\n let pos = syntaxTree(state).resolveInner(start.head);\n let bracketProp = forward ? NodeProp.closedBy : NodeProp.openedBy;\n // Scan forward through child nodes to see if there's an interesting\n // node ahead.\n for (let at = start.head;;) {\n let next = forward ? pos.childAfter(at) : pos.childBefore(at);\n if (!next)\n break;\n if (interestingNode(state, next, bracketProp))\n pos = next;\n else\n at = forward ? next.to : next.from;\n }\n let bracket = pos.type.prop(bracketProp), match, newPos;\n if (bracket && (match = forward ? matchBrackets(state, pos.from, 1) : matchBrackets(state, pos.to, -1)) && match.matched)\n newPos = forward ? match.end.to : match.end.from;\n else\n newPos = forward ? pos.to : pos.from;\n return EditorSelection.cursor(newPos, forward ? -1 : 1);\n}\n/**\nMove the cursor over the next syntactic element to the left.\n*/\nconst cursorSyntaxLeft = view => moveSel(view, range => moveBySyntax(view.state, range, !ltrAtCursor(view)));\n/**\nMove the cursor over the next syntactic element to the right.\n*/\nconst cursorSyntaxRight = view => moveSel(view, range => moveBySyntax(view.state, range, ltrAtCursor(view)));\nfunction cursorByLine(view, forward) {\n return moveSel(view, range => {\n if (!range.empty)\n return rangeEnd(range, forward);\n let moved = view.moveVertically(range, forward);\n return moved.head != range.head ? moved : view.moveToLineBoundary(range, forward);\n });\n}\n/**\nMove the selection one line up.\n*/\nconst cursorLineUp = view => cursorByLine(view, false);\n/**\nMove the selection one line down.\n*/\nconst cursorLineDown = view => cursorByLine(view, true);\nfunction pageInfo(view) {\n let selfScroll = view.scrollDOM.clientHeight < view.scrollDOM.scrollHeight - 2;\n let marginTop = 0, marginBottom = 0, height;\n if (selfScroll) {\n for (let source of view.state.facet(EditorView.scrollMargins)) {\n let margins = source(view);\n if (margins === null || margins === void 0 ? void 0 : margins.top)\n marginTop = Math.max(margins === null || margins === void 0 ? void 0 : margins.top, marginTop);\n if (margins === null || margins === void 0 ? void 0 : margins.bottom)\n marginBottom = Math.max(margins === null || margins === void 0 ? void 0 : margins.bottom, marginBottom);\n }\n height = view.scrollDOM.clientHeight - marginTop - marginBottom;\n }\n else {\n height = (view.dom.ownerDocument.defaultView || window).innerHeight;\n }\n return { marginTop, marginBottom, selfScroll,\n height: Math.max(view.defaultLineHeight, height - 5) };\n}\nfunction cursorByPage(view, forward) {\n let page = pageInfo(view);\n let { state } = view, selection = updateSel(state.selection, range => {\n return range.empty ? view.moveVertically(range, forward, page.height)\n : rangeEnd(range, forward);\n });\n if (selection.eq(state.selection))\n return false;\n let effect;\n if (page.selfScroll) {\n let startPos = view.coordsAtPos(state.selection.main.head);\n let scrollRect = view.scrollDOM.getBoundingClientRect();\n let scrollTop = scrollRect.top + page.marginTop, scrollBottom = scrollRect.bottom - page.marginBottom;\n if (startPos && startPos.top > scrollTop && startPos.bottom < scrollBottom)\n effect = EditorView.scrollIntoView(selection.main.head, { y: \"start\", yMargin: startPos.top - scrollTop });\n }\n view.dispatch(setSel(state, selection), { effects: effect });\n return true;\n}\n/**\nMove the selection one page up.\n*/\nconst cursorPageUp = view => cursorByPage(view, false);\n/**\nMove the selection one page down.\n*/\nconst cursorPageDown = view => cursorByPage(view, true);\nfunction moveByLineBoundary(view, start, forward) {\n let line = view.lineBlockAt(start.head), moved = view.moveToLineBoundary(start, forward);\n if (moved.head == start.head && moved.head != (forward ? line.to : line.from))\n moved = view.moveToLineBoundary(start, forward, false);\n if (!forward && moved.head == line.from && line.length) {\n let space = /^\\s*/.exec(view.state.sliceDoc(line.from, Math.min(line.from + 100, line.to)))[0].length;\n if (space && start.head != line.from + space)\n moved = EditorSelection.cursor(line.from + space);\n }\n return moved;\n}\n/**\nMove the selection to the next line wrap point, or to the end of\nthe line if there isn't one left on this line.\n*/\nconst cursorLineBoundaryForward = view => moveSel(view, range => moveByLineBoundary(view, range, true));\n/**\nMove the selection to previous line wrap point, or failing that to\nthe start of the line. If the line is indented, and the cursor\nisn't already at the end of the indentation, this will move to the\nend of the indentation instead of the start of the line.\n*/\nconst cursorLineBoundaryBackward = view => moveSel(view, range => moveByLineBoundary(view, range, false));\n/**\nMove the selection one line wrap point to the left.\n*/\nconst cursorLineBoundaryLeft = view => moveSel(view, range => moveByLineBoundary(view, range, !ltrAtCursor(view)));\n/**\nMove the selection one line wrap point to the right.\n*/\nconst cursorLineBoundaryRight = view => moveSel(view, range => moveByLineBoundary(view, range, ltrAtCursor(view)));\n/**\nMove the selection to the start of the line.\n*/\nconst cursorLineStart = view => moveSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).from, 1));\n/**\nMove the selection to the end of the line.\n*/\nconst cursorLineEnd = view => moveSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).to, -1));\nfunction toMatchingBracket(state, dispatch, extend) {\n let found = false, selection = updateSel(state.selection, range => {\n let matching = matchBrackets(state, range.head, -1)\n || matchBrackets(state, range.head, 1)\n || (range.head > 0 && matchBrackets(state, range.head - 1, 1))\n || (range.head < state.doc.length && matchBrackets(state, range.head + 1, -1));\n if (!matching || !matching.end)\n return range;\n found = true;\n let head = matching.start.from == range.head ? matching.end.to : matching.end.from;\n return extend ? EditorSelection.range(range.anchor, head) : EditorSelection.cursor(head);\n });\n if (!found)\n return false;\n dispatch(setSel(state, selection));\n return true;\n}\n/**\nMove the selection to the bracket matching the one it is currently\non, if any.\n*/\nconst cursorMatchingBracket = ({ state, dispatch }) => toMatchingBracket(state, dispatch, false);\n/**\nExtend the selection to the bracket matching the one the selection\nhead is currently on, if any.\n*/\nconst selectMatchingBracket = ({ state, dispatch }) => toMatchingBracket(state, dispatch, true);\nfunction extendSel(target, how) {\n let selection = updateSel(target.state.selection, range => {\n let head = how(range);\n return EditorSelection.range(range.anchor, head.head, head.goalColumn, head.bidiLevel || undefined, head.assoc);\n });\n if (selection.eq(target.state.selection))\n return false;\n target.dispatch(setSel(target.state, selection));\n return true;\n}\nfunction selectByChar(view, forward) {\n return extendSel(view, range => view.moveByChar(range, forward));\n}\n/**\nMove the selection head one character to the left, while leaving\nthe anchor in place.\n*/\nconst selectCharLeft = view => selectByChar(view, !ltrAtCursor(view));\n/**\nMove the selection head one character to the right.\n*/\nconst selectCharRight = view => selectByChar(view, ltrAtCursor(view));\n/**\nMove the selection head one character forward.\n*/\nconst selectCharForward = view => selectByChar(view, true);\n/**\nMove the selection head one character backward.\n*/\nconst selectCharBackward = view => selectByChar(view, false);\n/**\nMove the selection head one character forward by logical\n(non-direction aware) string index order.\n*/\nconst selectCharForwardLogical = target => extendSel(target, range => byCharLogical(target.state, range, true));\n/**\nMove the selection head one character backward by logical string\nindex order.\n*/\nconst selectCharBackwardLogical = target => extendSel(target, range => byCharLogical(target.state, range, false));\nfunction selectByGroup(view, forward) {\n return extendSel(view, range => view.moveByGroup(range, forward));\n}\n/**\nMove the selection head one [group](https://codemirror.net/6/docs/ref/#commands.cursorGroupLeft) to\nthe left.\n*/\nconst selectGroupLeft = view => selectByGroup(view, !ltrAtCursor(view));\n/**\nMove the selection head one group to the right.\n*/\nconst selectGroupRight = view => selectByGroup(view, ltrAtCursor(view));\n/**\nMove the selection head one group forward.\n*/\nconst selectGroupForward = view => selectByGroup(view, true);\n/**\nMove the selection head one group backward.\n*/\nconst selectGroupBackward = view => selectByGroup(view, false);\n/**\nMove the selection head one group forward in the default Windows\nstyle, skipping to the start of the next group.\n*/\nconst selectGroupForwardWin = view => {\n return extendSel(view, range => view.moveByChar(range, true, start => toGroupStart(view, range.head, start)));\n};\nfunction selectBySubword(view, forward) {\n return extendSel(view, range => moveBySubword(view, range, forward));\n}\n/**\nMove the selection head one group or camel-case subword forward.\n*/\nconst selectSubwordForward = view => selectBySubword(view, true);\n/**\nMove the selection head one group or subword backward.\n*/\nconst selectSubwordBackward = view => selectBySubword(view, false);\n/**\nMove the selection head over the next syntactic element to the left.\n*/\nconst selectSyntaxLeft = view => extendSel(view, range => moveBySyntax(view.state, range, !ltrAtCursor(view)));\n/**\nMove the selection head over the next syntactic element to the right.\n*/\nconst selectSyntaxRight = view => extendSel(view, range => moveBySyntax(view.state, range, ltrAtCursor(view)));\nfunction selectByLine(view, forward) {\n return extendSel(view, range => view.moveVertically(range, forward));\n}\n/**\nMove the selection head one line up.\n*/\nconst selectLineUp = view => selectByLine(view, false);\n/**\nMove the selection head one line down.\n*/\nconst selectLineDown = view => selectByLine(view, true);\nfunction selectByPage(view, forward) {\n return extendSel(view, range => view.moveVertically(range, forward, pageInfo(view).height));\n}\n/**\nMove the selection head one page up.\n*/\nconst selectPageUp = view => selectByPage(view, false);\n/**\nMove the selection head one page down.\n*/\nconst selectPageDown = view => selectByPage(view, true);\n/**\nMove the selection head to the next line boundary.\n*/\nconst selectLineBoundaryForward = view => extendSel(view, range => moveByLineBoundary(view, range, true));\n/**\nMove the selection head to the previous line boundary.\n*/\nconst selectLineBoundaryBackward = view => extendSel(view, range => moveByLineBoundary(view, range, false));\n/**\nMove the selection head one line boundary to the left.\n*/\nconst selectLineBoundaryLeft = view => extendSel(view, range => moveByLineBoundary(view, range, !ltrAtCursor(view)));\n/**\nMove the selection head one line boundary to the right.\n*/\nconst selectLineBoundaryRight = view => extendSel(view, range => moveByLineBoundary(view, range, ltrAtCursor(view)));\n/**\nMove the selection head to the start of the line.\n*/\nconst selectLineStart = view => extendSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).from));\n/**\nMove the selection head to the end of the line.\n*/\nconst selectLineEnd = view => extendSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).to));\n/**\nMove the selection to the start of the document.\n*/\nconst cursorDocStart = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: 0 }));\n return true;\n};\n/**\nMove the selection to the end of the document.\n*/\nconst cursorDocEnd = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: state.doc.length }));\n return true;\n};\n/**\nMove the selection head to the start of the document.\n*/\nconst selectDocStart = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: state.selection.main.anchor, head: 0 }));\n return true;\n};\n/**\nMove the selection head to the end of the document.\n*/\nconst selectDocEnd = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: state.selection.main.anchor, head: state.doc.length }));\n return true;\n};\n/**\nSelect the entire document.\n*/\nconst selectAll = ({ state, dispatch }) => {\n dispatch(state.update({ selection: { anchor: 0, head: state.doc.length }, userEvent: \"select\" }));\n return true;\n};\n/**\nExpand the selection to cover entire lines.\n*/\nconst selectLine = ({ state, dispatch }) => {\n let ranges = selectedLineBlocks(state).map(({ from, to }) => EditorSelection.range(from, Math.min(to + 1, state.doc.length)));\n dispatch(state.update({ selection: EditorSelection.create(ranges), userEvent: \"select\" }));\n return true;\n};\n/**\nSelect the next syntactic construct that is larger than the\nselection. Note that this will only work insofar as the language\n[provider](https://codemirror.net/6/docs/ref/#language.language) you use builds up a full\nsyntax tree.\n*/\nconst selectParentSyntax = ({ state, dispatch }) => {\n let selection = updateSel(state.selection, range => {\n let tree = syntaxTree(state), stack = tree.resolveStack(range.from, 1);\n if (range.empty) {\n let stackBefore = tree.resolveStack(range.from, -1);\n if (stackBefore.node.from >= stack.node.from && stackBefore.node.to <= stack.node.to)\n stack = stackBefore;\n }\n for (let cur = stack; cur; cur = cur.next) {\n let { node } = cur;\n if (((node.from < range.from && node.to >= range.to) ||\n (node.to > range.to && node.from <= range.from)) &&\n cur.next)\n return EditorSelection.range(node.to, node.from);\n }\n return range;\n });\n if (selection.eq(state.selection))\n return false;\n dispatch(setSel(state, selection));\n return true;\n};\nfunction addCursorVertically(view, forward) {\n let { state } = view, sel = state.selection, ranges = state.selection.ranges.slice();\n for (let range of state.selection.ranges) {\n let line = state.doc.lineAt(range.head);\n if (forward ? line.to < view.state.doc.length : line.from > 0)\n for (let cur = range;;) {\n let next = view.moveVertically(cur, forward);\n if (next.head < line.from || next.head > line.to) {\n if (!ranges.some(r => r.head == next.head))\n ranges.push(next);\n break;\n }\n else if (next.head == cur.head) {\n break;\n }\n else {\n cur = next;\n }\n }\n }\n if (ranges.length == sel.ranges.length)\n return false;\n view.dispatch(setSel(state, EditorSelection.create(ranges, ranges.length - 1)));\n return true;\n}\n/**\nExpand the selection by adding a cursor above the heads of\ncurrently selected ranges.\n*/\nconst addCursorAbove = view => addCursorVertically(view, false);\n/**\nExpand the selection by adding a cursor below the heads of\ncurrently selected ranges.\n*/\nconst addCursorBelow = view => addCursorVertically(view, true);\n/**\nSimplify the current selection. When multiple ranges are selected,\nreduce it to its main range. Otherwise, if the selection is\nnon-empty, convert it to a cursor selection.\n*/\nconst simplifySelection = ({ state, dispatch }) => {\n let cur = state.selection, selection = null;\n if (cur.ranges.length > 1)\n selection = EditorSelection.create([cur.main]);\n else if (!cur.main.empty)\n selection = EditorSelection.create([EditorSelection.cursor(cur.main.head)]);\n if (!selection)\n return false;\n dispatch(setSel(state, selection));\n return true;\n};\nfunction deleteBy(target, by) {\n if (target.state.readOnly)\n return false;\n let event = \"delete.selection\", { state } = target;\n let changes = state.changeByRange(range => {\n let { from, to } = range;\n if (from == to) {\n let towards = by(range);\n if (towards < from) {\n event = \"delete.backward\";\n towards = skipAtomic(target, towards, false);\n }\n else if (towards > from) {\n event = \"delete.forward\";\n towards = skipAtomic(target, towards, true);\n }\n from = Math.min(from, towards);\n to = Math.max(to, towards);\n }\n else {\n from = skipAtomic(target, from, false);\n to = skipAtomic(target, to, true);\n }\n return from == to ? { range } : { changes: { from, to }, range: EditorSelection.cursor(from, from < range.head ? -1 : 1) };\n });\n if (changes.changes.empty)\n return false;\n target.dispatch(state.update(changes, {\n scrollIntoView: true,\n userEvent: event,\n effects: event == \"delete.selection\" ? EditorView.announce.of(state.phrase(\"Selection deleted\")) : undefined\n }));\n return true;\n}\nfunction skipAtomic(target, pos, forward) {\n if (target instanceof EditorView)\n for (let ranges of target.state.facet(EditorView.atomicRanges).map(f => f(target)))\n ranges.between(pos, pos, (from, to) => {\n if (from < pos && to > pos)\n pos = forward ? to : from;\n });\n return pos;\n}\nconst deleteByChar = (target, forward, byIndentUnit) => deleteBy(target, range => {\n let pos = range.from, { state } = target, line = state.doc.lineAt(pos), before, targetPos;\n if (byIndentUnit && !forward && pos > line.from && pos < line.from + 200 &&\n !/[^ \\t]/.test(before = line.text.slice(0, pos - line.from))) {\n if (before[before.length - 1] == \"\\t\")\n return pos - 1;\n let col = countColumn(before, state.tabSize), drop = col % getIndentUnit(state) || getIndentUnit(state);\n for (let i = 0; i < drop && before[before.length - 1 - i] == \" \"; i++)\n pos--;\n targetPos = pos;\n }\n else {\n targetPos = findClusterBreak(line.text, pos - line.from, forward, forward) + line.from;\n if (targetPos == pos && line.number != (forward ? state.doc.lines : 1))\n targetPos += forward ? 1 : -1;\n else if (!forward && /[\\ufe00-\\ufe0f]/.test(line.text.slice(targetPos - line.from, pos - line.from)))\n targetPos = findClusterBreak(line.text, targetPos - line.from, false, false) + line.from;\n }\n return targetPos;\n});\n/**\nDelete the selection, or, for cursor selections, the character or\nindentation unit before the cursor.\n*/\nconst deleteCharBackward = view => deleteByChar(view, false, true);\n/**\nDelete the selection or the character before the cursor. Does not\nimplement any extended behavior like deleting whole indentation\nunits in one go.\n*/\nconst deleteCharBackwardStrict = view => deleteByChar(view, false, false);\n/**\nDelete the selection or the character after the cursor.\n*/\nconst deleteCharForward = view => deleteByChar(view, true, false);\nconst deleteByGroup = (target, forward) => deleteBy(target, range => {\n let pos = range.head, { state } = target, line = state.doc.lineAt(pos);\n let categorize = state.charCategorizer(pos);\n for (let cat = null;;) {\n if (pos == (forward ? line.to : line.from)) {\n if (pos == range.head && line.number != (forward ? state.doc.lines : 1))\n pos += forward ? 1 : -1;\n break;\n }\n let next = findClusterBreak(line.text, pos - line.from, forward) + line.from;\n let nextChar = line.text.slice(Math.min(pos, next) - line.from, Math.max(pos, next) - line.from);\n let nextCat = categorize(nextChar);\n if (cat != null && nextCat != cat)\n break;\n if (nextChar != \" \" || pos != range.head)\n cat = nextCat;\n pos = next;\n }\n return pos;\n});\n/**\nDelete the selection or backward until the end of the next\n[group](https://codemirror.net/6/docs/ref/#view.EditorView.moveByGroup), only skipping groups of\nwhitespace when they consist of a single space.\n*/\nconst deleteGroupBackward = target => deleteByGroup(target, false);\n/**\nDelete the selection or forward until the end of the next group.\n*/\nconst deleteGroupForward = target => deleteByGroup(target, true);\n/**\nVariant of [`deleteGroupForward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupForward)\nthat uses the Windows convention of also deleting the whitespace\nafter a word.\n*/\nconst deleteGroupForwardWin = view => deleteBy(view, range => view.moveByChar(range, true, start => toGroupStart(view, range.head, start)).head);\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe end of the line. If the cursor is directly at the end of the\nline, delete the line break after it.\n*/\nconst deleteToLineEnd = view => deleteBy(view, range => {\n let lineEnd = view.lineBlockAt(range.head).to;\n return range.head < lineEnd ? lineEnd : Math.min(view.state.doc.length, range.head + 1);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe start of the line. If the cursor is directly at the start of the\nline, delete the line break before it.\n*/\nconst deleteToLineStart = view => deleteBy(view, range => {\n let lineStart = view.lineBlockAt(range.head).from;\n return range.head > lineStart ? lineStart : Math.max(0, range.head - 1);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe start of the line or the next line wrap before the cursor.\n*/\nconst deleteLineBoundaryBackward = view => deleteBy(view, range => {\n let lineStart = view.moveToLineBoundary(range, false).head;\n return range.head > lineStart ? lineStart : Math.max(0, range.head - 1);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe end of the line or the next line wrap after the cursor.\n*/\nconst deleteLineBoundaryForward = view => deleteBy(view, range => {\n let lineStart = view.moveToLineBoundary(range, true).head;\n return range.head < lineStart ? lineStart : Math.min(view.state.doc.length, range.head + 1);\n});\n/**\nDelete all whitespace directly before a line end from the\ndocument.\n*/\nconst deleteTrailingWhitespace = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = [];\n for (let pos = 0, prev = \"\", iter = state.doc.iter();;) {\n iter.next();\n if (iter.lineBreak || iter.done) {\n let trailing = prev.search(/\\s+$/);\n if (trailing > -1)\n changes.push({ from: pos - (prev.length - trailing), to: pos });\n if (iter.done)\n break;\n prev = \"\";\n }\n else {\n prev = iter.value;\n }\n pos += iter.value.length;\n }\n if (!changes.length)\n return false;\n dispatch(state.update({ changes, userEvent: \"delete\" }));\n return true;\n};\n/**\nReplace each selection range with a line break, leaving the cursor\non the line before the break.\n*/\nconst splitLine = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = state.changeByRange(range => {\n return { changes: { from: range.from, to: range.to, insert: Text.of([\"\", \"\"]) },\n range: EditorSelection.cursor(range.from) };\n });\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\n/**\nFlip the characters before and after the cursor(s).\n*/\nconst transposeChars = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = state.changeByRange(range => {\n if (!range.empty || range.from == 0 || range.from == state.doc.length)\n return { range };\n let pos = range.from, line = state.doc.lineAt(pos);\n let from = pos == line.from ? pos - 1 : findClusterBreak(line.text, pos - line.from, false) + line.from;\n let to = pos == line.to ? pos + 1 : findClusterBreak(line.text, pos - line.from, true) + line.from;\n return { changes: { from, to, insert: state.doc.slice(pos, to).append(state.doc.slice(from, pos)) },\n range: EditorSelection.cursor(to) };\n });\n if (changes.changes.empty)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"move.character\" }));\n return true;\n};\nfunction selectedLineBlocks(state) {\n let blocks = [], upto = -1;\n for (let range of state.selection.ranges) {\n let startLine = state.doc.lineAt(range.from), endLine = state.doc.lineAt(range.to);\n if (!range.empty && range.to == endLine.from)\n endLine = state.doc.lineAt(range.to - 1);\n if (upto >= startLine.number) {\n let prev = blocks[blocks.length - 1];\n prev.to = endLine.to;\n prev.ranges.push(range);\n }\n else {\n blocks.push({ from: startLine.from, to: endLine.to, ranges: [range] });\n }\n upto = endLine.number + 1;\n }\n return blocks;\n}\nfunction moveLine(state, dispatch, forward) {\n if (state.readOnly)\n return false;\n let changes = [], ranges = [];\n for (let block of selectedLineBlocks(state)) {\n if (forward ? block.to == state.doc.length : block.from == 0)\n continue;\n let nextLine = state.doc.lineAt(forward ? block.to + 1 : block.from - 1);\n let size = nextLine.length + 1;\n if (forward) {\n changes.push({ from: block.to, to: nextLine.to }, { from: block.from, insert: nextLine.text + state.lineBreak });\n for (let r of block.ranges)\n ranges.push(EditorSelection.range(Math.min(state.doc.length, r.anchor + size), Math.min(state.doc.length, r.head + size)));\n }\n else {\n changes.push({ from: nextLine.from, to: block.from }, { from: block.to, insert: state.lineBreak + nextLine.text });\n for (let r of block.ranges)\n ranges.push(EditorSelection.range(r.anchor - size, r.head - size));\n }\n }\n if (!changes.length)\n return false;\n dispatch(state.update({\n changes,\n scrollIntoView: true,\n selection: EditorSelection.create(ranges, state.selection.mainIndex),\n userEvent: \"move.line\"\n }));\n return true;\n}\n/**\nMove the selected lines up one line.\n*/\nconst moveLineUp = ({ state, dispatch }) => moveLine(state, dispatch, false);\n/**\nMove the selected lines down one line.\n*/\nconst moveLineDown = ({ state, dispatch }) => moveLine(state, dispatch, true);\nfunction copyLine(state, dispatch, forward) {\n if (state.readOnly)\n return false;\n let changes = [];\n for (let block of selectedLineBlocks(state)) {\n if (forward)\n changes.push({ from: block.from, insert: state.doc.slice(block.from, block.to) + state.lineBreak });\n else\n changes.push({ from: block.to, insert: state.lineBreak + state.doc.slice(block.from, block.to) });\n }\n let changeSet = state.changes(changes);\n dispatch(state.update({\n changes: changeSet,\n selection: state.selection.map(changeSet, forward ? 1 : -1),\n scrollIntoView: true,\n userEvent: \"input.copyline\"\n }));\n return true;\n}\n/**\nCreate a copy of the selected lines. Keep the selection in the top copy.\n*/\nconst copyLineUp = ({ state, dispatch }) => copyLine(state, dispatch, false);\n/**\nCreate a copy of the selected lines. Keep the selection in the bottom copy.\n*/\nconst copyLineDown = ({ state, dispatch }) => copyLine(state, dispatch, true);\n/**\nDelete selected lines.\n*/\nconst deleteLine = view => {\n if (view.state.readOnly)\n return false;\n let { state } = view, changes = state.changes(selectedLineBlocks(state).map(({ from, to }) => {\n if (from > 0)\n from--;\n else if (to < state.doc.length)\n to++;\n return { from, to };\n }));\n let selection = updateSel(state.selection, range => {\n let dist = undefined;\n if (view.lineWrapping) {\n let block = view.lineBlockAt(range.head), pos = view.coordsAtPos(range.head, range.assoc || 1);\n if (pos)\n dist = (block.bottom + view.documentTop) - pos.bottom + view.defaultLineHeight / 2;\n }\n return view.moveVertically(range, true, dist);\n }).map(changes);\n view.dispatch({ changes, selection, scrollIntoView: true, userEvent: \"delete.line\" });\n return true;\n};\n/**\nReplace the selection with a newline.\n*/\nconst insertNewline = ({ state, dispatch }) => {\n dispatch(state.update(state.replaceSelection(state.lineBreak), { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\n/**\nReplace the selection with a newline and the same amount of\nindentation as the line above.\n*/\nconst insertNewlineKeepIndent = ({ state, dispatch }) => {\n dispatch(state.update(state.changeByRange(range => {\n let indent = /^\\s*/.exec(state.doc.lineAt(range.from).text)[0];\n return {\n changes: { from: range.from, to: range.to, insert: state.lineBreak + indent },\n range: EditorSelection.cursor(range.from + indent.length + 1)\n };\n }), { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\nfunction isBetweenBrackets(state, pos) {\n if (/\\(\\)|\\[\\]|\\{\\}/.test(state.sliceDoc(pos - 1, pos + 1)))\n return { from: pos, to: pos };\n let context = syntaxTree(state).resolveInner(pos);\n let before = context.childBefore(pos), after = context.childAfter(pos), closedBy;\n if (before && after && before.to <= pos && after.from >= pos &&\n (closedBy = before.type.prop(NodeProp.closedBy)) && closedBy.indexOf(after.name) > -1 &&\n state.doc.lineAt(before.to).from == state.doc.lineAt(after.from).from &&\n !/\\S/.test(state.sliceDoc(before.to, after.from)))\n return { from: before.to, to: after.from };\n return null;\n}\n/**\nReplace the selection with a newline and indent the newly created\nline(s). If the current line consists only of whitespace, this\nwill also delete that whitespace. When the cursor is between\nmatching brackets, an additional newline will be inserted after\nthe cursor.\n*/\nconst insertNewlineAndIndent = /*@__PURE__*/newlineAndIndent(false);\n/**\nCreate a blank, indented line below the current line.\n*/\nconst insertBlankLine = /*@__PURE__*/newlineAndIndent(true);\nfunction newlineAndIndent(atEof) {\n return ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = state.changeByRange(range => {\n let { from, to } = range, line = state.doc.lineAt(from);\n let explode = !atEof && from == to && isBetweenBrackets(state, from);\n if (atEof)\n from = to = (to <= line.to ? line : state.doc.lineAt(to)).to;\n let cx = new IndentContext(state, { simulateBreak: from, simulateDoubleBreak: !!explode });\n let indent = getIndentation(cx, from);\n if (indent == null)\n indent = countColumn(/^\\s*/.exec(state.doc.lineAt(from).text)[0], state.tabSize);\n while (to < line.to && /\\s/.test(line.text[to - line.from]))\n to++;\n if (explode)\n ({ from, to } = explode);\n else if (from > line.from && from < line.from + 100 && !/\\S/.test(line.text.slice(0, from)))\n from = line.from;\n let insert = [\"\", indentString(state, indent)];\n if (explode)\n insert.push(indentString(state, cx.lineIndent(line.from, -1)));\n return { changes: { from, to, insert: Text.of(insert) },\n range: EditorSelection.cursor(from + 1 + insert[1].length) };\n });\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n };\n}\nfunction changeBySelectedLine(state, f) {\n let atLine = -1;\n return state.changeByRange(range => {\n let changes = [];\n for (let pos = range.from; pos <= range.to;) {\n let line = state.doc.lineAt(pos);\n if (line.number > atLine && (range.empty || range.to > line.from)) {\n f(line, changes, range);\n atLine = line.number;\n }\n pos = line.to + 1;\n }\n let changeSet = state.changes(changes);\n return { changes,\n range: EditorSelection.range(changeSet.mapPos(range.anchor, 1), changeSet.mapPos(range.head, 1)) };\n });\n}\n/**\nAuto-indent the selected lines. This uses the [indentation service\nfacet](https://codemirror.net/6/docs/ref/#language.indentService) as source for auto-indent\ninformation.\n*/\nconst indentSelection = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let updated = Object.create(null);\n let context = new IndentContext(state, { overrideIndentation: start => {\n let found = updated[start];\n return found == null ? -1 : found;\n } });\n let changes = changeBySelectedLine(state, (line, changes, range) => {\n let indent = getIndentation(context, line.from);\n if (indent == null)\n return;\n if (!/\\S/.test(line.text))\n indent = 0;\n let cur = /^\\s*/.exec(line.text)[0];\n let norm = indentString(state, indent);\n if (cur != norm || range.from < line.from + cur.length) {\n updated[line.from] = indent;\n changes.push({ from: line.from, to: line.from + cur.length, insert: norm });\n }\n });\n if (!changes.changes.empty)\n dispatch(state.update(changes, { userEvent: \"indent\" }));\n return true;\n};\n/**\nAdd a [unit](https://codemirror.net/6/docs/ref/#language.indentUnit) of indentation to all selected\nlines.\n*/\nconst indentMore = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n dispatch(state.update(changeBySelectedLine(state, (line, changes) => {\n changes.push({ from: line.from, insert: state.facet(indentUnit) });\n }), { userEvent: \"input.indent\" }));\n return true;\n};\n/**\nRemove a [unit](https://codemirror.net/6/docs/ref/#language.indentUnit) of indentation from all\nselected lines.\n*/\nconst indentLess = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n dispatch(state.update(changeBySelectedLine(state, (line, changes) => {\n let space = /^\\s*/.exec(line.text)[0];\n if (!space)\n return;\n let col = countColumn(space, state.tabSize), keep = 0;\n let insert = indentString(state, Math.max(0, col - getIndentUnit(state)));\n while (keep < space.length && keep < insert.length && space.charCodeAt(keep) == insert.charCodeAt(keep))\n keep++;\n changes.push({ from: line.from + keep, to: line.from + space.length, insert: insert.slice(keep) });\n }), { userEvent: \"delete.dedent\" }));\n return true;\n};\n/**\nEnables or disables\n[tab-focus mode](https://codemirror.net/6/docs/ref/#view.EditorView.setTabFocusMode). While on, this\nprevents the editor's key bindings from capturing Tab or\nShift-Tab, making it possible for the user to move focus out of\nthe editor with the keyboard.\n*/\nconst toggleTabFocusMode = view => {\n view.setTabFocusMode();\n return true;\n};\n/**\nTemporarily enables [tab-focus\nmode](https://codemirror.net/6/docs/ref/#view.EditorView.setTabFocusMode) for two seconds or until\nanother key is pressed.\n*/\nconst temporarilySetTabFocusMode = view => {\n view.setTabFocusMode(2000);\n return true;\n};\n/**\nInsert a tab character at the cursor or, if something is selected,\nuse [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore) to indent the entire\nselection.\n*/\nconst insertTab = ({ state, dispatch }) => {\n if (state.selection.ranges.some(r => !r.empty))\n return indentMore({ state, dispatch });\n dispatch(state.update(state.replaceSelection(\"\\t\"), { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\n/**\nArray of key bindings containing the Emacs-style bindings that are\navailable on macOS by default.\n\n - Ctrl-b: [`cursorCharLeft`](https://codemirror.net/6/docs/ref/#commands.cursorCharLeft) ([`selectCharLeft`](https://codemirror.net/6/docs/ref/#commands.selectCharLeft) with Shift)\n - Ctrl-f: [`cursorCharRight`](https://codemirror.net/6/docs/ref/#commands.cursorCharRight) ([`selectCharRight`](https://codemirror.net/6/docs/ref/#commands.selectCharRight) with Shift)\n - Ctrl-p: [`cursorLineUp`](https://codemirror.net/6/docs/ref/#commands.cursorLineUp) ([`selectLineUp`](https://codemirror.net/6/docs/ref/#commands.selectLineUp) with Shift)\n - Ctrl-n: [`cursorLineDown`](https://codemirror.net/6/docs/ref/#commands.cursorLineDown) ([`selectLineDown`](https://codemirror.net/6/docs/ref/#commands.selectLineDown) with Shift)\n - Ctrl-a: [`cursorLineStart`](https://codemirror.net/6/docs/ref/#commands.cursorLineStart) ([`selectLineStart`](https://codemirror.net/6/docs/ref/#commands.selectLineStart) with Shift)\n - Ctrl-e: [`cursorLineEnd`](https://codemirror.net/6/docs/ref/#commands.cursorLineEnd) ([`selectLineEnd`](https://codemirror.net/6/docs/ref/#commands.selectLineEnd) with Shift)\n - Ctrl-d: [`deleteCharForward`](https://codemirror.net/6/docs/ref/#commands.deleteCharForward)\n - Ctrl-h: [`deleteCharBackward`](https://codemirror.net/6/docs/ref/#commands.deleteCharBackward)\n - Ctrl-k: [`deleteToLineEnd`](https://codemirror.net/6/docs/ref/#commands.deleteToLineEnd)\n - Ctrl-Alt-h: [`deleteGroupBackward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupBackward)\n - Ctrl-o: [`splitLine`](https://codemirror.net/6/docs/ref/#commands.splitLine)\n - Ctrl-t: [`transposeChars`](https://codemirror.net/6/docs/ref/#commands.transposeChars)\n - Ctrl-v: [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown)\n - Alt-v: [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp)\n*/\nconst emacsStyleKeymap = [\n { key: \"Ctrl-b\", run: cursorCharLeft, shift: selectCharLeft, preventDefault: true },\n { key: \"Ctrl-f\", run: cursorCharRight, shift: selectCharRight },\n { key: \"Ctrl-p\", run: cursorLineUp, shift: selectLineUp },\n { key: \"Ctrl-n\", run: cursorLineDown, shift: selectLineDown },\n { key: \"Ctrl-a\", run: cursorLineStart, shift: selectLineStart },\n { key: \"Ctrl-e\", run: cursorLineEnd, shift: selectLineEnd },\n { key: \"Ctrl-d\", run: deleteCharForward },\n { key: \"Ctrl-h\", run: deleteCharBackward },\n { key: \"Ctrl-k\", run: deleteToLineEnd },\n { key: \"Ctrl-Alt-h\", run: deleteGroupBackward },\n { key: \"Ctrl-o\", run: splitLine },\n { key: \"Ctrl-t\", run: transposeChars },\n { key: \"Ctrl-v\", run: cursorPageDown },\n];\n/**\nAn array of key bindings closely sticking to platform-standard or\nwidely used bindings. (This includes the bindings from\n[`emacsStyleKeymap`](https://codemirror.net/6/docs/ref/#commands.emacsStyleKeymap), with their `key`\nproperty changed to `mac`.)\n\n - ArrowLeft: [`cursorCharLeft`](https://codemirror.net/6/docs/ref/#commands.cursorCharLeft) ([`selectCharLeft`](https://codemirror.net/6/docs/ref/#commands.selectCharLeft) with Shift)\n - ArrowRight: [`cursorCharRight`](https://codemirror.net/6/docs/ref/#commands.cursorCharRight) ([`selectCharRight`](https://codemirror.net/6/docs/ref/#commands.selectCharRight) with Shift)\n - Ctrl-ArrowLeft (Alt-ArrowLeft on macOS): [`cursorGroupLeft`](https://codemirror.net/6/docs/ref/#commands.cursorGroupLeft) ([`selectGroupLeft`](https://codemirror.net/6/docs/ref/#commands.selectGroupLeft) with Shift)\n - Ctrl-ArrowRight (Alt-ArrowRight on macOS): [`cursorGroupRight`](https://codemirror.net/6/docs/ref/#commands.cursorGroupRight) ([`selectGroupRight`](https://codemirror.net/6/docs/ref/#commands.selectGroupRight) with Shift)\n - Cmd-ArrowLeft (on macOS): [`cursorLineStart`](https://codemirror.net/6/docs/ref/#commands.cursorLineStart) ([`selectLineStart`](https://codemirror.net/6/docs/ref/#commands.selectLineStart) with Shift)\n - Cmd-ArrowRight (on macOS): [`cursorLineEnd`](https://codemirror.net/6/docs/ref/#commands.cursorLineEnd) ([`selectLineEnd`](https://codemirror.net/6/docs/ref/#commands.selectLineEnd) with Shift)\n - ArrowUp: [`cursorLineUp`](https://codemirror.net/6/docs/ref/#commands.cursorLineUp) ([`selectLineUp`](https://codemirror.net/6/docs/ref/#commands.selectLineUp) with Shift)\n - ArrowDown: [`cursorLineDown`](https://codemirror.net/6/docs/ref/#commands.cursorLineDown) ([`selectLineDown`](https://codemirror.net/6/docs/ref/#commands.selectLineDown) with Shift)\n - Cmd-ArrowUp (on macOS): [`cursorDocStart`](https://codemirror.net/6/docs/ref/#commands.cursorDocStart) ([`selectDocStart`](https://codemirror.net/6/docs/ref/#commands.selectDocStart) with Shift)\n - Cmd-ArrowDown (on macOS): [`cursorDocEnd`](https://codemirror.net/6/docs/ref/#commands.cursorDocEnd) ([`selectDocEnd`](https://codemirror.net/6/docs/ref/#commands.selectDocEnd) with Shift)\n - Ctrl-ArrowUp (on macOS): [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp) ([`selectPageUp`](https://codemirror.net/6/docs/ref/#commands.selectPageUp) with Shift)\n - Ctrl-ArrowDown (on macOS): [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown) ([`selectPageDown`](https://codemirror.net/6/docs/ref/#commands.selectPageDown) with Shift)\n - PageUp: [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp) ([`selectPageUp`](https://codemirror.net/6/docs/ref/#commands.selectPageUp) with Shift)\n - PageDown: [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown) ([`selectPageDown`](https://codemirror.net/6/docs/ref/#commands.selectPageDown) with Shift)\n - Home: [`cursorLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.cursorLineBoundaryBackward) ([`selectLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.selectLineBoundaryBackward) with Shift)\n - End: [`cursorLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.cursorLineBoundaryForward) ([`selectLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.selectLineBoundaryForward) with Shift)\n - Ctrl-Home (Cmd-Home on macOS): [`cursorDocStart`](https://codemirror.net/6/docs/ref/#commands.cursorDocStart) ([`selectDocStart`](https://codemirror.net/6/docs/ref/#commands.selectDocStart) with Shift)\n - Ctrl-End (Cmd-Home on macOS): [`cursorDocEnd`](https://codemirror.net/6/docs/ref/#commands.cursorDocEnd) ([`selectDocEnd`](https://codemirror.net/6/docs/ref/#commands.selectDocEnd) with Shift)\n - Enter and Shift-Enter: [`insertNewlineAndIndent`](https://codemirror.net/6/docs/ref/#commands.insertNewlineAndIndent)\n - Ctrl-a (Cmd-a on macOS): [`selectAll`](https://codemirror.net/6/docs/ref/#commands.selectAll)\n - Backspace: [`deleteCharBackward`](https://codemirror.net/6/docs/ref/#commands.deleteCharBackward)\n - Delete: [`deleteCharForward`](https://codemirror.net/6/docs/ref/#commands.deleteCharForward)\n - Ctrl-Backspace (Alt-Backspace on macOS): [`deleteGroupBackward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupBackward)\n - Ctrl-Delete (Alt-Delete on macOS): [`deleteGroupForward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupForward)\n - Cmd-Backspace (macOS): [`deleteLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.deleteLineBoundaryBackward).\n - Cmd-Delete (macOS): [`deleteLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.deleteLineBoundaryForward).\n*/\nconst standardKeymap = /*@__PURE__*/[\n { key: \"ArrowLeft\", run: cursorCharLeft, shift: selectCharLeft, preventDefault: true },\n { key: \"Mod-ArrowLeft\", mac: \"Alt-ArrowLeft\", run: cursorGroupLeft, shift: selectGroupLeft, preventDefault: true },\n { mac: \"Cmd-ArrowLeft\", run: cursorLineBoundaryLeft, shift: selectLineBoundaryLeft, preventDefault: true },\n { key: \"ArrowRight\", run: cursorCharRight, shift: selectCharRight, preventDefault: true },\n { key: \"Mod-ArrowRight\", mac: \"Alt-ArrowRight\", run: cursorGroupRight, shift: selectGroupRight, preventDefault: true },\n { mac: \"Cmd-ArrowRight\", run: cursorLineBoundaryRight, shift: selectLineBoundaryRight, preventDefault: true },\n { key: \"ArrowUp\", run: cursorLineUp, shift: selectLineUp, preventDefault: true },\n { mac: \"Cmd-ArrowUp\", run: cursorDocStart, shift: selectDocStart },\n { mac: \"Ctrl-ArrowUp\", run: cursorPageUp, shift: selectPageUp },\n { key: \"ArrowDown\", run: cursorLineDown, shift: selectLineDown, preventDefault: true },\n { mac: \"Cmd-ArrowDown\", run: cursorDocEnd, shift: selectDocEnd },\n { mac: \"Ctrl-ArrowDown\", run: cursorPageDown, shift: selectPageDown },\n { key: \"PageUp\", run: cursorPageUp, shift: selectPageUp },\n { key: \"PageDown\", run: cursorPageDown, shift: selectPageDown },\n { key: \"Home\", run: cursorLineBoundaryBackward, shift: selectLineBoundaryBackward, preventDefault: true },\n { key: \"Mod-Home\", run: cursorDocStart, shift: selectDocStart },\n { key: \"End\", run: cursorLineBoundaryForward, shift: selectLineBoundaryForward, preventDefault: true },\n { key: \"Mod-End\", run: cursorDocEnd, shift: selectDocEnd },\n { key: \"Enter\", run: insertNewlineAndIndent, shift: insertNewlineAndIndent },\n { key: \"Mod-a\", run: selectAll },\n { key: \"Backspace\", run: deleteCharBackward, shift: deleteCharBackward, preventDefault: true },\n { key: \"Delete\", run: deleteCharForward, preventDefault: true },\n { key: \"Mod-Backspace\", mac: \"Alt-Backspace\", run: deleteGroupBackward, preventDefault: true },\n { key: \"Mod-Delete\", mac: \"Alt-Delete\", run: deleteGroupForward, preventDefault: true },\n { mac: \"Mod-Backspace\", run: deleteLineBoundaryBackward, preventDefault: true },\n { mac: \"Mod-Delete\", run: deleteLineBoundaryForward, preventDefault: true }\n].concat(/*@__PURE__*/emacsStyleKeymap.map(b => ({ mac: b.key, run: b.run, shift: b.shift })));\n/**\nThe default keymap. Includes all bindings from\n[`standardKeymap`](https://codemirror.net/6/docs/ref/#commands.standardKeymap) plus the following:\n\n- Alt-ArrowLeft (Ctrl-ArrowLeft on macOS): [`cursorSyntaxLeft`](https://codemirror.net/6/docs/ref/#commands.cursorSyntaxLeft) ([`selectSyntaxLeft`](https://codemirror.net/6/docs/ref/#commands.selectSyntaxLeft) with Shift)\n- Alt-ArrowRight (Ctrl-ArrowRight on macOS): [`cursorSyntaxRight`](https://codemirror.net/6/docs/ref/#commands.cursorSyntaxRight) ([`selectSyntaxRight`](https://codemirror.net/6/docs/ref/#commands.selectSyntaxRight) with Shift)\n- Alt-ArrowUp: [`moveLineUp`](https://codemirror.net/6/docs/ref/#commands.moveLineUp)\n- Alt-ArrowDown: [`moveLineDown`](https://codemirror.net/6/docs/ref/#commands.moveLineDown)\n- Shift-Alt-ArrowUp: [`copyLineUp`](https://codemirror.net/6/docs/ref/#commands.copyLineUp)\n- Shift-Alt-ArrowDown: [`copyLineDown`](https://codemirror.net/6/docs/ref/#commands.copyLineDown)\n- Ctrl-Alt-ArrowUp (Cmd-Alt-ArrowUp on macOS): [`addCursorAbove`](https://codemirror.net/6/docs/ref/#commands.addCursorAbove).\n- Ctrl-Alt-ArrowDown (Cmd-Alt-ArrowDown on macOS): [`addCursorBelow`](https://codemirror.net/6/docs/ref/#commands.addCursorBelow).\n- Escape: [`simplifySelection`](https://codemirror.net/6/docs/ref/#commands.simplifySelection)\n- Ctrl-Enter (Cmd-Enter on macOS): [`insertBlankLine`](https://codemirror.net/6/docs/ref/#commands.insertBlankLine)\n- Alt-l (Ctrl-l on macOS): [`selectLine`](https://codemirror.net/6/docs/ref/#commands.selectLine)\n- Ctrl-i (Cmd-i on macOS): [`selectParentSyntax`](https://codemirror.net/6/docs/ref/#commands.selectParentSyntax)\n- Ctrl-[ (Cmd-[ on macOS): [`indentLess`](https://codemirror.net/6/docs/ref/#commands.indentLess)\n- Ctrl-] (Cmd-] on macOS): [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore)\n- Ctrl-Alt-\\\\ (Cmd-Alt-\\\\ on macOS): [`indentSelection`](https://codemirror.net/6/docs/ref/#commands.indentSelection)\n- Shift-Ctrl-k (Shift-Cmd-k on macOS): [`deleteLine`](https://codemirror.net/6/docs/ref/#commands.deleteLine)\n- Shift-Ctrl-\\\\ (Shift-Cmd-\\\\ on macOS): [`cursorMatchingBracket`](https://codemirror.net/6/docs/ref/#commands.cursorMatchingBracket)\n- Ctrl-/ (Cmd-/ on macOS): [`toggleComment`](https://codemirror.net/6/docs/ref/#commands.toggleComment).\n- Shift-Alt-a: [`toggleBlockComment`](https://codemirror.net/6/docs/ref/#commands.toggleBlockComment).\n- Ctrl-m (Alt-Shift-m on macOS): [`toggleTabFocusMode`](https://codemirror.net/6/docs/ref/#commands.toggleTabFocusMode).\n*/\nconst defaultKeymap = /*@__PURE__*/[\n { key: \"Alt-ArrowLeft\", mac: \"Ctrl-ArrowLeft\", run: cursorSyntaxLeft, shift: selectSyntaxLeft },\n { key: \"Alt-ArrowRight\", mac: \"Ctrl-ArrowRight\", run: cursorSyntaxRight, shift: selectSyntaxRight },\n { key: \"Alt-ArrowUp\", run: moveLineUp },\n { key: \"Shift-Alt-ArrowUp\", run: copyLineUp },\n { key: \"Alt-ArrowDown\", run: moveLineDown },\n { key: \"Shift-Alt-ArrowDown\", run: copyLineDown },\n { key: \"Mod-Alt-ArrowUp\", run: addCursorAbove },\n { key: \"Mod-Alt-ArrowDown\", run: addCursorBelow },\n { key: \"Escape\", run: simplifySelection },\n { key: \"Mod-Enter\", run: insertBlankLine },\n { key: \"Alt-l\", mac: \"Ctrl-l\", run: selectLine },\n { key: \"Mod-i\", run: selectParentSyntax, preventDefault: true },\n { key: \"Mod-[\", run: indentLess },\n { key: \"Mod-]\", run: indentMore },\n { key: \"Mod-Alt-\\\\\", run: indentSelection },\n { key: \"Shift-Mod-k\", run: deleteLine },\n { key: \"Shift-Mod-\\\\\", run: cursorMatchingBracket },\n { key: \"Mod-/\", run: toggleComment },\n { key: \"Alt-A\", run: toggleBlockComment },\n { key: \"Ctrl-m\", mac: \"Shift-Alt-m\", run: toggleTabFocusMode },\n].concat(standardKeymap);\n/**\nA binding that binds Tab to [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore) and\nShift-Tab to [`indentLess`](https://codemirror.net/6/docs/ref/#commands.indentLess).\nPlease see the [Tab example](../../examples/tab/) before using\nthis.\n*/\nconst indentWithTab = { key: \"Tab\", run: indentMore, shift: indentLess };\n\nexport { addCursorAbove, addCursorBelow, blockComment, blockUncomment, copyLineDown, copyLineUp, cursorCharBackward, cursorCharBackwardLogical, cursorCharForward, cursorCharForwardLogical, cursorCharLeft, cursorCharRight, cursorDocEnd, cursorDocStart, cursorGroupBackward, cursorGroupForward, cursorGroupForwardWin, cursorGroupLeft, cursorGroupRight, cursorLineBoundaryBackward, cursorLineBoundaryForward, cursorLineBoundaryLeft, cursorLineBoundaryRight, cursorLineDown, cursorLineEnd, cursorLineStart, cursorLineUp, cursorMatchingBracket, cursorPageDown, cursorPageUp, cursorSubwordBackward, cursorSubwordForward, cursorSyntaxLeft, cursorSyntaxRight, defaultKeymap, deleteCharBackward, deleteCharBackwardStrict, deleteCharForward, deleteGroupBackward, deleteGroupForward, deleteGroupForwardWin, deleteLine, deleteLineBoundaryBackward, deleteLineBoundaryForward, deleteToLineEnd, deleteToLineStart, deleteTrailingWhitespace, emacsStyleKeymap, history, historyField, historyKeymap, indentLess, indentMore, indentSelection, indentWithTab, insertBlankLine, insertNewline, insertNewlineAndIndent, insertNewlineKeepIndent, insertTab, invertedEffects, isolateHistory, lineComment, lineUncomment, moveLineDown, moveLineUp, redo, redoDepth, redoSelection, selectAll, selectCharBackward, selectCharBackwardLogical, selectCharForward, selectCharForwardLogical, selectCharLeft, selectCharRight, selectDocEnd, selectDocStart, selectGroupBackward, selectGroupForward, selectGroupForwardWin, selectGroupLeft, selectGroupRight, selectLine, selectLineBoundaryBackward, selectLineBoundaryForward, selectLineBoundaryLeft, selectLineBoundaryRight, selectLineDown, selectLineEnd, selectLineStart, selectLineUp, selectMatchingBracket, selectPageDown, selectPageUp, selectParentSyntax, selectSubwordBackward, selectSubwordForward, selectSyntaxLeft, selectSyntaxRight, simplifySelection, splitLine, standardKeymap, temporarilySetTabFocusMode, toggleBlockComment, toggleBlockCommentByLine, toggleComment, toggleLineComment, toggleTabFocusMode, transposeChars, undo, undoDepth, undoSelection };\n","import { showDialog, EditorView, Decoration, ViewPlugin, showPanel, runScopeHandlers, getPanel } from '@codemirror/view';\nimport { codePointAt, fromCodePoint, codePointSize, EditorSelection, Facet, combineConfig, CharCategory, StateEffect, StateField, RangeSetBuilder, Prec, EditorState, findClusterBreak } from '@codemirror/state';\nimport elt from 'crelt';\n\nconst basicNormalize = typeof String.prototype.normalize == \"function\"\n ? x => x.normalize(\"NFKD\") : x => x;\n/**\nA search cursor provides an iterator over text matches in a\ndocument.\n*/\nclass SearchCursor {\n /**\n Create a text cursor. The query is the search string, `from` to\n `to` provides the region to search.\n \n When `normalize` is given, it will be called, on both the query\n string and the content it is matched against, before comparing.\n You can, for example, create a case-insensitive search by\n passing `s => s.toLowerCase()`.\n \n Text is always normalized with\n [`.normalize(\"NFKD\")`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize)\n (when supported).\n */\n constructor(text, query, from = 0, to = text.length, normalize, test) {\n this.test = test;\n /**\n The current match (only holds a meaningful value after\n [`next`](https://codemirror.net/6/docs/ref/#search.SearchCursor.next) has been called and when\n `done` is false).\n */\n this.value = { from: 0, to: 0 };\n /**\n Whether the end of the iterated region has been reached.\n */\n this.done = false;\n this.matches = [];\n this.buffer = \"\";\n this.bufferPos = 0;\n this.iter = text.iterRange(from, to);\n this.bufferStart = from;\n this.normalize = normalize ? x => normalize(basicNormalize(x)) : basicNormalize;\n this.query = this.normalize(query);\n }\n peek() {\n if (this.bufferPos == this.buffer.length) {\n this.bufferStart += this.buffer.length;\n this.iter.next();\n if (this.iter.done)\n return -1;\n this.bufferPos = 0;\n this.buffer = this.iter.value;\n }\n return codePointAt(this.buffer, this.bufferPos);\n }\n /**\n Look for the next match. Updates the iterator's\n [`value`](https://codemirror.net/6/docs/ref/#search.SearchCursor.value) and\n [`done`](https://codemirror.net/6/docs/ref/#search.SearchCursor.done) properties. Should be called\n at least once before using the cursor.\n */\n next() {\n while (this.matches.length)\n this.matches.pop();\n return this.nextOverlapping();\n }\n /**\n The `next` method will ignore matches that partially overlap a\n previous match. This method behaves like `next`, but includes\n such matches.\n */\n nextOverlapping() {\n for (;;) {\n let next = this.peek();\n if (next < 0) {\n this.done = true;\n return this;\n }\n let str = fromCodePoint(next), start = this.bufferStart + this.bufferPos;\n this.bufferPos += codePointSize(next);\n let norm = this.normalize(str);\n if (norm.length)\n for (let i = 0, pos = start;; i++) {\n let code = norm.charCodeAt(i);\n let match = this.match(code, pos, this.bufferPos + this.bufferStart);\n if (i == norm.length - 1) {\n if (match) {\n this.value = match;\n return this;\n }\n break;\n }\n if (pos == start && i < str.length && str.charCodeAt(i) == code)\n pos++;\n }\n }\n }\n match(code, pos, end) {\n let match = null;\n for (let i = 0; i < this.matches.length; i += 2) {\n let index = this.matches[i], keep = false;\n if (this.query.charCodeAt(index) == code) {\n if (index == this.query.length - 1) {\n match = { from: this.matches[i + 1], to: end };\n }\n else {\n this.matches[i]++;\n keep = true;\n }\n }\n if (!keep) {\n this.matches.splice(i, 2);\n i -= 2;\n }\n }\n if (this.query.charCodeAt(0) == code) {\n if (this.query.length == 1)\n match = { from: pos, to: end };\n else\n this.matches.push(1, pos);\n }\n if (match && this.test && !this.test(match.from, match.to, this.buffer, this.bufferStart))\n match = null;\n return match;\n }\n}\nif (typeof Symbol != \"undefined\")\n SearchCursor.prototype[Symbol.iterator] = function () { return this; };\n\nconst empty = { from: -1, to: -1, match: /*@__PURE__*//.*/.exec(\"\") };\nconst baseFlags = \"gm\" + (/x/.unicode == null ? \"\" : \"u\");\n/**\nThis class is similar to [`SearchCursor`](https://codemirror.net/6/docs/ref/#search.SearchCursor)\nbut searches for a regular expression pattern instead of a plain\nstring.\n*/\nclass RegExpCursor {\n /**\n Create a cursor that will search the given range in the given\n document. `query` should be the raw pattern (as you'd pass it to\n `new RegExp`).\n */\n constructor(text, query, options, from = 0, to = text.length) {\n this.text = text;\n this.to = to;\n this.curLine = \"\";\n /**\n Set to `true` when the cursor has reached the end of the search\n range.\n */\n this.done = false;\n /**\n Will contain an object with the extent of the match and the\n match object when [`next`](https://codemirror.net/6/docs/ref/#search.RegExpCursor.next)\n sucessfully finds a match.\n */\n this.value = empty;\n if (/\\\\[sWDnr]|\\n|\\r|\\[\\^/.test(query))\n return new MultilineRegExpCursor(text, query, options, from, to);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.test = options === null || options === void 0 ? void 0 : options.test;\n this.iter = text.iter();\n let startLine = text.lineAt(from);\n this.curLineStart = startLine.from;\n this.matchPos = toCharEnd(text, from);\n this.getLine(this.curLineStart);\n }\n getLine(skip) {\n this.iter.next(skip);\n if (this.iter.lineBreak) {\n this.curLine = \"\";\n }\n else {\n this.curLine = this.iter.value;\n if (this.curLineStart + this.curLine.length > this.to)\n this.curLine = this.curLine.slice(0, this.to - this.curLineStart);\n this.iter.next();\n }\n }\n nextLine() {\n this.curLineStart = this.curLineStart + this.curLine.length + 1;\n if (this.curLineStart > this.to)\n this.curLine = \"\";\n else\n this.getLine(0);\n }\n /**\n Move to the next match, if there is one.\n */\n next() {\n for (let off = this.matchPos - this.curLineStart;;) {\n this.re.lastIndex = off;\n let match = this.matchPos <= this.to && this.re.exec(this.curLine);\n if (match) {\n let from = this.curLineStart + match.index, to = from + match[0].length;\n this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));\n if (from == this.curLineStart + this.curLine.length)\n this.nextLine();\n if ((from < to || from > this.value.to) && (!this.test || this.test(from, to, match))) {\n this.value = { from, to, match };\n return this;\n }\n off = this.matchPos - this.curLineStart;\n }\n else if (this.curLineStart + this.curLine.length < this.to) {\n this.nextLine();\n off = 0;\n }\n else {\n this.done = true;\n return this;\n }\n }\n }\n}\nconst flattened = /*@__PURE__*/new WeakMap();\n// Reusable (partially) flattened document strings\nclass FlattenedDoc {\n constructor(from, text) {\n this.from = from;\n this.text = text;\n }\n get to() { return this.from + this.text.length; }\n static get(doc, from, to) {\n let cached = flattened.get(doc);\n if (!cached || cached.from >= to || cached.to <= from) {\n let flat = new FlattenedDoc(from, doc.sliceString(from, to));\n flattened.set(doc, flat);\n return flat;\n }\n if (cached.from == from && cached.to == to)\n return cached;\n let { text, from: cachedFrom } = cached;\n if (cachedFrom > from) {\n text = doc.sliceString(from, cachedFrom) + text;\n cachedFrom = from;\n }\n if (cached.to < to)\n text += doc.sliceString(cached.to, to);\n flattened.set(doc, new FlattenedDoc(cachedFrom, text));\n return new FlattenedDoc(from, text.slice(from - cachedFrom, to - cachedFrom));\n }\n}\nclass MultilineRegExpCursor {\n constructor(text, query, options, from, to) {\n this.text = text;\n this.to = to;\n this.done = false;\n this.value = empty;\n this.matchPos = toCharEnd(text, from);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.test = options === null || options === void 0 ? void 0 : options.test;\n this.flat = FlattenedDoc.get(text, from, this.chunkEnd(from + 5000 /* Chunk.Base */));\n }\n chunkEnd(pos) {\n return pos >= this.to ? this.to : this.text.lineAt(pos).to;\n }\n next() {\n for (;;) {\n let off = this.re.lastIndex = this.matchPos - this.flat.from;\n let match = this.re.exec(this.flat.text);\n // Skip empty matches directly after the last match\n if (match && !match[0] && match.index == off) {\n this.re.lastIndex = off + 1;\n match = this.re.exec(this.flat.text);\n }\n if (match) {\n let from = this.flat.from + match.index, to = from + match[0].length;\n // If a match goes almost to the end of a noncomplete chunk, try\n // again, since it'll likely be able to match more\n if ((this.flat.to >= this.to || match.index + match[0].length <= this.flat.text.length - 10) &&\n (!this.test || this.test(from, to, match))) {\n this.value = { from, to, match };\n this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));\n return this;\n }\n }\n if (this.flat.to == this.to) {\n this.done = true;\n return this;\n }\n // Grow the flattened doc\n this.flat = FlattenedDoc.get(this.text, this.flat.from, this.chunkEnd(this.flat.from + this.flat.text.length * 2));\n }\n }\n}\nif (typeof Symbol != \"undefined\") {\n RegExpCursor.prototype[Symbol.iterator] = MultilineRegExpCursor.prototype[Symbol.iterator] =\n function () { return this; };\n}\nfunction validRegExp(source) {\n try {\n new RegExp(source, baseFlags);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction toCharEnd(text, pos) {\n if (pos >= text.length)\n return pos;\n let line = text.lineAt(pos), next;\n while (pos < line.to && (next = line.text.charCodeAt(pos - line.from)) >= 0xDC00 && next < 0xE000)\n pos++;\n return pos;\n}\n\n/**\nCommand that shows a dialog asking the user for a line number, and\nwhen a valid position is provided, moves the cursor to that line.\n\nSupports line numbers, relative line offsets prefixed with `+` or\n`-`, document percentages suffixed with `%`, and an optional\ncolumn position by adding `:` and a second number after the line\nnumber.\n*/\nconst gotoLine = view => {\n let { state } = view;\n let line = String(state.doc.lineAt(view.state.selection.main.head).number);\n let { close, result } = showDialog(view, {\n label: state.phrase(\"Go to line\"),\n input: { type: \"text\", name: \"line\", value: line },\n focus: true,\n submitLabel: state.phrase(\"go\"),\n });\n result.then(form => {\n let match = form && /^([+-])?(\\d+)?(:\\d+)?(%)?$/.exec(form.elements[\"line\"].value);\n if (!match) {\n view.dispatch({ effects: close });\n return;\n }\n let startLine = state.doc.lineAt(state.selection.main.head);\n let [, sign, ln, cl, percent] = match;\n let col = cl ? +cl.slice(1) : 0;\n let line = ln ? +ln : startLine.number;\n if (ln && percent) {\n let pc = line / 100;\n if (sign)\n pc = pc * (sign == \"-\" ? -1 : 1) + (startLine.number / state.doc.lines);\n line = Math.round(state.doc.lines * pc);\n }\n else if (ln && sign) {\n line = line * (sign == \"-\" ? -1 : 1) + startLine.number;\n }\n let docLine = state.doc.line(Math.max(1, Math.min(state.doc.lines, line)));\n let selection = EditorSelection.cursor(docLine.from + Math.max(0, Math.min(col, docLine.length)));\n view.dispatch({\n effects: [close, EditorView.scrollIntoView(selection.from, { y: 'center' })],\n selection,\n });\n });\n return true;\n};\n\nconst defaultHighlightOptions = {\n highlightWordAroundCursor: false,\n minSelectionLength: 1,\n maxMatches: 100,\n wholeWords: false\n};\nconst highlightConfig = /*@__PURE__*/Facet.define({\n combine(options) {\n return combineConfig(options, defaultHighlightOptions, {\n highlightWordAroundCursor: (a, b) => a || b,\n minSelectionLength: Math.min,\n maxMatches: Math.min\n });\n }\n});\n/**\nThis extension highlights text that matches the selection. It uses\nthe `\"cm-selectionMatch\"` class for the highlighting. When\n`highlightWordAroundCursor` is enabled, the word at the cursor\nitself will be highlighted with `\"cm-selectionMatch-main\"`.\n*/\nfunction highlightSelectionMatches(options) {\n let ext = [defaultTheme, matchHighlighter];\n if (options)\n ext.push(highlightConfig.of(options));\n return ext;\n}\nconst matchDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-selectionMatch\" });\nconst mainMatchDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-selectionMatch cm-selectionMatch-main\" });\n// Whether the characters directly outside the given positions are non-word characters\nfunction insideWordBoundaries(check, state, from, to) {\n return (from == 0 || check(state.sliceDoc(from - 1, from)) != CharCategory.Word) &&\n (to == state.doc.length || check(state.sliceDoc(to, to + 1)) != CharCategory.Word);\n}\n// Whether the characters directly at the given positions are word characters\nfunction insideWord(check, state, from, to) {\n return check(state.sliceDoc(from, from + 1)) == CharCategory.Word\n && check(state.sliceDoc(to - 1, to)) == CharCategory.Word;\n}\nconst matchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.decorations = this.getDeco(view);\n }\n update(update) {\n if (update.selectionSet || update.docChanged || update.viewportChanged)\n this.decorations = this.getDeco(update.view);\n }\n getDeco(view) {\n let conf = view.state.facet(highlightConfig);\n let { state } = view, sel = state.selection;\n if (sel.ranges.length > 1)\n return Decoration.none;\n let range = sel.main, query, check = null;\n if (range.empty) {\n if (!conf.highlightWordAroundCursor)\n return Decoration.none;\n let word = state.wordAt(range.head);\n if (!word)\n return Decoration.none;\n check = state.charCategorizer(range.head);\n query = state.sliceDoc(word.from, word.to);\n }\n else {\n let len = range.to - range.from;\n if (len < conf.minSelectionLength || len > 200)\n return Decoration.none;\n if (conf.wholeWords) {\n query = state.sliceDoc(range.from, range.to); // TODO: allow and include leading/trailing space?\n check = state.charCategorizer(range.head);\n if (!(insideWordBoundaries(check, state, range.from, range.to) &&\n insideWord(check, state, range.from, range.to)))\n return Decoration.none;\n }\n else {\n query = state.sliceDoc(range.from, range.to);\n if (!query)\n return Decoration.none;\n }\n }\n let deco = [];\n for (let part of view.visibleRanges) {\n let cursor = new SearchCursor(state.doc, query, part.from, part.to);\n while (!cursor.next().done) {\n let { from, to } = cursor.value;\n if (!check || insideWordBoundaries(check, state, from, to)) {\n if (range.empty && from <= range.from && to >= range.to)\n deco.push(mainMatchDeco.range(from, to));\n else if (from >= range.to || to <= range.from)\n deco.push(matchDeco.range(from, to));\n if (deco.length > conf.maxMatches)\n return Decoration.none;\n }\n }\n }\n return Decoration.set(deco);\n }\n}, {\n decorations: v => v.decorations\n});\nconst defaultTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-selectionMatch\": { backgroundColor: \"#99ff7780\" },\n \".cm-searchMatch .cm-selectionMatch\": { backgroundColor: \"transparent\" }\n});\n// Select the words around the cursors.\nconst selectWord = ({ state, dispatch }) => {\n let { selection } = state;\n let newSel = EditorSelection.create(selection.ranges.map(range => state.wordAt(range.head) || EditorSelection.cursor(range.head)), selection.mainIndex);\n if (newSel.eq(selection))\n return false;\n dispatch(state.update({ selection: newSel }));\n return true;\n};\n// Find next occurrence of query relative to last cursor. Wrap around\n// the document if there are no more matches.\nfunction findNextOccurrence(state, query) {\n let { main, ranges } = state.selection;\n let word = state.wordAt(main.head), fullWord = word && word.from == main.from && word.to == main.to;\n for (let cycled = false, cursor = new SearchCursor(state.doc, query, ranges[ranges.length - 1].to);;) {\n cursor.next();\n if (cursor.done) {\n if (cycled)\n return null;\n cursor = new SearchCursor(state.doc, query, 0, Math.max(0, ranges[ranges.length - 1].from - 1));\n cycled = true;\n }\n else {\n if (cycled && ranges.some(r => r.from == cursor.value.from))\n continue;\n if (fullWord) {\n let word = state.wordAt(cursor.value.from);\n if (!word || word.from != cursor.value.from || word.to != cursor.value.to)\n continue;\n }\n return cursor.value;\n }\n }\n}\n/**\nSelect next occurrence of the current selection. Expand selection\nto the surrounding word when the selection is empty.\n*/\nconst selectNextOccurrence = ({ state, dispatch }) => {\n let { ranges } = state.selection;\n if (ranges.some(sel => sel.from === sel.to))\n return selectWord({ state, dispatch });\n let searchedText = state.sliceDoc(ranges[0].from, ranges[0].to);\n if (state.selection.ranges.some(r => state.sliceDoc(r.from, r.to) != searchedText))\n return false;\n let range = findNextOccurrence(state, searchedText);\n if (!range)\n return false;\n dispatch(state.update({\n selection: state.selection.addRange(EditorSelection.range(range.from, range.to), false),\n effects: EditorView.scrollIntoView(range.to)\n }));\n return true;\n};\n\nconst searchConfigFacet = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n top: false,\n caseSensitive: false,\n literal: false,\n regexp: false,\n wholeWord: false,\n createPanel: view => new SearchPanel(view),\n scrollToMatch: range => EditorView.scrollIntoView(range)\n });\n }\n});\n/**\nAdd search state to the editor configuration, and optionally\nconfigure the search extension.\n([`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) will automatically\nenable this if it isn't already on).\n*/\nfunction search(config) {\n return config ? [searchConfigFacet.of(config), searchExtensions] : searchExtensions;\n}\n/**\nA search query. Part of the editor's search state.\n*/\nclass SearchQuery {\n /**\n Create a query object.\n */\n constructor(config) {\n this.search = config.search;\n this.caseSensitive = !!config.caseSensitive;\n this.literal = !!config.literal;\n this.regexp = !!config.regexp;\n this.replace = config.replace || \"\";\n this.valid = !!this.search && (!this.regexp || validRegExp(this.search));\n this.unquoted = this.unquote(this.search);\n this.wholeWord = !!config.wholeWord;\n this.test = config.test;\n }\n /**\n @internal\n */\n unquote(text) {\n return this.literal ? text :\n text.replace(/\\\\([nrt\\\\])/g, (_, ch) => ch == \"n\" ? \"\\n\" : ch == \"r\" ? \"\\r\" : ch == \"t\" ? \"\\t\" : \"\\\\\");\n }\n /**\n Compare this query to another query.\n */\n eq(other) {\n return this.search == other.search && this.replace == other.replace &&\n this.caseSensitive == other.caseSensitive && this.regexp == other.regexp &&\n this.wholeWord == other.wholeWord && this.test == other.test;\n }\n /**\n @internal\n */\n create() {\n return this.regexp ? new RegExpQuery(this) : new StringQuery(this);\n }\n /**\n Get a search cursor for this query, searching through the given\n range in the given state.\n */\n getCursor(state, from = 0, to) {\n let st = state.doc ? state : EditorState.create({ doc: state });\n if (to == null)\n to = st.doc.length;\n return this.regexp ? regexpCursor(this, st, from, to) : stringCursor(this, st, from, to);\n }\n}\nclass QueryType {\n constructor(spec) {\n this.spec = spec;\n }\n}\nfunction wrapStringTest(test, state, inner) {\n return (from, to, buffer, bufferPos) => {\n if (inner && !inner(from, to, buffer, bufferPos))\n return false;\n let match = from >= bufferPos && to <= bufferPos + buffer.length\n ? buffer.slice(from - bufferPos, to - bufferPos)\n : state.doc.sliceString(from, to);\n return test(match, state, from, to);\n };\n}\nfunction stringCursor(spec, state, from, to) {\n let test;\n if (spec.wholeWord)\n test = stringWordTest(state.doc, state.charCategorizer(state.selection.main.head));\n if (spec.test)\n test = wrapStringTest(spec.test, state, test);\n return new SearchCursor(state.doc, spec.unquoted, from, to, spec.caseSensitive ? undefined : x => x.toLowerCase(), test);\n}\nfunction stringWordTest(doc, categorizer) {\n return (from, to, buf, bufPos) => {\n if (bufPos > from || bufPos + buf.length < to) {\n bufPos = Math.max(0, from - 2);\n buf = doc.sliceString(bufPos, Math.min(doc.length, to + 2));\n }\n return (categorizer(charBefore(buf, from - bufPos)) != CharCategory.Word ||\n categorizer(charAfter(buf, from - bufPos)) != CharCategory.Word) &&\n (categorizer(charAfter(buf, to - bufPos)) != CharCategory.Word ||\n categorizer(charBefore(buf, to - bufPos)) != CharCategory.Word);\n };\n}\nclass StringQuery extends QueryType {\n constructor(spec) {\n super(spec);\n }\n nextMatch(state, curFrom, curTo) {\n let cursor = stringCursor(this.spec, state, curTo, state.doc.length).nextOverlapping();\n if (cursor.done) {\n let end = Math.min(state.doc.length, curFrom + this.spec.unquoted.length);\n cursor = stringCursor(this.spec, state, 0, end).nextOverlapping();\n }\n return cursor.done || cursor.value.from == curFrom && cursor.value.to == curTo ? null : cursor.value;\n }\n // Searching in reverse is, rather than implementing an inverted search\n // cursor, done by scanning chunk after chunk forward.\n prevMatchInRange(state, from, to) {\n for (let pos = to;;) {\n let start = Math.max(from, pos - 10000 /* FindPrev.ChunkSize */ - this.spec.unquoted.length);\n let cursor = stringCursor(this.spec, state, start, pos), range = null;\n while (!cursor.nextOverlapping().done)\n range = cursor.value;\n if (range)\n return range;\n if (start == from)\n return null;\n pos -= 10000 /* FindPrev.ChunkSize */;\n }\n }\n prevMatch(state, curFrom, curTo) {\n let found = this.prevMatchInRange(state, 0, curFrom);\n if (!found)\n found = this.prevMatchInRange(state, Math.max(0, curTo - this.spec.unquoted.length), state.doc.length);\n return found && (found.from != curFrom || found.to != curTo) ? found : null;\n }\n getReplacement(_result) { return this.spec.unquote(this.spec.replace); }\n matchAll(state, limit) {\n let cursor = stringCursor(this.spec, state, 0, state.doc.length), ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit)\n return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(state, from, to, add) {\n let cursor = stringCursor(this.spec, state, Math.max(0, from - this.spec.unquoted.length), Math.min(to + this.spec.unquoted.length, state.doc.length));\n while (!cursor.next().done)\n add(cursor.value.from, cursor.value.to);\n }\n}\nfunction wrapRegexpTest(test, state, inner) {\n return (from, to, match) => {\n return (!inner || inner(from, to, match)) && test(match[0], state, from, to);\n };\n}\nfunction regexpCursor(spec, state, from, to) {\n let test;\n if (spec.wholeWord)\n test = regexpWordTest(state.charCategorizer(state.selection.main.head));\n if (spec.test)\n test = wrapRegexpTest(spec.test, state, test);\n return new RegExpCursor(state.doc, spec.search, { ignoreCase: !spec.caseSensitive, test }, from, to);\n}\nfunction charBefore(str, index) {\n return str.slice(findClusterBreak(str, index, false), index);\n}\nfunction charAfter(str, index) {\n return str.slice(index, findClusterBreak(str, index));\n}\nfunction regexpWordTest(categorizer) {\n return (_from, _to, match) => !match[0].length ||\n (categorizer(charBefore(match.input, match.index)) != CharCategory.Word ||\n categorizer(charAfter(match.input, match.index)) != CharCategory.Word) &&\n (categorizer(charAfter(match.input, match.index + match[0].length)) != CharCategory.Word ||\n categorizer(charBefore(match.input, match.index + match[0].length)) != CharCategory.Word);\n}\nclass RegExpQuery extends QueryType {\n nextMatch(state, curFrom, curTo) {\n let cursor = regexpCursor(this.spec, state, curTo, state.doc.length).next();\n if (cursor.done)\n cursor = regexpCursor(this.spec, state, 0, curFrom).next();\n return cursor.done ? null : cursor.value;\n }\n prevMatchInRange(state, from, to) {\n for (let size = 1;; size++) {\n let start = Math.max(from, to - size * 10000 /* FindPrev.ChunkSize */);\n let cursor = regexpCursor(this.spec, state, start, to), range = null;\n while (!cursor.next().done)\n range = cursor.value;\n if (range && (start == from || range.from > start + 10))\n return range;\n if (start == from)\n return null;\n }\n }\n prevMatch(state, curFrom, curTo) {\n return this.prevMatchInRange(state, 0, curFrom) ||\n this.prevMatchInRange(state, curTo, state.doc.length);\n }\n getReplacement(result) {\n return this.spec.unquote(this.spec.replace).replace(/\\$([$&]|\\d+)/g, (m, i) => {\n if (i == \"&\")\n return result.match[0];\n if (i == \"$\")\n return \"$\";\n for (let l = i.length; l > 0; l--) {\n let n = +i.slice(0, l);\n if (n > 0 && n < result.match.length)\n return result.match[n] + i.slice(l);\n }\n return m;\n });\n }\n matchAll(state, limit) {\n let cursor = regexpCursor(this.spec, state, 0, state.doc.length), ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit)\n return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(state, from, to, add) {\n let cursor = regexpCursor(this.spec, state, Math.max(0, from - 250 /* RegExp.HighlightMargin */), Math.min(to + 250 /* RegExp.HighlightMargin */, state.doc.length));\n while (!cursor.next().done)\n add(cursor.value.from, cursor.value.to);\n }\n}\n/**\nA state effect that updates the current search query. Note that\nthis only has an effect if the search state has been initialized\n(by including [`search`](https://codemirror.net/6/docs/ref/#search.search) in your configuration or\nby running [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) at least\nonce).\n*/\nconst setSearchQuery = /*@__PURE__*/StateEffect.define();\nconst togglePanel = /*@__PURE__*/StateEffect.define();\nconst searchState = /*@__PURE__*/StateField.define({\n create(state) {\n return new SearchState(defaultQuery(state).create(), null);\n },\n update(value, tr) {\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery))\n value = new SearchState(effect.value.create(), value.panel);\n else if (effect.is(togglePanel))\n value = new SearchState(value.query, effect.value ? createSearchPanel : null);\n }\n return value;\n },\n provide: f => showPanel.from(f, val => val.panel)\n});\n/**\nGet the current search query from an editor state.\n*/\nfunction getSearchQuery(state) {\n let curState = state.field(searchState, false);\n return curState ? curState.query.spec : defaultQuery(state);\n}\n/**\nQuery whether the search panel is open in the given editor state.\n*/\nfunction searchPanelOpen(state) {\n var _a;\n return ((_a = state.field(searchState, false)) === null || _a === void 0 ? void 0 : _a.panel) != null;\n}\nclass SearchState {\n constructor(query, panel) {\n this.query = query;\n this.panel = panel;\n }\n}\nconst matchMark = /*@__PURE__*/Decoration.mark({ class: \"cm-searchMatch\" }), selectedMatchMark = /*@__PURE__*/Decoration.mark({ class: \"cm-searchMatch cm-searchMatch-selected\" });\nconst searchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.decorations = this.highlight(view.state.field(searchState));\n }\n update(update) {\n let state = update.state.field(searchState);\n if (state != update.startState.field(searchState) || update.docChanged || update.selectionSet || update.viewportChanged)\n this.decorations = this.highlight(state);\n }\n highlight({ query, panel }) {\n if (!panel || !query.spec.valid)\n return Decoration.none;\n let { view } = this;\n let builder = new RangeSetBuilder();\n for (let i = 0, ranges = view.visibleRanges, l = ranges.length; i < l; i++) {\n let { from, to } = ranges[i];\n while (i < l - 1 && to > ranges[i + 1].from - 2 * 250 /* RegExp.HighlightMargin */)\n to = ranges[++i].to;\n query.highlight(view.state, from, to, (from, to) => {\n let selected = view.state.selection.ranges.some(r => r.from == from && r.to == to);\n builder.add(from, to, selected ? selectedMatchMark : matchMark);\n });\n }\n return builder.finish();\n }\n}, {\n decorations: v => v.decorations\n});\nfunction searchCommand(f) {\n return view => {\n let state = view.state.field(searchState, false);\n return state && state.query.spec.valid ? f(view, state) : openSearchPanel(view);\n };\n}\n/**\nOpen the search panel if it isn't already open, and move the\nselection to the first match after the current main selection.\nWill wrap around to the start of the document when it reaches the\nend.\n*/\nconst findNext = /*@__PURE__*/searchCommand((view, { query }) => {\n let { to } = view.state.selection.main;\n let next = query.nextMatch(view.state, to, to);\n if (!next)\n return false;\n let selection = EditorSelection.single(next.from, next.to);\n let config = view.state.facet(searchConfigFacet);\n view.dispatch({\n selection,\n effects: [announceMatch(view, next), config.scrollToMatch(selection.main, view)],\n userEvent: \"select.search\"\n });\n selectSearchInput(view);\n return true;\n});\n/**\nMove the selection to the previous instance of the search query,\nbefore the current main selection. Will wrap past the start\nof the document to start searching at the end again.\n*/\nconst findPrevious = /*@__PURE__*/searchCommand((view, { query }) => {\n let { state } = view, { from } = state.selection.main;\n let prev = query.prevMatch(state, from, from);\n if (!prev)\n return false;\n let selection = EditorSelection.single(prev.from, prev.to);\n let config = view.state.facet(searchConfigFacet);\n view.dispatch({\n selection,\n effects: [announceMatch(view, prev), config.scrollToMatch(selection.main, view)],\n userEvent: \"select.search\"\n });\n selectSearchInput(view);\n return true;\n});\n/**\nSelect all instances of the search query.\n*/\nconst selectMatches = /*@__PURE__*/searchCommand((view, { query }) => {\n let ranges = query.matchAll(view.state, 1000);\n if (!ranges || !ranges.length)\n return false;\n view.dispatch({\n selection: EditorSelection.create(ranges.map(r => EditorSelection.range(r.from, r.to))),\n userEvent: \"select.search.matches\"\n });\n return true;\n});\n/**\nSelect all instances of the currently selected text.\n*/\nconst selectSelectionMatches = ({ state, dispatch }) => {\n let sel = state.selection;\n if (sel.ranges.length > 1 || sel.main.empty)\n return false;\n let { from, to } = sel.main;\n let ranges = [], main = 0;\n for (let cur = new SearchCursor(state.doc, state.sliceDoc(from, to)); !cur.next().done;) {\n if (ranges.length > 1000)\n return false;\n if (cur.value.from == from)\n main = ranges.length;\n ranges.push(EditorSelection.range(cur.value.from, cur.value.to));\n }\n dispatch(state.update({\n selection: EditorSelection.create(ranges, main),\n userEvent: \"select.search.matches\"\n }));\n return true;\n};\n/**\nReplace the current match of the search query.\n*/\nconst replaceNext = /*@__PURE__*/searchCommand((view, { query }) => {\n let { state } = view, { from, to } = state.selection.main;\n if (state.readOnly)\n return false;\n let match = query.nextMatch(state, from, from);\n if (!match)\n return false;\n let next = match;\n let changes = [], selection, replacement;\n let effects = [];\n if (next.from == from && next.to == to) {\n replacement = state.toText(query.getReplacement(next));\n changes.push({ from: next.from, to: next.to, insert: replacement });\n next = query.nextMatch(state, next.from, next.to);\n effects.push(EditorView.announce.of(state.phrase(\"replaced match on line $\", state.doc.lineAt(from).number) + \".\"));\n }\n let changeSet = view.state.changes(changes);\n if (next) {\n selection = EditorSelection.single(next.from, next.to).map(changeSet);\n effects.push(announceMatch(view, next));\n effects.push(state.facet(searchConfigFacet).scrollToMatch(selection.main, view));\n }\n view.dispatch({\n changes: changeSet,\n selection,\n effects,\n userEvent: \"input.replace\"\n });\n return true;\n});\n/**\nReplace all instances of the search query with the given\nreplacement.\n*/\nconst replaceAll = /*@__PURE__*/searchCommand((view, { query }) => {\n if (view.state.readOnly)\n return false;\n let changes = query.matchAll(view.state, 1e9).map(match => {\n let { from, to } = match;\n return { from, to, insert: query.getReplacement(match) };\n });\n if (!changes.length)\n return false;\n let announceText = view.state.phrase(\"replaced $ matches\", changes.length) + \".\";\n view.dispatch({\n changes,\n effects: EditorView.announce.of(announceText),\n userEvent: \"input.replace.all\"\n });\n return true;\n});\nfunction createSearchPanel(view) {\n return view.state.facet(searchConfigFacet).createPanel(view);\n}\nfunction defaultQuery(state, fallback) {\n var _a, _b, _c, _d, _e;\n let sel = state.selection.main;\n let selText = sel.empty || sel.to > sel.from + 100 ? \"\" : state.sliceDoc(sel.from, sel.to);\n if (fallback && !selText)\n return fallback;\n let config = state.facet(searchConfigFacet);\n return new SearchQuery({\n search: ((_a = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _a !== void 0 ? _a : config.literal) ? selText : selText.replace(/\\n/g, \"\\\\n\"),\n caseSensitive: (_b = fallback === null || fallback === void 0 ? void 0 : fallback.caseSensitive) !== null && _b !== void 0 ? _b : config.caseSensitive,\n literal: (_c = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _c !== void 0 ? _c : config.literal,\n regexp: (_d = fallback === null || fallback === void 0 ? void 0 : fallback.regexp) !== null && _d !== void 0 ? _d : config.regexp,\n wholeWord: (_e = fallback === null || fallback === void 0 ? void 0 : fallback.wholeWord) !== null && _e !== void 0 ? _e : config.wholeWord\n });\n}\nfunction getSearchInput(view) {\n let panel = getPanel(view, createSearchPanel);\n return panel && panel.dom.querySelector(\"[main-field]\");\n}\nfunction selectSearchInput(view) {\n let input = getSearchInput(view);\n if (input && input == view.root.activeElement)\n input.select();\n}\n/**\nMake sure the search panel is open and focused.\n*/\nconst openSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (state && state.panel) {\n let searchInput = getSearchInput(view);\n if (searchInput && searchInput != view.root.activeElement) {\n let query = defaultQuery(view.state, state.query.spec);\n if (query.valid)\n view.dispatch({ effects: setSearchQuery.of(query) });\n searchInput.focus();\n searchInput.select();\n }\n }\n else {\n view.dispatch({ effects: [\n togglePanel.of(true),\n state ? setSearchQuery.of(defaultQuery(view.state, state.query.spec)) : StateEffect.appendConfig.of(searchExtensions)\n ] });\n }\n return true;\n};\n/**\nClose the search panel.\n*/\nconst closeSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (!state || !state.panel)\n return false;\n let panel = getPanel(view, createSearchPanel);\n if (panel && panel.dom.contains(view.root.activeElement))\n view.focus();\n view.dispatch({ effects: togglePanel.of(false) });\n return true;\n};\n/**\nDefault search-related key bindings.\n\n - Mod-f: [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel)\n - F3, Mod-g: [`findNext`](https://codemirror.net/6/docs/ref/#search.findNext)\n - Shift-F3, Shift-Mod-g: [`findPrevious`](https://codemirror.net/6/docs/ref/#search.findPrevious)\n - Mod-Alt-g: [`gotoLine`](https://codemirror.net/6/docs/ref/#search.gotoLine)\n - Mod-d: [`selectNextOccurrence`](https://codemirror.net/6/docs/ref/#search.selectNextOccurrence)\n*/\nconst searchKeymap = [\n { key: \"Mod-f\", run: openSearchPanel, scope: \"editor search-panel\" },\n { key: \"F3\", run: findNext, shift: findPrevious, scope: \"editor search-panel\", preventDefault: true },\n { key: \"Mod-g\", run: findNext, shift: findPrevious, scope: \"editor search-panel\", preventDefault: true },\n { key: \"Escape\", run: closeSearchPanel, scope: \"editor search-panel\" },\n { key: \"Mod-Shift-l\", run: selectSelectionMatches },\n { key: \"Mod-Alt-g\", run: gotoLine },\n { key: \"Mod-d\", run: selectNextOccurrence, preventDefault: true },\n];\nclass SearchPanel {\n constructor(view) {\n this.view = view;\n let query = this.query = view.state.field(searchState).query.spec;\n this.commit = this.commit.bind(this);\n this.searchField = elt(\"input\", {\n value: query.search,\n placeholder: phrase(view, \"Find\"),\n \"aria-label\": phrase(view, \"Find\"),\n class: \"cm-textfield\",\n name: \"search\",\n form: \"\",\n \"main-field\": \"true\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.replaceField = elt(\"input\", {\n value: query.replace,\n placeholder: phrase(view, \"Replace\"),\n \"aria-label\": phrase(view, \"Replace\"),\n class: \"cm-textfield\",\n name: \"replace\",\n form: \"\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.caseField = elt(\"input\", {\n type: \"checkbox\",\n name: \"case\",\n form: \"\",\n checked: query.caseSensitive,\n onchange: this.commit\n });\n this.reField = elt(\"input\", {\n type: \"checkbox\",\n name: \"re\",\n form: \"\",\n checked: query.regexp,\n onchange: this.commit\n });\n this.wordField = elt(\"input\", {\n type: \"checkbox\",\n name: \"word\",\n form: \"\",\n checked: query.wholeWord,\n onchange: this.commit\n });\n function button(name, onclick, content) {\n return elt(\"button\", { class: \"cm-button\", name, onclick, type: \"button\" }, content);\n }\n this.dom = elt(\"div\", { onkeydown: (e) => this.keydown(e), class: \"cm-search\" }, [\n this.searchField,\n button(\"next\", () => findNext(view), [phrase(view, \"next\")]),\n button(\"prev\", () => findPrevious(view), [phrase(view, \"previous\")]),\n button(\"select\", () => selectMatches(view), [phrase(view, \"all\")]),\n elt(\"label\", null, [this.caseField, phrase(view, \"match case\")]),\n elt(\"label\", null, [this.reField, phrase(view, \"regexp\")]),\n elt(\"label\", null, [this.wordField, phrase(view, \"by word\")]),\n ...view.state.readOnly ? [] : [\n elt(\"br\"),\n this.replaceField,\n button(\"replace\", () => replaceNext(view), [phrase(view, \"replace\")]),\n button(\"replaceAll\", () => replaceAll(view), [phrase(view, \"replace all\")])\n ],\n elt(\"button\", {\n name: \"close\",\n onclick: () => closeSearchPanel(view),\n \"aria-label\": phrase(view, \"close\"),\n type: \"button\"\n }, [\"×\"])\n ]);\n }\n commit() {\n let query = new SearchQuery({\n search: this.searchField.value,\n caseSensitive: this.caseField.checked,\n regexp: this.reField.checked,\n wholeWord: this.wordField.checked,\n replace: this.replaceField.value,\n });\n if (!query.eq(this.query)) {\n this.query = query;\n this.view.dispatch({ effects: setSearchQuery.of(query) });\n }\n }\n keydown(e) {\n if (runScopeHandlers(this.view, e, \"search-panel\")) {\n e.preventDefault();\n }\n else if (e.keyCode == 13 && e.target == this.searchField) {\n e.preventDefault();\n (e.shiftKey ? findPrevious : findNext)(this.view);\n }\n else if (e.keyCode == 13 && e.target == this.replaceField) {\n e.preventDefault();\n replaceNext(this.view);\n }\n }\n update(update) {\n for (let tr of update.transactions)\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery) && !effect.value.eq(this.query))\n this.setQuery(effect.value);\n }\n }\n setQuery(query) {\n this.query = query;\n this.searchField.value = query.search;\n this.replaceField.value = query.replace;\n this.caseField.checked = query.caseSensitive;\n this.reField.checked = query.regexp;\n this.wordField.checked = query.wholeWord;\n }\n mount() {\n this.searchField.select();\n }\n get pos() { return 80; }\n get top() { return this.view.state.facet(searchConfigFacet).top; }\n}\nfunction phrase(view, phrase) { return view.state.phrase(phrase); }\nconst AnnounceMargin = 30;\nconst Break = /[\\s\\.,:;?!]/;\nfunction announceMatch(view, { from, to }) {\n let line = view.state.doc.lineAt(from), lineEnd = view.state.doc.lineAt(to).to;\n let start = Math.max(line.from, from - AnnounceMargin), end = Math.min(lineEnd, to + AnnounceMargin);\n let text = view.state.sliceDoc(start, end);\n if (start != line.from) {\n for (let i = 0; i < AnnounceMargin; i++)\n if (!Break.test(text[i + 1]) && Break.test(text[i])) {\n text = text.slice(i);\n break;\n }\n }\n if (end != lineEnd) {\n for (let i = text.length - 1; i > text.length - AnnounceMargin; i--)\n if (!Break.test(text[i - 1]) && Break.test(text[i])) {\n text = text.slice(0, i);\n break;\n }\n }\n return EditorView.announce.of(`${view.state.phrase(\"current match\")}. ${text} ${view.state.phrase(\"on line\")} ${line.number}.`);\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panel.cm-search\": {\n padding: \"2px 6px 4px\",\n position: \"relative\",\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\",\n right: \"4px\",\n backgroundColor: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: 0,\n margin: 0\n },\n \"& input, & button, & label\": {\n margin: \".2em .6em .2em 0\"\n },\n \"& input[type=checkbox]\": {\n marginRight: \".2em\"\n },\n \"& label\": {\n fontSize: \"80%\",\n whiteSpace: \"pre\"\n }\n },\n \"&light .cm-searchMatch\": { backgroundColor: \"#ffff0054\" },\n \"&dark .cm-searchMatch\": { backgroundColor: \"#00ffff8a\" },\n \"&light .cm-searchMatch-selected\": { backgroundColor: \"#ff6a0054\" },\n \"&dark .cm-searchMatch-selected\": { backgroundColor: \"#ff00ff8a\" }\n});\nconst searchExtensions = [\n searchState,\n /*@__PURE__*/Prec.low(searchHighlighter),\n baseTheme\n];\n\nexport { RegExpCursor, SearchCursor, SearchQuery, closeSearchPanel, findNext, findPrevious, getSearchQuery, gotoLine, highlightSelectionMatches, openSearchPanel, replaceAll, replaceNext, search, searchKeymap, searchPanelOpen, selectMatches, selectNextOccurrence, selectSelectionMatches, setSearchQuery };\n","/**\n * BaseEditor - Core editor class wrapping CodeMirror 6\n * @countermeasure/web-components/editors\n */\n\nimport {\n EditorView,\n drawSelection,\n dropCursor,\n highlightActiveLine,\n highlightActiveLineGutter,\n highlightSpecialChars,\n keymap,\n lineNumbers,\n placeholder as cmPlaceholder,\n type ViewUpdate,\n} from '@codemirror/view'\nimport { Compartment, EditorState, type Extension } from '@codemirror/state'\nimport { defaultKeymap, history, historyKeymap, indentWithTab } from '@codemirror/commands'\nimport {\n HighlightStyle,\n bracketMatching,\n indentOnInput,\n syntaxHighlighting,\n defaultHighlightStyle,\n} from '@codemirror/language'\nimport { closeBrackets, closeBracketsKeymap } from '@codemirror/autocomplete'\nimport { highlightSelectionMatches, searchKeymap } from '@codemirror/search'\nimport { tags as t } from '@lezer/highlight'\nimport { type BaseEditorConfig } from './types'\n\n/** Resolve a container reference to an HTMLElement */\nexport function resolveContainer(container: HTMLElement | string): HTMLElement {\n if (typeof container === 'string') {\n const el = document.querySelector<HTMLElement>(container)\n if (!el) {\n throw new Error(`Editor container not found: ${container}`)\n }\n return el\n }\n return container\n}\n\n/** Custom syntax highlighting using CSS variables for theme adaptability */\nconst tfHighlightStyle = HighlightStyle.define([\n { tag: t.keyword, color: 'var(--cmm-editor-keyword, #7c3aed)' },\n { tag: t.operator, color: 'var(--cmm-editor-operator, #0891b2)' },\n {\n tag: [t.string, t.special(t.string)],\n color: 'var(--cmm-editor-string, #059669)',\n },\n { tag: t.number, color: 'var(--cmm-editor-number, #d97706)' },\n {\n tag: t.comment,\n color: 'var(--cmm-editor-comment, #6b7280)',\n fontStyle: 'italic',\n },\n { tag: t.variableName, color: 'var(--cmm-editor-variable, #1e40af)' },\n {\n tag: [t.function(t.variableName)],\n color: 'var(--cmm-editor-function, #2563eb)',\n },\n { tag: t.typeName, color: 'var(--cmm-editor-type, #0891b2)' },\n { tag: t.propertyName, color: 'var(--cmm-editor-property, #7c3aed)' },\n { tag: t.bool, color: 'var(--cmm-editor-atom, #d97706)' },\n { tag: t.null, color: 'var(--cmm-editor-atom, #d97706)' },\n { tag: t.atom, color: 'var(--cmm-editor-atom, #d97706)' },\n { tag: t.meta, color: 'var(--cmm-editor-meta, #6b7280)' },\n { tag: t.labelName, color: 'var(--cmm-editor-label, #2563eb)' },\n { tag: t.namespace, color: 'var(--cmm-editor-namespace, #0891b2)' },\n { tag: t.regexp, color: 'var(--cmm-editor-regexp, #dc2626)' },\n { tag: t.bracket, color: 'var(--cmm-editor-bracket, #6b7280)' },\n { tag: t.punctuation, color: 'var(--cmm-editor-punctuation, #6b7280)' },\n { tag: t.tagName, color: 'var(--cmm-editor-tag, #dc2626)' },\n { tag: t.attributeName, color: 'var(--cmm-editor-attribute, #d97706)' },\n])\n\n/** Editor chrome theme using CSS variables */\nconst editorTheme = EditorView.theme({\n '&': {\n fontSize: '14px',\n backgroundColor: 'var(--cmm-bg-primary, #ffffff)',\n color: 'var(--cmm-text-primary, #0f172a)',\n borderRadius: 'var(--radius-sm, 0.25rem)',\n },\n '&.cm-focused': {\n outline: '2px solid var(--cmm-accent, #2563eb)',\n outlineOffset: '-2px',\n },\n '.cm-content': {\n padding: '8px 0',\n caretColor: 'var(--cmm-text-primary, #0f172a)',\n fontFamily: \"'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, monospace\",\n },\n '.cm-cursor, .cm-dropCursor': {\n borderLeftColor: 'var(--cmm-text-primary, #0f172a)',\n borderLeftWidth: '2px',\n },\n '.cm-gutters': {\n backgroundColor: 'var(--cmm-bg-secondary, #f8fafc)',\n color: 'var(--cmm-text-muted, #64748b)',\n borderRight: '1px solid var(--cmm-border, #e2e8f0)',\n fontFamily: \"'JetBrains Mono', 'Fira Code', 'Cascadia Code', Consolas, monospace\",\n fontSize: '13px',\n },\n '.cm-activeLineGutter': {\n backgroundColor: 'transparent',\n color: 'var(--cmm-text-secondary, #334155)',\n },\n '&.cm-focused .cm-selectionBackground, .cm-selectionBackground': {\n backgroundColor: 'var(--cmm-editor-selection, rgba(59, 130, 246, 0.2))',\n },\n '.cm-activeLine': {\n backgroundColor: 'var(--cmm-editor-active-line, rgba(0, 0, 0, 0.04))',\n },\n '.cm-matchingBracket': {\n backgroundColor: 'var(--cmm-editor-bracket-match, rgba(59, 130, 246, 0.3))',\n outline: '1px solid var(--cmm-accent, #2563eb)',\n },\n '.cm-selectionMatch': {\n backgroundColor: 'var(--cmm-editor-selection-match, rgba(34, 197, 94, 0.15))',\n },\n '.cm-foldPlaceholder': {\n backgroundColor: 'var(--cmm-bg-tertiary, #f1f5f9)',\n border: '1px solid var(--cmm-border, #e2e8f0)',\n color: 'var(--cmm-text-muted, #64748b)',\n },\n '.cm-tooltip': {\n backgroundColor: 'var(--cmm-bg-secondary, #f8fafc)',\n border: '1px solid var(--cmm-border, #e2e8f0)',\n color: 'var(--cmm-text-primary, #0f172a)',\n borderRadius: '6px',\n boxShadow: 'var(--shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1))',\n },\n '.cm-tooltip-autocomplete > ul > li[aria-selected]': {\n backgroundColor: 'var(--cmm-accent, #2563eb)',\n color: 'white',\n },\n '.cm-panels': {\n backgroundColor: 'var(--cmm-bg-secondary, #f8fafc)',\n color: 'var(--cmm-text-primary, #0f172a)',\n },\n '.cm-panels.cm-panels-top': {\n borderBottom: '1px solid var(--cmm-border, #e2e8f0)',\n },\n '.cm-panels.cm-panels-bottom': {\n borderTop: '1px solid var(--cmm-border, #e2e8f0)',\n },\n '.cm-textfield': {\n backgroundColor: 'var(--cmm-bg-primary, #ffffff)',\n border: '1px solid var(--cmm-border, #e2e8f0)',\n borderRadius: '4px',\n padding: '2px 6px',\n fontSize: '13px',\n color: 'var(--cmm-text-primary, #0f172a)',\n },\n '.cm-button': {\n backgroundColor: 'var(--cmm-bg-tertiary, #f1f5f9)',\n border: '1px solid var(--cmm-border, #e2e8f0)',\n borderRadius: '4px',\n padding: '2px 8px',\n fontSize: '13px',\n cursor: 'pointer',\n color: 'var(--cmm-text-primary, #0f172a)',\n },\n})\n\nexport class BaseEditor {\n protected view: EditorView\n protected container: HTMLElement\n protected readOnlyCompartment = new Compartment()\n protected lineNumbersCompartment = new Compartment()\n protected wordWrapCompartment = new Compartment()\n private onChangeCallback: ((value: string) => void) | null\n\n constructor(config: BaseEditorConfig, extraExtensions: Extension[] = []) {\n this.container = resolveContainer(config.container)\n this.onChangeCallback = config.onChange ?? null\n\n const showLineNumbers = config.lineNumbers !== false\n const wordWrap = config.wordWrap === true\n const readOnly = config.readOnly === true\n const tabSize = config.tabSize ?? 2\n\n const extensions: Extension[] = [\n // Core editing\n highlightSpecialChars(),\n history(),\n drawSelection(),\n dropCursor(),\n EditorState.allowMultipleSelections.of(true),\n indentOnInput(),\n bracketMatching(),\n closeBrackets(),\n highlightActiveLine(),\n highlightSelectionMatches(),\n\n // Syntax highlighting (custom with CSS vars, default as fallback)\n syntaxHighlighting(tfHighlightStyle),\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\n\n // Editor chrome theme\n editorTheme,\n\n // Keymaps\n keymap.of([\n ...closeBracketsKeymap,\n ...defaultKeymap,\n ...searchKeymap,\n ...historyKeymap,\n indentWithTab,\n ]),\n\n // Tab size\n EditorState.tabSize.of(tabSize),\n\n // Controlled by compartments\n this.lineNumbersCompartment.of(\n showLineNumbers ? [lineNumbers(), highlightActiveLineGutter()] : []\n ),\n this.wordWrapCompartment.of(wordWrap ? EditorView.lineWrapping : []),\n this.readOnlyCompartment.of(readOnly ? EditorState.readOnly.of(true) : []),\n\n // Placeholder\n ...(config.placeholder ? [cmPlaceholder(config.placeholder)] : []),\n\n // Change listener\n EditorView.updateListener.of((update: ViewUpdate) => {\n if (update.docChanged && this.onChangeCallback) {\n this.onChangeCallback(update.state.doc.toString())\n }\n }),\n\n // Extra extensions from subclasses\n ...extraExtensions,\n ]\n\n const state = EditorState.create({\n doc: config.value ?? '',\n extensions,\n })\n\n this.view = new EditorView({\n state,\n parent: this.container,\n })\n }\n\n /** Get the full editor content */\n getValue(): string {\n return this.view.state.doc.toString()\n }\n\n /** Replace the entire editor content */\n setValue(value: string): void {\n this.view.dispatch({\n changes: {\n from: 0,\n to: this.view.state.doc.length,\n insert: value,\n },\n })\n }\n\n /** Toggle read-only mode */\n setReadOnly(readOnly: boolean): void {\n this.view.dispatch({\n effects: this.readOnlyCompartment.reconfigure(readOnly ? EditorState.readOnly.of(true) : []),\n })\n }\n\n /** Toggle line numbers */\n setLineNumbers(show: boolean): void {\n this.view.dispatch({\n effects: this.lineNumbersCompartment.reconfigure(\n show ? [lineNumbers(), highlightActiveLineGutter()] : []\n ),\n })\n }\n\n /** Toggle word wrap */\n setWordWrap(wrap: boolean): void {\n this.view.dispatch({\n effects: this.wordWrapCompartment.reconfigure(wrap ? EditorView.lineWrapping : []),\n })\n }\n\n /** Focus the editor */\n focus(): void {\n this.view.focus()\n }\n\n /** Blur the editor */\n blur(): void {\n this.view.contentDOM.blur()\n }\n\n /** Get the total number of lines */\n getLineCount(): number {\n return this.view.state.doc.lines\n }\n\n /** Scroll to a specific line number (1-indexed) */\n scrollToLine(line: number): void {\n const safeLine = Math.min(Math.max(1, line), this.view.state.doc.lines)\n const lineInfo = this.view.state.doc.line(safeLine)\n this.view.dispatch({\n effects: EditorView.scrollIntoView(lineInfo.from, { y: 'center' }),\n })\n }\n\n /** Get the underlying CodeMirror EditorView */\n getView(): EditorView {\n return this.view\n }\n\n /** Set the onChange callback */\n setOnChange(callback: ((value: string) => void) | null): void {\n this.onChangeCallback = callback\n }\n\n /** Destroy the editor and remove it from the DOM */\n destroy(): void {\n this.view.destroy()\n }\n}\n\nexport { editorTheme, tfHighlightStyle }\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
|